oracle查询file_name,Oracle DG环境下db_file_name_convert的实际意义

关于DG环境下备库数据文件重命名的问题:

**前言:**

主要想表明DG环境下备库数据文件重命名的问题,以及db_file_name_convert与log_file_name_convert的作用。

**实验证明:**

主库为备库备份一份控制文件

RMAN> backup current controlfile for standby format '/home/oracle/rman/standby.ctl';

拷贝到备库进行恢复

**备库此时不设置db_file_name_convert ,log_file_name_convert两个参数:**

```

SQL> show parameter db_file_name_convert;

NAME TYPE VALUE

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

db_file_name_convert string

SQL> show parameter log_file_name_convert;

NAME TYPE VALUE

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

log_file_name_convert string

```

**恢复备库控制文件:**

RMAN> restore controlfile from '/home/oracle/rman/standby.ctl';

SQL> alter database mount;

**查看控制文件中记录的数据文件信息:**(proddg2为主库,prod为备库,曾做过主备切换)

```

SQL> select name from v$datafile;

NAME

/oracle/app/oradata/proddg2/system01.dbf

/oracle/app/oradata/proddg2/sysaux01.dbf

/oracle/app/oradata/proddg2/undotbs01.dbf

/oracle/app/oradata/proddg2/users01.dbf

/oracle/app/oradata/proddg2/example01.dbf

SQL> select member from v$logfile;

MEMBER

/oracle/app/oradata/proddg2/redo03.log

/oracle/app/oradata/proddg2/redo02.log

/oracle/app/oradata/proddg2/redo01.log

/oracle/app/oradata/proddg2/std_redo04.log

/oracle/app/oradata/proddg2/std_redo05.log

/oracle/app/oradata/proddg2/std_redo06.log

```

控制文件中记录的数据文件位置都是主库的,进行restore前,需要进行数据文件重命名

**手动重命名:**

```

SQL> set line 500

SQL> set pages 0

SQL> select q'[alter database rename file ']' || name || q'[' to ]' || q'['/oracle/app/oradata/prod/]' || substr(name,instr(name,'/',-1)+1) || q'[';]' from v$datafile;

执行:

alter database rename file '/oracle/app/oradata/proddg2/system01.dbf' to '/oracle/app/oradata/prod/system01.dbf';

alter database rename file '/oracle/app/oradata/proddg2/sysaux01.dbf' to '/oracle/app/oradata/prod/sysaux01.dbf';

alter database rename file '/oracle/app/oradata/proddg2/undotbs01.dbf' to '/oracle/app/oradata/prod/undotbs01.dbf';

alter database rename file '/oracle/app/oradata/proddg2/users01.dbf' to '/oracle/app/oradata/prod/users01.dbf';

alter database rename file '/oracle/app/oradata/proddg2/example01.dbf' to '/oracle/app/oradata/prod/example01.dbf';

ERROR at line 1:

ORA-01511: error in renaming log/data files

ORA-01141: error renaming data file 1 - new file '/oracle/app/oradata/prod/system01.dbf' not found

ORA-01110: data file 1: '/oracle/app/oradata/proddg2/system01.dbf'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

```

**使用sqlplus手动进行重命名,重命名后的文件要在指定目录存在。(适用于热备份方式同步搭建DG)**

**使用RMAN在restore前重命名:**

```

SQL> select q'[set newname for datafile ']' || name || q'[' to ]' || q'['/oracle/app/oradata/prod/]' || substr(name,instr(name,'/',-1)+1) || q'[';]' from v$datafile;

```

将获取到的内容复制到RMAN命令块中形成脚本

```

recovery.sh:

rman target / log=recover_log << EOF

run

{

allocate channel d1 device type disk;

allocate channel d2 device type disk;

allocate channel d3 device type disk;

catalog start with '/home/oracle/rman';

set newname for datafile '/oracle/app/oradata/proddg2/system01.dbf' to '/oracle/app/oradata/prod/system01.dbf';

set newname for datafile '/oracle/app/oradata/proddg2/sysaux01.dbf' to '/oracle/app/oradata/prod/sysaux01.dbf';

set newname for datafile '/oracle/app/oradata/proddg2/undotbs01.dbf' to '/oracle/app/oradata/prod/undotbs01.dbf';

set newname for datafile '/oracle/app/oradata/proddg2/users01.dbf' to '/oracle/app/oradata/prod/users01.dbf';

set newname for datafile '/oracle/app/oradata/proddg2/example01.dbf' to '/oracle/app/oradata/prod/example01.dbf';

release channel d1;

release channel d2;

release channel d3;

restore database;

switch datafile all;

}

exit

EOF

```

