開啓備庫恢復:數據庫
數據庫啓動時,先啓動備庫,在啓動主庫
數據庫關閉時,先關閉主庫,在關閉備庫
SYS@ prodstd>recover managed standbydatabase disconnect from session; --只要啓動備庫就使能recover功能
SYS@ prod>select max(sequence#) from v$archived_log;複製代碼
服務器、數據庫環境:bash
主庫服務器hostname:prod1 備庫服務器hostname:prod2
主庫數據庫SID:prod 備庫數據庫SID:prodstd複製代碼
切換備庫前準備,查看主庫備庫狀態:服務器
SYS@ prod>select tablespace_name,file_name from dba_data_files;
SYS@ prod>select max(sequence#) from v$archived_log; --對比主備庫日誌,同步才能作下一步
SYS@ prod>select username,sid from v$session where username is not null; --切換時要停庫,最好沒有其餘session連接
SYS@ prod>select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- -------------------- ------------------------------------ --------------------
PROD READ WRITE PRIMARY MAXIMUM PERFORMANCE TO STANDBY
SYS@ prodstd>select name,database_role,protection_mode,switchover_status from v$database;
NAME DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- ---------------- ----------------------------------------
PROD PHYSICAL STANDBY MAXIMUM PERFORMANCE NOT ALLOWED複製代碼
主備切換步驟:session
主庫操做:
SYS@ prod>alter database commit to switchover to standby; 沒有其餘用戶登陸
或
SYS@ prod>alter database commit to switchover to standby with session shutdown; 有用戶登陸,強制切換
SYS@ prod>shutdown --完全關閉數據庫SYS@ prod>startup mount --先啓動到mount下
SYS@ prod>select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- -------------------- ------------------------------------ --------------------
PROD MOUNTED PHYSICAL STANDBY MAXIMUM PERFORMANCE TO PRIMARY
備庫操做:SYS@ prodstd>select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- -------------------- ---------------- -------------------- --------------------
PROD READ ONLY PHYSICAL STANDBY MAXIMUM PERFORMANCE TO PRIMARY
SYS@ prodstd>alter database commit to switchover to primary; --備庫爲主庫
SYS@ prodstd>select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- -------------------- ---------------- -------------------- --------------------
PROD MOUNTED PRIMARY MAXIMUM PERFORMANCE NOT ALLOWED
SYS@ prodstd>alter database open; --開啓備庫,此時備庫已經成爲主庫複製代碼
主庫操做:
SYS@ prod>alter database open;SYS@ prod>select name,database_role,protection_mode,switchover_status from v$database;
NAME DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- ---------------- -------------------- --------------------
PROD PHYSICAL STANDBY MAXIMUM PERFORMANCE RECOVERY NEEDED
SYS@ prod>recover managed standby database disconnect from session; --原主庫(當前備庫)開啓恢復。
SYS@ prod>select name,database_role,protection_mode,switchover_status from v$database;
NAME DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
--------- ---------------- -------------------- --------------------
PROD PHYSICAL STANDBY MAXIMUM PERFORMANCE NOT ALLOWED複製代碼
主備切換成功ui