久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

(轉(zhuǎn))Oracle RMAN快速入門指南

瀏覽:139日期:2023-11-13 13:00:29
前言這篇文章主要介紹RMAN的常用方法,其中包含了作者一些自己的經(jīng)驗(yàn),里面的實(shí)驗(yàn)也基本全在WIN 2K和Oracle 8.1.6環(huán)境下測(cè)試成功(因?yàn)檫@個(gè)環(huán)境比較輕易實(shí)現(xiàn))。本文借鑒了網(wǎng)上一些高手的相關(guān)文章,希望大俠們不要見怪,此處一并謝過(guò)。 這篇文章主要是在北京出差期間寫的,回到家后整理修改了一下,時(shí)間比較倉(cāng)促,同時(shí)因?yàn)槠邢蓿恍┘夹g(shù)細(xì)節(jié)不能一一覆蓋了,只希望能夠幫助新手入門的作用,想真正熟練把握RMAN,必須經(jīng)過(guò)較長(zhǎng)時(shí)間的實(shí)踐磨練才可以,尤其需要在工程中獲得寶貴的故障解決經(jīng)驗(yàn)。1.什么是RMANRMAN可以用來(lái)備份和還原數(shù)據(jù)庫(kù)文件、歸檔日志和控制文件。它也可以用來(lái)執(zhí)行完全或不完全的數(shù)據(jù)庫(kù)恢復(fù)。注重:RMAN不能用于備份初始化參數(shù)文件和口令文件。RMAN啟動(dòng)數(shù)據(jù)庫(kù)上的Oracle服務(wù)器進(jìn)程來(lái)進(jìn)行備份或還原。備份、還原、恢復(fù)是由這些進(jìn)程驅(qū)動(dòng)的。RMAN可以由OEM的Backup Manager GUI來(lái)控制,但在本文章里不作重點(diǎn)討論。2. Terminology專業(yè)詞匯解釋2.1. Backup sets備份集合備份集合有下面的特性:包括一個(gè)或多個(gè)數(shù)據(jù)文件或歸檔日志以oracle專有的格式保存有一個(gè)完全的所有的備份片集合構(gòu)成構(gòu)成一個(gè)完全備份或增量備份2.2. Backup pieces備份片一個(gè)備份集由若干個(gè)備份片組成。每個(gè)備份片是一個(gè)單獨(dú)的輸出文件。一個(gè)備份片的大小是有限制的;假如沒(méi)有大小的限制, 備份集就只由一個(gè)備份片構(gòu)成。備份片的大小不能大于使用的文件系統(tǒng)所支持的文件長(zhǎng)度的最大值。2.3. Image copies鏡像備份鏡像備份是獨(dú)立文件(數(shù)據(jù)文件、歸檔日志、控制文件)的備份。它很類似操作系統(tǒng)級(jí)的文件備份。它不是備份集或備份片,也沒(méi)有被壓縮。2.4. Full backup sets全備份集合全備份是一個(gè)或多個(gè)數(shù)據(jù)文件中使用過(guò)的數(shù)據(jù)塊的的備份。沒(méi)有使用過(guò)的數(shù)據(jù)塊是不被備份的,也就是說(shuō),oracle 進(jìn)行備份集合的壓縮。2.5. Incremental backup sets增量備份集合增量備份是指?jìng)浞菀粋€(gè)或多個(gè)數(shù)據(jù)文件的自從上一次同一級(jí)別的或更低級(jí)別的備份以來(lái)被修改過(guò)的數(shù)據(jù)塊。 與完全備份相同,增量備份也進(jìn)行壓縮。2.6. File multiplexing不同的多個(gè)數(shù)據(jù)文件的數(shù)據(jù)塊可以混合備份在一個(gè)備份集中。2.7. Recovery catalog resyncing 恢復(fù)目錄同步使用恢復(fù)治理器執(zhí)行backup、copy、restore或者switch命令時(shí),恢復(fù)目錄自動(dòng)進(jìn)行更新,但是有關(guān)日志與歸檔日志信息沒(méi)有自動(dòng)記入恢復(fù)目錄。需要進(jìn)行目錄同步。使用resync catalog命令進(jìn)行同步。RMAN>resync catalog; RMAN-03022:正在編譯命令:resync RMAN-03023:正在執(zhí)行命令:resync RMAN-08002:正在啟動(dòng)全部恢復(fù)目錄的 resync RMAN-08004:完成全部 resync3. 恢復(fù)目錄3.1.恢復(fù)目錄的概念恢復(fù)目錄是由RMAN使用、維護(hù)的用來(lái)放置備份信息的倉(cāng)庫(kù)。RMAN利用恢復(fù)目錄記載的信息去判定如何執(zhí)行需要的備份恢復(fù)操作。恢復(fù)目錄可以存在于ORACLE數(shù)據(jù)庫(kù)的計(jì)劃中。雖然恢復(fù)目錄可以用來(lái)備份多個(gè)數(shù)據(jù)庫(kù),建議為恢復(fù)目錄數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)。恢復(fù)目錄數(shù)據(jù)庫(kù)不能使用恢復(fù)目錄備份自身。3.2.建立恢復(fù)目錄第一步,在目錄數(shù)據(jù)庫(kù)中創(chuàng)建恢復(fù)目錄所用表空間:SQL> create tablespace rman_ts datafile 'd:oracleoradatarmanrman_ts.dbf' size 20M; 表空間已創(chuàng)建。第二步,在目錄數(shù)據(jù)庫(kù)中創(chuàng)建RMAN 用戶并授權(quán):SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts; 用戶已創(chuàng)建。 SQL> grant recovery_catalog_owner to rman; 授權(quán)成功。 SQL> grant connect, resource to rman; 授權(quán)成功。 第三步,在目錄數(shù)據(jù)庫(kù)中創(chuàng)建恢復(fù)目錄C:>rman catalog rman/rman 恢復(fù)治理器:版本8.1.6.0.0 - ProdUCtion RMAN-06008:連接到恢復(fù)目錄數(shù)據(jù)庫(kù) RMAN-06428:未安裝恢復(fù)目錄 RMAN>create catalog tablespace rman_ts; RMAN-06431:恢復(fù)目錄已創(chuàng)建注重:雖然使用RMAN不一定必需恢復(fù)目錄,但是推薦使用。 因?yàn)榛謴?fù)目錄記載的信息大部分可以通過(guò)控制文件來(lái)記載,RMAN在恢復(fù)數(shù)據(jù)庫(kù)時(shí)使用這些信息。不使用恢復(fù)目錄將會(huì)對(duì)備份恢復(fù)操作有限制。3.3.使用恢復(fù)目錄的優(yōu)勢(shì)可以存儲(chǔ)腳本;記載較長(zhǎng)時(shí)間的備份恢復(fù)操作;4. 啟動(dòng)RMANRMAN為交互式命令行處理界面,也可以從企業(yè)治理器中運(yùn)行。為了使用下面的實(shí)例,先檢查環(huán)境符合:the target database is called 'his' and has the same TNS aliasuser rman has been granted 'recovery_catalog_owner 'privileges目標(biāo)數(shù)據(jù)庫(kù)的連接用戶為internal帳號(hào),或者以其他SYSDBA類型帳號(hào)連接the recovery catalog database is called 'rman' and has the same TNS aliasthe schema containing the recovery catalog is 'rman' (same passWord)在使用RMAN前,設(shè)置NLS_DATE_FORMAT 和NLS_LANG環(huán)境變量,很多RMAN LIST命令的輸出結(jié)果是與日期時(shí)間相關(guān)的,這點(diǎn)在用戶希望執(zhí)行以時(shí)間為基準(zhǔn)的恢復(fù)工作也很重要。下例是環(huán)境變量的示范:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBKNLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS為了保證RMAN使用時(shí)能連接恢復(fù)目錄,恢復(fù)目錄數(shù)據(jù)庫(kù)必須打開,目標(biāo)數(shù)據(jù)庫(kù)至少要STARTED(unmount),否則RMAN會(huì)返回一個(gè)錯(cuò)誤,目標(biāo)數(shù)據(jù)庫(kù)必須置于歸檔模式下。4.1.使用不帶恢復(fù)目錄的RMAN設(shè)置目標(biāo)數(shù)據(jù)庫(kù)的 ORACLE_SID ,執(zhí)行:% rman nocatalog RMAN> connect target RMAN> connect target internal/<PASSWORD>@his4.2.使用帶恢復(fù)目錄的RMAN% rman rman_ts rman/rman@rman RMAN> connect target % rman rman_ts rman/rman@rman target internal/<PASSWORD>@his4.3.使用RMAN一旦連接到目標(biāo)數(shù)據(jù)庫(kù),可以通過(guò)交互界面或者事先存儲(chǔ)的腳本執(zhí)行指定RMAN命令,下面是一個(gè)使用RMAN交互界面的實(shí)例:RMAN> resync catalog; RMAN-03022:正在編譯命令:resync RMAN-03023:正在執(zhí)行命令:resync RMAN-08002:正在啟動(dòng)全部恢復(fù)目錄的 resync RMAN-08004:完成全部 resync使用腳本的實(shí)例:RMAN> execute script alloc_1_disk;創(chuàng)建或者替代存儲(chǔ)的腳本:RMAN> replace script alloc_1_disk { 2> allocate channel d1 type disk; 3> }5.注冊(cè)或者注銷目標(biāo)數(shù)據(jù)庫(kù)5.1.注冊(cè)目標(biāo)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)狀態(tài):恢復(fù)目錄狀態(tài):打開目標(biāo)數(shù)據(jù)庫(kù):加載或者打開目標(biāo)數(shù)據(jù)庫(kù)在第一次使用RMAN之前必須在恢復(fù)目錄中注冊(cè):第一步,啟動(dòng)恢復(fù)治理器,并且連接目標(biāo)數(shù)據(jù)庫(kù):C:>rman target internal/oracle@his catalog rman/rman@rman 恢復(fù)治理器:版本8.1.6.0.0 - Production RMAN-06005:連接到目標(biāo)數(shù)據(jù)庫(kù):HIS (DBID=3021445076) RMAN-06008:連接到恢復(fù)目錄數(shù)據(jù)庫(kù)第二步,注冊(cè)數(shù)據(jù)庫(kù):RMAN> register database; RMAN-03022:正在編譯命令:register RMAN-03023:正在執(zhí)行命令:register RMAN-08006:注冊(cè)在恢復(fù)目錄中的數(shù)據(jù)庫(kù) RMAN-03023:正在執(zhí)行命令:full resync RMAN-08002:正在啟動(dòng)全部恢復(fù)目錄的resync RMAN-08004:完成全部resync 5.2.注銷目標(biāo)數(shù)據(jù)庫(kù)RMAN提供了一個(gè)注銷工具,叫DBMS_RCVCAT工具包,請(qǐng)注重一旦注銷了該目標(biāo)數(shù)據(jù)庫(kù),就不可以使用恢復(fù)目錄中含有的備份集來(lái)恢復(fù)數(shù)據(jù)庫(kù)了。為了能注銷數(shù)據(jù)庫(kù),需要獲得數(shù)據(jù)庫(kù)的標(biāo)識(shí)碼(DB_ID)和數(shù)據(jù)庫(kù)鍵值(DB_KEY)。其中連接目標(biāo)數(shù)據(jù)庫(kù)時(shí)將會(huì)獲得DB_ID。C:>rman target internal/oracle@his catalog rman/rman@rman 恢復(fù)治理器:版本8.1.6.0.0 - Production RMAN-06005:連接到目標(biāo)數(shù)據(jù)庫(kù):HIS (DBID=3021445076) RMAN-06008:連接到恢復(fù)目錄數(shù)據(jù)庫(kù)其中DBID=3021445076,利用DBID=3021445076查詢數(shù)據(jù)庫(kù)鍵值碼,連接到目標(biāo)數(shù)據(jù)庫(kù),查詢db表:SQL> select * from db; DB_KEY DB_ID CURR_DBINC_KEY ---------- ---------- -------------- 1 3021445076 2獲得DB_KEY=1,這樣,該目標(biāo)數(shù)據(jù)庫(kù)DB_KEY=1,DBID=3021445076,利用兩個(gè)值使用DBMS_RCVCAT工具包就可以注銷數(shù)據(jù)庫(kù):SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076); PL/SQL 過(guò)程已成功完成。 至此,注銷數(shù)據(jù)庫(kù)操作完成。6.操作已有的備份6.1.加入目錄數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)狀態(tài):恢復(fù)目錄:打開目標(biāo)數(shù)據(jù)庫(kù):加載或者打開假如存在8.x版本以前創(chuàng)建的備份數(shù)據(jù)想注冊(cè)到目標(biāo)數(shù)據(jù)庫(kù),可以采用如下手工方式加入到恢復(fù)目錄中RMAN> catalog datafilecopy '/oracle/ .... /system01.dbf'; 使用如下命令顯示恢復(fù)目錄中包含的文件RMAN> list copy of database;6.2.從目錄數(shù)據(jù)庫(kù)中刪除第一步:查看備份信息:RMAN>list backup; RMAN-03022:正在編譯命令:list備份集列表要害字 Recid 標(biāo)記 LV 集合標(biāo)記 集合計(jì)數(shù) 完成時(shí)間 ------- ---------- ---------- -- ---------- ---------- ---------------------- 1104 2 501364455 0 501364446 2 06-8月 -03備份段列表要害字 Pc# Cp# 狀態(tài) 完成時(shí)間 段名 ------- --- --- ----------- ---------------------- ------------------------ 1106 1 1 AVAILABLE 06-8月 -03 D:ORACLEORA81DATABASE2EU4DMU_1_1數(shù)據(jù)文件包括列表文件 名稱 LV 類型 檢查點(diǎn)SCN 檢查點(diǎn)時(shí)間 ---- ------------------------------------- -- ---- ---------- ------------- 3 D:ORACLEORADATAHISUSERS01.DBF 0 Full 160052 06-8月 -03備份集的要害字為1104。第二步:定義delete通道:RMAN>allocate channel for delete type disk; RMAN-03022:正在編譯命令:allocate RMAN-03023:正在執(zhí)行命令:allocate RMAN-08030:分配的通道:delete RMAN-08500:通道 delete:sid=19 devtype=DISK第三步:刪除backupset備份集RMAN>change backupset 1104 delete; RMAN-03022:正在編譯命令:change RMAN-08073:已刪除備份段 RMAN-08517:備份段 handle=D:ORACLEORA81DATABASE2EU4DMU_1_1 recid=2 stamp=50 1364447 RMAN-03023:正在執(zhí)行命令:partial resync RMAN-08003:?jiǎn)?dòng)部分恢復(fù)目錄的 resync RMAN-08005:完成部分 resync注重:部分執(zhí)行刪除備份集、備份片或者維護(hù)恢復(fù)目錄的命令,需要先指定通道,如:RMAN>allocate channel for delete type disk; RMAN>allocate channel for maintenance type disk;7.在非歸檔模式下備份數(shù)據(jù)庫(kù)狀態(tài):恢復(fù)目錄:打開目標(biāo)數(shù)據(jù)庫(kù):例程啟動(dòng)或者數(shù)據(jù)庫(kù)加載恢復(fù)目錄數(shù)據(jù)庫(kù)需要打開,目標(biāo)數(shù)據(jù)庫(kù)必須啟動(dòng)(或者加載)。因?yàn)槟繕?biāo)數(shù)據(jù)庫(kù)不在歸檔模式下,所以當(dāng)進(jìn)行備份恢復(fù)操作的時(shí)候數(shù)據(jù)庫(kù)無(wú)法打開。不可以將表空間置于熱備份模式上進(jìn)行等同于文件系統(tǒng)級(jí)的拷貝,假如在非歸檔模式,數(shù)據(jù)庫(kù)打開的狀態(tài)下不能進(jìn)行數(shù)據(jù)文件的備份。7.1.數(shù)據(jù)庫(kù)完全備份RMAN> run { 2> # backup the complete database to disk 3> allocate channel dev1 type disk; 4> backup 5> full 6> tag full_db_backup 7> format '/oracle/backups/db_t%t_s%s_p%p' 8> (database); 9> release channel dev1; 10> }行#2: 表明該行為注釋行(#是注釋符)3&9: See section 15 - Channels通道定義5: Full backup (default if full or incremental not specified)完全備份模式(缺省模式)6: Meaningful string (<=30 chars)(備份集標(biāo)識(shí),<=30個(gè)字符)7: Filename to use for backup pieces, including substitution variables. 備份片使用的文件名,可以包含代替變量。8: Indicates all files including controlfiles are to be backed up表明備份所有數(shù)據(jù)文件包括控制文件通過(guò)下面的命令顯示恢復(fù)目錄中記載的備份集信息:RMAN> list backupset of database;7.2.備份表空間RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> tag tbs_users_read_only 5> format '/oracle/backups/tbs_users_t%t_s%s' 6> (tablespace users) 7> }使用下列命令來(lái)顯示恢復(fù)目錄中該表的備份信息:RMAN> list backupset of tablespace users;假設(shè)USERS表空間在備份后被置為READ ONLY表空間,以后的全庫(kù)備份就可以不用備份該表空間,為了達(dá)到這個(gè)目的,可以在以后的備份中指定'skip readonly'。 注重,目標(biāo)數(shù)據(jù)庫(kù)不需要一定打開,只要加載就可以,因?yàn)楸砜臻g的信息存儲(chǔ)在控制文件中。7.3.備份單獨(dú)數(shù)據(jù)文件RMAN> run { 2> allocate channel dev1 type 'SBT_TAPE'; 3> backup 4> format '%d_%u' 5> (datafile '/oracle/dbs/sysbigdb.dbf'); 6> release channel dev1; 7> }行#2: 使用MML(media manager layer)分配磁帶驅(qū)動(dòng)器,必須指定類型為SBT_TAPE;注重因?yàn)闆](méi)有指定標(biāo)識(shí),所以標(biāo)識(shí)為空;使用下面的命令顯示恢復(fù)目錄中備份的表空間: RMAN> list backupset of datafile 1;7.4.備份數(shù)據(jù)文件RMAN> run { 2> allocate channel dev1 type 'SBT_TAPE'; 3> copy datafile '/oracle/dbs/temp.dbf' to '/oracle/backups/temp.dbf'; 4> release channel dev1; 5> }使用下面的命令顯示恢復(fù)目錄中的文件拷貝:RMAN> list copy of datafile '/oracle/dbs/temp.dbf';拷貝數(shù)據(jù)文件和備份數(shù)據(jù)文件是不一樣的,數(shù)據(jù)文件拷貝是一個(gè)該文件的鏡像。文件的備份產(chǎn)生一個(gè)備份集。7.5.備份控制文件RMAN> run { 2> allocate channel dev1 type 'SBT_TAPE'; 3> backup 4> format 'cf_t%t_s%s_p%p' 5> tag cf_monday_night 6> (current controlfile); 7> release channel dev1; 8> }注重:數(shù)據(jù)庫(kù)完全備份將自動(dòng)備份控制文件。 8.歸檔模式下的備份數(shù)據(jù)庫(kù)狀態(tài):恢復(fù)目錄:打開目標(biāo)數(shù)據(jù)庫(kù):例程啟動(dòng),數(shù)據(jù)庫(kù)加載或者打開備份操作使用的命令與非歸檔模式下基本一樣。8.1. Backing up archived logs 備份歸檔日志下面的腳本備份歸檔日志:RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> format '/oracle/backups/log_t%t_s%s_p%p' 5> (archivelog all) 6> release channel dev1; 7> }下面的腳本歸檔日志從# 90 to 100:RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> format '/oracle/backups/log_t%t_s%s_p%p' 5> (archivelog from logseq=90 until logseq=100 thread 1); 6> release channel dev1; 7> }下面的腳本備份在24小時(shí)內(nèi)產(chǎn)生的歸檔日志,在備份完成后會(huì)自動(dòng)刪除歸檔日志。假如備份失敗,歸檔日志不會(huì)被刪除。RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> format '/oracle/backups/log_t%t_s%s_p%p' 5> (archivelog from time 'sysdate-1' all delete input); 6> release channel dev1; 7> }使用下面的命令顯示恢復(fù)目錄中的歸檔日志:RMAN> list backupset of archivelog all;注重:RMAN找到歸檔日志后會(huì)備份指定日志,假如無(wú)法找到日志,它也不會(huì)返回錯(cuò)誤信息。8.2. Backing up the online logs 備份聯(lián)機(jī)日志聯(lián)機(jī)日志不能用RMAN來(lái)備份,必須先將其歸檔。為了實(shí)現(xiàn)這點(diǎn),必須在RMAN中執(zhí)行如下SQL語(yǔ)句:RMAN> run { 2> allocate channel dev1 type disk; 3> sql 'alter system archive log current'; 4> backup 5> format '/oracle/backups/log_t%t_s%s_p%p' 6> (archivelog from time 'sysdate-1' all delete input); 7> release channel dev1; 8> }上面的腳本可以在執(zhí)行完一個(gè)完整的聯(lián)機(jī)數(shù)據(jù)庫(kù)備份后執(zhí)行,確保所有的重做日志可以將數(shù)據(jù)庫(kù)恢復(fù)到一個(gè)一致性的狀態(tài)。注重:不可以標(biāo)識(shí)歸檔日志備份集。9. 增量備份N級(jí)別增量備份備份從最近的N級(jí)別或者更小級(jí)別以來(lái)的所有更改過(guò)的數(shù)據(jù)塊內(nèi)容。增量備份分為兩種,一種是累積增量備份,一種是非累積增量備份。累積增量備份包括自最后一次在更低級(jí)別進(jìn)行備份以來(lái)所有改動(dòng)過(guò)的數(shù)據(jù)塊。非累積增量備份包括自前一次在同級(jí)或者更低級(jí)別進(jìn)行備份以來(lái)改動(dòng)過(guò)的數(shù)據(jù)塊。9.1. Level 0--增量備份策略的基礎(chǔ)Level 0 是增量備份策略的基礎(chǔ)--the basis of the incremental backup strategyRMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> incremental level 0 5> filesperset 4 6> format '/oracle/backups/sunday_level0_%t' 7> (database); 8> release channel dev1; 9> }Line#4: 0級(jí)備份5: 定義每個(gè)backupset 的最大文件數(shù)使用LIST語(yǔ)句查看,數(shù)據(jù)庫(kù)備份集的列表顯示中, 'type' 將顯示 'Incremental','LV'列將顯示'0' 。 9.2. 使用增量備份的案例一個(gè)典型的增量備份案例如下: 星期天晚上 - level 0 backup performed 星期一晚上 - level 2 backup performed 星期二晚上 - level 2 backup performed 星期三晚上 - level 1 backup performed 星期四晚上 - level 2 backup performed 星期五晚上 - level 2 backup performed 星期六晚上 - level 2 backup performed 星期天晚上 - level 0 backup performed10. 恢復(fù)恢復(fù)案例如下:10.1. Database open,datafile deleted 數(shù)據(jù)庫(kù)打開時(shí),文件被刪除數(shù)據(jù)文件在數(shù)據(jù)庫(kù)打開時(shí)被刪除。有兩種方法可以對(duì)打開的數(shù)據(jù)庫(kù)進(jìn)行恢復(fù):還原數(shù)據(jù)文件或者表空間。下面兩個(gè)實(shí)例顯示了該方法:(a) Datafile recovery 數(shù)據(jù)文件恢復(fù)RMAN> run { 2> allocate channel dev1 type disk; 3> sql 'alter tablespace users offline immediate'; 4> restore datafile 4; 5> recover datafile 4; 6> sql 'alter tablespace users online'; 7> release channel dev1; 8> }(b) Tablespace recovery 表空間恢復(fù)RMAN> run { 2> allocate channel dev1 type disk; 3> sql 'alter tablespace users offline immediate'; 4> restore tablespace users; 5> recover tablespace users; 6> sql 'alter tablespace users online'; 7> release channel dev1; 8> }注重:假如還原系統(tǒng)表空間文件,數(shù)據(jù)庫(kù)必須關(guān)閉,因?yàn)橄到y(tǒng)表空間不可以脫機(jī)。10.2. Complete restore (lost online redo) and rollforward - database closed 完全還原(丟失聯(lián)機(jī)日志)并且前滾 - 數(shù)據(jù)庫(kù)關(guān)閉RMAN> run { 2> allocate channel dev1 type disk; 3> set until logseq=105 thread=1; 4> restore controlfile to '/oracle/dbs/ctrltargdb.ctl'; 5> replicate controlfile from '/oracle/dbs/ctrltargdb.ctl'; 6> restore database; 7> sql 'alter database mount'; 8> recover database; 9> sql 'alter database open resetlogs'; 10> release channel dev1; 11> }Notes:'set until' 命令指明恢復(fù)到指定的日志文件。這一點(diǎn)在數(shù)據(jù)文件恢復(fù)時(shí)很重要,否則RMAN將試圖恢復(fù)最近的數(shù)據(jù)文件,該數(shù)據(jù)文件可能在指定的日志以前。'replicate controlfile' 復(fù)制還原的控制文件到INIT.ORA指定的控制文件。假如數(shù)據(jù)庫(kù)使用WITH RESETLOGS打開,則需要使用RESET DATABASE命令注冊(cè)改變后的數(shù)據(jù)庫(kù)。在使用RESETLOGS命令打開數(shù)據(jù)庫(kù)后強(qiáng)烈建議做一個(gè)完全的數(shù)據(jù)庫(kù)備份。10.3. 還原數(shù)據(jù)文件的子集,完全恢復(fù)RMAN> run { 2> allocate channel dev1 type disk; 3> sql 'alter database mount'; 4> restore datafile 2; 5> restore datafile 3; 6> restore archivelog all; 7> recover database; 8> sql 'alter database open'; 9> release channel dev1; 10> }11. 腳本創(chuàng)建或者取代腳本:RMAN> create script alloc_disk { 2> # Allocates one disk 3> allocate channel dev1 type disk; 4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200; 5> } RMAN> replace script rel_disk { 2> # releases disk 3> release channel dev1; 5> } RMAN> replace script backup_db_full { 2> # Performs a complete backup 3> execute script alloc_disk; 4> backup 5> ..... 6> execute script rel_disk; 7> }前兩個(gè)腳本分別用來(lái)分配和回收通道。alloc_disk 腳本還額外指定了備份片的最大兆字節(jié)數(shù),備份時(shí)可以同時(shí)打開的輸入文件的最大數(shù)目,以及每秒鐘讀每個(gè)輸入文件的數(shù)據(jù)緩沖區(qū)的最大數(shù)目。第三個(gè)腳本調(diào)用先前存儲(chǔ)的兩個(gè)腳本進(jìn)行數(shù)據(jù)庫(kù)備份。運(yùn)行存儲(chǔ)腳本的示范:RMAN> run { 2> execute script backup_db_full; 3> }注重:存儲(chǔ)的腳本必須在{ .... execute <script>....}命令中調(diào)用。 12. Corruption detection RMAN可以備份包含損壞數(shù)據(jù)塊的數(shù)據(jù)文件,查詢視圖V$BACK_CORRUPTION和V$COPY_CORRUPTION可以獲得有關(guān)壞數(shù)據(jù)的信息。通過(guò)設(shè)置 set maxcorrupt 可以跳過(guò)指定個(gè)數(shù)的壞塊來(lái)避免備份失敗。RMAN> replace script backup_db_full { 2> # Performs a complete backup 3> execute script alloc_disk; 4> set maxcorrupt for datafile 1 to 0; 5> backup 6> ..... 7> execute script rel_disk; 8> }上面的腳本maxcorrupt for datafile 1 to 0設(shè)置為0,所以假如有錯(cuò)誤數(shù)據(jù)塊在數(shù)據(jù)文件1中發(fā)現(xiàn),上面的腳本執(zhí)行就會(huì)失敗。13. 通道一個(gè)通道是RMAN和目標(biāo)數(shù)據(jù)庫(kù)之間的一個(gè)連接,'allocate channel'命令在目標(biāo)數(shù)據(jù)庫(kù)啟動(dòng)一個(gè)服務(wù)器進(jìn)程,同時(shí)必須定義服務(wù)器進(jìn)程執(zhí)行備份或者恢復(fù)操作使用的I/O類型通道控制命令可以用來(lái): 控制RMAN使用的O/S資源 影響并行度 指定I/O帶寬的限制值(設(shè)置limit read rate參數(shù)) 定義備份片大小的限制(設(shè)置limit kbytes) 指定當(dāng)前打開文件的限制值(設(shè)置limit maxopenfiles)14. Report & list commands14.1. Listlist命令查詢恢復(fù)目錄并且產(chǎn)生格式化的查詢內(nèi)容: RMAN> list backupset of datafile 1; Key File Type LV Completion_time Ckp SCN Ckp Time ------- ---- ------------ -- --------------- ---------- -------- 165 1  Full Oct 03 11:24 32022 Oct 03 11:24 208 1  Full Oct 24 14:27 52059 Oct 24 14:26 219 1  Full Oct 24 14:31 52061 Oct 24 14:31 << other entries here >> RMAN> list backupset of archivelog all; Key Thrd Seq Completion time ------- ---- ------- --------------- 179 1 94 Oct 03 11:26 179 1 95 Oct 03 11:26 << other entries here >>14.2. ReportREPORT命令同樣可以查詢恢復(fù)目錄,但是REPORT命令語(yǔ)法可以構(gòu)建獲得更為有用的信息的指令,REPORT命令輸出可以保存到消息日志文件中,但是必須在連接恢復(fù)目錄時(shí)指定MSGLOG或者LOG選項(xiàng)。可以列出所有數(shù)據(jù)庫(kù)中不能恢復(fù)的文件列表: RMAN> report unrecoverable database;顯示全部數(shù)據(jù)文件:RMAN> report schema; RMAN-03022:正在編譯命令:report 數(shù)據(jù)庫(kù)模式報(bào)表 文件 千字節(jié) 表空間 RB segs 名稱 1 121472 SYSTEM YES D:ORACLEORADATAHIS YSTEM01.DBF 2 327680 RBS YES D:ORACLEORADATAHISRBS01.DBF 3 110592 USERS NO D:ORACLEORADATAHISUSERS01.DBF 4 73728 TEMP NO D:ORACLEORADATAHISTEMP01.DBF 5 12288 TOOLS NO D:ORACLEORADATAHISTOOLS01.DBF 6 59392 INDX NO D:ORACLEORADATAHISINDX01.DBF 15. 小提示經(jīng)常同步恢復(fù)目錄確認(rèn)刪除不需要的歸檔日志備份策略簡(jiǎn)單原則
主站蜘蛛池模板: 99九九久久| 91精品国产一区二区三区免费 | 黄色操视频 | 久久美女视频 | 毛片毛片毛片 | 久久99精品久久久久久琪琪 | 亚洲高清视频网站 | 日韩成人免费 | 欧美午夜一区二区三区免费大片 | 日韩一区二区免费视频 | 久久久久亚洲av毛片大全 | 亚洲综合视频 | 欧美精品在欧美一区二区少妇 | 三级黄色片在线播放 | 日韩毛片在线视频 | 在线观看免费黄色小视频 | 成年人视频在线免费观看 | 久久三区 | 精品国产一区二区三区久久影院 | 中文字幕在线视频第一页 | 天堂资源 | 少妇av片| 免费成人小视频 | 精品成人免费一区二区在线播放 | 91在线中文字幕 | 精品一区在线视频 | 亚洲综合在线播放 | 红色av社区 | 欧美一区二区三区在线视频 | 在线观看国产高清视频 | 久久久亚洲一区 | 久久成人一区二区 | 在线观看免费黄色 | 狠狠躁夜夜躁人人爽天天天天97 | 中文字幕av第一页 | 日日操视频 | 色综合网址 | 精品国产欧美一区二区 | 国产一级视频在线观看 | 日韩2020狼一二三 | 中文亚洲欧美 |