使用RMAN執行oracle ASM資料遷移
8、使用RMAN執行oracle ASM資料遷移
Oracle ASM資料遷移概述
Oracle ASM資料遷移的目的
Oracle ASM的替代品包括檔案系統、裸裝置和SAN配置。和這些替代品相比,Oracle ASM有一些超越的優點,包括效能最佳化、冗餘包含和負載均衡。不再需要第三方的邏輯卷管理器,因為oracle ASM為你管理磁碟。Oracle RAC資料庫受益於oracle ASM,因為它提供現成的共享儲存。在ASM和非ASM中遷移。
本地作業系統命令例如linux的cp或者windows的copy,不能讀寫oracle ASM儲存中的檔案。RMAN可以讀寫oracle ASM檔案,可以使用rman來複製資料檔案到oracle ASM儲存裡或者外、或者在oracle ASM磁碟組之間。如果必須儲存備份到使用者管理的磁碟上,這項技術非常有用。
Oracle ASM資料遷移的基礎概念
遷移需要一個rman資料庫備份。遷移快速恢復區到oracle ASM儲存。遷移一個資料庫從oracle ASM到非ASM,步驟差不多。
使用RMAN資料遷移到oracle ASM的基本步驟
從本地儲存遷移整個資料庫和快速恢復區到oracle ASM,執行如下步驟:
1) 備份資料庫和伺服器引數檔案,並且禁用oracle 閃回資料庫功能。
資料庫閃回和傳統的介質恢復不一樣,因為它不涉及物理檔案的還原,而是使用儲存的改變資料塊映象來還原當前的資料檔案到過去的狀態。這個特性使用閃回日誌和歸檔日誌檔案。
2) 還原檔案到oracle ASM,恢復資料庫,可選地遷移快速恢復區到oracle ASM
使用rman遷移資料庫到oracle ASM準備工作
假設+DATA存放資料庫,+FRA存放快速恢復區
1)如果資料庫引數compatible設定小於11.0.0,那麼將任何只讀可傳輸的表空間置為讀寫模式(只讀可傳輸表空間不能被遷移,因為rman不能備份它們)
2)如果資料庫是物理standby資料庫,如果恢復管理是開啟的,那麼停止恢復管理。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
(保持該終端視窗開啟狀態)
3) 複製伺服器引數檔案或初始化引數到臨時目錄
$ cp spfileMYDB.ora orig_spfileMYDB.ora
4) 開啟一個新的終端視窗,開啟rman會話,連線到需要被遷移的目標資料庫。可選的,連線到恢復目錄 recovery catalog
5) 備份資料庫檔案到oracle ASM磁碟組
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
BACKUP AS COPY
INCREMENTAL LEVEL 0
DATABASE
FORMAT '+DATA'
TAG 'ORA_ASM_MIGRATION';
}
說明:+DATA為存放資料庫的磁碟組名稱。
6) 如果資料庫的快改變跟蹤被啟用了,那麼可選地可以做一個1級別的增量備份,稍後用於資料庫複製恢復。
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
BACKUP INCREMENTAL LEVEL 1
FOR RECOVER OF COPY WITH TAG 'ORA_ASM_MIGRATION'
DATABASE;
}
7) 如果資料庫是歸檔模式,如果資料庫是開啟的,那麼歸檔當前線上日誌
RMAN> sql “alter system archive log current”;
8)如果資料庫例項當前使用伺服器引數檔案,那麼備份下
RMAN>backup as backupset spfile;
9)如果塊改變跟蹤被啟用,那麼禁用它
RMAN> SQL "ALTER DATABASE DISABLE BLOCK CHANGE TRACKING";
10)如果閃回資料庫被啟用,那麼禁用它然後刪除任何保證還原點
(如果不準備遷移快速恢復區,那麼跳過此步驟)。
RMAN> SQL "ALTER DATABASE FLASHBACK OFF";
RMAN> SQL "DROP RESTORE POINT Q106";
11)一致性關閉資料庫
RMAN>shutdown immediate;
使用rman遷移資料庫到oracle ASM
最小化資料庫down機時間。步驟會略有不同取決於是否遷移主庫還是備庫。如果不遷移快速恢復區到oracle ASM,那麼必須修改一些步驟,有提示。
1)按照之前的準備步驟進行
2)在oracle ASM儲存中,還原或建立新的伺服器引數檔案
此步驟取決於當前資料庫是否使用伺服器引數檔案。
如果資料庫使用伺服器引數檔案,那麼使用如下命令還原它到oracle ASM磁碟組:
RMAN> STARTUP MOUNT;
RMAN> RESTORE SPFILE TO '+DATA/spfilesid.ora';
RMAN> SHUTDOWN IMMEDIATE;
如果資料庫沒有使用伺服器引數檔案,那麼在oracle ASM中建立一個。在sqlplus中使用create spfile命令:
SQL> CREATE SPFILE='+DATA/spfilesid.ora' FROM PFILE='?/dbs/initsid.ora';
3)設定oracle管理檔案初始化引數到oracle ASM目錄
注意:如果不遷移快速恢復區,那麼不要修改這兩個引數的設定db_recovery_file_dest和db_recovery_file_dest_size。但是必須設定引數db_create_online_log_dest_n到oracle ASM目錄為了遷移線上重做日誌。
設定db_create_file_dest和可選的db_create_online_log_dest_n初始化引數到oracle ASM磁碟組。如果使用快速恢復區,那麼修改快速恢復區目錄到oracle ASM磁碟組,同時修改快速恢復區大小。
SQL> STARTUP FORCE NOMOUNT;
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='+DATA' SID='*';
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=100G SID='*';
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA' SID='*';
4)設定初始化引數control_files為oracle ASM目錄
如果遷移快速恢復區,那麼+DATA和+FRA
SQL> STARTUP FORCE NOMOUNT;
SQL> ALTER SYSTEM SET CONTROL_FILES='+DATA','+FRA' SCOPE=SPFILE SID='*';
如果不遷移快速恢復區,那麼+DATA和+DATA
SQL> STARTUP FORCE NOMOUNT;
SQL> ALTER SYSTEM SET CONTROL_FILES='+DATA','+DATA' SCOPE=SPFILE SID='*';
5)遷移控制檔案到oracle ASM,並且掛載控制檔案
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM 'original_cf_name';
RMAN> ALTER DATABASE MOUNT;
6)遷移資料檔案到oracle ASM
Switch切換重新命名所有資料檔案到oracle ASM磁碟組的檔案。更改控制檔案中的相關資訊。
SWITCH DATABASE TO COPY;
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
RECOVER DATABASE;
}
7)如果資料庫使用塊改變跟蹤或者閃回資料庫功能,那麼啟用這些功能
注意:如果你沒有遷移回恢復區,那麼你沒有啟用閃回資料庫,除非你以前禁用了它。
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA';
SQL> ALTER DATABASE FLASHBACK ON;
8)將資料庫置於普通操作模式
普通操作模式取決於資料庫是否是主庫還是備庫
如果是主庫,SQL>alter database open;
如果是備庫,那麼恢復管理恢復模式:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
9)在oracle ASM中刪除臨時檔案,然後重新建立
SQL> ALTER DATABASE TEMPFILE 'tempfile_name' DROP;
SQL> ALTER TABLESPACE temp_tbs_name ADD TEMPFILE;
10)遷移線上重做日誌檔案
如果是主庫,那麼在oracle ASM中新增新的日誌組成員,然後刪掉舊的成員。還可以使用下面的指令碼來遷移線上重做日誌組到oracle ASM磁碟組。
Example 8–1 Migrating the online redo logs
SET SERVEROUTPUT ON;
DECLARE
CURSOR rlc IS
SELECT GROUP# GRP, THREAD# THR, BYTES, 'NO' SRL
FROM V$LOG
UNION
SELECT GROUP# GRP, THREAD# THR, BYTES, 'YES' SRL
FROM V$STANDBY_LOG
ORDER BY 1;
stmt VARCHAR2(2048);
BEGIN
FOR rlcRec IN rlc LOOP
IF (rlcRec.srl = 'YES') THEN
stmt := 'ALTER DATABASE ADD STANDBY LOGFILE THREAD ' ||
rlcRec.thr || ' SIZE ' || rlcRec.bytes;
EXECUTE IMMEDIATE stmt;
stmt := 'ALTER DATABASE DROP STANDBY LOGFILE GROUP ' || rlcRec.grp;
EXECUTE IMMEDIATE stmt;
ELSE
stmt := 'ALTER DATABASE ADD LOGFILE THREAD ' ||
rlcRec.thr || ' SIZE ' || rlcRec.bytes;
EXECUTE IMMEDIATE stmt;
BEGIN
stmt := 'ALTER DATABASE DROP LOGFILE GROUP ' || rlcRec.grp;
DBMS_OUTPUT.PUT_LINE(stmt);
EXECUTE IMMEDIATE stmt;
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER SYSTEM SWITCH LOGFILE';
EXECUTE IMMEDIATE 'ALTER SYSTEM CHECKPOINT GLOBAL';
EXECUTE IMMEDIATE stmt;
END;
END IF;
END LOOP;
END;
/
11)可選地,遷移舊的快速恢復區中的備份和複製到oracle ASM:
如果快速恢復區中存在外來歸檔日誌,那麼不能遷移到oracle ASM。在rman中執行如下命令:
RMAN> DELETE REMOTE ARCHIVELOG ALL;
備份歸檔重做日誌檔案,備份集,資料檔案複製到oracle ASM。
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
BACKUP AS COPY ARCHIVELOG ALL DELETE INPUT;
BACKUP BACKUPSET ALL DELETE INPUT;
BACKUP AS COPY DATAFILECOPY ALL DELETE INPUT;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21256317/viewspace-1063388/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用RMAN進行Oracle資料庫遷移Oracle資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(一)建立ASM磁碟組資料庫ASM
- 使用RMAN進行資料遷移
- 【資料遷移】RMAN遷移資料庫到ASM(三)遷移onlinelog等到ASM資料庫ASM
- 【遷移】使用rman遷移資料庫資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(二)切換資料檔案到ASM資料庫ASM
- 使用RMAN遷移檔案系統資料庫到ASM資料庫ASM
- oracle 遷移資料庫到asmOracle資料庫ASM
- Oracle 利用RMAN 完成資料遷移Oracle
- Oracle資料庫遷移之一:RMANOracle資料庫
- 使用rman將資料庫遷移到ASM例項資料庫ASM
- rman進行跨平臺資料遷移
- 用RMAN遷移檔案到ASM或從ASM遷出ASM
- 用rman從檔案系統遷移資料庫到asm資料庫ASM
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 使用RMAN完成跨平臺資料遷移
- 使用RMAN遷移資料庫到異機資料庫
- 遷移資料庫到ASM資料庫ASM
- 使用rman copy將資料庫遷移到ASM例項資料庫ASM
- 使用rman在oracle ASM磁碟組之間移動資料檔案OracleASM
- 用rman遷移資料庫資料庫
- 【RMAN】Oracle11g使用rman遷移升級資料庫(win_to_linux)Oracle資料庫Linux
- 四、用rman從檔案系統遷移資料庫到asm資料庫ASM
- ORACLE 10G ASM非歸檔模式下使用RMAN遷移一例Oracle 10gASM模式
- 利用RMAN在檔案系統與ASM之間遷移資料庫ASM資料庫
- solaris10_oracle10g_asm_non_asm遷移資料庫測試OracleASM資料庫
- ORACLE 資料遷移Oracle
- 11g資料庫遷移ASM資料庫ASM
- 遷移資料庫檔案到ASM資料庫ASM
- 【DATAPUMP】使用DataPump遷移Oracle資料庫Oracle資料庫
- 利用rman將本地資料檔案遷移到asmASM
- RMAN遷移資料庫(rac or single)資料庫
- Oracle rman duplicate遷移測試Oracle
- Oracle使用RMAN將普通資料檔案轉成ASMOracleASM
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- RMAN COPY實現ORACLE資料庫儲存遷移的方案Oracle資料庫
- ORACLE資料庫遷移Oracle資料庫
- ASM的資料庫遷移回到DISK上ASM資料庫