---------------- -------------------- PRIMARY TO STANDBY
SQL> select status from v$instance; STATUS ------------ MOUNTED
SQL> alter database open; Database altered.
五.DataGuard最大性能模式下开启REDO LOG 实时
APPLY
继续前面的内容,上次我们利用RMAN建立物理的DataGuard后,默认情况是最大性能模式,没有使用standby log ,没有开启REDO LOG在从数据库上的实时APPLY。 环境介绍 主数据库: hostname: db-62 ip: 192.168.1.1 sid: orcl11g
db_unique_name:orcl11g os:debian-2.6.18-6-amd64 Oracle version:11.2.0.1.0 从数据库: hostname:db-63 ip: 17219.2.196 sid: orcl11g
db_unique_name:orcldg os:debian-2.6.18-6-amd64
Oracle version:11.2.0.1.0 查看主数据库目前的保护模式
SQL> select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL ---------------- -------------------- --------------------
PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE 可见是最大性能模式
查看主数据库log_archive_dest_2配置 SQL> show parameter log_archive_dest_2 NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string SERVICE=to_orcldg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PR IMARY_ROLE) DB_UNIQUE_NAME=orc ldg
可见,采用的是LGWR进程异步的方式把REDO LOG传送到从从数据库上,同时并没有把REDO LOG记录到standby log中(没有AFFIRM关键字),即没有开启REDO LOG在从数据库上的实时APPLY
查看从数据库log_archive_dest_2配置 SQL> show parameter log_archive_dest_2 NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string service=to_orcl11g LGWR ASYN C VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) db_unique_name=o rcl11g 在从数据库上查看主从数据库同步状态
SQL> select name ,value from v$dataguard_stats ; NAME VALUE -------------------------------- ----------------- transport lag +00 00:00:00 apply lag +00 00:11:58 apply finish time +00 00:00:00.001
estimated startup time 8
可见:从数据库落后主数据库11分钟58秒,由于没有开启实时的REDO LOG APPLY,所以只有在主数据库日志归档或者手工执行alter system switch logfile日志切换的时候,才会触发从数据库与主数据库的同步。很显然,这种方式不适合生产库中!下面我们来开启REDO LOG APPLY,回顾前一节所讲述的,要开启REDO LOG APPLY,必须使用standby log ,为了方便以后的主从数据库的切换,我们在主从数据库上都需要创建standby log,standby log文件的个数及大小见 #64284 ,本次仅为实验,就只创建一个standby log文件好了。 主数据库:
创建standby log文件
SQL> alter database add standby logfile
group 4 '/mnt/ddb/1/app/oracle/flash_recovery_area/ORCL11G/onlinelog/standby.log' size 1G;
Database altered.
修改log_archive_dest_2为affirm
SQL> alter system set log_archive_dest_2='SERVICE=to_orcldg
LGWR ASYNC affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg'; System altered. 从数据库 关闭从数据库
SQL> shutdown immediate ; Database closed. Database dismounted. ORACLE instance shut down. 启动从数据库至mount状态 SQL> startup mount ; ORACLE instance started.
Total System Global Area 8484765696 bytes Fixed Size 2215016 bytes Variable Size 4496294808 bytes Database Buffers 3959422976 bytes Redo Buffers 26832896 bytes Database mounted. 创建standby log文件
SQL> alter database add standby logfile
group 5 '/mnt/ddb/1/app/oracle/flash_recovery_area/ORCLDG/onlinelog/standby.log' size 1G;
Database altered.
修改log_archive_dest_2为affirm
SQL> alter system set log_archive_dest_2='service=to_orcl11g
LGWR ASYNC affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=orcl11g' ; System altered.
打开从数据库,默认情况下为READ ONLY SQL> alter database open ; Database altered.
以REDO LOG 实时APPLY的方式开启和主数据库的同步
SQL> alter database recover managed standby database using current logfile disconnect from session; Database altered. 数据同步验证 主数据库:
SQL> delete from scott.student where sno=3 ; 1 row deleted. SQL> commit ; Commit complete.
SQL> select * from scott.student ; SNO SNAME
-------------------- ---------------------------------------- 1 scott 2 scott 5 aaaa
SQL> insert into scott.student values (4,'tiger'); 1 row created. SQL> commit ; Commit complete.
SQL> select * from scott.student ; SNO SNAME
-------------------- ----------------------------------------
1 scott 2 scott 4 tiger 5 aaaa 从数据库:
SQL> select * from scott.student ; SNO SNAME
-------------------- ---------------------------------------- 1 scott 2 scott 3 scott 5 aaaa
SQL> select * from scott.student ; SNO SNAME
-------------------- ---------------------------------------- 1 scott 2 scott 5 aaaa
SQL> select * from scott.student ; SNO SNAME
-------------------- ---------------------------------------- 1 scott 2 scott 4 tiger 5 aaaa
SQL> select name ,value from v$dataguard_stats ; NAME VALUE
-------------------------------- ---------------------------------------------------------------- transport lag +00 00:00:00 apply lag +00 00:00:00 apply finish time +00 00:00:00.000 estimated startup time 8
可见,数据很快就同步到从数据库上了,并不需要像 #63677 中的需要手工执行 alter system switch logfile操作了, apply lag为0,表示数据完全同步,无延迟。当然诚如
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库11G - RAC - DG环境配置以及维护文档(8)在线全文阅读。
相关推荐: