Oracle中如何设置EXCLUDE后STANDBY数据库只读表空间的恢复

在STANDBY数据库利用RMAN恢复主库上EXCLUDE的只读表空间,碰到了问题。

数据库恢复完成,但是恢复被主库EXCLUDE的只读表空间时,发现无法进行恢复:

RMAN> restore tablespace clubstat2_bak;

Starting restore at 14-FEB-11

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=1094 devtype=DISK

file 22 is excluded from whole database backup

file 25 is excluded from whole database backup

file 28 is excluded from whole database backup

file 30 is excluded from whole database backup

restore not done; all files readonly, offline, or already restored

Finished restore at 14-FEB-11

对于主库而言很简单,只需要利用rman的configure exclude clear命令就可以解决这个问题,但是对于STANDBY数据库而言,这个方法不可行:

RMAN> show exclude;

RMAN configuration parameters are:

CONFIGURE EXCLUDE FOR TABLESPACE 'CLUBSTAT2_BAK';

RMAN> configure exclude for tablespace 'CLUBSTAT2_BAK' clear;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of configure command at 02/14/2011 00:07:48

RMAN-05021: this configuration cannot be changed for a BACKUP or STANDBY control file

错误信息很明确,当前控制文件是STANDBY控制文件,因此无法运行CONFIGURE EXCLUDE命令。

有一个简单的解决方法,就是在主库运行CONFIGURE EXCLUDE FOR TABLESPACE ‘CLUBSTAT2_BAK’ CLEAR命令,然后创建STANDBY CONTROLFILE,利用新创建的STANDBY控制文件恢复这个只读表空间。

但是由于当前目标数据库使用的是ASM,在恢复其他数据文件的时候,新建的数据文件名称和主库的名称并不相同,这些新的名称已经写到控制文件中了,如果使用新的控制文件,还需要手工RENAME所有的数据文件。当然也可以利用新的控制文件恢复只读表空间后,在换回原始的控制文件,不过这种方法就显得相对毕竟麻烦,也容易出错。

最后选择了利用RMAN在主库COPY DATAFILE的方法,生成数据文件的拷贝,将数据文件拷贝ftp到备库中利用catalog datafilecopy命令将数据文件拷贝添加到控制文件中,然后利用copy datafilecopy命令将只读表空间的数据文件拷贝到asm中指定的位置,从而变相的完成了只读表空间的恢复。

时间: 2024-09-20 06:10:17

Oracle中如何设置EXCLUDE后STANDBY数据库只读表空间的恢复的相关文章

命令行中使用oracle命令创建数据库和表空间

本文详细介绍命令行中使用oracle命令创建数据库和表空间 1.使用超级用户登录sqlplus. 2.创建表空间: SQL> create tablespace test 2 datafile 'D:\oracle\oradata\test\test.dbf' 3 size 100M autoextend on next 10M maxsize unlimited extent management local; 3.创建用户和密码: SQL> create user Username ide

ios-iOS中textView设置约束后,在不同模拟器上显示内容位置不一样?

问题描述 iOS中textView设置约束后,在不同模拟器上显示内容位置不一样? iOS中textView在添加约束后,为什么在iphone5和iPhone6的模拟器上显示不一样?就是当内容多于textView高度时,如果你textView的约束是在320宽的xib中限制的,那么textView在iPhone5模拟器上:内容从上面开始显示:在iPhone6模拟器上:内容从下面开始显示.反之,如果你的textView的约束是在宽度为375的xib中限制的,iPhone6模拟器上:内容从上面开始显示

Oracle内核技术揭密. 1.1 区:表空间中的基本单位

1.1 区:表空间中的基本单位 区,Extent,逻辑上连续的空间.它是表空间中空间分配的基本单位.如果在某表空间中创建一个表,哪怕只插入一行,这个表至少也会占一个区. 具体来讲,在Oracle 10g中,如果创建一个新表,初始至少为这个表分配一个区.而在Oracle 11.2.0.3以上版本中,创建新表时默认一个区都不会分配,也就是说,这个表此时不占存储空间.只有在向表中插入第一行数据时,才会默认为表分配第一个区. 无论是Oracle 10g还是Oracle 11GR2,如果表原有区中的空间用

Oracle的数据库、表空间及数据文件简介

数据文件是数据库的物理存储单位,而表空间TableSpace则是数据库的逻辑组成部分.数据库的数据是存储在表空间中的,而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间.一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行. 数据库,表空间,数据文件是紧密关联的,但它们有着重要的区别: 数据库和表空间 一个Oracle数据库由一个或多个叫做表空间的逻辑存储单元组成,表空间存储了所有数据库的数据. 表空间和数据文件 在Or

Oracle数据库创建表空间及用户

摘要: /*createtablespacesystemv datafile'/opt/oracle/oradata/ibm/systemv01.dbf'size10m autoextendon;*/ /*droptablespacesystemv includingcontentsanddatafiles;*/ createuser"SYSTEMV" identifiedby"123456"defaulttablespace"SYSTEMV"

Oracle 表空间时点恢复(TSPITR)

表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式.它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复.那它具体的过程和逻辑是怎样的?下文是其具体的描述. 一.什么是表空间时点恢复 Oracle表空间时点恢复有2个需要理解的概念. 恢复粒度   表空间级别,也就是说恢复的粒度是以表空间为单位 时点恢复   时点恢复意味着是一个不完全恢复.也就是说可以把某个或几个表空间恢复到过去的特定时

[20150408]只读表空间以及数据库恢复2.txt

[20150408]只读表空间以及数据库恢复2.txt --昨天检查时发现1个小问题,就是有1个表空间设置只读,也许某个时间打开变成读写,又设置会只读,而备份仅仅在第1次设置只读时做过1次, --按照道理如果使用原来的备份恢复会存在问题的,自己测试1下,顺便看看有什么变通的方法解决这个问题. 1.建立测试环境: SCOTT@test> @ &r/ver1 PORT_STRING                    VERSION        BANNER ----------------

[20150408]只读表空间以及数据库恢复3.txt

[20150408]只读表空间以及数据库恢复3.txt --昨天检查时发现1个小问题,就是有1个表空间设置只读,也许某个时间打开变成读写,又设置会只读,而备份仅仅在第1次设置只读时做过1次, --按照道理如果使用原来的备份恢复会存在问题的,自己测试1下,我上午已经测试了可以使用以前的做了来恢复,但是这里存在一些小问题, --我在第2次打开读写时,没有任何ddl,dml操作对这个表空间,如果存在这些操作会出现什么情况呢? --继续上午的测试. 1.建立测试环境: SCOTT@test> @ &

Oracle Database 10g:最佳新特性(第三周:表空间管理)

oracle 第三周:表空间管理 名字中包含了什么?:改善的表空间管理 表空间管理得到了重大的改进,这可以归因于一个 sparser SYSTEM.为用户定义一个默认表空间的支持.新的 SYSAUX.甚至重命名 您曾经多少次因用户在 SYSTEM 表空间中创建了非 SYS 和 SYSTEM 的段而伤透脑筋? 在 Oracle9i Database 之前,如果在创建用户时没有指定默认表空间,那么它将默认为 SYSTEM 表空间.如果用户在创建一个段时没有显式地指定一个表空间,那么这个段将在 SYS