11g的active dataurad功能很强大,同时搭建的时候使用rman 的duplicate选项在11g也得到了很大的改进,我们不需要专门去做一个备份,就可以直接在备库上通过duplicate把数据文件从主库传送到备库,同时做恢复,整个过程更加简洁。
当然了一般的系统是一主一备,关键的系统甚至要一主两备,如果系统多了,手工管理很容易搞糊涂,这个时候还是用加强版的dg broker来做吧,以前在10g的时候感觉还是手工管理,手工switchover,failover比较踏实,因为也在10g的过程中switchover,failover出现过一些问题,算是留下了一些阴影,到了11g的时候,工作中大量使用,就尝试着自己试了试,发现确实很好,而且搭建备库步骤比手工搭建要轻松的多。所以还是需要拥抱变化,勇敢接受新事物,一方面可以给自己疗伤,一方面恢复使用的信心,至少在灾难发生的时候回临危不乱。
我们来简单看一个例子,怎么结合dg broker来搭建dataguard,步骤相比手工要简化很多,而且可靠性要高很多,因为人为去做的检查点,在dg broker的检查中都会去做。
出了设置主库为归档模式,force logging之外。
我们所要做的就是配置网络监听。当然这个也不是难点,listener.ora tnsnames.ora主备是很相似的。
比如我们使用1523的端口在primary和standby之间互联
listener.ora? 主库和备库的host部分不一样
LISTENER_1523 =
? (DESCRIPTION_LIST =
? ? (DESCRIPTION =
? ? ? (ADDRESS_LIST =
? ? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xxxxx.45)(PORT = 1523))
? ? ? )
? ? )
? )
?SID_LIST_LISTENER_1523 =
? (SID_LIST =
? ? (SID_DESC =
? ? ? (GLOBAL_DBNAME = test11g)
? ? ? (ORACLE_HOME = /DATA/app/oracle/product/11.2.0.4)
? ? ? (SID_NAME = test11g)
? )
? )?
?tnsnames.ora 主库备库一致
TEST11G =
? (DESCRIPTION =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xxxxx.45)(PORT = 1523))
? ? (CONNECT_DATA =
? ? ? (SERVER = DEDICATED)
? ? ? (SERVICE_NAME = test11g)
? ? )
? )
?STEST11G =
? (DESCRIPTION =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xxxxxx.46)(PORT = 1523))
? ? (CONNECT_DATA =
? ? ? (SERVER = DEDICATED)
? ? ? (SERVICE_NAME = test11g)
? ? )
?)
然后就是使用tnsping开始检查,检查防火墙,等等
?添加备库日志
?主库查看日志情况,可以使用下面的方法检查一下。
SQL> select member,group#,status from v$logfile
?MEMBER? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? GROUP# STATUS
?-------------------------------------------------- ---------- -------
?/DATA/app/oracle/oradata/test11g/redo03.log? ? ? ? ? ? ? ? 3
?/DATA/app/oracle/oradata/test11g/redo02.log? ? ? ? ? ? ? ? 2
?/DATA/app/oracle/oradata/test11g/redo01.log? ? ? ? ? ? ? ? 1
?SQL> select group#,status,bytes,blocksize,status from v$log;
? ? GROUP# STATUS? ? ? ? ? ? ? ? BYTES? BLOCKSIZE STATUS
?---------- ---------------- ---------- ---------- ----------------
? ? ? ? ? 1 INACTIVE? ? ? ? ? 52428800? ? ? ? 512 INACTIVE
? ? ? ? ? 2 CURRENT? ? ? ? ? ? 52428800? ? ? ? 512 CURRENT
? ? ? ? ? 3 INACTIVE? ? ? ? ? 52428800? ? ? ? 512 INACTIVE
添加备库日志的语句类似:
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/DATA/app/oracle/oradata/test11g/redo04.log' SIZE 524288000;
修改下面的数据库参数,
alter system set standby_file_management=auto scope=both;
?alter system set dg_broker_start=TRUE scope=both;
alter system set local_listener=TEST11G scope=both;
检查dmon的情况
SQL> !ps -ef|grep dmon_test11g
?oracle? ? 8129? ? 1? 0 11:25 ?? ? ? ? 00:00:00 ora_dmon_test11g
?oracle? ? 8138? 8108? 0 11:25 pts/0? ? 00:00:00 /bin/bash -c ps -ef|grep dmon_test11g
?oracle? ? 8140? 8138? 0 11:25 pts/0? ? 00:00:00 grep dmon_test11g
查看dg broker的日志,开始的时候没有配置文件,会重新创建。
DMON: cannot open configuration file "/DATA/app/oracle/product/11.2.0.4/dbs/dr2test11g.dat"
? ORA-27037: unable to obtain file status
? Linux-x86_64 Error: 2: No such file or directory
? Additional information: 3
?DMON: cannot open configuration file "/DATA/app/oracle/product/11.2.0.4/dbs/dr2test11g.dat"
? ORA-27037: unable to obtain file status
? Linux-x86_64 Error: 2: No such file or directory
? Additional information: 3
Configuration does not exist, Data Guard broker ready
数据库alert日志:
Mon Jul 27 11:25:15 2015
DMON started with pid=26, OS id=8129
?Starting Data Guard Broker (DMON)
?Mon Jul 27 11:25:23 2015
接着拷贝密码文件,参数文件(spfile)到备库
?在备库生成pfile,然后修改下面的参数
? ? ? ? 修改db_unique_name为stest11g
? ? ?