jlthlx 发表于 2018-9-13 08:54:37

Oracle DG之Switchover

  转载标注:
  原文链接:http://czmmiao.iteye.com/blog/1328663
  参考至:http://yangtingkun.itpub.net/post/468/412324
  如有错误,欢迎指正
  邮箱:czmcj@163.com
  物理STANDBY的SWITCHOVER切换会把当前的一个物理STANDBY切换为PRIMARY数据库,而PRIMARY数据库且变成物理STNADBY数据库。
  一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。
  在进行DATA GUARD的物理STANDBY切换前需要注意:
  确认主库和从库间网络连接通畅;
  确认没有活动的会话连接在数据库中;
  PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;
  确保STANDBY数据库处于ARCHIVELOG模式;
  如果设置了REDO应用的延迟,那么将这个设置去掉;
  确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。
  登陆PRIMARY数据库:
  $ sqlplus "/ as sysdba"

  SQL*Plus:>  Copyright (c) 1982, 2007, Oracle. All rights reserved.
  Connected to:

  Oracle Database 11g Enterprise Edition>  With the Partitioning, OLAP, Data Mining and Real Application Testing options
  SQL> SET PAGES 100 LINES 120
  SQL> SET SQLP 'PRI_SQL> '
  PRI_SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
  SWITCHOVER_STATUS
  --------------------
  SESSIONS ACTIVE
  PRI_SQL> SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL;
  COUNT(*)
  ----------
  1
  虽然当前数据库的状态是SESSIONS ACTIVE而不是TO STANDBY,但是查询V$SESSION会话,确认除了当前会话外,其他都是系统会话,那么就可以在主库进行SWITCHOVER切换了:

  PRI_SQL>>
  Database>  PRI_SQL> SHUTDOWN IMMEDIATE
  ORA-01507: database not mounted
  ORACLE instance shut down.
  PRI_SQL> STARTUP MOUNT
  ORACLE instance started.
  Total System Global Area 267825152 bytes

  Fixed>
  Variable>  Database Buffers 104857600 bytes
  Redo Buffers 2281472 bytes
  Database mounted.
  重启数据库,启动到MOUNT状态,注意,9i及以前版本需要START NOMOUNT,然后ALTER DATABASE MOUNT STANDBY DATABASE。
  下面登陆STANDBY数据库:
  $ sqlplus "/ as sysdba"

  SQL*Plus:>  Copyright (c) 1982, 2007, Oracle. All rights reserved.
  Connected to:

  Oracle Database 11g Enterprise Edition>  With the Partitioning, OLAP, Data Mining and Real Application Testing options
  SQL> SET PAGES 100 LINES 120
  SQL> SET SQLP 'STB_SQL> '
  STB_SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
  SWITCHOVER_STATUS
  --------------------
  TO PRIMARY
  下面就可以将STANDBY数据库切换到PRIMARY数据库:

  STB_SQL>>
  Database>
  STB_SQL>>
  Database>  STANDBY数据库已经切换为PRIMARY数据库,下面只需要启动将STANDBY开始接收并恢复主库的日志就可以了。回到切换前的主库现在的从库:

  PRI_SQL>>
  Database>  SWITCHOVER切换完成,最后检查一下归档是否可以正常传递到STANDBY数据库即可。

页: [1]
查看完整版本: Oracle DG之Switchover