oracle rman恢复表空间,Oracle 11g RMAN恢复-只读表空间的恢复

--0.场景模拟

--0.1查看表空间,创建一个表,并将其中一个表空间置为只读

sys@TESTDB11>selecttablespace_name,file_namefromdba_data_files;

TABLESPACE_NAMEFILE_NAME

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

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

EXAMPLE/oradata/example01.dbf

USERS/oradata/users01.dbf

UNDOTBS1/oradata/undotbs01.dbf

SYSAUX/oradata/sysaux01.dbf

SYSTEM/oradata/system01.dbf

NEWTS/oradata/newts01.dbf

FBTBS/oradata/fbtbs01.dbf

MYNEWTS/oradata/mynewts01.dbf

USERS/oradata/users02.dbf

9rowsselected.

--0.2在选择的表空间下创建一个表

scott@TESTDB11>createtabletab_mynewts

tablespace mynewtsasselect*fromdept;

Tablecreated.

--0.3查看数据

scott@TESTDB11>select*fromtab_mynewts;

DEPTNO DNAMELOC

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

10ACCOUNTINGNEWYORK

20RESEARCHDALLAS

30SALESCHICAGO

40OPERATIONSBOSTON

--0.4将表空间改为只读

sys@TESTDB11>altertablespace

mynewtsreadonly;

Tablespace altered.

--题外话,开始

--打开备份优化,开一下并行

RMAN>showall;

RMAN configurationparametersfordatabasewithdb_unique_name TESTDB11are:

CONFIGURE RETENTION POLICYTOREDUNDANCY1;#default

CONFIGURE BACKUP OPTIMIZATIONOFF;#default

CONFIGUREDEFAULTDEVICETYPETODISK;#default

CONFIGURE CONTROLFILE AUTOBACKUPON;

CONFIGURE CONTROLFILE AUTOBACKUPFORMATFORDEVICETYPEDISKTO'%F';#default

CONFIGURE DEVICETYPEDISK PARALLELISM1BACKUPTYPETOBACKUPSET;

CONFIGURE DATAFILE BACKUP COPIESFORDEVICETYPEDISKTO1;#default

CONFIGURE ARCHIVELOG BACKUP COPIESFORDEVICETYPEDISKTO1;#default

CONFIGURE CHANNEL1DEVICETYPEDISKFORMAT'/pooldisk02/backup03/%U';

CONFIGURE CHANNEL2DEVICETYPEDISKFORMAT'/pooldisk02/backup04/%U';

CONFIGURE MAXSETSIZETOUNLIMITED;#default

CONFIGURE ENCRYPTIONFORDATABASEOFF;#default

CONFIGURE ENCRYPTION ALGORITHM'AES128';#default

CONFIGURE COMPRESSION ALGORITHM'BASIC'ASOFRELEASE'DEFAULT'OPTIMIZEFORLOADTRUE;#default

CONFIGURE ARCHIVELOG DELETION POLICYTONONE;#default

CONFIGURE SNAPSHOT CONTROLFILE NAMETO'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_TestDB11.f';#default

--打开优化

RMAN>CONFIGURE BACKUP OPTIMIZATIONon;

newRMAN configurationparameters:

CONFIGURE BACKUP OPTIMIZATIONON;

newRMAN configurationparametersaresuccessfully

stored

--配置并行

RMAN>CONFIGURE DEVICETYPEDISK PARALLELISM2BACKUPTYPETOBACKUPSET;

oldRMAN configurationparameters:

CONFIGURE DEVICETYPEDISK PARALLELISM1BACKUPTYPETOBACKUPSET;

newRMAN configurationparameters:

CONFIGURE DEVICETYPEDISK PARALLELISM2BACKUPTYPETOBACKUPSET;

newRMAN configurationparametersaresuccessfully

stored

released channel:ORA_DISK_1

--备份数据库

RMAN>backup database;

Starting backupat15-AUG-13

allocated channel:ORA_DISK_1

channel ORA_DISK_1:SID=18devicetype=DISK

allocated channel:ORA_DISK_2

channel ORA_DISK_2:SID=44devicetype=DISK

channel ORA_DISK_1:starting full datafile backupset

channel ORA_DISK_1:specifying datafile(s)inbackupset

inputdatafilefilenumber=00001name=/oradata/system01.dbf

inputdatafilefilenumber=00003name=/oradata/undotbs01.dbf

inputdatafilefilenumber=00008name=/oradata/users02.dbf

inputdatafilefilenumber=00009name=/oradata/mynewts01.dbf

inputdatafilefilenumber=00007name=/oradata/fbtbs01.dbf

channel ORA_DISK_1:starting piece1at15-AUG-13

channel ORA_DISK_2:starting full datafile backupset

channel ORA_DISK_2:specifying datafile(s)inbackupset

inputdatafilefilenumber=00002name=/oradata/sysaux01.dbf

inputdatafilefilenumber=00005name=/oradata/example01.dbf

inputdatafilefilenumber=00006name=/oradata/newts01.dbf

inputdatafilefilenumber=00004name=/oradata/users01.dbf

channel ORA_DISK_2:starting piece1at15-AUG-13

channel ORA_DISK_1:finished piece1at15-AUG-13

piece handle=/pooldisk02/backup03/3vohba2h_1_1 tag=TAG20130815T064849comment=NONE

channel ORA_DISK_1:backupsetcomplete,elapsedtime:00:01:17

channel ORA_DISK_2:finished piece1at15-AUG-13

piece handle=/pooldisk02/backup04/40ohba2h_1_1 tag=TAG20130815T064849comment=NONE

channel ORA_DISK_2:backupsetcomplete,elapsedtime:00:01:27

Finished backupat15-AUG-13

Starting ControlFileandSPFILE Autobackupat15-AUG-13

piece handle=/u01/app/oracle/fast_recovery_area/TESTDB11/autobackup/2013_08_15/o1_mf_s_823503016_90sj3sph_.bkpcomment=NONE

Finished ControlFileandSPFILE Autobackupat15-AUG-13

RMAN>reportschema;

Reportofdatabaseschemafordatabasewithdb_unique_name TESTDB11

ListofPermanent Datafiles

===========================

FileSize(MB)TablespaceRB segs

Datafile Name

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

1750SYSTEM***/oradata/system01.dbf

2740SYSAUX***/oradata/sysaux01.dbf

3290UNDOTBS1***/oradata/undotbs01.dbf

46USERS***/oradata/users01.dbf

5345EXAMPLE***/oradata/example01.dbf

620NEWTS***/oradata/newts01.dbf

7200FBTBS***/oradata/fbtbs01.dbf

850USERS***/oradata/users02.dbf

920MYNEWTS***/oradata/mynewts01.dbf

ListofTemporaryFiles

=======================

FileSize(MB)TablespaceMaxsize(MB)Tempfile Name

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

1500TEMP500/oradata/temp01.dbf

--查看当前的保留策略为冗余度为1

RMAN>show retention policy;

RMAN configurationparametersfordatabasewithdb_unique_name TESTDB11are:

CONFIGURE RETENTION POLICYTOREDUNDANCY1;#default

--因为目前已经有2个备份了,满足冗余度1,所以再做备份,就会忽略对只读表空间和脱机数据文件的备份

RMAN>backup database;

Starting backupat15-AUG-13

usingchannel ORA_DISK_1

usingchannel ORA_DISK_2

skipping datafile9;already backed

up2time(s)

channel ORA_DISK_1:starting full datafile backupset

channel ORA_DISK_1:specifying datafile(s)inbackupset

inputdatafilefilenumber=00002name=/oradata/sysaux01.dbf

inputdatafilefilenumber=00005name=/oradata/example01.dbf

