博客
关于我
DG_数据文件转换参数测试
阅读量:432 次
发布时间:2019-03-06

本文共 10806 字,大约阅读时间需要 36 分钟。

 

本篇博客流程图:

一、测试需求及参数说明

二、测试环境进行相关测试

三、问题总结

 

一、测试需求及参数说明

1.1测试需求说明

 

DG切换

 

切换前,数据库版本12.2.0.1,主库rac两节点,备一rac两节点,备二single单实例。

 

需求,更换主机,使用dg进行迁移;

 

切换后,新主库rac两节点,新备一rac两节点,新备二single单实例。

 

切换后,由于对convert参数理解不够,dg正常切换成功,但是convert参数在新的备库未修改,留坑,本次出于学习目的,进行测试参数。

 

 

 

1.2切换中遇到的问题进行总结:

 

1.主库两个实例,应用停业务后,在主库第二个实例kill LOCAL=NO远程进程后,主库存活的实例一,查询数据库切换状态异常,Alert日志发现为主库像远程备库传输的进程被kill,通过手工切换归档重置进程连接;

2.主库查询切换状态异常,发现dest远程传输归档进程异常,发现存在一个远程归档传输参数指向一个废弃的dg(已于客户确认),后对该参数设置null后,主库切换状态恢复正常;
3.在切换前,对RAC环境备库(切换后新主库),配置远程归档参数,使用scope=spfile,DG备库环境切换过程中无重启动作,最终导致切换后DG连通性不正常,重新配置参数后恢复正常;
(对于主库来说,DG切换角色为物理备库,主库会shutdown,但是对于备库环境,不受影响)
4.在切换后,新的备库环境rac,配置db convert转换参数,设置错误,参数设置不当,导致db nomount无法启动;
解决方式:create pfile='/tmp/pfile.ora' from spfile;
vi 编辑pfile,配置正确的参数后;
create spfile=' 修改前spfile完整路径.123213123' from pfile='/tmp/pfile.ora';报错
RAC环境,生成最新的spfile文件,不要加后缀数字;
create spfile='+DATA/xxx/spfile.ora' from pfile='/tmp/pfile.ora'; 即可
5)在修改db convert参数完毕后,重启备库open,需要介质恢复,金华姐说这是正常现象,mount状态打开media recovery ,后面再重新启动到open就可以了。#此处自己留坑#

1.3参数说明 standby_file_management db_create_file_destDB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERTstandby_file_managementSTANDBY_FILE_MANAGEMENT = { MANUAL | AUTO }启用自动备用文件管理后,将在备用数据库上复制主数据库上的操作系统文件添加和删除。STANDBY_FILE_MANAGEMENT仅适用于物理备用数据库。如果备用数据库与主数据库位于同一系统上,请确保主系统和备用系统不指向相同的文件。db_create_file_destDB_CREATE_FILE_DEST = directory | disk group如果将文件系统目录指定为默认位置,则该目录必须已存在; Oracle不会创建它。该目录必须具有允许Oracle在其中创建文件的适当权限。Oracle为文件生成唯一的名称,因此创建的文件是Oracle托管文件。DB_FILE_NAME_CONVERT对于创建重复数据库以进行恢复非常有用。它将主数据库上的新数据文件的文件名转换为备用数据库上的文件名。DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ... 主,备,主,备如果将数据文件添加到主数据库,则必须将相应的文件添加到备用数据库。更新备用数据库时,此参数将主数据库上的数据文件名转换为备用数据库上的数据文件名。备用数据库上的文件必须存在且可写,否则恢复过程将因错误而停止。

 

二、测试环境进行相关测试

