ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 单机Linux平台Oracle10g DataGuard Logical Standby搭建实例(2)

单机Linux平台Oracle10g DataGuard Logical Standby搭建实例(2)

原创 Linux操作系统 作者:cow977 时间:2011-09-02 15:22:18 0 删除 编辑

单机Linux平台Oracle10g DataGuard Logical Standby搭建实例(1)http://space.itpub.net/81227/viewspace-706435

 
 

要在Primary和逻辑Standby之间切换角色,一般是从Primary数据库开始操作。

如果Primary或逻辑StandbyRAC结构,切记在执行角色切换时,只保留一个实例启动,其他实例应当全部SHUTDOWN。等角色转换操作完成之后再启动其他实例,角色转换的操作会自动传播到这些实例上,并不需要DBA再对这些实例单独做处理。

注意下列操作的执行步骤,强烈建议按照以下步骤执行,否则可能导致切换不成功。

1.准备工作

检查Primary和逻辑Standby的初始化参数设置,常规的检查包括:

检查两机中初始化参数FAL_SERVERFAL_CLIENTLOG_ARCHIVE_CONFIG的参数值设置是否正确。

检查两机中初始化参数LOG_ARCHIVE_DEST_n的参数值设置是否正确。

首先来看当前的Primary数据库:

SQL>  SHOW PARAMETER FAL;

NAME                  TYPE        VALUE

---------------------- ----------- ------------------------------

fal_client            string      orcl_pd

fal_server            string      orcl_st

SQL> SHOW PARAMETER LOG_ARCHIVE_DEST;

NAME                  TYPE        VALUE

---------------------- ----------- ------------------------------

log_archive_dest      string

log_archive_dest_1    string      location=/u01/archive

log_archive_dest_2    string      service=LGDG

从上述显示的结果来看,Primary数据库的初始化参数并不太适合,为了避免其转换之后可能发生的错误,我们提前做些修改:

SQL> ALTER SYSTEM SET FAL_SERVER='LGDG';

SQL> alter system set log_archive_dest_1='location=/u01/archive valid_for=(online_logfiles,all_roles)  db_unique_name=orcl_pd';

SQL> alter system set log_archive_dest_3='location=/u01/std valid_for=(standby_logfiles,standby_role) db_unique_name=orcl_pd';

然后再看看待转换的逻辑Standby

SQL> SHOW PARAMETER FAL;

NAME                  TYPE        VALUE

---------------------- ----------- ------------------------------

fal_client            string      orcl_st

fal_server            string      orcl_pd

SQL> SHOW PARAMETER LOG_ARCHIVE_DEST;

NAME                  TYPE        VALUE

---------------------- ----------- ------------------------------

log_archive_dest      string

log_archive_dest_1    string      LOCATION=/u01/archive VALID_FO

                                  R=(ONLINE_LOGFILES, ALL_ROLES)

                                  DB_UNIQUE_NAME=LGDG

log_archive_dest_10   string

log_archive_dest_2    string      service=orcl_pd lgwr sync AFFI

                                  RM

log_archive_dest_3    string      LOCATION=/u01/std

                                  VALID_FOR=(STANDBY_LOGFILES, S

                                  TANDBY_ROLE) DB_UNIQUE_NAME=LG

                                  DG

修改一下:

SQL> ALTER SYSTEM SET FAL_CLIENT='LGDG';

最后检查Primary数据库是否配置了Standby Redologs

SQL> select * from v$logfile;

  GROUP# STATUS  TYPE    MEMBER

-------- ------- ------- --------------------------------------

       3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log

       2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log

       1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log

       4         STANDBY /u01/app/oracle/oradata/orcl/redo04.log

       5         STANDBY /u01/app/oracle/oradata/orcl/redo05.log

       6         STANDBY /u01/app/oracle/oradata/orcl/redo06.log

       7         STANDBY /u01/app/oracle/oradata/orcl/redo07.log

已经存在, 如果不存在,我们就手工的添加一下:

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/u01/app/oracle/oradata/orcl/redo04.log' SIZE 50m; 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/81227/viewspace-706748/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-03-02

  • 博文量
    698
  • 访问量
    786603