oracle資料庫rman恢復資料庫
A. 用rman,在oracle不同版本間作數據恢復,怎麼弄
一、RMAN 備份的內容
RMAN做資料庫全備時包含了 數據文件、歸檔日誌、控制文件和參數文件和備份日誌,如下:
arch_20160223_08qukp2t_1_1 arch_20160223_0bqukp92_1_1 ctl_c-3234695588-20160223-01 rmanbak-20160223-0852.log scp_20160223_09qukp2u_1_1 scp_20160223_0aqukp2u_1_1
二、測試環境
OS:CentOS release 6.4 (Final)
Database:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Proction
原平台與當前平台環境一致,但是oracle資料庫目錄結構不一致。
三、開始恢復
1、 確認原資料庫的DBID(通過RMAN的備份日誌,或者通過RMAN備份的控制文件名來識別),同時確認一下原資料庫的實例名;
2、 將RMAN備份的內容拷貝到目標資料庫上;
3、 設置好環境變數:
[oracle@dg1 ~]$ export NLS_DATA_FORMAT='YYYY-MM-DD HH24:MI:SS'
[oracle@dg1 ~]$ export ORACLE_SID=scp
[oracle@dg1 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Proction on Fri May 6 22:18:52 2016
4、裝載資料庫並進行恢復
A、裝斗兆載資料庫
復制代碼
RMAN> set dbid=3234695588;
executing command: SET DBID
RMAN> startup nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/proct/12.1.0.2/dbs/initscp.ora'
starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started
復制代碼
B、先恢復spfile文件(或者是pfile文件,可以修改各項參數),因為在spfile 文件中包含了控制文件的位置
RMAN> restore spfile to pfile '$ORACLE_HOME/dbs/initscp.ora' from '/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01';
OR:
RMAN> restore spfile to '$ORACLE_HOME/培則dbs/spfilescp.ora' from '/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01';
C、根據pfile文件中的相關參數去修改本地系統目錄,或者修改這個pfile文件來匹配本地系統中的路徑和目錄,我們選擇後者
需要修改:oracle_base、*.audit_file_dest、*.control_files、*.db_recovery_file_dest、*.db_recovery_file_dest_size、*.diagnostic_dest、*.log_archive_dest_1、
memory_target、undo_tablespace等。並在當前配銷棚系統中創建好相關的目錄和許可權。
復制代碼
[oracle@dg1 dbs]$ vim initscp.ora
scp.__data_transfer_cache_size=0
scp.__db_cache_size=822083584
scp.__java_pool_size=16777216
scp.__large_pool_size=33554432
scp.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
scp.__pga_aggregate_target=654311424
scp.__sga_target=1241513984
scp.__shared_io_pool_size=50331648
scp.__shared_pool_size=301989888
scp.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/scp/amp'
*.audit_trail='db'
*.compatible='12.1.0.2.0'
*.control_files='/u01/app/oracle/oradata/scp/control01.ctl','/u01/app/oracle/fast_recovery_area/scp/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='scp'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4560m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=scpXDB)'
*.log_archive_dest_1='LOCATION=/OracleArch'
*.memory_target=1800m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
復制代碼
D、從修改後的pfile文件啟動資料庫,進行控制文件的恢復
復制代碼
RMAN> shutdown abort;
RMAN> startup nomount pfile='$ORACLE_HOME/dbs/initscp.ora';
RMAN> restore controlfile from '/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01';
Starting restore at 06-MAY-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=243 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/home/OracleData/scp/control01.ctl
output file name=/home/OracleArch/fast_recovery_area/control02.ctl
Finished restore at 06-MAY-16
復制代碼
E、控制文件恢復後就可以mount資料庫了
RMAN> alter database mount;
Statement processed
released channel: ORA_DISK_1
F、至此,控制文件已經恢復,資料庫已經mount,所有的RMAN配置參數均已設置,您應該驗證路徑以確保它們適用於該主機。
復制代碼
RMAN> show all;
RMAN configuration parameters for database with db_unique_name SCP are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/orabackup/RmanBackupSet/20160223/ctl_%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/proct/12.1.0.2/dbs/snapcf_scp.f'; # default
復制代碼
G、為了能讓RMAN找到恢復文件的位置,我們有兩種途徑可以實現:一是修改RMAN配置以符合當前備份文件所在位置,其次是將RMAN備份文件拷貝到配置文件中設定的位置 (需要參考RMAN的備份日誌)。在第一個方法中,為了讓RMAN知道備份文件位置 /home/OracleBack/rmanbak ,我們使用catalog命令:
復制代碼
RMAN> catalog start with '/home/OracleBack/rmanbak';
Starting implicit crosscheck backup at 06-MAY-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=243 device type=DISK
Crosschecked 4 objects
Finished implicit crosscheck backup at 06-MAY-16
Starting implicit crosscheck at 06-MAY-16
using channel ORA_DISK_1
Finished implicit crosscheck at 06-MAY-16
searching for all files in the recovery area
cataloging files...
no files cataloged
searching for all files that match the pattern /home/OracleBack/rmanbak
List of Files Unknown to the Database
=====================================
File Name: /home/OracleBack/rmanbak/scp_20160223_09qukp2u_1_1
File Name: /home/OracleBack/rmanbak/arch_20160223_0bqukp92_1_1
File Name: /home/OracleBack/rmanbak/scp_20160223_0aqukp2u_1_1
File Name: /home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01
File Name: /home/OracleBack/rmanbak/arch_20160223_08qukp2t_1_1
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /home/OracleBack/rmanbak/scp_20160223_09qukp2u_1_1
File Name: /home/OracleBack/rmanbak/arch_20160223_0bqukp92_1_1
File Name: /home/OracleBack/rmanbak/scp_20160223_0aqukp2u_1_1
File Name: /home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01
File Name: /home/OracleBack/rmanbak/arch_20160223_08qukp2t_1_1
復制代碼
H、對備份集做交叉檢查,否則還原資料庫時可能會報錯
復制代碼
RMAN> crosscheck backup;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/arch_20160223_08qukp2t_1_1 RECID=8 STAMP=904553565
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/arch_20160223_08qukp2t_1_1 RECID=16 STAMP=911172456
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/scp_20160223_0aqukp2u_1_1 RECID=9 STAMP=904553567
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/scp_20160223_0aqukp2u_1_1 RECID=14 STAMP=911172456
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/scp_20160223_09qukp2u_1_1 RECID=10 STAMP=904553567
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/scp_20160223_09qukp2u_1_1 RECID=12 STAMP=911172456
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/arch_20160223_0bqukp92_1_1 RECID=11 STAMP=904553762
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/arch_20160223_0bqukp92_1_1 RECID=13 STAMP=911172456
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01 RECID=15 STAMP=911172456
Crosschecked 9 objects
復制代碼
I、通過控制文件獲得表空間及數據文件列表
復制代碼
RMAN> report schema;
RMAN-06139: WARNING: control file is not current for REPORT SCHEMA
Report of database schema for database with db_unique_name SCP
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 0 SYSTEM *** /u01/app/oracle/oradata/scp/system01.dbf
2 0 ZYTK_AC *** /u01/app/oracle/oradata/scp/zytk_ac01.dbf
3 0 SYSAUX *** /u01/app/oracle/oradata/scp/sysaux01.dbf
4 0 UNDOTBS1 *** /u01/app/oracle/oradata/scp/undotbs01.dbf
5 0 EXAMPLE *** /u01/app/oracle/oradata/scp/example01.dbf
6 0 USERS *** /u01/app/oracle/oradata/scp/users01.dbf
7 0 ZYTK_AC *** /u01/app/oracle/oradata/scp/zytk_ac02.dbf
8 0 ZYTK_ID *** /u01/app/oracle/oradata/scp/zytk_id01.dbf
9 0 ZYTK_ID *** /u01/app/oracle/oradata/scp/zytk_id02.dbf
10 0 ZYTK_OP *** /u01/app/oracle/oradata/scp/zytk_op01.dbf
11 0 ZYTK_OP *** /u01/app/oracle/oradata/scp/zytk_op02.dbf
12 0 ZYTK_TEST01 *** /u01/app/oracle/oradata/scp/zytk_test01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 60 TEMP 32767 /u01/app/oracle/oradata/scp/temp01.dbf
注意:restore 的時候不會對temp 表空間進行restore。所以等restore 之後,我們需要手工創建temp表空間。
B. 使用Rman備份的歸檔日誌恢復資料庫時,需要先還原歸檔日誌嗎
oracle中可以利用 rman 還原歸檔日誌到某個時間點:
1、理解還原與恢復
恢復(recover): 將備份之後的歸檔日誌apply到資料庫,也就根據歸檔日誌的事務將資料庫刷新到特定或最新狀態(通常在還原之後操作)。對於歸
檔日誌中那些已提交的事務進行前滾,未提交的事務進行回滾。
還原歸檔日誌: 還原歸檔日誌是位於還原資料庫與恢復資料庫之間的這么一個過程。它會將那些在備份歸檔日誌時使用delete [all] input方式
刪除的歸檔日誌還原到預設的歸檔位置。在還原資料庫之後,如果要做recover,也就是作介質恢復那就需要用到歸檔日誌。那還原之後進行
recover需要的歸檔日誌在哪裡呢?歸檔日誌在指定的歸檔路徑那裡,那到底有沒有呢?如果有,還原時出現提示,歸檔日誌已經在指定位置。
如果沒有,但是備份的歸檔備份集那裡有,也行啊。備份集里包含備份片,也就是打包了歸檔日誌。那既然打包就要解包,解包到預設路徑
或指定路徑。這就是還原歸檔日誌。
--演示環境
--為了較好的模擬還原歸檔日誌,我們僅僅使用了一個特定的數據文件進行方式備份,然後備份歸檔日誌(備份時刪除歸檔日誌)
--接下來破壞數據文件,還原數據文件,還原歸檔日誌文件,恢復日誌文件。
[oracle@linux3 ~]$ cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m
[oracle@linux3 ~]$ sqlplus -V
SQL*Plus: Release 11.2.0.1.0 Proction
a、備份數據文件及歸檔日誌
RMAN> list backup of archivelog all; --->列出當前資料庫已經備份的歸檔日誌
specification does not match any backup in the repository
RMAN> list backupset; --->列出當前資料庫已存在的備份集
specification does not match any backup in the repository
SQL> select username,default_tablespace from dba_users where username='SCOTT'; -->查看用戶scott所在的表空間及數據文件
C. oracle RMAN 的使用
3. 恢復目錄
3.1.恢復目錄的概念
恢復目錄是由RMAN使用、維護的用來放置備份信息的倉庫。RMAN利用恢復目錄記載的信息去判斷如何執行需要的備份恢復操作。
恢復目錄可以存在於ORACLE資料庫的計劃中。
雖然恢復目錄可以用來備份多個資料庫,建議為恢復目錄資料庫創建一個單獨的資料庫。
恢復目錄資料庫不能使用恢復目錄備份自身。
3.2.建立恢復目錄
第一步,在目錄資料庫中創建恢復目錄所用表空間:
SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;
表空間已創建。
第二步,在目錄資料庫中創建RMAN 用戶並授權:
SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;
用戶已創建。
SQL> grant recovery_catalog_owner to rman ;
授權成功。
SQL> grant connect, resource to rman ;
授權成功。
第三步,在目錄資料庫中創建恢復目錄
C:\>rman catalog rman/rman
恢復管理器:版本8.1.6.0.0 - Proction
RMAN-06008:連接到恢復目錄資料庫
RMAN-06428:未安裝恢復目錄
RMAN>create catalog tablespace rman_ts;
RMAN-06431:恢復目錄已創建
注意:雖然使用RMAN不一定必需恢復目錄,但是推薦使用。因為恢復目錄記載的信息大部分可以通過控制文件來記載,RMAN在恢復資料庫時使用這些信陪游息。不使用恢復目錄將會對備份恢復操作有限制。
3.3.使用恢復目錄的優勢
可以存儲腳本;
記載較長時間的備份恢復操作;
4. 啟動RMAN
RMAN為互動式命令行處理界面,也可以從企業管理器中運行。
為了使用下面的實例,先檢查環境符合:
the target database is called "his" and has the same TNS alias
user rman has been granted "recovery_catalog_owner "privileges
目標資料庫的連接用戶為internal帳號,或者以其他SYSDBA類型帳號連接
the recovery catalog database is called "rman" and has the same TNS alias
the schema containing the recovery catalog is "rman" (same password)
在使用RMAN前,設置NLS_DATE_FORMAT 和NLS_LANG環境變數,很多RMAN LIST命令的輸出結果是與日期時間相關的,這點在用戶希望執行以時間為基準的恢復工作也很重要。
下例是環境變數的示範:
NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS
為了保證RMAN使蘆搜銷用時能連接恢復目錄,恢復目錄數漏遲據庫必須打開,目標資料庫至少要STARTED(unmount),否則RMAN會返回一個錯誤,目標資料庫必須置於歸檔模式下。
4.1.使用不帶恢復目錄的RMAN
設置目標資料庫的 ORACLE_SID ,執行:
% rman nocatalog
RMAN> connect target
RMAN> connect target internal/<password>@his
4.2.使用帶恢復目錄的RMAN
% rman rman_ts rman/rman@rman
RMAN> connect target
% rman rman_ts rman/rman@rman target internal/<password>@his
4.3.使用RMAN
一旦連接到目標資料庫,可以通過交互界面或者事先存儲的腳本執行指定RMAN命令, 下面是一個使用RMAN交互界面的實例:
RMAN> resync catalog;
RMAN-03022:正在編譯命令:resync
RMAN-03023:正在執行命令:resync
RMAN-08002:正在啟動全部恢復目錄的 resync
RMAN-08004:完成全部 resync
使用腳本的實例:
RMAN> execute script alloc_1_disk;
創建或者替代存儲的腳本:
RMAN> replace script alloc_1_disk {
2> allocate channel d1 type disk;
3> }
5.注冊或者注銷目標資料庫
5.1.注冊目標資料庫
資料庫狀態:
恢復目錄狀態:打開
目標資料庫:載入或者打開
目標資料庫在第一次使用RMAN之前必須在恢復目錄中注冊:
第一步,啟動恢復管理器,並且連接目標資料庫:
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢復管理器:版本8.1.6.0.0 - Proction
RMAN-06005:連接到目標資料庫:HIS (DBID=3021445076)
RMAN-06008:連接到恢復目錄資料庫
第二步,注冊資料庫:
RMAN> register database;
RMAN-03022:正在編譯命令:register
RMAN-03023:正在執行命令:register
RMAN-08006:注冊在恢復目錄中的資料庫
RMAN-03023:正在執行命令:full resync
RMAN-08002:正在啟動全部恢復目錄的resync
RMAN-08004:完成全部resync
5.2.注銷目標資料庫
RMAN提供了一個注銷工具,叫DBMS_RCVCAT工具包,請注意一旦注銷了該目標資料庫,就不可以使用恢復目錄中含有的備份集來恢復資料庫了。
為了能注銷資料庫,需要獲得資料庫的標識碼(DB_ID)和資料庫鍵值(DB_KEY)。其中連接目標資料庫時將會獲得DB_ID。
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢復管理器:版本8.1.6.0.0 - Proction
RMAN-06005:連接到目標資料庫:HIS (DBID=3021445076)
RMAN-06008:連接到恢復目錄資料庫
其中DBID=3021445076,利用DBID=3021445076查詢資料庫鍵值碼:
連接到目標資料庫,查詢db表:
SQL> select * from db;
DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
1 3021445076 2
獲得DB_KEY=1,這樣,該目標資料庫DB_KEY=1,DBID=3021445076,利用兩個值使用DBMS_RCVCAT工具包就可以注銷資料庫:
SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);
PL/SQL 過程已成功完成。
至此,注銷資料庫操作完成。
... ...
請採納。
D. 資料庫的備份和恢復 [Oracle資料庫的備份與恢復策略分析]
【摘 要】為了保證資料庫的安全性和穩定性,通過對Oracle的備份以及恢復策略進行了分析和探討,明確了資料庫備份以及恢復技術在實際工程項目當中的應用,通過分析資料庫備份的實際需求,同時選擇了合理的數據備份策略以及數據恢復策略,採取了有效的資料庫的管理和維護策略,有效保證了資料庫中的相關數據以及整個系統的安全性和穩定性,為類似資料庫的備份以及恢復策略提供了可供參考的經驗。
【關鍵字】Oracle資料庫;備份;數據;恢復;策略
對於企業而言,資料庫中的數據是重要的數據資源,也是企業得以持續總結和發展的重要的要素,由此保證相應資料庫的安全性和穩定性有著十分重要的影響。 隨著資料庫內數據量的逐漸增加,並且資料庫發展以及運行所面臨的環境也日益復雜,資料庫中數據的安全性以及相關系統運行的穩定性對企業的發展尤為重要。資料庫中的數據難以避免地受到了外界的侵襲,例如網路、硬體以及系統等方面的故障,甚至自然災害也將導致則整個系統的崩潰,數據丟失,資料庫中存儲過程中的失誤將給企業的發展帶來嚴重的影響甚至巨大的損失,為了尺茄有效避開或者減少這些無法預測損失的到來,建立一系列安全穩定可靠的數據備份系統尤為重要。
1 建立備份策略
1.1 數據備份需求
(1)良好的可擴展能力
隨著企業的發展和項目管理以及建設的持續發展和升級,企業資料庫中的數據量將日益增長,所使用的資料庫也應具有數據的擴展和升級的空間和可能。
(2)備份數據的可恢復性
為保證企業內部資料庫的規范統一以及集中安全的數據恢復和備份的管理,相應的數據備份以及恢復策略應保證所備份的數據的可靠性以及可恢復性,為系統數據的恢復奠定了良好的基礎。
(3)保持業務流程的連貫性
數據備份和恢復系統要以維持企業基本的業務流程和體系為基礎,在保證了系統業務連續性的前提下開展資料庫的數據備份,避免了數據存儲設備時間較長對企業系統的使用和相關項目的運行造成影響。
1.2 備份設備的選型
在對PCEDM資料庫陵手察備份需求分析的基礎上,使用IBM的TSM作為備份數據備份的支持。TSM軟體管理軟體系統,是為企業級別的數據以及系統安全設計,以解決企業級數據和系統的安全性,為數據的備份提供解決方案,為石油、金融、電信管理和其他許多大型企業解決了數據的備份和管理問題。 TSM的管理結構,其高度的可擴展性和廣泛的平台支持,集中式,自動化的存儲管理等方面的優勢,提供高效,自動,可擴展的備份管理系統。TSM專有的二進制格式,每個數據備份和恢復加密的數據傳輸格式,TSM自動CRC數據校驗,從而保證了數據備份和恢復過程的完整性和安全。
2 制定備份策略
通過詳細分析Oracle資料庫的存儲結構、資料庫的運行模式、數據存儲文件、數據增長的速度和數據增長密度等實際狀況,結合幾個備份Oracle資料庫的優點和缺點分析,數據的備份策略表示如下:
2.1 使用RMAN與冷備份、邏輯備份相結合。使用Oracle資料庫本身的RMAN和冷備份以及邏輯備份的方式結合起來,其中,Oracle資料庫所提供的備份方式是主要的備份方式,而冷備份,邏輯備份作為輔助備份。
2.2 RMAN 備份包括全備份和增量備份 2 種方式。使用備份數據量小,低差異增量備份。在進行了一次級別為n的Differential增量的備薯差份過程中,RMAN備份僅僅將那些最近一次等級等於或小於增量備份n相比,產生變化的數據塊進行備份。差異增量備份策略RMAN的方法,設定在每個星期天,星期三0級備份資料庫和日誌文件的備份,周一,周二,周四,周五,周六為第一級增量備份和日誌文件的備份。
2.3 備份觸發方式,在Unix預定時間以及計劃內啟動。構建系統的CRON任務,根據備份策略編輯命令,在確定的時間內起動文件以及備份計劃。
3 數據備份方案的具體實施
備份存儲設備使用的磁碟陣列和磁帶庫的組合方式。TSM備份存儲池,並最終利用RMAN備份的數據進行備份的IBM Ultrium3584磁帶庫EMC CX700磁碟陣列空間分割出的一部分作為備份的存儲區域。資料庫伺服器放置在本地磁碟系統進行資料庫冷備份以及邏輯備份過程中所產生的備份文件。
3.1 冷備份
在資料庫以TRANSACTIONAL,IMMEDIATE 或 NORMAL 方式關閉後進行的數據備份稱為冷備份或離線備份,所以得到的是一個備份的一致性。在資料庫關閉,操作系統的所有訂單數據文件,控制文件和聯機日誌文件,初始化參數文件等進行備份,冷備份副本。一旦資料庫發生故障,可以將這些文件拷貝覆蓋原始文件的位置。這個備份資料庫,它可以返回到之前的狀態。 由於PCEDM資料庫需要,以確保7天24小時運作,冷備份必須在封閉的資料庫進行。冷備份在正常的服務維修期間進行每一年兩次的備份。使用冷備份具有一致性的優勢,可以保證系統恢復的迅速。
3.2 邏輯備份
邏輯備份使用Oracle導出工具將資料庫中的對象模型得出的二進制文件,有一個需要重用Oracle導入工具將模型的二進制文件導入到對象資料庫。基於整個資料庫備份的邏輯模式,用戶模式或表模型可以將數據輸出,更靈活。對於一些重要的數據可以作為輔助備份方式。通過使用不同操作系統平台,以及不同的資料庫版本之間進行了資料庫中數據的遷移,這成為了資料庫物理備份的補充形式。
3.3 RMAN 備份
RMAN是Oracle提供的外部工具,專門用於資料庫備份和恢復操作。通過在RMAN備份系統中啟動Oracle服務進程完成備份的任務。創建RMAN的備份的具體步驟如下:
(1)在資料庫伺服器上安裝TSM客戶端,選擇相關文件進行編輯,設置DSMI_ORC_CONFIG,TDPO_ PSWDPATH參數,建立RMAN備份和TSM備份管理軟體系統的連接。
(2)創建RMAN目錄資料庫備份恢復,以保存備份的索引信息。
(3)RMAN恢復管理器,同時開始在目標資料庫的連接。
(4)目標資料庫的注冊。
(5)修改RMAN默認的配置參數。 CONFIGURE命令可以用來改變默認的RMAN設置,如配置自動通道,在指定的備份保留策略,激活或屏蔽備份優化功能。
(6)創建備份腳本。
4 Oracle 資料庫恢復
4.1 RMAN 的完全恢復
在使用RMAN的完全恢復,在線和歸檔重做日誌文件中的所有記錄將被用於恢復資料庫,從備份中恢復已損壞的文件,然後應用日誌文件,將數據文件恢復到當前的時間。
4.2 RMAN的不完全恢復
通過RMAN中的不完全恢復資料庫,將資料庫恢復到指定的時刻或狀態,通過將指定的SCN或者應用指定日期順序歸檔重做日誌之後的狀態,也就是從時間、SCN或日誌這三種方式中選擇一種方式作為恢復終止的標記。
5 結語
實踐證明,這種設計的備份策略,實現真正意義上的數據備份自動化管理,使系統的管理從傳統的繁瑣的手工備份中解放出來,提高工作效率和工作質量;有效避免了人為錯誤,提高數據備份的安全性和可靠性;減少了資料庫的I / O操作,提高了數據備份恢復的速度以及數據備份的有效性。與此同時,也使備份系統具有良好的可擴展性,能夠滿足當前和今後幾年的業務發展的實際需求。
參考文獻:
[1]張自輝. ORACLE資料庫的備份方法和策略[J]. 吉首大學學報(自然科學版), 2009,(01) .
[2]安亞強. Oracle備份與恢復及故障研究[J]. 內蒙古煤炭經濟, 2009,(04) .
[3]王立新. Oracle資料庫備份與恢復策略淺析[J]. 才智, 2009,(28) .
[4]楊志彬. Oracle資料庫備份策略[J]. 電腦知識與技術, 2009,(17) .
E. 怎麼才能把一個資料庫的rman備份恢復到同平台上的另一個資料庫中
要求:本地已有生產資料庫prod,制定rman備份策略,將數據備份到制定目錄/oracle/rman_bk下。現在需要做恢復測試,驗證備份出來的數據是有效的。且不影響原有的生產資料庫prod。
解決思路:在備份出來的數據中(控制文件),包含了資料庫名,數據文件,redo log等文件的存放路徑,如果在本地直接做恢復,將和原有的資料庫攜頃****,因此,需要修改這些信息,將備份出來的數據恢復到另外一個資料庫辯滑陸中。具體步驟如下:
1.創建新資料庫數據文件及跟蹤文件存放目錄
-bash-2.05b$mkdir -p /oracle/oradata/test
-bash-2.05b$mkdir -p /oracle/admin/test/bmp
-bash-2.05b$mkdir -p /oracle/admin/test/ump
-bash-2.05b$mkdir -p /oracle/admin/test/cmp
2.登錄到生產資料庫。查看當前數據文件信息:
-bash-2.05b$ sqlplus '/ as sysdba'
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /oracle/oradata/test/system01.dbf
2 /oracle/oradata/test/undo01.dbf
3 /oracle/oradata/test/users01.dbf
3.利用rman更改數據文件存放路徑並restore到新的路徑
run {
set newname for datafile 1 to '/oracle/oradata/test/system01.dbf';
set newname for datafile 2 to '/oracle/oradata/test/undo01.dbf';
set newname for datafile 3 to '/oracle/oradata/test/users01.dbf';
restore datafile 1;
restore datafile 2;
restore datafile 3;
}
4。重建控制文件
CREATE CONTROLFILE REUSE set DATABASE "test" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 10M,
GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 10M,
GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/oracle/oradata/test/system01.dbf',
'/oracle/oradata/test/undo01.dbf'讓兄,
'/oracle/oradata/test/users01.dbf'
CHARACTER SET ZHS16GBK
;
5.打開資料庫
SQL> alter database open resetlogs;
backup archivelog all delete input format '/rman/rman_%t_%s_%p.arc';
with a as
(select rownum p from al connect by level<=21)
select
7 + CEIL(
(7 + CEIL(
(7 + CEIL(p/3))
/3))
/3)
from a;
7+CEIL((7+CEIL((7+CEIL(p/3))/3))/3
本答案來自於互聯網,僅供參考學習作用
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!