测试一、备库未配置任何数据文件创建参数,主库创建数据文件1.主备同步,备库存在于主库完全相同的路径2.主库创建数据文件,切换日志SQL>  create tablespace t1 datafile '/picclife/app/oracle/oradata/orcla/t1.dbf' size 1m;SQL> alter system switch logfile;主库参数:db_create_file_dest                  Null3.查询备库应用情况Errors in file /picclife/app/oracle/diag/rdbms/orclb/orclb/trace/orclb_m000_3879.trc:ORA-01110: data file 5: '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'ORA-01565: error in identifying file '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'ORA-27037: unable to obtain file status2019-03-17T03:40:44.412366-04:00Errors in file /picclife/app/oracle/diag/rdbms/orclb/orclb/trace/orclb_mrp0_3575.trc:ORA-01274: cannot add data file that was originally created as '/picclife/app/oracle/oradata/orcla/t1.dbf'Recovery interrupted!2019-03-17T03:40:44.758843-04:00备库参数db_create_file_dest                  Null standby_file_management              MANUALlog_file_name_convert                Null备库处理SQL> select name from v$datafile where name like '%UNNAME%'NAME-----------------------------------------------------------------alter database create datafile '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005' as '/picclife/app/oracle/oradata/oracdg/t1.dbf';recover managed standby database disconnect from session;4.删除数据文件(测试)主库drop tablespace t1 including contents and datafiles;备库,同样能删除数据文件记录,但无法级联删除操作系统中的数据文件orclb:/picclife/app/oracle/oradata/oracdg$ ls -lrt-rw-r----- 1 oracle oinstall   1056768 Mar 17 04:01 t1.dbf测试二、备库配置standby_file_management=AUTO时,主库创建数据文件2.1 备库有与主库一样的路径且有权限访问备库:SQL> alter system set standby_file_management=auto;主库,创建数据文件,切换归档日志 SQL>  create tablespace t1 datafile '/picclife/app/oracle/oradata/orcla/t1.dbf' size 1m;SQL> alter system switch logfile;备库,日志:Existing file may be overwrittenRecovery created file /picclife/app/oracle/oradata/orcla/t1.dbfSuccessfully added datafile 5 to media recoveryDatafile #5: '/picclife/app/oracle/oradata/orcla/t1.dbf'2019-03-17T04:07:53.261481-04:00备库,根据参数,自动创建数据文件,且与主库路径相同。drop tablespace t1 including contents and datafiles;alter system switch logfile;2.2 备库有与主库路径不同将备库与主库文件路径相同的目录,mv该名称orclb:/picclife/app/oracle/oradata$ mv orcla orcla.bak主库,创建数据文件,切换归档日志 SQL>  create tablespace t1 datafile '/picclife/app/oracle/oradata/orcla/t1.dbf' size 1m;SQL> alter system switch logfile;备库orclb:/picclife/app/oracle/oradata$ lsoracdg  orcla  orcla.bakorclb:/picclife/app/oracle/oradata$ cd orclaorclb:/picclife/app/oracle/oradata/orcla$ ls -lrttotal 1032-rw-r----- 1 oracle oinstall 1056768 Mar 17 04:11 t1.dbf数据文件还是正常创建了,并且oracle自动创建了该路径!!! 2.3 调整版本,将备库与主库相同的文件路径orcla路径属组修改为root:root主库,还原测试环境drop tablespace t1 including contents and datafiles;alter system switch logfile;备库修改文件属组:[root@orclb oradata]# chown root.root orcla主库,创建数据文件,切换归档日志 SQL>  create tablespace t1 datafile '/picclife/app/oracle/oradata/orcla/t1.dbf' size 1m;SQL> alter system switch logfile;备库:报错信息复现Errors in file /picclife/app/oracle/diag/rdbms/orclb/orclb/trace/orclb_m000_6001.trc:ORA-01110: data file 5: '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'ORA-01565: error in identifying file '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 7备库处理SQL> alter system set standby_file_management=manual;alter database create datafile '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005' as '/picclife/app/oracle/oradata/oracdg/t1.dbf';SQL> alter system set standby_file_management=auto;recover managed standby database disconnect from session;主库,还原测试环境drop tablespace t1 including contents and datafiles;alter system switch logfile;测试三、备库配置auto参数,且配置convert转换参数时备库SQL> alter system set db_file_name_convert='/picclife/app/oracle/oradata/orcla/','/picclife/app/oracle/oradata/oracdg/' scope=spfile;SQL> startup mount;recover managed standby database disconnect from session;主库创建数据文件,切换日志SQL>  create tablespace t1 datafile '/picclife/app/oracle/oradata/orcla/t1.dbf' size 1m;SQL> alter system switch logfile;备库自动创建该文件:正常情况SQL>  select name from v$datafile;NAME------------------------------------------------------------------------------------------------------------------------/picclife/app/oracle/oradata/oracdg/data2etsh9v3.dbf/picclife/app/oracle/oradata/oracdg/data2gtsha10.dbf/picclife/app/oracle/oradata/oracdg/data2ftsha07.dbf/picclife/app/oracle/oradata/oracdg/data2htsha1q.dbf/picclife/app/oracle/oradata/oracdg/t1.dbf测试四、当dg切换后,修改convert参数后,dg能否保持正常转换。切换前:主库orcla,一备orclb,二备orclc;切换后:主库orclb,一备orcla,二备orclc;切换前:主库数据文件路径,及参数设置SQL>  select name from v$datafile union select name from v$tempfile;NAME----------------------------------------------------------------/picclife/app/oracle/oradata/orcla/sysaux01.dbfdb_unique_name       orcladb_file_name_convert Null standby_file_management --全部设置为auto备1 /picclife/app/oracle/oradata/oracdg/db_unique_name       orclbdb_file_name_convert                /picclife/app/oracle/oradata/orcla/, /picclife/app/oracle/oradata/oracdg/备2/picclife/app/oracle/oradata/dg2/db_unique_name       orclc/picclife/app/oracle/oradata/orcla/, /picclife/app/oracle/oradata/dg2/原主库SQL> select dbid,name, database_role,open_mode,SWITCHOVER_STATUS,FLASHBACK_ON,PROTECTION_MODE,FORCE_LOGGING  from v$database;       DBID NAME       DATABASE_ROLE          OPEN_MODE  SWITCHOVER_STAT FLASH PROTECTION_MODE                         FORCE_LOGG----------- ---------- ---------------------- ---------- --------------- ----- ---------------------------------------- ---------- 3115515000 ORCLA      PRIMARY                READ WRITE TO STANDBY      NO    MAXIMUM PERFORMANCE                     YESSQL> select dest_id,error from v$archive_dest;   DEST_ID ERROR---------- -----------------------------------------------------------------         1         2         3原主库:切换为物理备库SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;SQL> startup mount;SQL> select dbid,name, database_role,open_mode,SWITCHOVER_STATUS,FLASHBACK_ON,PROTECTION_MODE,FORCE_LOGGING  from v$database;       DBID NAME       DATABASE_ROLE          OPEN_MODE  SWITCHOVER_STAT FLASH PROTECTION_MODE                         FORCE_LOGG----------- ---------- ---------------------- ---------- --------------- ----- ---------------------------------------- ---------- 3115515000 ORCLA      PHYSICAL STANDBY       MOUNTED    RECOVERY NEEDED NO    MAXIMUM PERFORMANCE                     YES备1/2 SQL> select dbid,name, database_role,open_mode,SWITCHOVER_STATUS,FLASHBACK_ON,PROTECTION_MODE,FORCE_LOGGING  from v$database;       DBID NAME       DATABASE_ROLE          OPEN_MODE  SWITCHOVER_STAT FLASH PROTECTION_MODE                         FORCE_LOGG----------- ---------- ---------------------- ---------- --------------- ----- ---------------------------------------- ---------- 3115515000 ORCLA      PHYSICAL STANDBY       READ ONLY  TO PRIMARY      NO    MAXIMUM PERFORMANCE                     YES                                              WITH APPLY备1切换为主库ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;新主库修改远程归档参数:alter system set log_archive_dest_2='SERVICE=primaryorcla LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcla';alter system set log_archive_dest_3='SERVICE=adgc LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclc';SQL> alter database open;SQL> alter system switch logfile;新1备修改参数:SQL> alter system set fal_client=primaryorcla;SQL> alter system set fal_server=adgb;SQL> recover managed standby database disconnect from session;SQL> alter system set db_file_name_convert='/picclife/app/oracle/oradata/oracdg/','/picclife/app/oracle/oradata/orcla/' scope=spfile;recover managed standby database disconnect from session;重启库,无异常新2备修改参数:SQL> alter system set fal_server=adgb;db_file_name_convert          /picclife/app/oracle/oradata/orcla/, /picclife/app/oracle/oradata/dg2/SQL> alter system set db_file_name_convert='/picclife/app/oracle/oradata/oracdg/','/picclife/app/oracle/oradata/dg2/' scope=spfile;SQL> select name from v$datafile;NAME----------------------------------------------------------------/picclife/app/oracle/oradata/dg2/system01.dbf/picclife/app/oracle/oradata/dg2/sysaux01.dbf/picclife/app/oracle/oradata/dg2/undotbs01.dbf/picclife/app/oracle/oradata/dg2/users01.dbf/picclife/app/oracle/oradata/dg2/t1.dbfSQL> alter database open;Database altered.recover managed standby database disconnect from session;                                                    --主库,还原测试环境drop tablespace t1 including contents and datafiles;alter system switch logfile;主库创建数据文件,切换日志SQL>  create tablespace t1 datafile '/picclife/app/oracle/oradata/oracdg/t1.dbf' size 1m;SQL> alter system switch logfile;                                                                                                备库查询一切正常,未发现DG备库切换后,修改convert参数导致的数据文件目录不正确现象。

 

