rman_copy和基本命令記載
最近這兩天終於在linux上裝好了oracle 10g,折騰了好多次,有點像自己第一次用pl/sql連線資料庫的時候,囧得很啊!不過其中的過程自己倒是對linux的檔案目錄和vi更加熟悉了。接下來還要配置一下rac和dg的環境,估計又得花一番功夫了!
今天又看了eygle的循序漸進,重新翻看了rman的copy備份恢復,試試手了!
首先修改一下system01.dbf的位置,方面後面測試
Shutdown immediate
Startup mount;
Alter database rename file to ‘d:system01.dbf’;
然後再os上覆制資料檔案1到的d:、是system.dbf位置
Host rman target /
Rman>backup as copy datafile 1 format ‘d:system01.dbf’
對資料檔案1進行一次copy映象的備份
當然copy datafile 1 to ‘d:system01.dbf’也是可以的,不過對於在oracle 10G中對於全庫映象資料庫則Rman>backup as copy database此時copy database語法上存在錯誤的,個人一般都是backup as copy寫法。
資料檔案1備份完全成後
Rman> shutdown abort;
Rman>startup
由於刪除資料檔案1導致資料庫無法open。
Nocatalog模式下資料庫的全部備份記錄儲存在controlfile中,利用copy的備份集來恢復吧
Rman>run{
set newname for datafile 1 to ‘d:oracleproduct10.2.0oradatasystem01.dbf’;
restore datafile 1;
switch datafile all;
recover datafile 1;
}
其中的set newname for datafile to ‘’然後switch datafile all對datafile 1進行了控制檔案的更新,把資料檔案rename到了一個新的位置。
由於之前個人把system01.dbf轉移到了d:system01.dbf,此時恢復完畢後檢視system01.dbf儲存在‘d:oracleproduct10.2.0oradatasystem01.dbf’。oracle會自動選擇最新的備份來restore。(可以檢視alertsid.log檢視具體的詳細資訊,oracle會選擇具體用的備份集來恢復)
前段時間在windows上建立了asm例項的資料庫。本機資料庫test是建立在asm磁碟組例項的資料庫。試著模擬一次asm磁碟組的故障來實行恢復。
首先在asm例項的資料庫orcl做一個資料檔案system的備份,然後強制關閉資料庫
set oracle_sid=test
rman target /
backup as copy datafile 1;
shutdown abort;
進入asm磁碟例項
Set oracle_sid=+ASM
Sqlplus / as sysdba
Alter diskgroup dggroup1 drop file ‘+DGGROUP1/test/datafile/system.256.764084429’
好了在磁碟組已經把datafile 1 drop掉了。
回到orcl庫來恢復吧
Set oracle_sid=test
Rman target /
Run{
Startup mount;
Restore datafile 1;
Recover datafile 1;
}
Alter database open
到此asm磁碟組的資料庫恢復完畢。
參照上面的恢復過程asm磁碟組資料庫和普通的資料庫沒有多大區別。
接觸rman也有一段時間了,有些list backup copy的命令順便在這裡寫一下。
List 命令:
List backup of database
List backup of datafile 1
List backup of controlfile
列出關於資料檔案的全部備份資訊,此時列出的都是是備份集
List copy of database
List copy of datafile 1
。。。
列出關於資料檔案的全部映象資訊,此時列出的是映象
Copy映象備份
Backup as copy database
Backup as copy datafile 1 ||format ‘’
Backup as copy current controlfile ||format ‘’
Backup as copy archivelog all;
。。。
此時copy的映象備份在restore時是優先與backup產生的備份機的,利用備份集會有額外的開銷,而且結合rman的switch datafile all可以實現alter database rename file實現資料檔案重新定位。
Backup備份
Backup database;
Backup datafile 1 to ‘’
Backup current controlfile to ‘’
。。。
Crosscheck 命令
Crosscheck backup;
Crosscheck backup of database
Crosscheck backup of controlfile
Crosscheck copy of database
Crosscheck copy
。。。。
列出在os上已經刪除的備份集並置為expired,因為有些備份集在os上已經刪除,但是在rman的備份目錄中還是存在,此時需要crosscheck backup置為expired過期的然後delete expired backup
全備份的一個指令碼
Run{
Allocate channel d1 device type disk;
Backup database
include current controlfile
Plus archivelog all format ‘ /oracle_data/oraback/full_%d_%T_%S‘delete all input;
Release channel d1;
}
此時上述的過程1 歸檔current log 2 備份歸檔然後全備份庫和控制檔案 3 再次歸檔當前日誌備份沒有備份archivelog
(生產庫中的archivelog和備份集應該儲存和資料檔案的不同磁碟,而且也應該做多份冗餘備份)
Archivelog的命令
列出大於等於序號40的archivelog
List backup of archivelog from sequence 40
List backup of archivelog low sequence 40
List archivelog from sequence 40
列出小於等於序號40的日誌
List backup of archivelog until sequence 40
List backup of archivelog high sequence40
列出等於40的日誌
List archivelog sequence sequence 40
刪除7天前的archivelog
Delete archivelog from time ‘sysdate-7’
Show all
其中的configure retention policy to redendancy 1預設冗餘度為1,rman備份策略認為最後最新一個是rman應該使用和保留的備份集,其餘的都認為是oblosote的,實際rman恢復過程中也會使用最新的一次備份來做恢復。
Report obsolete
Report rman備份策略中認為的過期備份集
Delete obsolete;
刪除rman備份策略中認為的過期備份集
羅嗦了半天了,就自己是初學者來說,oracle確實有太多的未知,不過又很多點東西真的還是要自己多多去嘗試,由於是個人本本無法實驗安裝asm和linux上安裝rac和佈置dg環境,環境只是客觀的,要想測試自己裝個虛擬機器兩個instance設定一下網路rac不就可以弄了吧,
Dg不也一樣,asm在windows上單機都可以設定,所以經常說:別為自己找藉口,只要你想學愛學就去實驗吧!不能說成功就實際的來說薪水待遇只是遲早的事,用自己所學到的東西,而且又是興趣所在還能取得一份不錯的薪水。可能幾個月後再看這篇blog會覺得裡面還有很多知識點可以寫,量變形成質變,加油吧!飛魚!
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1055803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- %rowtype和陣列的基本記載陣列
- 磁碟的基本知識和基本命令
- docker基本命令筆記第一冊Docker筆記
- nginx 基本命令和檔案配置Nginx
- 4 zookeeper叢集和基本命令
- docker 映象和容器的基本命令Docker
- Django的下載和基本指令Django
- 基本操作命令
- 基本dos命令
- 圖解 Git 基本命令 merge 和 rebase圖解Git
- 開啟cmd的方式和dos基本命令
- shell指令碼基本概念和命令小結指令碼
- CDN和負載均衡的基本瞭解負載
- Elasticsearch 基本命令Elasticsearch
- shell基本命令
- docker基本命令Docker
- docker 基本命令Docker
- redis基本命令Redis
- MySQL基本操作命令MySql
- Maven基本操作命令Maven
- UNIX基本命令
- scp命令基本用法
- MongoDB基本管理命令MongoDB
- MongoDB 基本命令MongoDB
- rman 基本命令
- svn基本命令
- kvm基本操作命令
- 基本的Dos命令
- git基本命令Git
- 適用於初學者的基本 kubectl 和 Helm 命令
- rman備份的策略和croosschek delete基本命令delete
- Linux基本命令學習之二:Linux基本命令Linux
- Linux基本命令學習之一:Linux基本命令Linux
- MySQL的安裝以及基本的管理命令和設定MySql
- hbase基本概念和hbase shell常用命令用法
- 直接載入和並行記載-01並行
- Linux 基本操作命令Linux
- linux基本命令Linux