近期公司要求搭建一个Oracle DG的主备库,因为之前只是看过相关的文档没仔细研究过,所以这次搭建的时候很多坑我都踩了,我觉得很有必要总结下来!!!
一、安装Data Guard的主要步骤。
- 在主库上安装Oracle软件以及创建实例,在备库上只安装软件不创建实例。
- 主库上创建pfile并修改参数、监听和TNS。
- 将主库上的pfile、监听文件、TNS文件拷贝到备库并修改相应的内容。
- 使用RMAN备份主库,然后在备库使用RMAN执行复制数据库操作。
- 复制完成之后打开备库为READ ONLY(只读模式),测试主库操作是否更新到备库。
二、Data Guard的详细过程。
- 打开Forced Logging 模式
先确认primary库处于归档模式,然后开启强制归档。
SQL> archive log list;
SQL>alter database force logging;
- 创建standby日志
查看数据库的日志组个数与大小,因为我们创建standby日志组的个数是原日志组个数+1再与thread的积,size不能小于原日志文件的大小。
SQL> select group#,bytes/1024/1024 from v$log;
SQL>alter database add standby logfile '/u01/app/oracle/oradata/orcl/standby01.log' size 50m;
SQL>alter database add standby logfile '/u01/app/oracle/oradata/orcl/standby02.log' size 50m;
SQL>alter database add standby logfile '/u01/app/oracle/oradata/orcl/standby03.log' size 50m;
SQL>alter database add standby logfile '/u01/app/oracle/oradata/orcl/standby04.log' size 50m;
- 主库上创建监听并修改参数和TNS
其实网上关于这块的内容还是比较多,与DG的参数就只与几个参数相关,大概就是日志,文件的位置的转换,GAP的处理,其实GAP已经会自动的处理,不过我们还是可以配置FAL_SERVER,FAL_CLIENT参数。修改的时候可以先创建一个pfile然后在文本编辑器里面修改添加相应的参数,或者直接在数据库里面用语句修改然后创建pfile。这里我是在数据库中用语句修改后创建的pfile。
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(htz,htzb)';
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/orcl/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl';
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=h