日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用dbms_backup_restore函数来恢复数据文件

發(fā)布時(shí)間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用dbms_backup_restore函数来恢复数据文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

本實(shí)驗(yàn)對數(shù)據(jù)文件丟失,控制文件丟失,但是RMAN的備份信息和備份日志存在的時(shí)候使用。

控制文件的丟失恢復(fù)參看http://luoping.blog.51cto.com/534596/294164。

下面是數(shù)據(jù)文件的丟失的恢復(fù)。

下面是RMAN的備份腳本。

[oracle@huang ~]$ cat /tmp/11.sql

run

{

??allocate channel c1 type disk;

??backup database include current controlfile;

}

下面是執(zhí)行RMAN備份整個(gè)數(shù)據(jù)庫。

[oracle@huang ~]$ rman target / @/tmp/11.sql log=/tmp/111.txt >>/dev/null;

下面是查看RMAN備份的日志。

[oracle@huang ~]$ vim /tmp/111.txt

Starting backup at 12-APR-10

channel c1: starting full datafile backupset

channel c1: specifying datafile(s) in backupset

input datafile fno=00001 name=/opt/oracle/oradata/orcl/system01.dbf

input datafile fno=00003 name=/opt/oracle/oradata/orcl/sysaux01.dbf

input datafile fno=00002 name=/opt/oracle/oradata/orcl/undotbs01.dbf

input datafile fno=00004 name=/opt/oracle/oradata/orcl/users01.dbf

channel c1: starting piece 1 at 12-APR-10

channel c1: finished piece 1 at 12-APR-10

piece handle=/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_nnndf_TAG20100412T225557_5w6f3xjm_.bkp tag=TAG20100412T225557 comment=NONE

channel c1: backup set complete, elapsed time: 00:00:55

channel c1: starting full datafile backupset

channel c1: specifying datafile(s) in backupset

including current control file in backupset

including current SPFILE in backupset

channel c1: starting piece 1 at 12-APR-10

channel c1: finished piece 1 at 12-APR-10

piece handle=/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_ncsnf_TAG20100412T225557_5w6f5pyl_.bkp tag=TAG20100412T225557 comment=NONE

channel c1: backup set complete, elapsed time: 00:00:05

Finished backup at 12-APR-10

released channel: c1

?

Recovery Manager complete.

根據(jù)上面的日志來下面這個(gè)腳本。前提是要RMAN備份的日志存在或你記得自己的數(shù)據(jù)文件和編號(hào)。

[oracle@huang ~]$ cat /tmp/data.sql

DECLARE

devtype varchar2(256);

done boolean;

BEGIN

devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t2');

sys.dbms_backup_restore.restoreSetDatafile;

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/opt/oracle/system01.dbf');

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/opt/oracle/sysaux01.dbf');

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/opt/oracle/undotbs01.dbf');

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/opt/oracle/users01.dbf');

sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_nnndf_TAG20100412T225557_5w6f3xjm_.bkp', params=>null);

sys.dbms_backup_restore.deviceDeallocate;

END;

下面是具體的執(zhí)行。

?SQL> get /tmp/data.sql

1 ?DECLARE 2 ?devtype varchar2(256); 3 ?done boolean; 4 ?BEGIN 5 ?devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t2'); 6 ?sys.dbms_backup_restore.restoreSetDatafile; 7 ?sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/opt/oracle/system01.dbf'); 8 ?sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/opt/oracle/sysaux01.dbf'); 9 ?sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/opt/oracle/undotbs01.dbf'); 10 ?sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/opt/oracle/users01.dbf'); 11 ?sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_nnndf_TAG20100412T225557_5w6f3xjm_.bkp', params=>null); 12 ?sys.dbms_backup_restore.deviceDeallocate; 13* END; SQL> / PL/SQL procedure successfully completed. 查看是否生成了我們要的數(shù)據(jù)文件。 SQL> !ls /opt/oracle/system01.dbf; /opt/oracle/system01.dbf 注意可能在上面的時(shí)候會(huì)出先下面的問題,退出當(dāng)前的sqlplus會(huì)話,重新進(jìn)入就可以解決問題。 SQL> / DECLARE * ERROR at line 1: ORA-19568: a device is already allocated to this session ORA-06512: at "SYS.DBMS_BACKUP_RESTORE", line 170 ORA-06512: at "SYS.DBMS_BACKUP_RESTORE", line 145 ORA-06512: at line 5


? 本文轉(zhuǎn)自7343696 51CTO博客,原文鏈接:http://blog.51cto.com/luoping/294182,如需轉(zhuǎn)載請自行聯(lián)系原作者
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的利用dbms_backup_restore函数来恢复数据文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。