Recovery Manager complete.

**查看数据文件以及日志文件的记录:**

**数据文件:**

```

SQL> select name from v$datafile;

NAME

/oracle/app/oradata/prod/system01.dbf

/oracle/app/oradata/prod/sysaux01.dbf

/oracle/app/oradata/prod/undotbs01.dbf

/oracle/app/oradata/prod/users01.dbf

/oracle/app/oradata/prod/example01.dbf

```

数据文件重命名成功也恢复成功。

**日志文件:**

```

SQL> select member from v$logfile;

MEMBER

/oracle/app/oradata/proddg2/redo03.log

/oracle/app/oradata/proddg2/redo02.log

/oracle/app/oradata/proddg2/redo01.log

/oracle/app/oradata/proddg2/std_redo04.log

/oracle/app/oradata/proddg2/std_redo05.log

/oracle/app/oradata/proddg2/std_redo06.log

```

**日志文件还需要手动重命名,因为不存在proddg2目录,重命名至prod目录下**

**(日志文件是可以在sqlplus中mount状态下重命名的,不需要在对应目录存在日志文件)。**

**2.如果在备库此时存在如下参数时的情况:**

```

db_file_name_convert =/oracle/app/oradata/proddg2, /oracle/app/oradata/prod

log_file_name_convert=/oracle/app/oradata/proddg2, /oracle/app/oradata/prod

```

**恢复备库的控制文件:**

```

RMAN> restore controlfile from '/home/oracle/rman/standby.ctl';

SQL> alter database mount;

Database altered.

```

**查看数据文件与日志文件信息:**

```

SQL> select name from v$datafile;

NAME

/oracle/app/oradata/prod/system01.dbf

/oracle/app/oradata/prod/sysaux01.dbf

/oracle/app/oradata/prod/undotbs01.dbf

/oracle/app/oradata/prod/users01.dbf

/oracle/app/oradata/prod/example01.dbf

SQL> select member from v$logfile;

MEMBER

/oracle/app/oradata/prod/redo03.log

/oracle/app/oradata/prod/redo02.log

/oracle/app/oradata/prod/redo01.log

/oracle/app/oradata/prod/std_redo04.log

/oracle/app/oradata/prod/std_redo05.log

/oracle/app/oradata/prod/std_redo06.log

```

**再直接使用RMAN执行restore database即可。**

```

RMAN> restore database;

```

**总结:**

两种方式将主库的控制文件传给备库。

**1**.alter database create standby controlfile as '/home/oracle/control01.ctl';

```

拷贝到备库,将数据库启动到mount模式后,需要手动进行数据文件重命名,**但是要保证重命名后的路径下存在相应的数据文件。**

//该控制文件中记录的数据文件路径仍为主库的数据文件路径。

```

2.backup current controlfile for standby format '/home/oracle/%d_%I_%s_%p.bkp';

```

使用RMAN备份的控制文件,拷贝到备库时,使用RMAN进行恢复控制文件时

如果备库设置了db_file_name_convert与log_file_name_convert参数,

那么当数据库启动到mount时,就无需手动进行数据文件重命名,因为RMAN在恢复控制文件过程中,会依据该参数设置,自行修改控制文件中记录的数据文件路径日志文件路径。

如果备库没有设置db_file_name_convert与log_file_name_convert参数

那么就需要在restore前在RMAN的run块中对数据文件进行set new name 然后执行switch datafile all。

但是日志文件还是需要手动重命名。

```

3.另外意义

```

db_file_name_convert与log_file_name_convert参数的另外一个意义就是当主库创建数据文件等操作时,备库会根据该参数转化路径后自动创建一个相对应位置的数据文件,前提是STANDBY_FILE_MANAGEMENT参数为auto模式。

```

