千家信息网

跨平台级联dataguard配置

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,正式环境中的OA库要从Windows迁移到Linux,但由于数据量比较大,带宽又比较窄,数据泵方式耗时太长,因此打算用DataGuard方式迁移,因此进行了测试。环境主库:OS:Windows VER
千家信息网最后更新 2026年10月31日跨平台级联dataguard配置

正式环境中的OA库要从Windows迁移到Linux,但由于数据量比较大,带宽又比较窄,数据泵方式耗时太长,因此打算用DataGuard方式迁移,因此进行了测试。


环境

主库:OS:Windows VERSION:11.2.0.4 ORACLE_SID:OA DB_NAME:OA DB_UNIQUE_NAME:OA

备库:OS:Windows VERSION:11.2.0.4 ORACLE_SID:OA DB_NAME:OA DB_UNIQUE_NAME:OA_DG

级联备库:OS:Linux VERSION:11.2.0.4 ORACLE_SID:OA DB_NAME:OA DB_UNIQUE_NAME:OA_DG2


1.查看各库平台信息

SQL>select platform_id,platform_name from v$database;

主库与备库相同:

PLATFORM_ID PLATFORM_NAME

----------- ----------------------------

12 Microsoft Windows x86 64-bit

级联备库:

PLATFORM_ID PLATFORM_NAME

----------- ---------------------------

13 Linux x86 64-bit


查看兼容表格,可看到当前的平台与Oracle版本是可跨平台搭建DataGuard的,但是要打Patch 13104881(当前版本已打)

2.备库生成pfile,并将pfile、密码文件传输到OA_DG2相关目录下


3.级联备库上修改pfile

[oracle@node3 dbs]$ more initOA.ora

*. audit_file_dest ='/opt/app/oracle/admin/OA/adump'

*.audit_trail='DB'

*.compatible='11.2.0.0.0'

*. control_files ='/opt/app/oracle/oradata/OA/CONTROL01.CTL','/opt/app/oracle/fast_recovery_area/OA/CONTROL02.CTL'

*.db_block_size=8192

*.db_name='OA'

*.db_recovery_file_dest_size=4102029312

*. db_recovery_file_dest ='/opt/app/oracle/fast_recovery_area'

*. db_unique_name ='OA_DG2'

*. diagnostic_dest ='/opt/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=OAXDB)'

*. fal_client ='OA_DG2'

*. fal_server ='OA_DG'

*. db_file_name_convert ='C:\APP\ADMINISTRATOR\ORADATA\OA\','/opt/app/oracle/oradata/OA/','C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\OA\','/opt/app/oracle/fast_recovery_area/OA/'

*. log_file_name_convert ='C:\APP\ADMINISTRATOR\ORADATA\OA\','/opt/app/oracle/oradata/OA/'

*. log_archive_config ='dg_config=(OA,OA_DG,OA_DG2)'

*.log_archive_dest_1='location=/opt/app/oracle/archivelog valid_for=(all_logfiles,all_roles)

*.log_archive_format='ARC%S_%R.%T'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=428867584

*.processes=150

*.recyclebin='OFF'

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=1291845632

*.standby_file_management='AUTO'

*.undo_tablespace='UNDOTBS1'

修改红色字体部分,使其适应当前环境


4.级联备库上创建所需目录

cd $ORACLE_BASE

mkdir -p oradata/OA/adump

mkdir -p oradata/OA

mkdir -p fast_recovery_area/OA


5.添加tns

备库添加级联备库的tns

OA_DG2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.74.231)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oa)

)

)

级联备库添加备库的tns

OA_DG =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.74.233)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oa)

)

)


6.修改备库参数,将standby logfile传输到级联备库

SQL> alter system set log_archive_dest_state_3=defer; --暂时关闭

SQL> alter system set log_archive_config='dg_config=(OA,OA_DG,OA_DG2)';

SQL> alter system set log_archive_dest_3='service=OA_DG2 async valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=OA_DG2'


7.级联备库配置静态监听

[oracle@node3 admin]$ more listener.ora

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.74.231)(PORT = 1521))

)

)

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME = OA)

(ORACLE_HOME = /opt/app/oracle/product/11g)

(GLOBAL_DBNAME = OA)

)

)

ADR_BASE_LISTENER = /opt/app/oracle


8.使用RMAN的复制功能创建备库:

1)lsnrctl start

2)rman target sys@primary auxiliary sys@standby

3)duplicate target database for standby from active database;

如果报错RMAN-05001: auxiliary file name /opt/app/oracle/oradata/orcl/users01.dbf conflicts with a file used by the target database,则执行duplicate target database for standby from active database nofilenamecheck;

也可以并行复制以提高性能。需要分派主库和备库多个通道后,再执行复制命令:

run

{

allocate channel chan1 type disk;

allocate channel chan2 type disk;

allocate channel chan3 type disk;

allocate channel chan4 type disk;

allocate auxiliary channel aux1 type disk;

allocate auxiliary channel aux2 type disk;

allocate auxiliary channel aux3 type disk;

allocate auxiliary channel aux4 type disk;

duplicate target database for standby from active database;

}


9.复制完成后,验证级联备库中各文件路径是否正确

SQL> select file_name from dba_data_files;


FILE_NAME

--------------------------------------------------------------------------------

