|
安装好两台Oracle11gR2后,简单的建了个测试库,然后搭建了一套物理备库。整个过程非常简单,和以前的版本也没多大区别。不过因为11g密码以及密码文件名大小写的问题折腾了一下。
按照以前9i和10g的文档,使用如下语句创建了passwordfile:
orapwd file=$ORACLE_HOME/dbs/orapwTEST password=pass entries=30
结果发现主库的归档一直无法传递到备库库,报:
ORA-16191: Primary log shipping client not logged on standby
根据以前的经验,重新创建了住备库的password file,根据metalink,修改了sec_case_sensitive_logon参数为false,都不行。最后才发现,必须将passwordfile中的sid改成小写才行。
orapwd file=$ORACLE_HOME/dbs/orapwtest password=pass entries=30
Oracle11g,最吸引人的特性是Active Data Guard,也就是物理备库在open read only的同时,可以apply log。启用该特性非常简单,首先要确保compatible=11.0.0.0以上,然后在open read only的状态下执行recover managed standby database disconnect即可。开启该特性最好能同时开启实时日志应用,以减少主备库之间数据的延迟,所以在备库添加好standby logfile:
recover managed standby database cancel;
alter database open;
alter database add standby logfile group 10 ('/u01/oracle/oradata/test/stbredo01.dbf') size 100m reuse;
alter database add standby logfile group 11 ('/u01/oracle/oradata/test/stbredo02.dbf') size 100m reuse;
alter database add standby logfile group 12 ('/u01/oracle/oradata/test/stbredo03.dbf') size 100m reuse;
alter database add standby logfile group 13 ('/u01/oracle/oradata/test/stbredo04.dbf') size 100m reuse;
然后将备库置于实时日志应用:
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY WITH APPLY
在主库创建测试表并插入数据:
SQL> create table ningoo.test_table(i int);
Table created.
SQL> insert into ningoo.test_table values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> alter system archive log current;
System altered.
在备库查询:
SQL> select * from ningoo.test_table;
I
----------
1
本文网址:http://www.ningoo.net/html/2009/ ... gr2_data_guard.html
[ 本帖最后由 NinGoo 于 2009-9-8 23:18 编辑 ] |
|