Data Guard实验
实验环境
主库端
- 基于linux系统安装11.2.0.4版本Oracle数据库
- 有一个单实例数据库db_name=db_unique_name=wqdb
备库端
- 基于linux系统安装11.2.0.4版本Oracle数据库
- 未起数据库实例
注意事项
- 大小写不敏感,除密码外
- 路径结尾处是否有/是敏感的,同时末尾不要留有空格
- 注意每个参数路径存在且权限为oracle:oinstall
主库端操作步骤
- 检查主库是否开归档
SELECT log_mode FROM v$database;
若已开归档,则显示如下:
LOG_MODE
------------------------
ARCHIVELOG
- 未开归档,需开归档
该步是否需要依赖于上一步结果
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER DATABASE FORCE LOGGING;
- 检查主库的DB_NAME,DB_UNIQUE_NAME.
主库和备库前者一致,后者不能一致;
SQL> show parameter db_name
SQL> show parameter db_unique_name
为了保证db_unique_name写入pfile内,alter system一下;
alter system set db_unique_name=wqdb scope=spfile;
- 本步可选,当需要做主备切换时需要
列出主备库上的DB_UNIQUE_NAME 参数。默认情况下,定义该参数能确保主备库数据库能够互相识别对方Primary与Standby端的db_unique_name不一致时
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(wqdb,wqdbdg)';
如在主备库db_unique_name不一致的情况下未配置 LOG_ARCHIVE_CONFIG则会出现如下报错
ORA-16057: DGID from server not in Data Guard configuration
原因:主库没有设置参数log_archive_config
解决方法*.log_archive_config=‘dg_config=( Primary , Standby )’
- 查看数据文件位置
DB_FILE_NAME_CONVERT该参数需要使用
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/wqdb/system01.dbf
/opt/oracle/oradata/wqdb/sysaux01.dbf
/opt/oracle/oradata/wqdb/undotbs01.dbf
/opt/oracle/oradata/wqdb/users01.dbf
- 查看日志文件位置
LOG_FILE_NAME_CONVERT该参数需要使用
SQL> select * from v$logfile;
GROUP# STATUS TYPE
---------- -------------- --------------
MEMBER
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IS_REC
------
3 ONLINE
/opt/oracle/oradata/wqdb/redo03.log
NO
2 ONLINE
/opt/oracle/oradata/wqdb/redo02.log
NO
GROUP# STATUS TYPE
---------- -------------- --------------
MEMBER
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IS_REC
------
1 ONLINE
/opt/oracle/oradata/wqdb/redo01.log
NO
- 设置dg远程归档路径
该参数仅当数据库角色为primary时生效,指定primary归档redo log到该参数定义的standby database上。
log_archive_dest_2可以说是dataguard上最重要的参数之一,它定义了redo log的传输方式(sync or async)以及传输目标(即standby apply node),直接决定了dataguard的数据保护级别。
ALTER SYST