Oracle 11g DataGuard使用总结
Oracle 11g的dataguard相比于10g来说,最优越的特性应该算就是active dataguard了,这一点改进在很大意义上促使用户需要把数据库
Oracle 11g的dataguard相比于10g来说,最优越的特性应该算就是active dataguard了,这一点改进在很大意义上促使用户需要把数据库从10g升级到11g,读写分离在这个时候得到了升华,而且在后台会根据需要进行数据的同步,相比于使用10g,想读数据的时候把数据库启动到read only 阶段,但这个时候不接受日志同步数据,如果需要同步数据还需要把数据库再启动到mount阶段,感觉还是比较繁琐的。
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)到备库
下一篇: 归纳总结PHP的编码规范
推荐阅读
-
oracle触发器使用总结
-
使用yum快速部署Oracle安装环境(11g)
-
使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库
-
Oracle存储过程、包、方法使用总结(推荐)
-
oracle 11G dataguard 恢复
-
Oracle 11g 使用duplicate from active database 创建物理ADG的操作详细教程
-
oracle 日期时间函数使用总结
-
Oracle 11g下编译使用BBED的方法教程
-
Oracle使用数据泵导出、导入数据指定表空间用户、(11g导出为10g)
-
本机不安装Oracle客户端,使用PL/SQL Developer和 Instant Client 工具包连接oracle 11g远程数据库