Data Guard
- 格式:docx
- 大小:13.75 KB
- 文档页数:6
Data Guard
名词
Dataguard结构:
一个Primary合多个Standby(最多九个),物理位置及操作系统无限制
1. Primary
有且只有1个,可以时单实例也可以时RAC
1. Standby
可以视为Primary某个时间点的备份(事务上一直),利用Primary的REDO数据自动维护Standby
• 逻辑Standby:内容相同,结构不同 SQL Apply
• 物理Standby:一模一样 以介质恢复方式实现同步 Redo Apply
Data Guard服务
1. Redo传输服务
RTS服务(REDO传输服务)控制redo数据
常见启动归档模式即设置一个本地归档路径,standby是设一个或多个远端service name
• 传输redo数据到standby
• 处理由于网络中断导致的归档中断
• 控制数据库的保护模式(Gap)
• 检查standby端丢失或无效的归档,并尝试从其它primary/standby获取。
1. Log应用服务
应用redo到standby以保持standby与primary一致
• 物理standby,应用Redo Apply技术,即标准recover方式应用redo数据
• 逻辑standby,使用sql apply技术,将redo转换成sql,然后执行
1. 角色切换
• 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数据被同步写入。三种模式都需要指定logarchivedest_n初始化。
Standby数据库类型
1. 物理standby
• redo应用 如果正在执行redo操作,oracle不能被open
• read only模式打开 可执行查询/备份
• read write模式 此时暂停从primary接受redo数据,并暂时失去灾备功能
1. 逻辑standby
与primary逻辑结构与物理结构可以不一致
正常情况下以read write模式打开,在open状态下执行sql应用,多级standby对某些数据类型及一些ddl/dml语句会有操作上的限制。
Data Guard操作方式
• OEM
• sqlplus命令行方式
• DGMGRL
硬件需求
1. 相同系统架构 2. 不同服务器硬件配置可以不同,
3. 操作系统平台必须相同,版本可以略有差距,目录路径也可以不同
软件需求
1. Oracle企业版的一个特性,标准版不支持
2. 同一个Data Guard配置中所欲初始化参数:conpatible值必须相同
3. 必须归档模式,确保primary中打开force logging
4. 同一个dg中可以有逻辑和物理,可以单实例也可以rac
5. 可以同一个服务器
6. 管理必须有sysdba权限
7. 相同的存储架构
时间设置很重要
• standy数据库目录结构:尽量保持目录结构一致
• redologs: online redologs\archivelogs
物理standby
准备
1. 启用force logging
alter database force logging;
1. 创建密钥文件(如果没有的话)
同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
1. 配置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; --查看日志
1. 设置初始化参数
2. 将Primary置于归档模式
创建物理standby
1. 创建备份
建议用rman创建备份集。
1. 创建Standby数据库控制文件
alter database create standby controlfile as 'd:\backup\orcldg.ctl'; --如果多次使用该命令,请确保执行时数据库处于mount状态。
创建万控制文件到standby数据库创建完成之间,确保primary不再有结构上的变化。
1. 配置standby数据库的初始化参数文件
• 创建pfile客户端初始化参数文件。
create pfile='d:\backup\initorcl.ora'from spfile;--spfile复制自primary
• 修改初始化参数文件中的参数
主要修改两方面
– 注意primary和standby不同角色对应初始化参数的配置
– 注意保持各初始化参数中的路径准确有效
1. 复制文件到standby服务器
• 备份的数据文件
• 创建的standby控制文件
• 修改过的初始化参数文件
1. 配置standby • 创建新的oracle service
• 创建密钥文件,注意保持与primary一致
• 配置监听并启动
• 修改primry和standby的tnsnames.ora,各自增加对应的Net Service Name
• 创建服务器端的初始化文件
1. 启动物理standby的redo应用
(n>o,o>p,p>q,q>...)
startup;
select opne_mode from v$database;
通常情况下,加载到mount状态即可。##10g版本##
进入mount后开始接受primary的redo数据,
alter database recover managed standby database using current logfile disconnect from session;
要启动实用应用,primary发送redo必须使用lgwr,如果使用arch发送redo数据,standby无法启用实时应用,ORA-38500.
1. 停止standby
• 先停止parimary。如果直接停止standby,priamry的alert中会出现错误信息,或者primary直接挂。
• 正常关闭
alter system set log_archive _dest_state_2=defer;--primary
alter database recover managed standby database calcel; --standby
shutdown immediate;
配置过程
set sqlprompt "orcl>"
1. 确认主库归档模式
archive log list;
shutdown immediate;
startup mount;
alter database archive log;
1. 设置primary force logging; select force_logging from v$database;
alter database force logging;
1. 配置primary的初始化参数
create pfile='d:\oracle\backup\pfile_orcl.ora'from spfile;
修改初始化参数文件
DB_UNIQUE_NAME=orcl;
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcldg)'
LOG_ARCHIVE_DEST_2='SERVICE=ORCLDG_192.168.1.101 ARCH VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg'
LOG_ARCHIVE_DEST_STATE_2=DEFER