最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

oracle 12c新特性--在线迁移数据文件

[复制链接]
跳转到指定楼层
楼主
发表于 2016-8-3 16:02:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
    在12c的新特性中,在线迁移数据文件可以说是非常好的改进,可以大量简化DBA的相关工作,使迁移数据文件不再繁琐,而且只需要一条命令即可,不再需要太多的技术知识,使迁移数据文件不再具有技术含量,这也说明Oracle越来越智能,对初学者来讲也越来越简单。
    在线迁移数据文件不但支持文件系统-文件系统,也支持文件系统-ASM、ASM-文件系统,本文主要演示下文件系统-文件系统。
    首先登录PDB,查询PDB的数据文件当前路径。


[oracle@dbdream DBDREAM]$ sqlplus sys/oracle@localhost/stream as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Thu Aug 15 14:08:08 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> select name from v$datafile;
NAME
---------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/DBDREAM/datafile/o1_mf_undotbs1_8yd38k7y_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_system_8yd3zf9o_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_sysaux_8yd3zf7g_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_users_8yd42gp8_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_test_90r49mpz_.dbf

    在/u01/app/oracle/oradata/DBDREAM目录下创建stream目录,作为数据文件迁移的目的地。
[oracle@dbdream DBDREAM]$ pwd
/u01/app/oracle/oradata/DBDREAM
[oracle@dbdream DBDREAM]$ mkdir stream
[oracle@dbdream DBDREAM]$ ls
controlfile  datafile  E1ADB87051AE19DDE04362F9A8C04FCA  E3EDDC6F9896357AE04362F9A8C04831  onlinelog  stream
    下面开始演示将test数据文件迁移到stream目录,不再像以前还得先只读表空间、离线数据文件、手动移动数据文件、修改控制文件、online数据文件、修改表空间读写模式,现在只需要一条命令。
SQL> alter database move datafile '/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_test_90r49mpz_.dbf' to '/u01/app/oracle/oradata/DBDREAM/stream/test01.dbf';
Database altered.
    如果数据文件不大,很快就迁移完了,再看数据文件路径,已经改了。
SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/DBDREAM/datafile/o1_mf_undotbs1_8yd38k7y_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_system_8yd3zf9o_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_sysaux_8yd3zf7g_.dbf
/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_users_8yd42gp8_.dbf
/u01/app/oracle/oradata/DBDREAM/stream/test01.dbf
    而且源路径下的o1_mf_test_90r49mpz_.dbf文件已经不见了,stream目录下生成test01.dbf文件。
[oracle@dbdream datafile]$ ll
-rw-r----- 1 oracle oinstall 650125312 Aug 15 14:39 o1_mf_system_8yd3zf9o_.dbf
-rw-r----- 1 oracle oinstall 650125312 Aug 15 14:44 o1_mf_sysaux_8yd3zf7g_.dbf
-rw-r----- 1 oracle oinstall  20979712 Aug 15 14:37 o1_mf_temp_8yd41lnw_.dbf
-rw-r----- 1 oracle oinstall   5251072 Aug 15 14:05 o1_mf_users_8yd42gp8_.dbf
[oracle@dbdream DBDREAM]$ cd stream/
[oracle@dbdream stream]$ ll
-rw-r----- 1 oracle oinstall 104865792 Aug 15 14:22 test01.dbf
    那么如果迁移的文件在目标目录中已经存在了?是否也能迁移过来呢?比如我们要迁移sysaux数据文件,现在stream目录中创建sysaux01.dbf文件。
[oracle@dbdream stream]$ touch sysaux01.dbf
    然后尝试迁移数据文件。
SQL>  alter database move datafile '/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_sysaux_8yd3zf7g.dbf' to '/u01/app/oracle/oradata/DBDREAM/stream/sysaux01.dbf';
alter database move datafile '/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_sysaux_8yd3zf7g.dbf' to '/u01/app/oracle/oradata/DBDREAM/stream/sysaux01.dbf'
*
ERROR at line 1:
ORA-01119: error in creating database file '/u01/app/oracle/oradata/DBDREAM/stream/sysaux01.dbf'
ORA-27038: created file already exists
Additional information: 1
    ORA-27038错误,文件已经存在了,ORACLE提供reuse选项,和创建表空间时指定的reuse一样,可以覆盖已存在的数据文件。
SQL>  alter database move datafile '/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_sysaux_8yd3zf7g.dbf' to '/u01/app/oracle/oradata/DBDREAM/stream/sysaux01.dbf' reuse;
Database altered.
    从上面的实验可以看出,在迁移数据文件时,数据文件被迁移后,源目录就不存在这个文件了,那么如果需要迁移后,元目录和目标目录都存在这个数据文件怎么办?ORACLE提供了KEEP选项。
SQL> alter database move datafile '/u01/app/oracle/oradata/DBDREAM/E1ADB87051AE19DDE04362F9A8C04FCA/datafile/o1_mf_users_8yd42gp8_.dbf' to '/u01/app/oracle/oradata/DBDREAM/stream/user01.dbf' KEEP;
    这样,数据文件迁移后,在源目录和目标目录下都有数据文件,源目录下的数据文件就相当于在迁移时的一个备份。
[oracle@dbdream stream]$ ls user*
user01.dbf
[oracle@dbdream datafile]$ ls *user*
o1_mf_users_8yd42gp8_.dbf
    ORACLE 12c退出的在线迁移数据文件功能,在数据文件迁移时,支持select和DML、DDL操作,对前端来讲是透明的,对业务基本没什么影响。ORACLE软件越来越智能,操作越来越简化,而大部分公司都不会用高薪养一个高级DBA,而是用很少的钱养一个初级DBA或刚毕业的新人,这些初级的DBA可以完成基本的日常工作,一旦出了复杂的问题,这些公司也不用出太多的钱,第三方维保公司就搞定了,如果一年都没出问题,就节约了不少成本,就算出几次问题,请第三方的钱也和养一个高端DBA没差多少,照此下去,高端DBA的需求将越来越少,DBA们是否该考虑转型呢?



来自群组: Oracle DBA交流
楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-20 10:49

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表