service name
*.FAL_CLIENT=node2
*.STANDBY_FILE_MANAGEMENT=AUTO
$ lsnrctl start //在primary和
STANDBY服务器上都执行
在主服务器上启动数据库实例
SQL> startup;
$ sqlplus system/oracle@node1 //在primary和STANDBY服务器上都进行测试下看时候能正常连接
在STANDBY服务器上启动数据库实例
//创建4个stanby redo 大小最好与主服务器大小相同,并且多一个文件,最好在Primary服务器上也做如下操作,方便之后的角色切换.
SQL> startup mount;
SQL> alter database add standby logfile group 4 '/home/oradata/ora10/stdREDO01.LOG' size 50m;
SQL> alter database add standby logfile group 5 '/home/oradata/ora10/stdREDO02LOG' size 50m;
SQL> alter database add standby logfile group 6 '/home/oradata/ora10/stdREDO03LOG' size 50m;
SQL> alter database add standby logfile group 7 '/home/oradata/ora10/stdREDO04LOG' size 50m;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; //启动实时应用
测试dataguard数据是否同步
测试同步是否正常方法1
在STANDBY服务器:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIM NEXT_TIME
---------- --------- ---------
4 04-MAY-10 04-MAY-10
5 04-MAY-10 04-MAY-10
在Primary服务器:
SQL> ALTER SYSTEM SWITCH LOGFILE; //触发归档
现在再回到STANDBY服务器上:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIM NEXT_TIME
---------- --------- ---------
4 04-MAY-10 04-MAY-10
5 04-MAY-10 04-MAY-10
6 04-MAY-10 04-MAY-10
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APP
---------- ---
4 YES
5 YES
6 YES
发现有一条新的记录,说明同步是正常的.
测试同步是否正常方法2
在Primary服务器上创建一个表
SQL> create table wiliiwin(id integer, name char(10));
SQL> insert into wiliiwin values(1,'wiliiwin');
SQL> insert into wiliiwin values(2,'wiliiwiner');
SQL> insert into wiliiwin values(3,'wiliiwinsi');
SQL> ALTER SYSTEM SWITCH LOGFILE;
在STANDBY服务器上
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; //取消执行redo
//报错ORA-16136: Managed Standby Recovery not active
是由于MRP0服务没有启动,如下是查看各服务状态sql语句
SQL>select process,status,sequence# from v$managed_standby;
SQL>RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; //启动MRP0服务
SQL> ALTER DATABASE OPEN; //打开数据库,由于使用
的oracle 11g 所以现
在也可以应用redo.
SQL> select * from wiliiwin;
ID NAME
---------- ----------
1 wiliiwin
2 wiliiwiner
3 wiliiwinsi //可以看到数据已经同步过来了,由
于oracle 11G 在open状态下也可
以执行redo,所以现在在primary做
相关的操作,STANDBY也照样可以同
步过来
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; //使STANDBY恢复到mount状态