**疑问:备库的redo与standby redo是如何生成的,何时生成的。**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python收集数据程序_用一行Python代码进行数据收集探索!Python真牛逼!

简易的Pandas之路 任何使用P ython数据的人都会熟悉Pandas包。P andas是大多数行和列格式数据的go-to包。 如果你没有Pandas&#xff0c;请确保在终端中使用pip install安装&#xff1a; pip install pandas 现在&#xff0c;让我们看看Pandas包中的默认方法可以做些什么&#…

java使用缓冲区读取文件_在Java中使用Google的协议缓冲区

java使用缓冲区读取文件最近发布了 有效的Java第三版 &#xff0c;我一直对确定此类Java开发书籍的更新感兴趣&#xff0c;该书籍的最新版本仅通过Java 6进行了介绍 。 在此版本中&#xff0c;显然存在与Java 7 &#xff0c; Java 8和Java 9密切相关的全新项目&#xff0c;例如…

浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- sysvinit/systemvinit(System V init)

文章目录从 sysvinit 到 systemd什么是 init 系统,init 系统的历史和现状sysvinit 概况运行级别sysvinit 运行顺序sysvinit 和系统关闭sysvinit 的管理和控制功能haltinitkillall5lastlastbmesgpidofpoweroffrebootrunlevelshutdownsulogintelinitutmpdumpwallsysvinit 的小结从…

php /usr/lib/libjpeg.so.62,linux PHP的装配

linux PHP的安装2. 红帽Linux PHP2.1. 安装linux PHP查看系统是否自带了php&#xff0c;若自带先卸载&#xff0c;否则安装后会出错。(1)下载php源文件php-5.3.6.tar.gz&#xff0c;地址为http://cn2.php.net/downloads.php(2)执行如下命令&#xff0c;解压源文件&#xff0c;以…

linux多用户运行同一程序_linux系统中CentOS有哪些优势,让它长盛不衰?

CentOS是目前评价和口碑都不错的linux系统&#xff0c;甚至很多公司安装的都是CentOS系统&#xff0c;对于初入门的小白可能不了解这个系统&#xff0c;今天我们就整理一下CentOS系统的七大优势。1. 开源、免费众所周知&#xff0c;不管是微软的 Windows 还是苹果的 macOS&…

代码注释掉还能执行_日志消息是可执行代码和注释

代码注释掉还能执行尽管在一个人的代码中应添加多少注释之间存在意见分歧&#xff0c;但我认为可以肯定地说&#xff0c;大多数开发人员都同意以下代码段中的注释是多余的&#xff1a; // increment the total total;在该示例中&#xff0c;代码很简单&#xff0c;而且实际上是…

浅析 Linux 初始化系统(系统服务管理和控制程序/init system) -- UpStart

文章目录一、Upstart 简介&#xff08;一&#xff09;开发 Upstart 的缘由&#xff08;二&#xff09;Upstart 的特点二、Upstart 概念和术语&#xff08;一&#xff09;Job&#xff08;二&#xff09;Job 生命周期&#xff08;三&#xff09;事件 Event1.Signals2.Methods3.Ho…

php如何在类的外部修改成员属性,php中如何在外部修改类的私有或受保护属性值...

php中怎么在外部修改类的私有或受保护属性值在做单元测试框架时&#xff0c;发现了个比较郁闷的问题&#xff1a;测试人员需要在类外修改类的private或protected成员变量的值&#xff0c;而这些变量没有抽象成public的属性&#xff0c;同时为了代码量的问题&#xff0c;也不可能…

telnet到设备里 php_金融行业思科设备典型网络故障案例:76系列典型案例(一)...

一、Cisco 7606主备引擎自动切换01故障现象某行上联路由器cisco7606 x月x日引擎自行切换&#xff0c;这种情况是第一次发生&#xff0c;至今仍是备引擎是active&#xff0c;主引擎是standby。02分析过程思科TAC提取了log日志和crashinfo信息&#xff1a;Previous engine detect…

白盒测试方法静态分析_静态分析的教育方面

白盒测试方法静态分析加入我们项目的新程序员经常问我们是否有自动格式化工具&#xff0c;以使Java代码看起来完全像Qulice期望的那样。 &#xff08;Quili是我们使用的静态分析器。&#xff09;我总是回答说&#xff0c;拥有这样一个自动代码抛光器只会有害&#xff0c;并且不…

