一、Read only/write模式打开物理standby
以read only 或read write模式打开物理standby,可以转移一些查询,备份之类的操作到standby数据库,以分担一些primary的压力。
1). standby数据库处于shutdown状态
直接startup即可
2). standby数据库处于redo应用状态
首先取消redo应用:
SQL> alter database recover managed standby database cancel;
SQL> alter database open
3). 从open状态再切换回redo应用,并不需要shutdown,只需启用redo应用即可
SQL> alter database recover managed standby database disconnect from session;
由于只读打开时就不能应用,虽然我们能够查询,但是查询的结果确是与primary 不同步的,这点大大降低了物理standby 做报表服务分担主库压力的可能性,对于这点呢,我们有两个解决方案:
a.改用逻辑standby b. 使用oracle 11G
二、管理影响standby的primary数据库事件
某些情况下,primary数据库的某些改动会自动通过redo数据传播到standby数据库,因此不需要在standby数据库做额外的操作,而某些情况,则需要手工调整。
下列事件会由redo传输服务及redo应用自动处理,不需要dba的干预:
- ALTER DATABASE ENABLE|DISABLE THREAD语句
- 修改表空间状态(例如read-write到read-only, online到offline)
- 创建修改删除表空间或数据文件(前提条件:参数STANDBY_FILE_MANAGEMENT设置为AUTO)
以下事情则需要dba手工干预:
1. 添加修改删除数据文件或表空间
Standby_file_management设置为manual
不过需要注意一点,如果数据文件是从其它数据库复制而来,则不管Standby_file_management参数值如何设置,都必须同时复制到standby数据库,并注意要修改standby数据库的控件文件。
2. 重命名数据文件
如果primary数据库重命名了一个或多个数据文件,该项不修改并不会自动传播到standby数据库,不管standby_file_management它是auto还是manual。
A. SQL> alter tablespace webtbs offline; -- primary数据库操作
B. 手工数据文件改名(操作系统) -- primary数据库操作
C. SQL> alter tablespace webtbs rename datafile
'webtbs01.dbf' to 'tbsweb01.dbf';
SQL> alter tablespace webtbs online;
D. 暂停redo应用,并shutdown --standby数据库操作
SQL> alter database recover managed standby database cancel;
SQL> shutdown immediate
E. 手工将数据文件改名 -- standby数据库操作
F. 重启standby,修改数据文件路径(数据字典) --standby数据库操作
SQL> startup mount
SQL> alter database rename file
'webtbs01.dbf' to 'tbsweb01.dbf';
G. 重新启动redo应用
SQL> alter database recover managed standby database disconnect from session;
H. 切换日志 -- primary数据库操作
SQL> alter system switch logfile;
3. 添加或删除online redo logs
三、对open resetlogs的primary数据库standby的恢复
四、 监控primary/standby数据库
1. 与恢复进度相关的v$视图应用
A). 查看进程的活动状况 -- v$managed_standby
B). 确认redo应用进度 -- v$archive_dest_status
C). 检查归档文件路径及创建信息 -- v$archived_log
D). 查询归档历史 -- v$log_history
2. 与log应用相关的v$视图应用
A). 查询当前数据的基本信息 -- v$database
B). 检查应用模式 --v$archive_dest_status
C). Data guard事件 -- v$dataguard_status
五、调整物理standby log应用频率
调整应用频率说白了就是调整IO读取能力
1. 设置recover并行度
SQL> alter database recover managed standby database parallel 2 disconnect form session;
2. 加快redo应用频率
设置初始化参数DB_BLOCK_CHECKING=FALSE
3. 设置PARALLEL_EXECUTION_MESSAGE_SIZE
4. 优化磁盘I/O