inputdatafilefilenumber=00006name=/oradata/newts01.dbf

inputdatafilefilenumber=00007name=/oradata/fbtbs01.dbf

channel ORA_DISK_1:starting piece1at15-AUG-13

channel ORA_DISK_2:starting full datafile backupset

channel ORA_DISK_2:specifying datafile(s)inbackupset

inputdatafilefilenumber=00001name=/oradata/system01.dbf

inputdatafilefilenumber=00003name=/oradata/undotbs01.dbf

inputdatafilefilenumber=00008name=/oradata/users02.dbf

inputdatafilefilenumber=00004name=/oradata/users01.dbf

channel ORA_DISK_2:starting piece1at15-AUG-13

channel ORA_DISK_1:finished piece1at15-AUG-13

piece handle=/pooldisk02/backup03/45ohbalv_1_1 tag=TAG20130815T065911comment=NONE

channel ORA_DISK_1:backupsetcomplete,elapsedtime:00:01:35

channel ORA_DISK_2:finished piece1at15-AUG-13

piece handle=/pooldisk02/backup04/46ohbalv_1_1 tag=TAG20130815T065911comment=NONE

channel ORA_DISK_2:backupsetcomplete,elapsedtime:00:02:05

Finished backupat15-AUG-13

Starting ControlFileandSPFILE Autobackupat15-AUG-13

piece handle=/u01/app/oracle/fast_recovery_area/TESTDB11/autobackup/2013_08_15/o1_mf_s_823503676_90sjrff6_.bkpcomment=NONE

Finished ControlFileandSPFILE Autobackupat15-AUG-13

--删除所有的备份,重新做全库非一致备份,清理一下空间

RMAN>deletebackup;

RMAN>backup database;

--题外话结束

--0.5只读表空间下的数据文件损坏

[oracle@S1011:/export/home/oracle]$ rm/oradata/mynewts01.dbf

--0.6查询数据,发现文件丢失

sys@TESTDB11>altersystem flush

buffer_cache;

System altered.

scott@TESTDB11>select*fromtab_mynewts;

select*fromtab_mynewts

*

ERRORatline1:

ORA-01116:errorinopening databasefile9

ORA-01110:datafile9:'/oradata/mynewts01.dbf'

ORA-27041:unabletoopenfile

Solaris-AMD64 Error:2:Nosuchfileordirectory

Additional information:3

--1.使用rman解决问题

RMAN>run{

2>sql'alter database datafile 9 offline';

3>restore datafile9;

4>sql'alter database datafile 9 online';

5>}

sqlstatement:alterdatabase datafile9offline

Starting restoreat15-AUG-13

usingchannel ORA_DISK_1

usingchannel ORA_DISK_2

channel ORA_DISK_1:starting datafile backupsetrestore

channel ORA_DISK_1:specifying datafile(s)torestorefrombackupset

channel ORA_DISK_1:restoring datafile00009to/oradata/mynewts01.dbf

channel ORA_DISK_1:readingfrombackup piece/pooldisk02/backup03/4cohbbvc_1_1

channel ORA_DISK_1:piece handle=/pooldisk02/backup03/4cohbbvc_1_1 tag=TAG20130815T072116

channel ORA_DISK_1:restored backup piece1

channel ORA_DISK_1:restore complete,elapsedtime:00:00:03

Finished restoreat15-AUG-13

sqlstatement:alterdatabase datafile9online

--2.验证数据

scott@TESTDB11>select*fromtab_mynewts;

DEPTNO DNAMELOC

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

10ACCOUNTINGNEWYORK

20RESEARCHDALLAS

30SALESCHICAGO

