Oracle 使用RMAN COPY 移動 Datafile 位置
為了保證資料的一致性,都是選擇了offline 或者將DB 啟動到mount 模式。 這裡演示一下使用RMAN copy 命令來進行datafile 的移動,這個方法也很常用,比如我們要將datafile 從磁碟移動到ASM 裡時,就可以使用這個命令。
如果資料檔案很多的話,手工去敲命令也不太現實,所以先編寫好shell 指令碼,然後新增到crontab裡,讓系統後臺呼叫,這樣也避免網路中斷帶來的影響。
如果是直接在伺服器上操作,可以不用這麼做,遠端SSH 到伺服器,讓指令碼後臺操作很有必要!
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。
如果要對臨時檔案進行轉移,可以對臨時檔案進行重建。 這塊內容具體參考:
http://blog.csdn.net/tianlesoftware/article/details/4974440
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 都還在原來的位置。
相關文章
- rman copy asm datafile(rename asm datafile)ASM
- How to copy a datafile from ASM to a file system not using RMANASM
- RMAN-06100: no channel to restore a backup or copy of datafileREST
- RMAN-06023 no backup or copy of datafile 1 found to restoreREST
- RMAN COPY實現ORACLE資料庫儲存遷移的方案Oracle資料庫
- 冷備_並行copy datafile並行
- 應對 "RMAN-06023: no backup or copy of datafile 1 found to restore"錯誤REST
- 10gR2rman backup as copy移動資料檔案,非常方便!
- 11g rman備份恢復資料檔案datafile到新的位置
- oracle 修改資料檔案位置(路徑)(移動)Oracle
- 使用rman在oracle ASM磁碟組之間移動資料檔案OracleASM
- 使用RMAN進行Oracle資料庫遷移Oracle資料庫
- 使用RMAN執行oracle ASM資料遷移OracleASM
- Oracle datafileOracle
- Oracle OCP 1Z0 053 Q564(Datafile Recovery with RMAN)Oracle
- rman datafile恢復(歸檔模式)模式
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- Oracle OCP IZ0-053 Q594(RMAN Image Copy)Oracle
- oracle檔案遷移之datafile,relog file,tempfileOracle
- rman映像copy自動備份的一個指令碼指令碼
- Oracle OCP 1Z0 053 Q505(RMAN DATAFILE BACKUP COPIES)Oracle
- 【Datafile】Oracle單個datafile大小的限制Oracle
- rman restore database(spfile,controlfile, datafile)RESTDatabase
- Oracle OCP 1Z0-053 Q693(RMAN Image Copy)Oracle
- 轉移Oracle日誌檔案位置Oracle
- 使用rman copy將資料庫遷移到ASM例項資料庫ASM
- Oracle rman duplicate遷移測試Oracle
- 【遷移】使用rman遷移資料庫資料庫
- Oracle OCP 1Z0 053 Q79(RMAN Recover Image Copy)Oracle
- 非archive 模式下更改datafile/redolog位置薦Hive模式
- 【RMAN】Oracle11g使用rman遷移升級資料庫(win_to_linux)Oracle資料庫Linux
- Oracle 利用RMAN 完成資料遷移Oracle
- Sqlserver移動檔案路徑move datafile的三種方法SQLServer
- Oracle OCP 1Z0-053 Q128(Rman Image Copy Switch)Oracle
- [20160720]rman set newname for datafile
- 收縮datafile for oracle -- 轉Oracle
- Oracle資料庫遷移之一:RMANOracle資料庫
- 將asm上datafile移動到其他的diskgroup或者普通filesystem上ASM