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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle rman在线备份,Oracle的RMAN备份与恢复脚本

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle rman在线备份,Oracle的RMAN备份与恢复脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle的RMAN備份與恢復腳本

一、備份方案:

采用多級備份是為了減少了恢復所需要的時間和減少每天備份所需要的時間,而又保證系統有很好的恢復性。

以下是一種建議的方案:

每半年做一個數據庫的全備份(包含只讀表空間)

每個月做一次零級備份(不包含只讀表空間)

每個星期做一次一級備份

每天做一個二級備份

任何表空間改成只讀狀態后做一個該表空間的備份。

當需要時(如四個小時歸檔文件系統就要接近滿了)備份歸檔文件

1、數據庫全備份腳本 :

run {

allocate channel c1 type disk;

backup full? tag 'dbfull' format '/opt/backup/full_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

2、零級備份 :

run {

allocate channel c1 type disk;

backup incremental level 0 filesperset 5 tag 'dbL0' format '/opt/backup/ora_0_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

3、一級備份 :

run {

allocate channel c1 type disk;

backup incremental level 1 filesperset 5 tag 'dbL1' format '/opt/backup/ora_0_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

4、二級備份 :

run {

allocate channel c1 type disk;

backup incremental level 2 filesperset 5 tag 'dbL2' format '/opt/backup/ora_0_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

5、表空間備份 腳本(以users表空間為例):

run {

allocate channel c1 type disk;

backup? tag 'tsusers' format '/opt/backup/ora_0_%d_%u' tablespace users;

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

6、歸檔文件備份 腳本:

run {

allocate channel c1 type disk;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

二、RMAN恢復案例

1 、丟失全部數據文件,控制文件、日志文件必須存在

模擬介質損壞:刪除所有dbf文件

啟動數據庫:startup mount

恢復語句:

run{

allocate channel c1 type disk;

restore database;

recover database;

sql 'alter database open';

release channel c1;

}

注意:Oracle永遠不會備份使用臨時文件的TEMPORARY表空間,因為臨時表空間包含的只是暫時

性的數據,根本不必還原。不過在還原后數據字典中還是有臨時表空間的相關信息,你只要

簡單的重建一個臨時表空間,設置其為缺省臨時表空間,再把以前的臨時表空間刪除即可。

SQL> create temporary tablespace temp2 tempfile 'd:oracleoradataoradbtemp02.dbf' size 100M;

SQL> alter database default temporary tablespace temp2;

SQL> drop tablespace temp including contents and datafiles;

2、丟失非系統數據文件恢復

模擬介質損壞:刪除users01.dbf文件

啟動數據庫:startup mount

恢復語句:

run {

allocate channel c1 type disk;

sql 'alter tablespace users offline';

restore tablespace users;

recover tablespace users;

sql 'alter tablespace users online';

release channel c1;

}

3、 丟失全部數據文件、控制文件、日志文件恢復

注意:在備份時配置了configure controlfile autobackup on;

[oracle@Linux1 ?rman_backup]$ rman target /

RMAN>? set DBID=285819149

RMAN>? restore controlfile from autobackup(也可以:restore controlfile from ‘file name’ );

啟動數據庫:startup mount

恢復語句:

run{

allocate channel c1 type disk;

restore database;

recover database;

sql 'alter database open resetlogs';

release channel c1;

}

4、不完全恢復

A、基于時間點的不完全恢復:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

SET UNTIL TIME = '2002-12-09:11:44:00';

RESTORE DATABASE;

RECOVER DATABASE;

sql'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

B、基于日志序列的不完全恢復:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

SET UNTIL SEQUENCE 120 THREAD 1;

RESTORE DATABASE;

RECOVER DATABASE; # recovers through log 119

sql'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

C、基于SCN的不完全恢復:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

SET UNTIL SCN=100145;

RESTORE DATABASE;

RECOVER DATABASE;

sql'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

D、基于cancel的不完全恢復:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

RESTORE DATABASE;

RECOVER DATABASE UNTIL CANCEL;

SQL'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

三、維護RMAN RMAN的維護主要分為幾個方面

1、? 查看RMAN的信息

檢查現有備份

RMAN>list backup

列出過期備份

RMAN>report obsolete

刪除過期的備份

RMAN>allocate channel for maintenance type disk;

RMAN>change backupset id delete;

RMAN>release channel;

刪除所有過期的備份

RMAN>delete obsolete;

2、? 同步或重置RMAN

如果目標數據庫物理對象發生了變化,如添加了一個數據文件,需要用如下命令同步:

RMAN>resync catalog;

如果目標數據庫reset了數據庫,需要用如下命令同步

RMAN>reset database;

當手工刪除了數據庫的歸檔文件后,要執行以下腳本同步

RMAN>allocate channel for maintenance type disk;

RMAN> change archivelog all crosscheck;

RMAN>release channel;

當手工刪除了數據庫的RMAN備份后,要執行以下腳本來同步

RMAN>allocate channel for maintenance type disk;

RMAN>crosscheck backup;

RMAN>delete expired backup;

RMAN>release channel;

轉載于:https://my.oschina.net/kivensoft/blog/549373

標簽:備份,c1,Oracle,RMAN,backup,_%,channel

來源: https://blog.csdn.net/weixin_33955681/article/details/92058669

總結

以上是生活随笔為你收集整理的oracle rman在线备份,Oracle的RMAN备份与恢复脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。