IT 邦德

Oracle 26ai搭建ADG Far Sync日志备库

1.DG Far Sync概述

Active Data Guard Far Sync是Oracle 12c引入的新功能(也称为Far Sync Standby)

12c开始可以在主备库之间添加一个Far Sync实例,redo数据先由主库传输到Far Sync实例,再由于Far Sync实例转发给备库。Far Sync实例只有密码文件、init参数文件和控制文件,而没有数据文件,只负责接收归档和redo而不需要应用,所以主库到Far Sync实例的同步非常迅速,基本没有延迟。

Image

2.配置环境

强制日志、开归档
mkdir -p /u01/recovery
mkdir -p /u01/arch

SQL> set linesize 300
SQL> select name,open_mode,log_mode,force_logging,DATABASE_ROLE,
switchover_status from v$database;  
SQL> alter database force logging;

数据库开归档
如果想开快速恢复区的设置,做如下操作
alter system set db_recovery_file_dest_size=1800g;
alter system set db_recovery_file_dest='/u01/recovery';

开归档的方式如下:
alter system set log_archive_dest_1='location=/u01/arch'; 
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

alter system switch logfile;
Image

3.Far Sync实例

3.1 主库配置standbylogfile

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/ORADB/standby_redo04.log') size 200M;
alter database add standby logfile group 5 ('/u01/app/oracle/oradata/ORADB/standby_redo05.log') size 200M;
alter database add standby logfile group 6 ('/u01/app/oracle/oradata/ORADB/standby_redo06.log') size 200M;
alter database add standby logfile group 7 ('/u01/app/oracle/oradata/ORADB/standby_redo07.log') size 200M;
alter system set standby_file_management=AUTO;

3.2 在far sync实例上配置pfile文件

DB_UNIQUE_NAME=oradbfs
DB_FILE_NAME_CONVERT='/ORADB/','/oradbfs/','/oradbst/','/oradbfs/'
LOG_FILE_NAME_CONVERT='/ORADB/','/oradbfs/','/oradbst/','/oradbfs/'
FAL_SERVER=oradb
LOG_ARCHIVE_CONFIG='DG_CONFIG=(oradb,oradbfs,oradbst)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch 
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oradbfs'

LOG_ARCHIVE_DEST_2='SERVICE=oradbst 
ASYNC VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=oradbst'

LOG_ARCHIVE_DEST_STATE_2=ENABLE
standby_file_management=AUTO
service_names=oradb

3.3 搭建far sync实例

export ORACLE_SID=oradb
startup nomount pfile='/home/oracle/pfile.init';
rman target sys/oracle@oradb auxiliary sys/oracle@oradbfs
duplicate target database for farsync from active database;
Image

4.备库搭建

4.1 在standby数据库上创建pfile文件

control_files='/u01/app/oracle/oradata/oradbst/control01.ctl'
DB_UNIQUE_NAME=oradbst
DB_FILE_NAME_CONVERT='/ORADB/','/oradbst/'
LOG_FILE_NAME_CONVERT='/ORADB/','/oradbst/'
FAL_SERVER='oradbfs','orad'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(oradb,oradbfs,oradbst)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oradbst'
LOG_ARCHIVE_DEST_2='SERVICE=oradbfs ASYNC VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=oradb'
LOG_ARCHIVE_DEST_STATE_2=ENABLE
standby_file_management=AUTO
service_names=oradb

4.2 搭建备库

export ORACLE_SID=oradb
startup nomount pfile='/home/oracle/pfile.init';
rman target sys/oracle@oradb auxiliary sys/oracle@oradbst
duplicate target database for standby from active database dorecover nofilenamecheck;

4.3 将备库启动到ADG模式

SQL> alter database recover managed standby database cancel;
SQL> alter database open;
SQL> alter pluggable database all open;
SQL> alter database recover managed standby database USING CURRENT LOGFILE disconnect from session;
SQL> select open_mode from v$database;
Image

别再跪求存储了!用26ai Far Sync,把日志备库“漂移”到千里之外!个“零延迟”日志备库就这么搭建好了,分享给大家,有问题评论区交流。

想学习Oracle 26AI的请点击左下角阅读原文,一起交流!