三、问题总结

总结:1.如果备库没有配置standby_file_management=auto参数,则主库创建数据文件,备库接受应用日志后会报错且mrp进程停止应用2.如果备库与主库路径不同,且备库无法创建与主库相同的路径存放文件,则报错且mrp进程停止应用3.配置正确的转换参数+auto参数,则主库创建数据文件,备库能相应进行转换4.dg切换后,配置正确的convert参数,无异常。 5.今后如果还存在dg切换,需要提前查询name路径,及配置正确的convert转换参数

 

转载地址:http://nilyz.baihongyu.com/

你可能感兴趣的文章
mybatis generator修改默认生成的sql模板
查看>>
算法 - 如何从股票买卖中,获得最大收益
查看>>
算法 - 链表操作思想 && case
查看>>
并发编程实战-ConcurrentHashMap源码解析
查看>>
C#之反射、元数据详解
查看>>
通俗易懂设计模式解析——单例模式
查看>>
通俗易懂设计模式解析——抽象工厂模式
查看>>
SSM商城项目(十二)
查看>>
第5章选择结构程序设计
查看>>
前端数据渲染及mustache模板引擎的简单实现
查看>>
设计模式系列之工厂模式三兄弟(Factory Pattern)
查看>>
OAuth2.0认证详解
查看>>
如何禁用控制台窗口的关闭按钮?
查看>>
Netflix是什么,与Spring Cloud有什么关系
查看>>
对象的可见性 - volatile篇
查看>>
端口重用
查看>>
为什么面试完,总是让你回去等通知?
查看>>
Java 中初始化 List 集合的 6 种方式!
查看>>
终于有人把 HTTPS 原理讲清楚了!
查看>>
别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
查看>>