/opt/app/oracle/oradata/OA/USERS01.DBF

/opt/app/oracle/oradata/OA/UNDOTBS01.DBF

/opt/app/oracle/oradata/OA/SYSAUX01.DBF

/opt/app/oracle/oradata/OA/SYSTEM01.DBF

SQL> select group#,member from v$logfile;

GROUP# TYPE MEMBER

---------- ------ --------------------------------------------------

3 ONLINE /opt/app/oracle/oradata/OA/REDO03.LOG

2 ONLINE /opt/app/oracle/oradata/OA/REDO02.LOG

1 ONLINE /opt/app/oracle/oradata/OA/REDO01.LOG

4 STANDBY C:\APP\ADMINISTRATOR\ORADATA\OA\STANDBYREDO04.LOG

5 STANDBY C:\APP\ADMINISTRATOR\ORADATA\OA\STANDBYREDO05.LOG

6 STANDBY C:\APP\ADMINISTRATOR\ORADATA\OA\STANDBYREDO06.LOG

7 STANDBY C:\APP\ADMINISTRATOR\ORADATA\OA\STANDBYREDO07.LOG

7 rows selected.

可看到standby redo的目录不正确(貌似log_file_name_convert对standby log没起作用),此时可手动删掉standby日志组,再重新添加:

SQL> alter database drop standby logfile group 4;

SQL> alter database drop standby logfile group 5;

SQL> alter database drop standby logfile group 6;

SQL> alter database drop standby logfile group 7;

SQL> alter database add standby logfile group 4 ('/opt/app/oracle/oradata/OA/STANDBYRD04.LOG') size 50M;

SQL> alter database add standby logfile group 5 ('/opt/app/oracle/oradata/OA/STANDBYRD05.LOG') size 50M;

SQL> alter database add standby logfile group 6 ('/opt/app/oracle/oradata/OA/STANDBYRD06.LOG') size 50M;

SQL> alter database add standby logfile group 7 ('/opt/app/oracle/oradata/OA/STANDBYRD07.LOG') size 50M;

验证完毕后打开备库的传输参数

SQL> alter system set log_archive_dest_3_state=enable;

验证传输是否正常,在级联备库执行

SQL> SELECT PROCESS,

2 PID,

3 STATUS,

4 SEQUENCE#,

5 DELAY_MINS

6 FROM V$MANAGED_STANDBY;

PROCESS PID STATUS SEQUENCE# DELAY_MINS

------------------------------ ---------- -------------------- ---------- ----------

ARCH 30382 CLOSING 158 0

ARCH 30384 CLOSING 154 0

ARCH 30386 CONNECTED 0 0

ARCH 30388 CLOSING 155 0

RFS 32195 IDLE 0 0

RFS 32193 IDLE 0 0

RFS 32191 IDLE 0 0

可看到RFS进程已经建立,说明传输没有问题。(如果传输有问题,可结合备库的alert日志进行处理,应该就是密码文件的问题)

10.级联备库启动实时应用

启动日志应用:

alter database recover managed standby database disconnect;

这个命令指示备库开始使用归档日志文件进行恢复。


待归档日志应用完毕后,启动实时应用:

SQL> alter database recover managed standby database cancel;

SQL> alter database open;

SQL> alter database recover managed standby database using current logfile disconnect; - -虽然语句执行后MRP进程启动成功,但验证下来还是没有真正实时应用日志。

验证实时应用情况:

SQL> SELECT * FROM V$DATAGUARD_STATS;

NAME VALUE UNIT TIME_COMPUTED DATUM_TIME

------------------------------ ------------------------------ ---------------------------------------- ------------------------------ ------------------------------

transport lag +00 00:05:22 day(2) to second(0) interval 11/01/2018 17:44:19 11/01/2018 17:43:28

apply lag +00 00:05:22 day(2) to second(0) interval 11/01/2018 17:44:19 11/01/2018 17:43:28

apply finish time day(2) to second(3) interval 11/01/2018 17:44:19

estimated startup time 11 second


注意:Oracle 11g的级联备库是不支持实时应用的,要等源库日志切换后才会应用。Oracle 12c的级联备库支持实时应用。


应用 日志 实时 传输 验证 文件 环境 目录 问题 参数 命令 密码 平台 数据 方式 版本 进程 支持 配置 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 腾讯科技 互联网女皇 互联网科技公司介绍 左右互联网络科技 联恩商钥互联网科技有限公司 汉立互联网科技有限公司联系电话 阿里巴巴算科技企业还是互联网 移动互联网科技股 互联网和黑科技的看法 互联网为啥属于高科技 重庆互联网医院沙龙医盟信息科技 恒生互联网科技业指数调整周期 智帮互联网科技公司最近动向 广州富喜互联网络科技 互联网科技股为什么大涨 上海创道互联网络科技有限公司 从那以后互联网科技有限公司 上海同邻互联网科技有限公司规模 互联网科技大佬云集 科技互联网专业务虚会材料 互联网是第几次科技革命的成果 互联网科技公司的优势 互联网科技保险 互联网科技公司电话 鑫亿盛互联网科技 万达互联网科技 顺网科技2021年互联网排名 华中科技有哪些互联网大佬 畅思互联网科技 黑龙江互联网科技公司
0