故障转移
dataugard的配置参考:http://blog.csdn.net/asdewq380303318/article/details/8865138
dataguard的主从切换:http://blog.csdn.net/asdewq380303318/article/details/8865306
1. 故障转移一般是主库发生故障之后需要恢复服务,在这个时候,将备库转换成为主库,但是不把主库转换成为备库,也就是说备库来充当主库对外提供服务直到主库的恢复工作完成,
2. 故障转移的准备工作:
a)首先我们要创建一个故障转移的服务,客户端直接通过这个服务连接到主库,但是客户端并不知道现在哪个是一主库,真正确定连接连接到主库是通过这个服务,执行下面的sql语句来创建这个服务:
begin
DBMS_SERVICE.CREATE_SERVICE (
service_name => 'JED_RW',
network_name => 'JED_RW',
aq_ha_notifications => TRUE,
failover_method => 'BASIC',
failover_type => 'SELECT',
failover_retries => 30,
failover_delay => 5);
end;
/
b)创建了这个服务之后,我们还要确保这个服务在库上启动,并且确定它只能在主库上启动,执行下面的sql语句来创建一个存储过程:
create or replace procedurecmc_taf_service_proc
is
v_role VARCHAR(30);
begin
select DATABASE_ROLE into v_role from V$DATABASE;
ifv_role = 'PRIMARY' then
DBMS_SERVICE.START_SERVICE('JED_RW');
else
DBMS_SERVICE.STOP_SERVICE('JED_RW');
endif;
end;
/
c)然后我们创建两个触发器,让数据库杂启动和角色转换的时候运行此存储过程:
create or replace TRIGGERcmc_taf_service_trg_startup
after startup on database
begin
cmc_taf_service_proc;
end;
/
create or replace TRIGGER cmc_taf_manage_trg_rolechange
after db_role_change on database
begin
cmc_taf_service_proc;
end;
/
d)我们执行一次存储过程,确定服务正在运行,然后归档当前日志,让以上更改同步到备库。
SQL> exec cmc_taf_service_proc;
SQL> alter systemarchive log current;
使用show parameter service_names就可以查看到我们刚才创建的服务了
e)最后我们配置客户端的tns名去连接它,客户端的tns明配置如下:
JED_RW =
(DESCRIPTION =
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db2)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = JED_RW)
(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=30)(DELAY=5))
)
)
到此,故障转移的准备工作就做完了。
3. 现在我们可以来测试下我们的故障转移是否成功
a)新开一个终端,使用下面的命令连接数据库,并查询现在连接数据库的唯一名:
SQL> connect system@JED_RW
SQL> select db_unique_name from v$database;
显示的结果就是我们现在连接的数据库
b)然后我们做一次主备切换,在备库转换成主库alter database commit to switchover to primarywith session shutdown;这一步的时候,我们在来查询一次数据库的唯一名
SQL> selectdb_unique_name from v$database;
这时,这一个查询应该就会挂住,这是因为客户端在尝试连接主机,但是有没有可以连接的主机,我们继续完成切换,最后这个条语句就可以返回数据, 这是返回来的唯一就是现在的主库。
相关推荐
linux下oracle 11g R2 dataguard
Oracle 11GR2 dataguard日常管理命令集
Oracle 11gR2 dataguard搭建说明
Oracle 11gR2 dataguard搭建说明
Windows2008R2配置oracle11gR2DataGuard详细过程及切换测试文档,(自己安装成功部署多次,总结文档)
64位RHEL7.5环境下配置Oracle11gR2(11.2.0.4)物理备库 安装环境简介 DataGuard 原理概述 1. 备库类型 2. 物理和逻辑的区别 3. 创建过程的不同 4. 主备切换 5. 物理备库原理图 6. 逻辑备库原理图 7. 同步查询原理...
数据库同步 SQL> select count 1 from ttt; COUNT 1 1484088577
该文档讲述了 Oracle11GR2RAC及DataGuard部署规划安装
大牛教你配置Oracle 11g Active Dataguard
ORACLE 11G 搭建DATAGUARD步骤
Oracle11G数据库DataGuard灾备切换方案.pdf
ORACLE 11G 搭建DATAGUARD步骤,搭建rac环境之后,还需搭建dg,让你的数据库做到更安全。
perform oracle 11g physacal dataguard failover
Oracle 11g R2 Dataguard 配置手册,手把手教你如何做配置
Oracle 11g DataGuard 官方培训教程。 小布老师Oracle 11g DataGuard官方培训教程,对学习DataGuard有很大帮助。 Oracle 11g D
perform oracle 11g physacal dataguard switchover
how to create oracle 11g physacal dataguard step by step
Install Oracle 11gR2(11.2.0.3.0) RAC +Active Dataguard on Oracle Enterprise Linux(OEL5.5 X86_64) 本文档用于详细记录在 OEL 5.5 X86_64 位系统上安装配置 Oracle 11gR2(11.2.0.3.0)RAC 的步骤、RAC 数据库的...