it编程 > 数据库 > Oracle

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

42人参与 2026-04-15 Oracle

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日志备库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

Oracle中将非分区表转换为分区表的最佳实践

04-13

Oracle归档日志爆满的急救指南

04-12

Oracle数据库高可用之DG+RAC详解

04-12

Oracle数据库AWR报告的生成步骤与分析方法

04-10

oracle clob字段的导入导出方式

04-17

Oracle Undo空间爆满的急救指南

04-08

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论