DATAGUARD failover切换及配置范例
DATAGUARD failover切换及配置范例
今天给客户演示了虚拟机上的switchover和failover的切换过程。客户关心的重点自然是failover,我们直接关掉虚拟存储的开关来模拟阵列故障。failover步骤如下
1.
- select NAME,RESETLOGS_TIME,LOG_MODE,OPEN_MODE,PROTECTION_MODE,REMOTE_ARCHIVE,
- DATABASE_ROLE,SWITCHOVER_STATUS,FORCE_LOGGING
- from v$database;
- alter database recover managed standby database cancel;
- alter database recover managed standby database finish force;
- alter database commit to switchover to primary with session shutdown;
做这一步的时候,若存在gap,则会报ORA-16139 :Switchover: Media recovery required - standby not in limbo 错误。做测试的时候,若先起主库再起备库,且未等待备库相关日志传输完毕,就会出现这个问题。此时需要强制切换
- alter database activate physical standby database;
附上单机到单机的linux下dataguard实施过程。
准备环境
PRIMARY: RHEL 4.7 + Oracle 10.2.0.4单机+文件系统 主机名:zhbqdb1
STANDBY: RHEL 4.7 + oracle 10.2.0.4单机 + 文件系统 主机名:zhbqdb2
主机上创建一个库名为zhdydb1的数据库,开启归档模式。备机装好数据软件,版本升级到与主机一致
在主机和备机上配好/etc/hosts并创建数据存放路径
# Do not remove thefollowing line, or various programs
#that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
172.17.42.29 zhbqdb1
172.17.42.30 zhbqdb2
创建存放数据文件和归档的目录
- mkdir /u01/flash_recovery_area
- mkdir /u01/oradata
- chown oracle:oinstall/u01/flash_recovery_area
- chown oracle:oinstall/u01/oradata
主机的配置
打开force logging
SQL> alter database force logging;
查看当前数据库是否置于force logging 下:
selectforce_logging from v$database;
创建归档目录
- mkdir /u01/flash_recovery_area/ZHDYDB1/arch
- mkdir/u01/flash_recovery_area/ZHDYDB2
- mkdir/u01/flash_recovery_area/ZHDYDB2/arch
- mkdir/u01/flash_recovery_area/ZHDYDB2/archivelog
配置tnsnames
在zhbqdb1上
vi$ORACLE_HOME/network/admin/tnsnames.ora
ZHDYDB1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =zhbqdb1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = zhdydb1)
)
)
ZHDYDB2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =zhbqdb2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = zhdydb2)
)
)
|
评论暂时关闭