Oracle 11g的dataguard创建中ORA-01665解决过程

Oracle 11g在创建data guard时,恢复standby控制文件不成功。在mount standby database时告诉我,控制文件不是standby控制文件,具体信息为“ORA-01665: control file is not a standby control file”。

控制文件我在主库中,使用rman生成的。

backup current controlfile for standby format ‘xxxxxx/ctl.stdy‘;

拷贝到备库上恢复。按照10g的操作习惯,使用rman工具进行恢复操作。

在11g的RMAN工具做了不少改动,如加了set功能直接修改生成适用于standby的spfile文件,个人觉得是鸡肋。我手工编辑修改比这里敲命令操作爽多了。

还有这里恢复standby controlfile时,要手工指定,我恢复的控制文件是用于standby,否则就不行了。

restore controlfile from ‘/u01/backup/db7881/ctl.stdy‘;

恢复是恢复了,但在mount standby database时,出错。

SQL> alter database mount standby database;

alter database mount standby database

*

ERROR at line 1:

ORA-01665: control file is not a standby control file

如果不做standby database的mount,那么则可以mount成功。

SQL> alter database mount;

Database altered.

这点证明我的备份介质是没有问题的。检查一下控制文件的类型,不是我需要的standby类型。

SQL> select controlfile_type from v$database;

CONTROL

-------

BACKUP

好,再回到11g rman的恢复控制文件的操作上来。

RMAN 工具的restore 的restoreobject,有一项是standby controlfile.

STANDBY CONTROLFILE Restores a control file for a standby database. RMAN can transparently restore a normal control file backup and make it usable for a standby database.

RMAN restores either a normal or standby control file as appropriate, depending on the most recent database role known to the recovery catalog (RC_SITE.DATABASE_ROLE) for the target database. The purpose of this option to override the default
setting in cases where the most recent database role is out-of-date. Assume that you perform a switchover from primary database dgny to standby database dgsf, so that dgsf is the new primary database. Later, you make dgny a standby database for dgsf. You want
to restore a control file on dgny, but the recovery catalog was not resynchronized and still shows dgny as a primary database. In this case, you can specify STANDBY CONTROLFILE to override the default RMAN behavior and restore a standby control file.

If you restore the control file of a database whose DB_UNIQUE_NAME is known to the recovery catalog, then RMAN updates all filenames in the control file to filenames known to the recovery catalog. Any filenames explicitly renamed with ALTER DATABASE
RENAME FILE take precedence over the filenames in the recovery catalog.

See Also: Table 2-36 for restrictions and usage notes

Note: You must always run the RECOVER command after mounting a restored control file, and must also always open the database with the RESETLOGS option.

使用”restore standby controlfile“ 进行恢复操作,成功。

RMAN> restore standby controlfile from ‘/u01/backup/db7881/ctl.stdy‘;

Starting restore at 07-JAN-15

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=62 device type=DISK

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:02

output file name=+VG1/db7881dg/controlfile/current.447.868357987

output file name=+VG1/db7881dg/controlfile/current.507.868357987

Finished restore at 07-JAN-15

数据库可以恢复控制文件后,检查v$database的controlfile_type,已经是我们需要的类型了。

SQL> alter database mount standby database;

Database altered.

SQL> select controlfile_type from v$database;

CONTROL

-------

STANDBY

--end.

时间: 2024-11-01 12:21:13

Oracle 11g的dataguard创建中ORA-01665解决过程的相关文章

ORACLE 11G 之DATAGUARD搭建逻辑standby

Oracle Data Guard逻辑备库是利用主库的一个备份首先建立一个物理备库,然后再将其转换为逻辑备库.这之后主库将日志传递到备库,备库利用logminer从主库的日志中解析出主库所执行过的SQL,在备库上重新执行一遍,从而保证与主库的数据在逻辑上保持一致.与物理备库相对应的是,物理备库使用的是redo apply,逻辑备库使用的是sql apply.因此逻辑备库仅仅保证数据与主库是在逻辑上是一致的,从而逻辑备库可以处于open状态下并进行相应的DML操作. 在转换physical备库到l

关于oracle 11g导出数据时 报 ORA 1455错误的处理

由于导出的该用户的表可能存在空数据表,那么可能就会出现此其异常. 首先: 查看: SQL>show parameter deferred_segment_creation; 如果为TRUE,则将该参数改为FALSE: 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 然后: 可以针对数据表.索引.物化视图等手工分配Extent SQL>Select 'alter table '||table_n

oracle 11g 从 dmp 文件中导出 sql 代码 的方法.

impdp sys/password full=y dumpfile=bg.dmp nologfile=y sqlfile=bg_dmp.sql 备注: bg.dmp 是 dmp 文件,   bg_dmp.sql 是导出来的 SQL  代码.   导出的文件和代码都存放在:oracle 安装目录:  app/oracle/admin/ORCL/dpdump 文件夹下面. oracle 11g 从 dmp 文件中导出 sql 代码 的方法.

Oracle 11g下自动创建分区

11g之前,维护分区需要手工.11g之后使用interval来实现自动扩展分区,简化了维护. 根据年  INTERVAL(NUMTOYMINTERVAL(1,'YEAR')) 根据月  INTERVAL(NUMTOYMINTERVAL(1,'MONTH')) 根据天  INTERVAL(NUMTODSINTERVAL(1,'DAY')) 下面用按月自动扩展来做个试验: SQL> create table t_range (id number not null PRIMARY KEY, test_

Oracle 11g下ORA-00119和ORA-00132错误的解决

在启动数据库时出现下列错误 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon May 5 21:56:00 2014 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Connected to an idle instance. [email protected]>startupORA-00119: inv

Oracle 11g sys,system 密码忘记设置解决办法

原文:Oracle 11g sys,system 密码忘记设置解决办法 1.启动sqlplus 2.请输入用户名:  sqlplus/as sysdba 3.输入口令: 直接回车 4.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

CentOS 5.11下Oracle 11G R2 Dataguard搭建

Datagard算是Oracle企业版的一种容灾方案,在企业中广泛应用,我就将搭建过程记录下来以作备用. 主机名    数据库版本    实例名    IP db1    Oracle 11G R2    member    172.16.1.250 db2    Oracle 11G R2    member    172.16.1.251 默认情况下以上都已经安装好了Oracle数据库,但是只在db1上建立了数据库和监听,db2只安装Oracle软件不建库,不建监听. 目录: 打开强制归档日

Oracle 11g Active Dataguard (RAC)的配置

一:环境介绍主库(RAC)IP地址:192.168.1.210,192.168.1.211操作系统版本:ole5.8 64bit数据库版本:11.2.0.4 64bit数据库sid名:MECBS1,MECBS2数据库主机名:node1,node2数据库db_unique_name:MECBS 备库1  物理备库 (只安装oracle数据库软件,无需建库)IP地址:192.168.1.219操作系统版本:ole5.8 64bit数据库版本:11.2.0.4 64bit数据库sid名:PHUB数据库

Oracle 11g RAC环境下的ORA - 19606问题

在刚刚接手Oracle时,这个问题困扰了我一段时间,现在将问题的解决过程分享一下 Oracle版本:11gR2 OS环境:Centos6.4 问题重现: 1. 接手数据库是写了一个备份脚本,脚本内容如下: ----------------------------------------------------------------------------------------------------------------------------------- # !/bin/bash# N