Oracle Data Guard物理备库的正常切换


Oracle Data Guard  用来保护Oracle 数据,可提供最高级别的数据保护和可用性的同时,使Oracle 数据库保持最卓越的性能。它的运行遵循一个原则:传输重做数据,然后应用重做数据。

它分成为逻辑备库(logical standby )和物理备库(physical standby) ,分别用在不同的应用场景中。

在Oracle 10g  物理备库中,使用正常切换操作,可以将备库切换主库,而主库切换成备库,然后还能再切换回去。

它的应用场景包括数据库灾备的验证、数据库硬件维护的无缝切换、数据库换服务器的数据迁移等等。

这里顺便提一个案例,在以前数据迁移工作中,我使用数据库的备份和异地恢复,这样可以实现大数据库的异地迁移,并且切换时间也就几分钟。但该方案有一个缺点,如切换完成后,新环境出现其他故障如网络导致不能用,要再迁移回去则不可能了,因为新环境数据库已经写入数据。

但如果使用data gauard 来进行数据迁移,如果新环境不可用,则是可以快速切换回去的。

下面我就这种案例介绍一下物理备库的实现和切换过程。

第一部分,创建物理备库,实现 physical standby 模式
在主库上修改初始化参数,保护级别采用默认值即最大性能,重做日志传输方式采用ARCH  。这里是做数据迁移,如果是灾备需求,则需要设置成最大可用或最大保护,传输重做日志的方式为LGWR SYNC AFFIRM 。

alter system set log_archive_config='dg_config=(mikidb,mikidg)' scope=memory;

alter system set log_archive_dest_2='SERVICE=MIKIDB_STANDBY ARCH ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=MIKIDG' scope=memory;

主库的tnsnames.ora 文件中需要增加一个tnsname ,即log_archive_dest_2 中指定的mikidb_standby 。

mikidb_STANDBY =

   (DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.64.1)(PORT = 1521))

     )

     (CONNECT_DATA =

       (SID = mikidb)

     )

   )

在备库上修改初始化参数,设置db_unique_name ,fal_client 和fal_server 。

如下:

*.db_unique_name='mikidg'

*.fal_client='mikidb_standby'

*.fal_server='mikidb_primary'

fal 用于探测主库和备库之间归档日志文件的间隔,称之为fetch archive log 。

另外,归档路径也做一个简单设置,用于保存从主库上传输过来的归档日志文件。

*.log_archive_config='dg_config=(mikidb,mikidg)'

*.log_archive_dest_1='LOCATION=+VG1/ valid_for=(all_logfiles,all_roles) db_unique_name=mikidg'

备库的tnsnames.ora 文件中需要增加两个tnsname ,即fal_client 和fal_server 的值,分别是mikidb_standby 和mikidb_primary 。

mikidb_STANDBY =

   (DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.64.1)(PORT = 1521))

     )

     (CONNECT_DATA =

       (SID = mikidb)

     )

   )

mikidb_primary =

   (DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.89.1)(PORT = 1521))

     )

     (CONNECT_DATA =

       (SID = mikidb)

     )

   )

在主备库的初始化参数都设置好以后,我们在备库上恢复主库的备份,恢复使用控制文件需要主库特别生成,专门用于data guard 的备库应用。

  • 1
  • 2
  • 下一页

相关内容