DG_数据文件转换参数测试
本篇博客流程图:
一、测试需求及参数说明
二、测试环境进行相关测试
三、问题总结
一、测试需求及参数说明
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_dest
DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT standby_file_management
STANDBY_FILE_MANAGEMENT = { MANUAL | AUTO }
启用自动备用文件管理后,将在备用数据库上复制主数据库上的操作系统文件添加和删除。STANDBY_FILE_MANAGEMENT仅适用于物理备用数据库。
如果备用数据库与主数据库位于同一系统上,请确保主系统和备用系统不指向相同的文件。 db_create_file_dest
DB_CREATE_FILE_DEST = directory | disk group
如果将文件系统目录指定为默认位置,则该目录必须已存在; Oracle不会创建它。该目录必须具有允许Oracle在其中创建文件的适当权限。Oracle为文件生成唯一的名称,因此创建的文件是Oracle托管文件。 DB_FILE_NAME_CONVERT
对于创建重复数据库以进行恢复非常有用。它将主数据库上的新数据文件的文件名转换为备用数据库上的文件名。
DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ...
主,备,主,备
如果将数据文件添加到主数据库,则必须将相应的文件添加到备用数据库。更新备用数据库时,此参数将主数据库上的数据文件名转换为备用数据库上的数据文件名。备用数据库上的文件必须存在且可写,否则恢复过程将因错误而停止。
二、测试环境进行相关测试
测试一、备库未配置任何数据文件创建参数,主库创建数据文件
.主备同步,备库存在于主库完全相同的路径
.主库创建数据文件,切换日志
SQL> create tablespace t1 datafile '/picclife/app/oracle/oradata/orcla/t1.dbf' size 1m;
SQL> alter system switch logfile;
主库参数:
db_create_file_dest Null .查询备库应用情况
Errors in file /picclife/app/oracle/diag/rdbms/orclb/orclb/trace/orclb_m000_3879.trc:
ORA-: data file : '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'
ORA-: error in identifying file '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'
ORA-: unable to obtain file status
--17T03::44.412366-:
Errors in file /picclife/app/oracle/diag/rdbms/orclb/orclb/trace/orclb_mrp0_3575.trc:
ORA-: cannot add data file that was originally created as '/picclife/app/oracle/oradata/orcla/t1.dbf'
Recovery interrupted!
--17T03::44.758843-: 备库参数
db_create_file_dest Null
standby_file_management MANUAL
log_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; .删除数据文件(测试)
主库
drop tablespace t1 including contents and datafiles;
备库,同样能删除数据文件记录,但无法级联删除操作系统中的数据文件
orclb:/picclife/app/oracle/oradata/oracdg$ ls -lrt
-rw-r----- oracle oinstall Mar : 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 overwritten
Recovery created file /picclife/app/oracle/oradata/orcla/t1.dbf
Successfully added datafile to media recovery
Datafile #: '/picclife/app/oracle/oradata/orcla/t1.dbf'
--17T04::53.261481-: 备库,根据参数,自动创建数据文件,且与主库路径相同。
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$ ls
oracdg orcla orcla.bak
orclb:/picclife/app/oracle/oradata$ cd orcla
orclb:/picclife/app/oracle/oradata/orcla$ ls -lrt
total
-rw-r----- oracle oinstall Mar : 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-: data file : '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'
ORA-: error in identifying file '/picclife/app/oracle/product/12.2.0/db_1/dbs/UNNAMED00005'
ORA-: unable to obtain file status
Linux-x86_64 Error: : No such file or directory
Additional information: 备库处理
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.dbf db_unique_name orcla
db_file_name_convert Null
standby_file_management --全部设置为auto 备1
/picclife/app/oracle/oradata/oracdg/ db_unique_name orclb
db_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
----------- ---------- ---------------------- ---------- --------------- ----- ---------------------------------------- ----------
ORCLA PRIMARY READ WRITE TO STANDBY NO MAXIMUM PERFORMANCE YES SQL> select dest_id,error from v$archive_dest; DEST_ID ERROR
---------- ----------------------------------------------------------------- 原主库:切换为物理备库
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
----------- ---------- ---------------------- ---------- --------------- ----- ---------------------------------------- ----------
ORCLA PHYSICAL STANDBY MOUNTED RECOVERY NEEDED NO MAXIMUM PERFORMANCE YES 备1/
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
----------- ---------- ---------------------- ---------- --------------- ----- ---------------------------------------- ----------
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.dbf
SQL> 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参数导致的数据文件目录不正确现象。
三、问题总结
总结:
.如果备库没有配置standby_file_management=auto参数,则主库创建数据文件,备库接受应用日志后会报错且mrp进程停止应用
.如果备库与主库路径不同,且备库无法创建与主库相同的路径存放文件,则报错且mrp进程停止应用
.配置正确的转换参数+auto参数,则主库创建数据文件,备库能相应进行转换
.dg切换后,配置正确的convert参数,无异常。
5.今后如果还存在dg切换,需要提前查询name路径,及配置正确的convert转换参数
DG_数据文件转换参数测试的更多相关文章
- Spark2 加载保存文件,数据文件转换成数据框dataframe
hadoop fs -put /home/wangxiao/data/ml/Affairs.csv /datafile/wangxiao/ hadoop fs -ls -R /datafiledrwx ...
- 【数据预处理】TIMIT语料库WAV文件转换
1 问题描述 这两天复现代码.先构造数据集,纯净语音.不同噪声.不同SNR的混合语音.其中纯净语音由两部分组成,IEEE corpus和TIMIT. 一开始我用MATLAB中的audioread读取音 ...
- asm和file system之间数据文件的转换
How to move a datafile from a file system to ASMMoving a datafile from the file system can be achive ...
- U盘存放大于4G数据文件且无须格式化U盘的解决方法
现在优盘的容量越来越大了,价格越来越便宜,可是它也有个缺点,因为它默认的文件系统是"FAT32",这种文件系统最大只能保存4G的文件,超过4G的文件就不能保存在优盘上了,这样就不能 ...
- ORACLE 移动数据文件 控制文件 重做日志文件
ORACLE数据库有时候需要对存储进行调整,增加分区.IO调优等等,此时需要移动数据文件.重做日志文件.控制文件等等,下文结合例子总结一下这方面的知识点. 进行数据文件.重做日志文件.控制文件的迁移前 ...
- bbed的使用--查看数据文件信息 & sid信息
1.得到文件的块大小和数据块个数 在Linux和Unix上,oracle提供了一个小工具dbfsize用于查看文件块大小 (可以参看[ID:360032.1]How to detect and fix ...
- nodejs将PDF文件转换成txt文本,并利用python处理转换后的文本文件
目前公司Web服务端的开发是用Nodejs,所以开发功能的话首先使用Nodejs,这也是为什么不直接用python转换的原因. 由于node对文本的处理(提取所需信息)的能力不强,类似于npm上的包: ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件
PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几 ...
随机推荐
- Netbeans and Remote Host for C/C++ Developing
Netbeans and Remote Host for C/C++ Developing 很久以来,因为我不适应在 Linux 下使用 Vim, GCC, GDB 开发 C/C++ 程序,所以我一直 ...
- Android中的task和stack
今天在重新理了一遍intent的过程中发现task是一个神奇的东西,而它又和stack有着很深的联系.task顾名思义是一个任务,但是这个任务可不一定只是来自一个app,比如我用微信来发一张图片,那么 ...
- 在VS2013 使用C语言库函数,出现出现错误,提示使用不安全函数use _CRT_SECURE_NO_WARNINGS
在VS 2013 中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: error C4996: 'scanf': This function or variable may ...
- react-router 4.0(四)跳转404
import React from 'react' import ReactDOM from 'react-dom' import { HashRouter, Route, Link, Prompt, ...
- Assembly Required【思维】
问题 A: Assembly Required 时间限制: 1 Sec 内存限制: 128 MB 提交: 49 解决: 25 [提交] [状态] [命题人:admin] 题目描述 Princess ...
- IdentityServer4 错误解决方案
错误 解决方案 Grant types list cannot contain both xx and xx 以下授权类型不能同时存在: Implicit AuthorizationCode Impl ...
- C# winform 选择文件保存路径
1.winform 点击按钮选择文件保存的路径,效果如下图: 具体代码如下: private void button8_Click(object sender, EventArgs e) { Fold ...
- WebApi 运行原理
1.当请求过来时,首先经过Global 下面的Application_start()方法,在这个方法中注册了WebApiConfig.Register 2.WebApiConfig.Register把 ...
- mockjs学习
mockjs简单学习与应用,可以满足工作所需就行.*************************************************************************** ...
- webapi研究说明
首先定义公共的返回对象 /// <summary> /// 返回数据对象 /// </summary> public class ResponseItem<T> { ...