Oracle 使用RMAN COPY 移动 Datafile 位置
来源:互联网 发布:eclipse mac 稳定版本 编辑:程序博客网 时间:2024/05/17 23:40
为了保证数据的一致性,都是选择了offline 或者将DB 启动到mount 模式。 这里演示一下使用RMAN copy 命令来进行datafile 的移动,这个方法也很常用,比如我们要将datafile 从磁盘移动到ASM 里时,就可以使用这个命令。
如果数据文件很多的话,手工去敲命令也不太现实,所以先编写好shell 脚本,然后添加到crontab里,让系统后台调用,这样也避免网络中断带来的影响。
如果是直接在服务器上操作,可以不用这么做,远程SSH 到服务器,让脚本后台操作很有必要!
LinuxCrontab 定时任务 命令详解
http://blog.csdn.net/tianlesoftware/article/details/5315039
1.查看datafile位置:
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/anqing/users01.dbf
/u02/app/oracle/oradata/anqing/sysaux01.dbf
/u02/app/oracle/oradata/anqing/undotbs01.dbf
/u02/app/oracle/oradata/anqing/system01.dbf
创建一个新目录:
rac1:/home/oracle> mkdir -p/u02/app/oracle/oradata/anqing2
2.编写RMAN 脚本:Rcopy.sh,内容如下:
#!/bin/ksh
export LANG=en_US
RMAN_LOG_FILE=${0}.out
ORACLE_HOME=/u02/app/oracle/product/11.2.0/db_1
export ORACLE_HOME
RMAN=$ORACLE_HOME/bin/rman
export RMAN
ORACLE_SID=anqing
export ORACLE_SID
ORACLE_USER=oracle
export ORACLE_USER
echo "ORACLE_SID:$ORACLE_SID">>$RMAN_LOG_FILE
echo"ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE
echo"ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE
echo"==========================">>$RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
$RMAN nocatalog TARGET / msglog$RMAN_LOG_FILE append <<EOF
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
copy datafile'/u02/app/oracle/oradata/anqing/users01.dbf' to'/u02/app/oracle/oradata/anqing2/users01.dbf';
copy datafile'/u02/app/oracle/oradata/anqing/sysaux01.dbf' to'/u02/app/oracle/oradata/anqing2/sysaux01.dbf';
copy datafile'/u02/app/oracle/oradata/anqing/undotbs01.dbf' to'/u02/app/oracle/oradata/anqing2/undotbs01.dbf';
copy datafile'/u02/app/oracle/oradata/anqing/system01.dbf' to'/u02/app/oracle/oradata/anqing2/system01.dbf';
release channel c2;
release channel c1;
}
EOF
echo >> $RMAN_LOG_FILE
exit
--赋执行权限:
[root@rac1 u01]# chmod 755 Rcopy.sh
3.将DB 启动到mount 状态:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 3206836224 bytes
Fixed Size 2232640 bytes
Variable Size 2701135552 bytes
Database Buffers 486539264 bytes
Redo Buffers 16928768 bytes
Database mounted.
SQL>
4. 执行Rmancopy 脚本:
rac1:/u01> crontab -l
00 11 * * * /u01/Rcopy.sh &
--确认拷贝:
rac1:/u02/app/oracle/oradata/anqing2> ll-lh
total 1.6G
-rw-r-----. 1 oracle oinstall 571M Mar 7 13:30 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 711M Mar 7 13:31 system01.dbf
-rw-r-----. 1 oracle oinstall 321M Mar 7 13:30 undotbs01.dbf
-rw-r-----. 1 oracle oinstall 5.1M Mar 7 13:30 users01.dbf
5. 对数据文件进行Rename
这里的Rename 操作更新datafile 在控制文件里的记录。注意的一点,控制文件不记录临时文件的信息,所以,临时文件rename不能rename。
如果要对临时文件进行转移,可以对临时文件进行重建。 这块内容具体参考:
Oracle 控制文件
http://blog.csdn.net/tianlesoftware/article/details/4974440
Oracle Temp 临时表空间
http://blog.csdn.net/tianlesoftware/article/details/4697417
SQL> alter database rename file'/u02/app/oracle/oradata/anqing/users01.dbf' to'/u02/app/oracle/oradata/anqing2/users01.dbf';
Database altered.
SQL> alter database rename file'/u02/app/oracle/oradata/anqing/sysaux01.dbf' to'/u02/app/oracle/oradata/anqing2/sysaux01.dbf';
Database altered.
SQL> alter database rename file'/u02/app/oracle/oradata/anqing/undotbs01.dbf' to'/u02/app/oracle/oradata/anqing2/undotbs01.dbf';
Database altered.
SQL> alter database rename file'/u02/app/oracle/oradata/anqing/system01.dbf' to'/u02/app/oracle/oradata/anqing2/system01.dbf';
Database altered.
6.打开DB并验证:
SQL> alter database open;
Database altered.
SQL> select file_name fromdba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/anqing2/users01.dbf
/u02/app/oracle/oradata/anqing2/sysaux01.dbf
/u02/app/oracle/oradata/anqing2/undotbs01.dbf
/u02/app/oracle/oradata/anqing2/system01.dbf
这里我们只迁移了数据文件,向之前说的临时表空间,控制文件和online Redo log 都还在原来的位置。
- Oracle 使用RMAN COPY 移动 Datafile 位置
- Oracle 使用RMAN COPY 移动 整个数据库 位置 示例
- Oracle 使用RMAN COPY 移动 整个数据库 位置 示例
- Oracle 使用RMAN COPY 移动 整个数据库 位置 示例 .
- Oracle 使用RMAN COPY 移动 整个数据库 位置
- Oracle移动datafile的位置
- RMAN-06214: Datafile Copy
- RMAN-06214: Datafile Copy
- RMAN-06214: Datafile Copy .
- oracle如何移动datafile的位置
- RMAN-06183: datafile or datafile copy larger than maxsetsize
- 【Vegas原创】移动Datafile位置
- 【Vegas原创】移动Datafile位置
- ORACLE RMAN ACTIVE COPY
- RMAN-06585: no copy of datafile 7 found 问题解决
- RMAN-06183: datafile or datafile copy +DATA_ERP/ap_media35 (file number 27) larger than MAXSETSIZE
- 通过rman backup as copy移动数据文件
- How to copy a datafile from ASM to a file system not using RMAN
- 网络流模板-SAP+当前弧优化+gap优化
- Java内存分配原理详解
- ORA-00054I (oracle资源被锁定) 的解决方法
- Ural 1709. Penguin-Avia
- 安心做一只会飞的笨鸟
- Oracle 使用RMAN COPY 移动 Datafile 位置
- Javascript中event.keyCode键码值表
- Ural 1710. Boris, You Are Wrong!
- iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法
- SharePoint 2010项目集成Silverlight应用程序(debug)调试问题
- Android开机画面~(自己还没试验)
- POJ2112解题报告【网络流-初级-isap+floyd_warshall+二分】
- POJ2010 Moo University - Financial Aid
- 遗留问题