Oracle 11g Data Guard主备库角色切换
2017-09-13 09:07
357 查看
Data Guard配置由一个主库和一个或多个备库组成,可以在视图V$Database的Database_Role字段查看数据库的当前角色。
一 角色转换介绍
数据库有两种角色,分别是Primary和Standby,它运行在两种角色之一,Data Guard角色的改变既可以通过执行SQL语句动态的改变,也可以通过使用Data Guard broker接口改变,Oracle Data Guard支持下面两种方式的角色转换:
Switchover
允许主库与其中一个备库交换角色,在切换过程中不会有数据丢失。切换之后,每个数据库将使用新的角色继续参与Data Guard配置。
Failover
当主库发生故障后,将备库角色切换为主库,如果主库在故障前不是以最大保护模式或者最大可用性模式运行,可能会出现数据丢失的情况。如果主库启用了闪回数据库,那么主库一旦被修复,它就可以恢复为新的主库的备库,从而继续提供服务。
二 角色转换演示
Switchover演示
1、查询主库的状态
注:SWITCHOVER_STATUS是STANDBY或SESSION ACTIVE显示主库可以切换到备库角色,如果不是这两者之一,则不能进行主备切换。
2、启动主库的切换
注:在切换至备库前,当前控制文件被备份到当前会话的Trace文件,如果需要,可以重建当前控制文件。如果SWITCHOVER_STATUS的值是STANDBY,那么with session shutdown可以省略。本语句执行后,数据库处于NOMOUNT状态。
3、启动数据库至MOUNT状态
4、在新的备库启动日志应用
5、验证备库的状态
6、切换备库为主库
7、验证切完后数据同步
主库
备库
一 角色转换介绍
数据库有两种角色,分别是Primary和Standby,它运行在两种角色之一,Data Guard角色的改变既可以通过执行SQL语句动态的改变,也可以通过使用Data Guard broker接口改变,Oracle Data Guard支持下面两种方式的角色转换:
Switchover
允许主库与其中一个备库交换角色,在切换过程中不会有数据丢失。切换之后,每个数据库将使用新的角色继续参与Data Guard配置。
Failover
当主库发生故障后,将备库角色切换为主库,如果主库在故障前不是以最大保护模式或者最大可用性模式运行,可能会出现数据丢失的情况。如果主库启用了闪回数据库,那么主库一旦被修复,它就可以恢复为新的主库的备库,从而继续提供服务。
二 角色转换演示
Switchover演示
1、查询主库的状态
SQL> select name,log_mode,open_mode,protection_mode,database_role,switchover_status from v$database; NAME LOG_MODE OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS --------- ------------ -------------------- -------------------- ---------------- -------------------- SZPRI ARCHIVELOG READ WRITE MAXIMUM PERFORMANCE PRIMARY TO STANDBY
注:SWITCHOVER_STATUS是STANDBY或SESSION ACTIVE显示主库可以切换到备库角色,如果不是这两者之一,则不能进行主备切换。
2、启动主库的切换
SQL> alter database commit to switchover to physical standby with session shutdown ; Database altered.
注:在切换至备库前,当前控制文件被备份到当前会话的Trace文件,如果需要,可以重建当前控制文件。如果SWITCHOVER_STATUS的值是STANDBY,那么with session shutdown可以省略。本语句执行后,数据库处于NOMOUNT状态。
3、启动数据库至MOUNT状态
SQL> startup mount; ORACLE instance started. Total System Global Area 830930944 bytes Fixed Size 2257800 bytes Variable Size 536874104 bytes Database Buffers 289406976 bytes Redo Buffers 2392064 bytes Database mounted.
4、在新的备库启动日志应用
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 830930944 bytes Fixed Size 2257800 bytes Variable Size 536874104 bytes Database Buffers 289406976 bytes Redo Buffers 2392064 bytes Database mounted. Database opened. SQL> alter database recover managed standby database disconnect using current logfile; Database altered.
5、验证备库的状态
SQL> select name,log_mode,open_mode,protection_mode,database_role,switchover_status from v$database; NAME LOG_MODE OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS --------- ------------ -------------------- -------------------- ---------------- -------------------- SZPRI ARCHIVELOG READ ONLY WITH APPLY MAXIMUM PERFORMANCE PHYSICAL STANDBY TO PRIMARY
6、切换备库为主库
SQL> alter database commit to switchover to primary with session shutdown; Database altered. SQL> alter database open; Database altered. SQL> select name,log_mode,open_mode,protection_mode,database_role,switchover_status from v$database; NAME LOG_MODE OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS --------- ------------ -------------------- -------------------- ---------------- -------------------- SZPRI ARCHIVELOG READ WRITE MAXIMUM PERFORMANCE PRIMARY SESSIONS ACTIVE
7、验证切完后数据同步
主库
SQL> select name from v$datafile; NAME -------------------------------------------------- /u01/app/oracle/oradata/szpri/system01.dbf /u01/app/oracle/oradata/szpri/sysaux01.dbf /u01/app/oracle/oradata/szpri/undotbs01.dbf /u01/app/oracle/oradata/szpri/users01.dbf /u01/app/oracle/oradata/szpri/example01.dbf SQL> create tablespace test datafile '/u01/app/oracle/oradata/szpri/test01.dbf' size 50M; Tablespace created. SQL> select name from v$datafile; NAME -------------------------------------------------- /u01/app/oracle/oradata/szpri/system01.dbf /u01/app/oracle/oradata/szpri/sysaux01.dbf /u01/app/oracle/oradata/szpri/undotbs01.dbf /u01/app/oracle/oradata/szpri/users01.dbf /u01/app/oracle/oradata/szpri/example01.dbf /u01/app/oracle/oradata/szpri/test01.dbf 6 rows selected.
备库
SQL> select name from v$datafile; NAME -------------------------------------------------- /u01/app/oracle/oradata/szpri/system01.dbf /u01/app/oracle/oradata/szpri/sysaux01.dbf /u01/app/oracle/oradata/szpri/undotbs01.dbf /u01/app/oracle/oradata/szpri/users01.dbf /u01/app/oracle/oradata/szpri/example01.dbf /u01/app/oracle/oradata/szpri/test01.dbf 6 rows selected.
相关文章推荐
- Oracle 11G Active DataGuard角色切换
- Oracle 11g Data Guard 之物理备库角色转换
- Oracle 11g Data Guard 之逻辑备库角色转换
- 关于Oracle Data Guard的角色切换
- Oracle 11g Data Guard之主备库切换(switchover不使用DG Broker)
- Oracle 11g Data Guard 之角色转换
- 『ORACLE』 DG切换主备库角色(11g)
- How to switch to another database in oracle 11g(如何在oracle中从一个数据库切换到另一个数据库)
- Oracle 11g物理Data Guard之Snapshot Standby
- 基于同一主机配置 Oracle 11g Data Guard
- Oracle Data Guard 快速启动故障切换指南
- 如何在同一台计算机上的oracle10g和11g之间进行oracle环境切换
- Oracle 11g Data Guard暂停物理备库的日志传输
- oracle 10g 和 11g 关于角色口令的区别
- Oracle 11g Data Guard暂停物理备库的日志传输(log_archive_dest_state_n的defer参数)
- Oracle 11g AMM与ASMM切换
- ORACLE 11G dataguard安装配置手册--单实例物理standby 三种保护模式互相切换
- Oracle 白皮书-Oracle Data Guard 快速启动故障切换指南(3)
- Oracle 11g Data Guard搭建物理Standby数据库(二)