1.dg far sync概述
active data guard far sync是oracle 12c引入的新功能(也称为far sync standby)
可以在主备库之间添加一个far sync实例,redo数据先由主库传输到far sync实例,再由于far sync实例转发给备库。

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;
3.far sync实例
3.1 在主库上创建far sync实例的控制文件
alter database create far sync
instance controlfile as ‘/home/oracle/control01.ctl’;
3.2 创建far sync实例的pfile文件
create pfile=‘/home/oracle/pfile.init’ from spfile;
db_unique_name=oradb db_file_name_convert='/oradbst/','/oradb/' log_file_name_convert='/oradbst/','/oradb/' fal_server=oradbst log_archive_config='dg_config=(oradb,oradbfs,oradbst)' log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=oradb' log_archive_dest_2='service=oradbfs sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=oradbfs' log_archive_dest_state_2=enable log_archive_dest_3='service=oradbst async noaffirm valid_for=(online_logfiles,primary_role) db_unique_name=oradbst' log_archive_dest_state_3=alternate standby_file_management=auto
3.3 在主库上以pfile启动并配置standbylogfile
startup pfile=‘/home/oracle/pfile.init’;
alter system set standby_file_management=manual;
添加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.4 生成spfile文件:
create spfile from pfile='/home/oracle/pfile.init'; 将上面的控制文件和参数文件和密码文件复制到far sync实例所在的服务器。 将控制文件存放在/u01/app/oracle/oradata/oradbfs/control01.ctl scp $oracle_home/dbs/orapworadb 192.168.2.12:/u01/app/oracle/product/23.26.1/dbhome_1/dbs/ scp $oracle_home/dbs/orapworadb 192.168.2.11:/u01/app/oracle/product/23.26.1/db_1/dbs/dbs
3.5 在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.6 创建监听和tnsnames.ora
将备库和far sync实例创建好监听后一起写入主库的tnsnames.ora中并拷贝至每个节点
–tns配置如下:
oradb =
(description =
(address = (protocol = tcp)(host = 192.168.2.14)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = oradb)
)
)
oradbfs =
(description =
(address = (protocol = tcp)(host = 192.168.2.12)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = oradb)
)
)
oradbst =
(description =
(address = (protocol = tcp)(host = 192.168.2.11)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = oradb)
)
)–监听配置如下
sid_list_listener =
(sid_list =
(sid_desc =
(global_dbname = oradb)
(oracle_home = /u01/app/oracle/product/23.26.1/dbhome_1)
(sid_name= oradb)
)
)
sid_list_listener =
(sid_list =
(sid_desc =
(global_dbname = oradb)
(oracle_home = /u01/app/oracle/product/23.26.1/db_1)
(sid_name= oradb)
)
)3.7 启动far sync到mount模式
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;

4.备库搭建
在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
恢复备库数据库
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;

在备库启动managed recovery process
alter database recover managed standby database disconnect from session;
在主库上查询日志应用情况
set lines 300
col dest_name for a20
select dest_name,status,error from v$archive_dest;

将备库启动到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;

到此这篇关于oracle 26ai搭建adg far sync日志备库的实例的文章就介绍到这了,更多相关oracle adg far sync日志备库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论