• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【非关键性数据文件丢失(可以脱机数据文件的丢失)-恢复-1】

mysql 搞代码 4年前 (2022-01-09) 84次浏览 已收录 0个评论

非关键性数据文件丢失(可以脱机数据文件的丢失): run{sql alter database datafile offline;restore datafile ;recover datafile ;slq alter database datafile online;} 除了system、undo_tablespace参数后值对应的表空间都可以采用以上的办法恢复。 [oracl

非关键性数据文件丢失(可以脱机数据文件的丢失):

run{sql 'alter database datafile  offline';restore datafile ;recover datafile ;slq 'alter database datafile  online';}

除了system、undo_tablespace参数后值对应的表空间都可以采用以上的办法恢复。

[oracle@oracle ~]$ ls /u01/oracle/oradata/jadl10g/control01.ctl control03.ctl redo01.log redo03.log system01.dbf undotbs01.dbfcontrol02.ctl example01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf[oracle@oracle ~]$ rm /u01/oracle/oradata/jadl10g/example01.dbf[oracle@oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Thu Nov 6 15:23:57 2014Copyright (c) 1982, 2010, Oracle. All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engineand Real Application Testing optionsSQL> select * from hr.employees;select * from hr.employees*ERROR at line 1:ORA-01116: error in opening database file 5ORA-01110: data file 5: '/u01/oracle/oradata/jadl10g/example01.dbf'ORA-27041: unable to open fileLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3[oracle@oracle ~]$ vi /tmp/1.rman

创建一个恢复的脚本:

[oracle@oracle ~]$ cat /tmp/1.rmanrun{sql 'alter database datafile 5 offline';restore datafile 5;recover datafile 5;sql 'alter database datafile 5 online';}

rman利用建立的脚本恢复数据库的数据:

[oracle@oracle ~]$ rman target / cmdfile=/tmp/1.rmanRecovery Manager: Release 10.2.0.5.0 - Production on Thu Nov 6 15:29:28 2014Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: JADL10G (DBID=2011530396)RMAN> run{2> sql 'alter database datafile 5 offline';3> restore datafile 5;4> recover datafile 5;5> sql 'alter database datafile 5 online';6> }7>using target database control f【本文来自鸿网互联 (http://www.68idc.cn)】ile instead of recovery catalogsql statement: alter database datafile 5 offlineStarting restore at 06-NOV-14allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=159 devtype=DISKchannel ORA_DISK_1: starting datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00005 to /u01/oracle/oradata/jadl10g/example01.dbfchannel ORA_DISK_1: reading from backup piece /u01/oracle/flash_recovery_area/JADL10G/backupset/2014_11_06/o1_mf_nnndf_TAG20141106T135107_b5p32dhf_.bkpchannel ORA_DISK_1: restored backup piece 1piece handle=/u01/oracle/flash_recovery_area/JADL10G/backupset/2014_11_06/o1_mf_nnndf_TAG20141106T135107_b5p32dhf_.bkp tag=TAG20141106T135107channel ORA_DISK_1: restore complete, elapsed time: 00:00:07Finished restore at 06-NOV-14Starting recover at 06-NOV-14using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 06-NOV-14sql statement: alter database datafile 5 onlineRecovery Manager complete.

此时执行查询就不会出现错误了。

system/example 都丢失该如何处理?
shutdowm abort
restore datafile 1,5;
recover database;
alter database open;
这样操作后,不需要重新备份数据库 ,以前的备份是有效的。

恢复映像副本

RMAN> backup as copy datafile 5;Starting backup at 06-NOV-14using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=159 devtype=DISKchannel ORA_DISK_1: starting datafile copyinput datafile fno=00005 name=/u01/oracle/oradata/jadl10g/example01.dbfoutput filename=/u01/oracle/flash_recovery_area/JADL10G/datafile/o1_mf_example_b5pbo2pc_.dbf tag=TAG20141106T160034 recid=10 stamp=862934437channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03Finished backup at 06-NOV-14RMAN> recover copy of datafile 5; ---改命令就是对上面的数据文件做增量的修改,Starting recover at 06-NOV-14using channel ORA_DISK_1no copy of datafile 5 found to recoverFinished recover at 06-NOV-14

数据文件从一个路径迁移到新的路径
数据文件从文件系统到ASM
数据文件从ASM到文件系统
实施以上需求的办法:
set newname for datafile '…' to '…';
restore …
switch datafile all;
recover ….
将数据文件迁移到ASM:

SQL> select name from v$asm_diskgroup;vi a.rmanrun{sql 'alter tablespace a1 offline immediate';set newname for datafile 7 to '+DB';restore datafile 7;switch dat<em style="color:transparent">本文来源gao.dai.ma.com搞@代*码#网</em>afile all; ---交换文件recover datafile 7;slq 'alter tablespace a1 online';}

在rman执行该脚本;

12c是比较特殊的:
alter database datafile 13 move '/u01/……';—-移动到新的路径


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【非关键性数据文件丢失(可以脱机数据文件的丢失)-恢复-1】

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址