這篇文章主要介紹了如何利用RMAN備份重建數(shù)據(jù)庫,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
站在用戶的角度思考問題,與客戶深入溝通,找到盧氏網(wǎng)站設(shè)計(jì)與盧氏網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋盧氏地區(qū)。
有時(shí)數(shù)據(jù)庫由于某些原因需要全部銷毀重建,之前的RMAN備份是存在的,希望利用,如系統(tǒng)被重建而導(dǎo)致數(shù)據(jù)庫重建,或者數(shù)據(jù)庫備份后需要恢復(fù)到其它機(jī)器上。
一、重建前的準(zhǔn)備
1、準(zhǔn)備測試用表
在RMES用戶下創(chuàng)建測試用表,插入并提交數(shù)據(jù)
create table rmes.r_rmantest_t(a varchar2(30)) tablespace rmes;
insert into rmes.r_rmantest_t values('Before rman backup');
commit;
做一次檢查點(diǎn)操作,保證數(shù)據(jù)寫入到數(shù)據(jù)文件中
alter system checkpoint;
2、準(zhǔn)備備份路徑
創(chuàng)建數(shù)據(jù)文件備份路徑e:\rman_bak\mes
創(chuàng)建控制文件和初始化參數(shù)文件備份路徑e:\rman_bak\mes\control_bak
創(chuàng)建聯(lián)機(jī)日志文件備份路徑e:\rman_bak\mes\redolog
3、配置RMAN備份參數(shù)
登錄RMAN,查看并配置RMAN的備份參數(shù)
show all;
控制文件和spfile文件自動(dòng)備份設(shè)為on,并配置備份路徑
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'e:\rman_bak\mes\control_bak\%F';
配置數(shù)據(jù)文件備份路徑
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'e:\rman_bak\mes\%d_%u_%c_%T';
確認(rèn)備份參數(shù)的更改
show all;
4、全備份
backup as compressed backupset database plus archivelog;
5、更新測試用表
完成備份后再插入一條記錄到測試表中
insert into rmes.r_rmantest_t values('After rman backup');
commit;
不做檢查點(diǎn),這樣數(shù)據(jù)只記錄在聯(lián)機(jī)日志中,不會(huì)馬上寫入數(shù)據(jù)文件。
6、備份聯(lián)機(jī)日志文件
在操作系統(tǒng)下將聯(lián)機(jī)日志文件復(fù)制到備份目錄e:\rman_bak\mes\redolog
所有的備份都已完備,現(xiàn)在可以在本機(jī)上用DBCA銷毀數(shù)據(jù)庫,或者將備份文件轉(zhuǎn)出到其他機(jī)器上進(jìn)行數(shù)據(jù)庫重建。
二、重建數(shù)據(jù)庫
1、重建實(shí)例服務(wù)
在操作系統(tǒng)命令提示符下執(zhí)行oradim命令,創(chuàng)建名為mes的服務(wù),并設(shè)置環(huán)境變量
C:\> oradim -new -sid mes
C:\> set oracle_sid=mes
2、還原服務(wù)器參數(shù)文件并重建丟失的目錄
登陸RMAN
C:\Users\Administrator>rman target /
恢復(fù)管理器: Release 11.2.0.4.0 - Production on 星期四 5月 3 16:55:47 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已連接到目標(biāo)數(shù)據(jù)庫 (未啟動(dòng))
使用之前的備份,在非加載模式下還原spfile服務(wù)器參數(shù)文件
RMAN> startup nomount
啟動(dòng)失敗: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITMES.ORA'
在沒有參數(shù)文件的情況下啟動(dòng) Oracle 實(shí)例以檢索 spfile
Oracle 實(shí)例已啟動(dòng)
系統(tǒng)全局區(qū)域總計(jì) 1068937216 字節(jié)
Fixed Size 2288080 字節(jié)
Variable Size 285214256 字節(jié)
Database Buffers 775946240 字節(jié)
Redo Buffers 5488640 字節(jié)
RMAN> restore spfile from 'e:\rman_bak\mes\control_bak\C-2056489697-20180503-01';
啟動(dòng) restore 于 2018-05-03 16:58:49
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=396 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在從 AUTOBACKUP e:\rman_bak\mes\control_bak\C-2056489697-20180503-01 還原 spfile
通道 ORA_DISK_1: 從 AUTOBACKUP 還原 SPFILE 已完成
完成 restore 于 2018-05-03 16:58:50
創(chuàng)建pfile文件
RMAN> sql'create pfile from spfile';
sql 語句: create pfile from spfile
Windows中該文件默認(rèn)位置為%ORACLE_HOME%\database\INITmes.ORA
打開pfile文本文件,將文件中提及的目錄創(chuàng)建起來,如本例中需要保證以下目錄存在
C:\Oracle\admin\mes\adump\
D:\ORADATA\MES\
E:\FAST_RECOVERY_AREA\MES\
E:\fast_recovery_area\mes\archivelog\
3、還原控制文件
用還原的服務(wù)器參數(shù)文件重啟實(shí)例到非加載模式,還原控制文件
RMAN> shutdown abort
Oracle 實(shí)例已關(guān)閉
RMAN> startup nomount
已連接到目標(biāo)數(shù)據(jù)庫 (未啟動(dòng))
Oracle 實(shí)例已啟動(dòng)
系統(tǒng)全局區(qū)域總計(jì) 1286066176 字節(jié)
Fixed Size 2280896 字節(jié)
Variable Size 771752512 字節(jié)
Database Buffers 503316480 字節(jié)
Redo Buffers 8716288 字節(jié)
RMAN> restore controlfile from 'e:\rman_bak\mes\control_bak\C-2056489697-20180503-01';
啟動(dòng) restore 于 2018-05-03 17:06:41
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=156 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在還原控制文件
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:00:02
輸出文件名=D:\ORADATA\MES\CONTROL01.CTL
輸出文件名=E:\FAST_RECOVERY_AREA\MES\CONTROL02.CTL
完成 restore 于 2018-05-03 17:06:43
4、還原數(shù)據(jù)庫
用還原的控制文件加載數(shù)據(jù)庫
RMAN> alter database mount;
數(shù)據(jù)庫已裝載
釋放的通道: ORA_DISK_1
還原數(shù)據(jù)庫
RMAN> restore database;
啟動(dòng) restore 于 2018-05-03 17:19:26
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00001 還原到 D:\ORADATA\MES\SYSTEM01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00002 還原到 D:\ORADATA\MES\SYSAUX01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00003 還原到 D:\ORADATA\MES\UNDOTBS01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00004 還原到 D:\ORADATA\MES\USERS01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00005 還原到 D:\ORADATA\MES\EXAMPLE01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00006 還原到 D:\ORADATA\MES\CMES01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00007 還原到 D:\ORADATA\MES\RMES01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00008 還原到 D:\ORADATA\MES\HMES01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00009 還原到 D:\ORADATA\MES\INDX01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00010 還原到 D:\ORADATA\MES\FDA01.DBF
通道 ORA_DISK_1: 正在讀取備份片段 E:\RMAN_BAK\MES\MES_85T1VQN6_1_20180503
通道 ORA_DISK_1: 段句柄 = E:\RMAN_BAK\MES\MES_85T1VQN6_1_20180503 標(biāo)記 = TAG20180503T163757
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:00:56
完成 restore 于 2018-05-03 17:20:23
期間可能會(huì)遭遇ORA-19693:已包括備份片段的錯(cuò)誤提示,這個(gè)是由于控制文件中的備份信息被重復(fù)編目所致??梢韵葘浞菸募窂礁拿缓筮M(jìn)行一次交叉檢查crosscheck backup,再用delete expired backup刪除和注銷備份信息,之后再進(jìn)行重新編目注冊備份catalog start with '...',經(jīng)此處理后再進(jìn)行restore還原應(yīng)該可以解決問題。
5、拷回聯(lián)機(jī)日志文件
確認(rèn)聯(lián)機(jī)日志文件應(yīng)當(dāng)存放的位置
17:16:07 SYS @ mes AS SYSDBA>select member from v$logfile;
MEMBER
------------------------------------------------------------
D:\ORADATA\MES\REDO03.LOG
D:\ORADATA\MES\REDO02.LOG
D:\ORADATA\MES\REDO01.LOG
在操作系統(tǒng)下將備份在e:\rman_bak\mes\redolog中的聯(lián)機(jī)日志文件拷回到指定的聯(lián)機(jī)日志目錄中。
6、恢復(fù)并打開數(shù)據(jù)庫
如果之前使用了塊改變跟蹤,則應(yīng)當(dāng)在執(zhí)行恢復(fù)前先取消塊改變跟蹤,因?yàn)閴K改變跟蹤的DBF數(shù)據(jù)文件已不存在,RMAN備份時(shí)不會(huì)去備份它
alter database disable block change tracking;
恢復(fù)數(shù)據(jù)庫
RMAN> recover database;
啟動(dòng) recover 于 2018-05-03 17:21:18
使用通道 ORA_DISK_1
正在開始介質(zhì)的恢復(fù)
線程 1 序列 7 的歸檔日志已作為文件 D:\ORADATA\MES\REDO01.LOG 存在于磁盤上
線程 1 序列 8 的歸檔日志已作為文件 D:\ORADATA\MES\REDO02.LOG 存在于磁盤上
歸檔日志文件名=D:\ORADATA\MES\REDO01.LOG 線程=1 序列=7
歸檔日志文件名=D:\ORADATA\MES\REDO02.LOG 線程=1 序列=8
介質(zhì)恢復(fù)完成, 用時(shí): 00:00:01
完成 recover 于 2018-05-03 17:21:23
打開數(shù)據(jù)庫,重置聯(lián)機(jī)日志序列
RMAN> alter database open resetlogs;
數(shù)據(jù)庫已打開
7、驗(yàn)證數(shù)據(jù)的恢復(fù)
查看測試用表,驗(yàn)證數(shù)據(jù)是否完整恢復(fù)
17:18:45 SYS @ mes AS SYSDBA>select * from rmes.r_rmantest_t;
A
------------------------------
Before rman backup
After rman backup
至此,完成了mes數(shù)據(jù)庫的重新創(chuàng)建和恢復(fù)。
8、RMAN異地恢復(fù)需要注意的問題
根據(jù)備份文件存放的目錄位置,修改指向后再還原
catalog start with 'e:\rman_bak\mes';
restore database;
從10g恢復(fù)到11g環(huán)境時(shí)需注意:
1)恢復(fù)前執(zhí)行預(yù)升級(jí)工具腳本utlirp.sql
2)恢復(fù)數(shù)據(jù)庫
3)以startup upgrade方式打開數(shù)據(jù)庫
4)執(zhí)行升級(jí)腳本catupgrd.sql
如果事先沒有執(zhí)行預(yù)升級(jí)腳本,則執(zhí)行以上腳本時(shí)會(huì)報(bào)錯(cuò),因?yàn)楸韗egistry$database缺少TZ_VERSION字段。解決方法是修改表registry$database,增加tz_version字段,number類型,并重新插入記錄
truncate table registry$database;
insert into registry$database
(platform_id,platform_name,edition,tz_version)
values
((select platform_id from v$database),
(select platform_name from v$database),
null,
(select version from v$timezone_file));
之后再執(zhí)行升級(jí)腳本catupgrd.sql就沒有問題了。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何利用RMAN備份重建數(shù)據(jù)庫”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
網(wǎng)頁標(biāo)題:如何利用RMAN備份重建數(shù)據(jù)庫
分享網(wǎng)址:http://chinadenli.net/article12/ppiggc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站維護(hù)、小程序開發(fā)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)