(1).檢查數據庫是否支持 Data Guard(企業版才支持),是否歸檔模式,Enable force logging
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DG-Primary)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.122)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora11g)
)
)
ORA11G_STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora11g)
)
)
(7)主庫用修改過的PFILE 生產SPFILE
mkdir -p $ORACLE_BASE/oradata/ora11g
mkdir -p $ORACLE_BASE/admin/ora11g
mkdir -p $ORACLE_BASE/admin/ora11g/adump
mkdir -p $ORACLE_BASE/admin/ora11g/bdump
mkdir -p $ORACLE_BASE/admin/ora11g/cdump
mkdir -p $ORACLE_BASE/admin/ora11g/dpdump
mkdir -p $ORACLE_BASE/admin/ora11g/pfile
mkdir -p $ORACLE_BASE/admin/ora11g/udump
mkdir -p $ORACLE_BASE/diag/rdbms
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DG-Standby)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.122)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora11g)
)
)
ORA11G_STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora11g)
)
)
SQL>startup nomount
SQL>alter database mount standby database; #執行此命令后備庫會處於手動恢復狀態。
SQL>startup mount
啟動standby database到recover manage模式
#執行此命令后,備庫會切換到自動恢復模式。
切換standby database到read only模式
SQL>alter database open read only;
如果要切換回recover manage模式(啟動日志應用或者啟動日志實時應用)
SQL> alter database recover managed standby database disconnect from session; 啟動日志應用
從庫DG-Standby:
主庫DG-Primary:
(2).啟動備庫數據庫,執行如下:
$sqlplus /nolog
SQL> startup nomount
SQL> alter database mount standby database; #讓備庫處於standby
SQL> alter database recover managed standby database using current logfile disconnect from session; ; #開始實時同步
SQL> startup
.切換standby database到read only模式
SQL>alter database open read only;
如果要切換回recover manage模式(啟動日志應用或者啟動日志實時應用)
SQL> alter database recover managed standby database disconnect from session; 啟動日志應用
SQL>startup
關閉順序
關閉的時候正好相反,先關閉主庫,然后關閉從庫。
(1). 關閉主庫
$su – oracle
SQL>sqlplus /nolog
SQL>shutdown immediate;
(2). 關閉從庫
su – oracle
SQL>shutdown immediate
Switchover狀態切換
SQL> alter database mount standby database; #讓備庫處於standby
SQL> alter database recover managed standby database using current logfile disconnect from session; ; #開始實時同步
應急切換
(注:模擬主庫由於故障無法正常switchover,需要執行failover,強制備庫->pridb並接管業務)
(1).備庫:
由於是failover,所以理解主庫這時候已經無法正常使用,只需備庫切換至pridb
停止應用恢復模式
alter database recover managed standby database finish;
轉換standbydb為primary db
alter database commit to switchover to primary;
重啟數據庫,恢復正常業務
SQL>shutdown immediate
SQL>startup
select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
---------- ----------------
OPEN PRIMARY
Failover狀態切換
在備庫上進行切換:
1.首先停止備庫的自動恢復狀態:
SQL>alter database recover managed standby database finish;
如果沒有使用過standby redo log的話執行:
SQL>alter database recover managed standby database finish skip standby logfile;
2.切換備庫到主庫:
SQL>alter database commit to switchover to primary;
3. 關閉數據庫:
SQL>shutdown immediate;
4. 啟動數據庫:
SQL>startup;
Active狀態切換:
Active是從8i延續過來的,其實不建議采用:
在備庫上執行切換:
1:alter database recover managed standby database cancel;
2:alter database activate standby database;
3:shutdown immediate
總結一下Failover 和 Switchover 的區別:
在9i 的dataguad環境中:
1:執行Switch Over 必須是Primary 正常,並且是必須Primary 主動先Switch成 standby.然后standby 才能switch 成primary。
2:如果需要作成primary出問題,standby 能接管的話,必須作 failover ,而不是SwitchOver。
Failover :
將主數據庫offline,備用數據庫online,這種操作由系統和軟件失敗引起。 即使在備用數據庫上應用重做日志,也可能出現數據丟失的現象,除非備用數據庫運行在 guaranteed protection 模式。
原主數據庫重新使用時必須重新啟動實例。
其它的備用數據庫也需重新啟動實例。
Switchover :
故意將主數據庫offline,而將另一備用數據庫online,它能夠切換到備用數據庫而不需同步操作。如:可使用 Switchover 完成系統的平滑升級。 即使在備用數據庫上不應用重做日志,也不會造成數據的丟失。
數據庫不需重新啟動實例。這使主數據庫幾乎能立即在備用數據庫上恢復它的功能,因此可經常進行定期維護而不需中斷操作。
Failover和Switchover的區別為:
當Failover發生,備用數據庫切換為主數據庫之后,它丟失了備用數據庫的所有能力,也就是說,不能再返回到備用模式;而Switchover可以,備用數據庫可切換為主數據庫,也可從主數據庫再切換回備用數據庫。
四、相關視圖
v$archive_dest
v$archive_dest_status
v$log_history
v$archvied_log
v$managed_standby
v$archive_gap
6、常見問題
至於本文設置主備庫參數在此博客有詳解http://www.cnblogs.com/Elliot-wang/p/3790878.html