ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DataGuard角色切换

DataGuard角色切换

原创 Linux操作系统 作者:learninfly 时间:2009-09-03 17:09:10 0 删除 编辑

以下引自:

http://hi.baidu.com/zzztou/blog/item/e8cc47c2c1d41c1c0ff4774f.html

DataGuard角色切换:

DataGuard角色切换分为两种情况:
  • 正常角色切换(switchover)
  • 故障转移切换(failover)
     通常情况下,数据库运行正常时,不需要执行DataGuard的角色切换.
     当数据库所在主机或数据库发生故障,不能及时解决的情况下,就需要进行DataGuard的角色转换.最大化保证业务运行,尽量减少损失.

正常角色切换(switchover)

switchover属于正常的DataGuar角色切换,切换后,原primary数据库转换角色为standby database;原standby database转换角色为primary database.
它们两个之间的保护关系依然可以维持.
概括的说,switchover分为三个部分,八个步骤.
  • 第一部分:primary database端:

1.查看primary数据库是否能执行切换

执行切换时,确保数据库中除了数据库后台进程外没有其它用户登陆,也不能有job在运行(job定义为user类型的进程)
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY

2.执行primary到standby的switchover

SQL> alter database commit to switchover to physical standby;
Database altered.

3.关闭数据库,重新启动到standby状态

SQL> shutdown immediate
SQL> startup mount
SQL> select db_unique_name,database_role,switchover_status from v$database;
DB_UNIQUE_NAME                 DATABASE_ROLE    SWITCHOVER_STATUS
------------------------------ ---------------- --------------------
orcl                          PHYSICAL STANDBY TO PRIMARY
  • 第二部分:standby database端:

4.查看standby数据库是否能进行switchover

SQL> select db_unique_name,database_role,switchover_status from v$database;
DB_UNIQUE_NAME        DATABASE_ROLE    SWITCHOVER_STATUS
--------------------- ---------------- --------------------
dgorcl                PHYSICAL STANDBY TO PRIMARY

5.将standby数据库转换为primary角色.

SQL> alter database commit to switchover to primary;
Database altered.

6.关闭数据库,重新启动到primary状态,准备接管前端应用.

SQL> shutdown immediate
SQL> startup mount
SQL> select db_unique_name,database_role,switchover_status from v$database;
DB_UNIQUE_NAME         DATABASE_ROLE    SWITCHOVER_STATUS
--------------------- ---------------- --------------------
dgorcl                PRIMARY          TO STANDBY
SQL> alter database open;
Database altered.
  • 第三部分:切换后角色:

7.查看new primary database归档参数等状态,确认是否能正常传送归档日志到new standby database

SQL> show parameter log_archive
SQL> show parameter fal
SQL> show parameter standby_file

8.切换日志.确认新DataGuard生效.

SQL> alter system switch logfile;
System altered.

故障转移切换(failover)

Failover属于不正常状态下的DataGuard角色切换.
切换后,原standby database 转换角色为new primary database,接管原primary database的应用继续提供服务.
而原primary database因为其它原因(比如所在主机故障造成不可用)而不可用,废弃.之后可以重新再搭建DataGuard环境,继续提供保护.
因为Failover后原primary database不可用,所以,切换过程中,不需要对原primary database进行切换操作.

1.比对主备库之间是否存在日志的差异.

--备库最大归档日志序列:
SQL> select unique thread#,max(sequence#) over(partition by thread#) from v$archived_log;

   THREAD# MAX(SEQUENCE#)OVER(PARTITIONBYTHREAD#)
---------- --------------------------------------
         1                                    116
比对主,备库之间日志序列差异,从主库copy差异日志文件到备库(包括未归档日志文件,最大化减少数据损失).

2.确认归档日志的断点后,需要从primary database所在主机复制断点的归档日志到standby database所在主机.

scp /../.. oracle@ip or hostname:/xxx

3.手工恢复未应用的日志

SQL> recover standby database; --手工恢复(主要应用于未归档的主库online logfile,执行该命令后根据提示输入copy过来的日志文件路径)
例:
SQL> recover standby database;
SQL> recover standby database;
ORA-00279: change 327228 generated at 07/01/2008 15:41:20 needed for thread 1
ORA-00289: suggestion : /z02/arch/dgorcl_1_11_658924314.dbf
ORA-00280: change 327228 for thread 1 is in sequence #11


Specify log: {=suggested | filename | AUTO | CANCEL}
/z02/redo02.log
Log applied.
Media recovery complete.
SQL>
SQL>

4.激活数据库.

SQL> recover managed standby database disconnect;
Media recovery complete.
SQL>
SQL> recover managed standby database finish;
Media recovery complete.
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
--------------------
NOT ALLOWED

SQL> alter database commit to switchover to primary;
alter database commit to switchover to primary
*
ERROR at line 1:
ORA-16139: media recovery required

SQL> alter database activate standby database;

Database altered.

SQL> shutdown immediate
SQL> startup

listener与tnsnames修改

修改新主库的listener,tnsnames文件,保持与原主库一致.

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

上一篇: 10046事件
请登录后发表评论 登录
全部评论

注册时间:2009-07-21

  • 博文量
    38
  • 访问量
    38860