環境:RHEL 6.4 + Oracle 11.2.0.4
一、主備手工切換
二、重命名數據文件
Reference
一、主備手工切換
1.1 主庫,切換成備庫並啟動到mount
1.1.1 查看主庫狀態 ``` SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE; ``` 1.1.2 切換到備庫 ``` SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; ``` 1.1.3 啟動到mount狀態 ``` SQL> STARTUP MOUNT ```
1.2 備庫,切換成主庫並啟動到open
1.2.1 查看備庫狀態 ``` SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE; ``` 1.2.2 切換到主庫 ``` SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; ``` 1.2.3 數據庫open ``` SQL> ALTER DATABASE OPEN; ```
1.3 新的備庫啟動日志應用
1.3.1 備庫mount狀態直接啟動日志應用 ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; ``` 1.3.2 備庫切換到open狀態,啟用Real-time query A physical standby database instance cannot be opened if Redo Apply is active on a mounted instance of that database. Use the following SQL statements to stop Redo Apply, open a standby instance read-only, and restart Redo Apply: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL> ALTER DATABASE OPEN; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; ```
二、重命名數據文件
2.1 主庫,對應的數據文件或者表空間offline
``` SQL> ALTER TABLESPACE DBS_D_JINGYU OFFLINE; ```
2.2 主庫,操作系統層面重命名數據文件
``` $ mv /u01/oradata01/JINGYU/datafile/o1_mf_dbs_d_ji_byqy17ph_.dbf /u01/oradata01/JINGYU/datafile/DBS_D_JINGYU01.dbf ```
2.3 主庫,重命名數據文件,表空間online
``` SQL> ALTER TABLESPACE DBS_D_JINGYU RENAME DATAFILE '/u01/oradata01/JINGYU/datafile/o1_mf_dbs_d_ji_byqy17ph_.dbf' TO '/u01/oradata01/JINGYU/datafile/DBS_D_JINGYU01.dbf'; SQL> ALTER TABLESPACE DBS_D_JINGYU ONLINE; ```
2.4 備庫,停止redo應用
``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; ```
2.5 備庫,關閉數據庫
``` SQL> SHUTDOWN IMMEDIATE; ```
2.6 備庫,操作系統層面重命名數據文件
``` $ mv /u01/oradata01/BOSTON/datafile/o1_mf_dbs_d_ji_22qjsbps_.dbf /u01/oradata01/BOSTON/datafile/DBS_D_JINGYU01.dbf ```
2.7 備庫,啟動到mount狀態
``` SQL> STARTUP MOUNT ```
2.8 備庫,重命名數據文件
2.8.1 需要先調整參數STANDBY_FILE_MANAGEMENT為MANUAL 否則重命名數據文件時會報錯`ORA-01275: Operation RENAME is not allowed if standby file management is automatic.` ``` SQL> SHOW PARAMETER STANDBY_FILE_MANAGEMENT SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = MANUAL; ``` 2.8.2 重命名數據文件 ``` SQL> ALTER DATABASE RENAME FILE '/u01/oradata01/BOSTON/datafile/o1_mf_dbs_d_ji_22qjsbps_.dbf' TO '/u01/oradata01/BOSTON/datafile/DBS_D_JINGYU01.dbf'; ``` 2.8.3 參數調整為AUTO ``` SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO; ```
2.9 備庫,重新啟動redo應用
``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; ```
Reference
- Oracle® Data Guard Concepts and Administration 11g Release 2 (11.2)