php 去除图片黑边,C#_c#扫描图片去黑边(扫描仪去黑边),自动去除图像扫描黑边复制代 - phpStudy...

/// /// 自动去除图像扫描黑边/// /// public static void AutoCutBlackEdge(string fileName){//打开图像Bitmap bmp OpenImage(fileName);RemoveBlackEdge(bmp);//保存图像SaveImage(bmp, fileName);}private static byte[] rgbValues; // 目标数组内存/// /// 图像去黑边//…

《标准普通话教程》中对平舌音的发音方法的说明

《标准普通话教程》中关于平舌音的发音方法的描述&#xff1a; 第一个版本&#xff1a;大部分教材和老师 平舌音发音时&#xff0c;舌尖放在下齿背&#xff08;下齿龈&#xff09; 第二个版本&#xff1a;少部分教材和老师 平舌音发音时&#xff0c;舌尖放在下齿背&#xff0…

java javadoc_使用Java 9向Javadoc搜索添加术语

java javadoc有一个相对较旧的网页&#xff0c;称为“ Proposed Javadoc Tags ”&#xff0c;最初似乎是与Javadoc 1.2一起编写的&#xff0c;其中列出了“ Sun有朝一日可能会在Javadoc中实现的标签”。 在此列表中的标签是category &#xff0c; example &#xff0c; tutoria…

oracle system用户创建job 其他用户,oracle创建表空间、用户和表以及sys和system的区别...

一、oracle的3个内置账号(口令管理)scott(示范账户) tiger 内置账号system 系统管理员 操作用户sys 超级管理员 操作数据conn system/sasa;show user登录超级用户conn a/b as sysdba 或者 sysopera/b任何账号密码都可以(只能在服务端(安装数据的电脑)上运行更改用户密码&#x…

浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- systemd

文章目录一、Systemd 的简介和特点&#xff08;一&#xff09;同 SysVinit 和 LSB init scripts 兼容&#xff08;二&#xff09;更快的启动速度&#xff08;三&#xff09;systemd 提供按需启动能力&#xff08;四&#xff09;Systemd 采用 Linux 的 Cgroup 特性跟踪和管理进程…

查询 service monitor 时发生内部错误_通过Service访问应用 (1)

目录通过Service访问应用通过Pod IP访问应用 通过ClusterIP Service在集群内部访问 通过Service访问应用通过之前的操作&#xff0c;应用部署完成了&#xff0c;我们的Demo网站已经成功启动了&#xff0c;那么如何访问网站呢&#xff1f;通过Pod IP访问应用我们可以通过Pod IP来…

jdk 8 时区 转换_使用JDK 8将收藏转换为地图

jdk 8 时区 转换我多次遇到这样的情况&#xff0c;希望将多个对象存储在Map中而不是Set或List中&#xff0c;因为将唯一标识信息的Map应用于对象有一些优势 。 Java 8通过流和Collectors.toMap&#xff08;…&#xff09;方法使翻译变得比以往更加容易。 使用Map而不是Set的一…

开源备份软件 oracle,oracle备份和恢复

最好把所有表删掉重新导入&#xff0c;表字段改变不会还原出来 &#xff0c;只会还原数据1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp system/managerTest filed:\DB_backup\GWAMQA_Oracle\GWAM_Dev_201410311059.dmp fully2 将数据库中system用…

c语言 方程改main的值_C语言编程笔记丨编写第一个C语言程序hello world,我教你哇...

如果用C语言输出&#xff1a;Hello&#xff0c;world&#xff01;&#xff0c;该如何编写程序&#xff1f;**代码如下&#xff1a;**#include//包含标准库的信息main()//定义名为main的函数&#xff0c;不接受参数值{//main函数的语句都放在花括号中&#xff0c;也表示函数体的…

iPhone 手机/苹果手机如何设置来电铃声?

文章目录方法一、使用 APP 库乐队设置方法二、使用第三方软件「爱思助手」设置方法一、使用 APP 库乐队设置 详见《iPhone 手机设置铃声简易教程》 方法二、使用第三方软件「爱思助手」设置 详见《苹果 iPhone 手机怎么设置铃声》