40OPERATIONSBOSTON

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Oracle 数据库中,只读表空间无法进行更新操作,因此需要采用特殊的方式进行恢复。以下是在使用 RMAN 进行只读表空间恢复的步骤: 1. 在正常情况下,只读表空间无法进行备份。因此,我们需要在只读表空间变为可写状态之后进行备份。可以使用以下命令将只读表空间变为可写状态: ``` ALTER TABLESPACE tablespace_name READ WRITE; ``` 2. 确认只读表空间已经变为可写状态,并且进行备份。 3. 当只读表空间出现问题需要恢复时,需要先将只读表空间变为可写状态。可以使用以下命令将只读表空间变为可写状态: ``` ALTER TABLESPACE tablespace_name READ WRITE; ``` 4. 使用 RMAN 进行恢复操作。可以使用以下命令进行只读表空间恢复: ``` RMAN> RUN { SET NEWNAME FOR DATAFILE 'datafile_path' TO 'new_datafile_path'; RESTORE TABLESPACE tablespace_name; RECOVER TABLESPACE tablespace_name; } ``` 其中,`datafile_path` 是只读表空间的数据文件路径,`new_datafile_path` 是恢复后的数据文件路径。 5. 恢复完成后,将只读表空间变为只读状态。可以使用以下命令将只读表空间变为只读状态: ``` ALTER TABLESPACE tablespace_name READ ONLY; ``` 以上就是使用 RMAN 进行只读表空间恢复的步骤。需要注意的是,在进行只读表空间恢复前,必须将只读表空间变为可写状态,并进行备份。 ### 回答2: OracleRMAN(Recovery Manager)是一个备份和恢复工具,用于管理数据库的备份和恢复操作。在恢复只读表空间时,我们可以按照以下步骤进行操作: 1. 首先,使用RMAN备份只读表空间。我们可以使用备份命令将只读表空间备份到一个可用的位置,以便在恢复过程中将其还原回数据库。例如,可以使用类似如下的备份命令: RMAN> BACKUP TABLESPACE tablespacename; 2. 在确认备份已经完成后,我们可以开始恢复只读表空间。首先,将只读表空间离线,并清空表空间。可以使用以下SQL语句来执行此操作: SQL> ALTER TABLESPACE tablespacename OFFLINE IMMEDIATE; SQL> DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES; 3. 接下来,使用RMAN将备份的只读表空间还原到数据库。我们可以使用如下命令将备份的只读表空间还原到数据库中: RMAN> RESTORE TABLESPACE tablespacename; 4. 在还原完成后,将只读表空间重新设置为只读模式。使用以下SQL语句来执行此操作: SQL> ALTER TABLESPACE tablespacename READ ONLY; 通过以上步骤,我们可以使用RMAN备份和恢复工具来成功恢复只读表空间。需要注意的是,恢复只读表空间时需要进行足够的备份,以便能够还原到最近可用的状态,并确保在恢复过程中不会丢失任何数据。 ### 回答3: OracleRMAN(Recovery Manager)可以用于恢复只读表空间。以下是恢复只读表空间的步骤: 1. 首先,确定需要恢复只读表空间的名称。可以通过查询数据库的v$tablespace视图来获取表空间的信息。 2. 在RMAN命令行界面中,连接到目标数据库。 3. 运行以下命令来将表空间置为可读写状态: ``` SQL 'ALTER TABLESPACE <tablespace_name> READ WRITE'; ``` 4. 运行以下命令来检测并修复表空间的结构问题: ``` RECOVER TABLESPACE <tablespace_name>; ``` 5. 运行以下命令来还原和恢复表空间中的数据文件: ``` RESTORE TABLESPACE <tablespace_name>; RECOVER TABLESPACE <tablespace_name>; ``` 6. 最后,将表空间设置为只读状态: ``` SQL 'ALTER TABLESPACE <tablespace_name> READ ONLY'; ``` 需要注意的是,在执行恢复操作之前,最好备份数据库以及相关的数据文件。此外,恢复只读表空间可能需要一定的时间,具体取决于表空间大小和系统配置。 总之,使用RMAN工具可以方便地恢复只读表空间,确保数据库的完整性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值