雙重加密模式下的備份恢復
第一部分 . 概述
一、 實驗環境
Os information:
[oracle@lzc 2012_09_30]$ lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Database information:
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
二、 實驗目標
使用在雙重加密模式下的全庫備份,在遠端主機上進行上恢復。使資料庫正常啟動,並且執行。
三、 實驗設計
1、 手動建立引數檔案
2、 恢復引數檔案、控制檔案
3、 恢復資料庫
4、 開啟資料庫
第二部分 . 技術概述
一、 實驗步驟
1. 手動建立引數檔案
要想恢復資料庫,首先需要啟動資料庫,而沒有引數檔案就無法啟動資料庫。所以,我們要先手動建立一個臨時引數檔案。這樣我們就可以把資料庫啟動到nomount狀態了。手動建立引數檔案最少只需要一個db_name引數。
a) 將資料庫啟動到mount狀態
[oracle@lzc01 ~]$ cat inittestdb.ora
db_name=testdb
SQL> startup pfile='/home/oracle/inittestdb.ora' nomount;
ORACLE instance started.
Total System Global Area 113246208 bytes
Fixed Size 1218004 bytes
Variable Size 58722860 bytes
Database Buffers 50331648 bytes
Redo Buffers 2973696 bytes
b) 開啟錢包
由於我們的備份時在雙重模式下的加密所以我們要想恢復引數檔案,就要先開啟wallet。
把從源資料庫中備份的wallet拷貝到相應的目錄下,並將路徑新增到sqlnet.ora檔案中。
ENCRYPTION_WALLET_LOCATION =
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=/u01/app/oracle/product/10.2.0.1/db_1/network/admin/wallets/)))
SQL> alter system set encryption wallet open identified by "oracle.com";
System altered.
2. 恢復引數檔案
現在已經將資料庫開啟到了nomount狀態,並且wallet也已經開啟那麼我們就可以從雙重加密的全庫備份片中恢復引數檔案和控制檔案了。
a) 恢復引數檔案
RMAN> restore spfile to '/home/oracle/inittestdb.ora' from '/home/oracle/exercise/o1_mf_s_795383881_86jdyb61_.bkp';
Starting restore at 01-OCT-12
using channel ORA_DISK_1
channel ORA_DISK_1: autobackup found: /home/oracle/exercise/o1_mf_s_795383881_86jdyb61_.bkp
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 01-OCT-12
3. 重建資料庫環境
現在有了引數檔案、控制檔案那麼我們是不是就可以恢復資料庫了呢,確切的說還有一個需要考慮的問題就是:資料庫中各個檔案對應的儲存目錄。
這裡有兩種選擇:
1)相同路徑:按照引數檔案和控制檔案中的記錄,建立相應的目錄。
2)不同路徑:也可以建立不同的目錄。把恢復的檔案儲存到對應的目錄中,然後修改引數檔案和控制檔案中相應的引數。這裡我就按照引數檔案中記錄的將對應目錄手動建立起來。
a) 建立目錄
[oracle@lzc01 ~]$ mkdir -p /u01/app/oracle/admin/testdb/adump
[oracle@lzc01 ~]$ mkdir -p /u01/app/oracle/admin/testdb/bdump
[oracle@lzc01 ~]$ mkdir -p /u01/app/oracle/admin/testdb/udump
[oracle@lzc01 ~]$ mkdir -p /u01/app/oracle/admin/testdb/cdump
[oracle@lzc01 ~]$ mkdir -p /u01/app/oracle/oradata/testdb/
[oracle@lzc01 ~]$ mkdir -p /u01/app/oracle/flash_recovery_area
b) 將恢復的引數檔案拷貝到對應的目錄下
[oracle@lzc01 ~]$ cp spfiletestdb.ora /u01/app/oracle/product/10.2.0.1/db_1/dbs/
c) 啟動資料庫到nomount狀態
RMAN> shutdown immediate;
database dismounted
Oracle instance shut down
RMAN> startup nomount
connected to target database (not started)
Oracle instance started
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 100664912 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
d) 恢復控制檔案
RMAN> restore controlfile from '/home/oracle/exercise/o1_mf_s_795383881_86jdyb61_.bkp';
Starting restore at 01-OCT-12
using channel ORA_DISK_1
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output filename=/u01/app/oracle/oradata/testdb/control01.ctl
output filename=/u01/app/oracle/oradata/testdb/control02.ctl
output filename=/u01/app/oracle/oradata/testdb/control03.ctl
Finished restore at 01-OCT-12
4. 恢復資料庫
有了控制檔案我們就可以將資料庫啟動到mount狀態並進行恢復了。把備份拷貝到相應的flash_recover_dest 引數的目錄下。
a) 開啟錢包
SQL> alter system set encryption wallet open identified by "oracle.com";
System altered.
b) 恢復資料庫
RMAN> restore database;
Starting restore at 01-OCT-12
Starting implicit crosscheck backup at 01-OCT-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
Crosschecked 3 objects
Finished implicit crosscheck backup at 01-OCT-12
Starting implicit crosscheck copy at 01-OCT-12
using channel ORA_DISK_1
Finished implicit crosscheck copy at 01-OCT-12
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u01/app/oracle/oradata/testdb/system01.dbf
restoring datafile 00002 to /u01/app/oracle/oradata/testdb/undotbs01.dbf
restoring datafile 00003 to /u01/app/oracle/oradata/testdb/sysaux01.dbf
restoring datafile 00004 to /u01/app/oracle/oradata/testdb/users01.dbf
restoring datafile 00005 to /u01/app/oracle/oradata/testdb/redef01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/TESTDB/backupset/2012_09_30/o1_mf_nnndf_TAG20120930T195638_86jdvrb1_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/TESTDB/backupset/2012_09_30/o1_mf_nnndf_TAG20120930T195638_86jdvrb1_.bkp tag=TAG20120930T195638
channel ORA_DISK_1: restore complete, elapsed time: 00:01:09
Finished restore at 01-OCT-12
c) 開啟資料庫
RMAN> alter database open RESETLOGS;
database opened
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26723566/viewspace-753747/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份&恢復之四:非歸檔模式下的備份與恢復模式
- 簡單恢復模式下的備份模式
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- RMAN備份與恢復之加密備份加密
- 無備份恢復(歸檔模式)模式
- 【物理熱備】(下)備份恢復系統表空間 手工備份恢復
- 【備份恢復】在 ARCHIVELOG 模式下執行資料庫還原和恢復操作(源庫備份源庫恢復)Hive模式資料庫
- NOARCHIVELOG 模式下,使用者管理的 備份和恢復Hive模式
- 【備份恢復】歸檔模式下丟失系統關鍵資料檔案 利用RMAN備份恢復模式
- NOARCHIVELOG 模式下使用增量備份恢復資料庫Hive模式資料庫
- rman 非歸檔模式下停庫備份與恢復模式
- SQL Server 2008 完整恢復模式下備份SQLServer模式
- 備份與恢復--利用備份的控制檔案恢復
- 【備份與恢復】archivelog模式中資料檔案的恢復Hive模式
- 【備份與恢復】noarchivelog模式中資料檔案的恢復Hive模式
- 【備份恢復】從備份恢復資料庫資料庫
- 【管理篇備份恢復】備份恢復基礎
- Linux下mysql備份 恢復LinuxMySql
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- 處於熱備份模式下shutdown abort之後db的恢復模式
- 【備份恢復】非歸檔模式下丟失任意資料檔案 恢復操作模式
- 恢復之非歸檔模式下資料庫非正常關閉的備份與恢復模式資料庫
- rman 非歸檔模式下open庫備份與mount恢復模式
- SQL server 2005 備份恢復模式SQLServer模式
- 備份與恢復系列 十一 控制檔案的備份與恢復
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- RMAN備份、恢復實驗室 之 備份篇 【歸檔模式】模式
- Mysql備份恢復MySql
- Postgresql 備份恢復SQL
- redis備份恢復Redis
- mysql 備份恢復MySql
- 備份和恢復
- oracle rac 在asm下的備份與恢復OracleASM
- 歸檔模式下,offline表空間備份與恢復模式
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- SQL Server 的備份和恢復模式的工作方式SQLServer模式
- Mysql的備份與恢復MySql