Data Guard
名词
Dataguard结构:
一个Primary合多个Standby(最多九个),物理位置及操作系统无限制
- Primary
有且只有1个,可以时单实例也可以时RAC
- Standby
可以视为Primary某个时间点的备份(事务上一直),利用Primary的REDO数据自动维护Standby
- 逻辑Standby:内容相同,结构不同 SQL Apply
- 物理Standby:一模一样 以介质恢复方式实现同步 Redo Apply
Data Guard服务
- Redo传输服务
RTS服务(REDO传输服务)控制redo数据
常见启动归档模式即设置一个本地归档路径,standby是设一个或多个远端service name
- 传输redo数据到standby
- 处理由于网络中断导致的归档中断
- 控制数据库的保护模式(Gap)
- 检查standby端丢失或无效的归档,并尝试从其它primary/standby获取。
- Log应用服务
应用redo到standby以保持standby与primary一致
- 物理standby,应用Redo Apply技术,即标准recover方式应用redo数据
- 逻辑standby,使用sql apply技术,将redo转换成sql,然后执行
- 角色切换
- switchover:可以保证数据不丢失
- failover:Primary出现故障不能及时恢复时,在最大保护模式或最高可用性模式下,failover也可以不争不会数据丢失。
保护模式
- 最大保护:确保数据绝无丢失,要求所有事物在提交前redo写入本地online redologs和standby redologs,并确认redo数据至少在一个standby数据库可用,然后才提交事务。如果出现standby数据库不可用,primary会被shutdown。
- 最高性能:不影响primary性能前提下,提供最高级别数据报数策略,事务随时提交,primary库的redo至少需写入一个standby,鞋服可以不同步
- 最高可用:不影响primary前天一下,提供最高级别数据保护策略,保护方式与最大保护类似。如果出现故障导致standby无法访问,primarily不会被shutdown,而自动转换为高性能,standby恢复后prinmary又切换为最高可用。
最大保护及最高可用需要至少一个standby的redo数据被同步写入。三种模式都需要指定log_archive_dest_n初始化。
Standby数据库类型
- 物理standby
- redo应用 如果正在执行redo操作,oracle不能被open
- read only模式打开 可执行查询/备份
- read write模式 此时暂停从primary接受redo数据,并暂时失去灾备功能
- 逻辑standby
与primary逻辑结构与物理结构可以不一致
正常情况下以read write模式打开,在open状态下执行sql应用,多级standby对某些数据类型及一些ddl/dml语句会有操作上的限制。
Data Guard操作方式
- OEM
- sqlplus命令行方式
- DGMGRL
硬件需求
- 相同系统架构
- 不同服务器硬件配置可以不同,
- 操作系统平台必须相同,版本可以略有差距,目录路径也可以不同
软件需求
-
Oracle企业版的一个特性,标准版不支持
-
同一个Data Guard配置中所欲初始化参数:conpatible值必须相同
-
必须归档模式,确保primary中打开force logging
-
同一个dg中可以有逻辑和物理,可以单实例也可以rac
-
可以同一个服务器
-
管理必须有sysdba权限
-
相同的存储架构
时间设置很重要
- standy数据库目录结构:尽量保持目录结构一致
- redologs: online redologs\archivelogs
物理standby
准备
- 启用force logging
alter database force logging;
- 创建密钥文件(如果没有的话)
同dg总所有库必须有独立密钥文件,并且sys用户具有相同密码
f:\oracle>orapwd
f:\oracle>orapwd file=f:\oracle\product\11.2.0\db_1\database\PWD orcl.ora password=verysafe entries=30
- 配置standby redologs
为最大保护和最高可用性模式,建议为standby配置standby redolog(可不配置,oralce会自动创建归档日志文件,并虚拟为一组standby redoblogs),并用LWGR SYNC模式传输REDO数据
- 关于standby redologs
- 管理standby redologs
alter database add standby logfile group 4 ('f:\oracle\oradata\orcl\standbyrd01.log')size 200M;
alter database drop standby logfile group 4;--删除日志组
select group#,type,member from v$logfile; --查看日志
- 设置初始化参数
- 将Primary置于归档模式
创建物理standby
- 创建备份
建议用rman创建备份集,如果