ITPub博客

首页 > 应用开发 > IT综合 > 实战DG switchover

实战DG switchover

原创 IT综合 作者:aspen1982 时间:2011-10-08 13:42:03 0 删除 编辑

公司数据库迁移,使用DG switchover的方式。十一期间在生产环境做了实战演习,进行了切换和回切操作。

关键字:DG switchover[@more@]

1环境信息

数据库S_DBprimary DB,在主机S_HOST上,数据库版本10.2.0.3

数据库K_DBstand DB,在主机K_HOST上,数据库版本10.2.0.3

2任务目标

S_DBK_DB间做switch over,使K_DB成为primary DBS_DB成为stand DB

3操作步骤

3.1切换前准备

3.1.1确认应用停止

3.1.2检查S_DB上是否有连接

#ps –ef|grep s_db

3.1.3kill存在的连接

# ps -ef|grep "LOCAL=NO"|grep -v grep|awk '{ print $2 }'|xargs kill -9

3.1.4检查主备库日志传输和应用

需要主备库保持同步。本次实用的方法:

在主库切换一个日志

SQL>alter system switch logfile;

检查主备库sequence#是否一致

SQL> select max(sequence#) from v$log_history;

3.1.5停止S_DB所有job

SQL>alter system set job_queue_processes=0;

3.1.6检查S_DB是否有job在运行

SQL>select * from dba_jobs_running;

等待job运行完毕或手工停止。

3.1.7检查S_HOSTcron

#crontab –l

确定没有关于S_DB的计划任务。如有则先注释掉。

# crontab –e

3.2切换步骤

3.2.1检查S_DB状态。

SQL>select DATABASE_ROLE, PROTECTION_MODE, SWITCHOVER_STATUS, FLASHBACK_ON from v$database;

3.2.2切换S_DB状态

如果1SWITCHOVER_STATUSTO STANDBY则使用如下SQL切换

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

如果1SWITCHOVER_STATUSACTIVE SESSION则使用如下SQL切换(或重启S_DB使SWITCHOVER_STATUS变为TO STANDBY)

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

3.2.3重启S_DB

SQL>shutdown immediate

SQL>startup mount

3.2.4检查K_DB状态

SQL>select DATABASE_ROLE, PROTECTION_MODE, SWITCHOVER_STATUS, FLASHBACK_ON from v$database;

3.2.5切换K_DB状态

如果5SWITCHOVER_STATUSACTIVE SESSION则重启K_DBmount使SWITCHOVER_STATUS变为TO PRIMARY

如果5SWITCHOVER_STATUSTO PRIMARY则使用如下SQL切换

SQL>alter database commit to switchover to primary;

3.2.6打开K_DB

SQL>alter database open;

3.2.7检查K_DB状态

SQL>select DATABASE_ROLE, PROTECTION_MODE, SWITCHOVER_STATUS, FLASHBACK_ON from v$database;

SWITCHOVER_STATUS应为TO STANDBY

3.2.8检查S_DB状态

SQL>select DATABASE_ROLE, PROTECTION_MODE, SWITCHOVER_STATUS, FLASHBACK_ON from v$database;

SWITCHOVER_STATUS应为TO PRIMARY

3.2.9打开S_DBDG同步

SQL> alter database recover managed standby database disconnect from session;

3.2.10检查主备库日志传输和应用

使用3.1.4中方法检查。

3.3切换后处理

3.3.1K_DB上恢复job

SQL>alter system set job_queue_processes=0;

3.3.2手动运行job

手动运行3.1.6中手动停止的job

3.3.3恢复cron

K_HOST上恢复7中注释掉的cron

回切操作就不写了,同切换操作是一样的。

最后写一点关于AIX系统增删服务IP。本次切换为了对应用透明,主机服务IP一并做了切换和回切。步骤如下:

1.S_HOST上删除服务IP

#ifconfig en5服务IP netmask 255.255.255.0 delete

2.配置S_DBlistener.ora

删除加粗部分

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 服务IP)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 管理IP)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

3.K_HOST上增加服务IP

#ifconfig en5服务IP netmask 255.255.255.0 alias

4.配置K_DBlistener.ora

增加加粗部分

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 服务IP)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 管理IP)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

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

下一篇: 实战flashback
请登录后发表评论 登录
全部评论

注册时间:2011-07-06

  • 博文量
    24
  • 访问量
    60654