oracle實驗記錄 (恢復-表空間基於時間點恢復(rman))
用rman恢復非常簡單,不過原理跟手動是一樣一樣的
C:\>set oracle_sid=orcl
C:\>rman target '/ as sysdba'
恢復管理器: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:09:23 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: ORCL (DBID=1223510333)
RMAN> backup database;
啟動 backup 於 28-8月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
輸入資料檔案 fno=00003 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
輸入資料檔案 fno=00005 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
輸入資料檔案 fno=00002 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
輸入資料檔案 fno=00006 name=D:\TEST.DBF
輸入資料檔案 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 28-8月 -09
通道 ORA_DISK_1: 已完成段 1 於 28-8月 -09
段控制程式碼=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_MF
_NNNDF_TAG20090828T114749_59GNV6TV_.BKP 標記=TAG20090828T114749 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:03:09
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 28-8月 -09
通道 ORA_DISK_1: 已完成段 1 於 28-8月 -09
段控制程式碼=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_MF
_NCSNF_TAG20090828T114749_59GO14MK_.BKP 標記=TAG20090828T114749 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 28-8月 -09
11:48:02 SQL> conn xh/a831115
已連線。
11:51:24 SQL> create table t1 (a int) tablespace users;
表已建立。
11:51:27 SQL> create table t2 (a int) tablespace test;
表已建立。
11:51:39 SQL> insert into t1 values(1);
已建立 1 行。
11:51:49 SQL> insert into t2 values(1);
已建立 1 行。
11:51:55 SQL> commit;
提交完成。
11:51:57 SQL> select current_scn from v$database;
CURRENT_SCN
-----------
868500
11:52:08 SQL> truncate table t2;
表被截斷。
11:52:13 SQL> select current_scn from v$database;
CURRENT_SCN
-----------
868520
11:52:15 SQL> insert into t1 values (2);
已建立 1 行。
11:52:21 SQL> commit;
提交完成。
11:52:25 SQL> alter system switch logfile;
系統已更改。
11:52:27 SQL> select group#,status ,first_change# from v$log;
GROUP# STATUS FIRST_CHANGE#
---------- ---------------- -------------
1 ACTIVE 867754
2 INACTIVE 867144
3 CURRENT 868528
11:52:28 SQL> alter system checkpoint;
系統已更改。
11:52:29 SQL> execute sys.dbms_tts.transport_set_check('TEST',true);
PL/SQL 過程已成功完成。
11:52:35 SQL> select * from sys.transport_set_violations;
未選定行
11:52:37 SQL> create table t3 (a int) tablespace test;
表已建立。
11:53:10 SQL> select owner,name,tablespace_name from sys.ts_pitr_objects_to_be_drop
ped where tablespace_name='TEST' and creation_time>to_date('2009-08-28 11:51:55','y
yyy-mm-dd hh24:mi:ss');
OWNER
------------------------------
NAME TABLESPACE_NAME
-------------------------------------------------- --------------------
XH
T3 TEST~~~~~~~~~~~~~~~~~~~~~~~~~~~~這個表將在恢復後丟失exp出來先
11:53:16 SQL> insert into t3 values(1);
已建立 1 行。
11:54:54 SQL> commit;
提交完成。
要求是與 手動一樣,恢復t2 到truncate前,加了一條test tablespace上 要丟失的imp回來
C:\>exp 'system/a831115 as sysdba' tables=xh.t3 file=e:\t5.dmp
Export: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:53:52 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將匯出指定的表通過常規路徑...
當前的使用者已更改為 XH
. . 正在匯出表 T3匯出了 0 行
成功終止匯出, 沒有出現警告。
C:\>exp 'system/a831115 as sysdba' tables=xh.t3 file=e:\t3.dmp
Export: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:55:02 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將匯出指定的表通過常規路徑...
當前的使用者已更改為 XH
. . 正在匯出表 T3匯出了 1 行
成功終止匯出, 沒有出現警告。
RRMAN> recover tablespace 'TEST' until scn 868500 auxiliary destination 'd:\auxiliar(以下是完整的輸出 可以看到與手動過程是一樣的)
y'
2> ;
啟動 recover 於 28-8月 -09
使用通道 ORA_DISK_1
RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
使用 SID='faqm' 建立自動例項
供自動例項使用的初始化引數:
db_name=ORCL
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_faqm
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\auxiliary
control_files=d:\auxiliary/cntrl_tspitr_ORCL_faqm.f
啟動自動例項 ORCL
Oracle 例項已啟動
系統全域性區域總計 205520896 位元組
Fixed Size 1248092 位元組
Variable Size 146801828 位元組
Database Buffers 50331648 位元組
Redo Buffers 7139328 位元組
自動例項已建立
記憶體指令碼的內容:
{
# set the until clause
set until scn 868500;
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在執行記憶體指令碼
正在執行命令: SET until clause
啟動 restore 於 28-8月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_AUX_DISK_1: 正在復原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OR
CL\BACKUPSET\2009_08_28\O1_MF_NCSNF_TAG20090828T114749_59GO14MK_.BKP
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_
MF_NCSNF_TAG20090828T114749_59GO14MK_.BKP 標記 = TAG20090828T114749
通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:00:02
輸出檔名=D:\AUXILIARY\CNTRL_TSPITR_ORCL_FAQM.F
完成 restore 於 28-8月 -09
sql 語句: alter database mount clone database
sql 語句: alter system archive log current
sql 語句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
釋放的通道: ORA_DISK_1
釋放的通道: ORA_AUX_DISK_1
記憶體指令碼的內容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until scn 868500;
plsql <<declare
sqlstatement varchar2(512);
offline_not_needed exception;
pragma exception_init(offline_not_needed, -01539);
begin
sqlstatement := 'alter tablespace '|| 'TEST' ||' offline for recover';
krmicd.writeMsg(6162, sqlstatement);
krmicd.execSql(sqlstatement);
exception
when offline_not_needed then
null;
end; >>>;
# set an omf destination filename for restore
set newname for clone datafile 1 to new;
# set an omf destination filename for restore
set newname for clone datafile 2 to new;
# set an omf destination tempfile
set newname for clone tempfile 1 to new;
# set a destination filename for restore
set newname for datafile 6 to
"D:\TEST.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 6;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile 1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 6 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "TEST", "SYSTEM", "UNDOTBS1" delete archivelog;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
# datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在執行記憶體指令碼
正在執行命令: SET until clause
sql 語句: alter tablespace TEST offline for recover
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
臨時檔案 1 在控制檔案中已重新命名為 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_%U_.TMP
啟動 restore 於 28-8月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_%U_.DBF
正將資料檔案00002恢復到D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
正將資料檔案00006恢復到D:\TEST.DBF
通道 ORA_AUX_DISK_1: 正在讀取備份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OR
CL\BACKUPSET\2009_08_28\O1_MF_NNNDF_TAG20090828T114749_59GNV6TV_.BKP
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_
MF_NNNDF_TAG20090828T114749_59GNV6TV_.BKP 標記 = TAG20090828T114749
通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:00:35
完成 restore 於 28-8月 -09
資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 recid=11 stamp=696081426 檔名=D:\AUXILIARY\TSPITR_O\DATAFILE\O1_
MF_SYSTEM_59GOCHB8_.DBF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=12 stamp=696081426 檔名=D:\AUXILIARY\TSPITR_O\DATAFILE\O1_
MF_UNDOTBS1_59GOCHC7_.DBF
sql 語句: alter database datafile 1 online
sql 語句: alter database datafile 2 online
sql 語句: alter database datafile 6 online
啟動 recover 於 28-8月 -09
使用通道 ORA_AUX_DISK_1
正在開始介質的恢復
存檔日誌執行緒 1 序列 11 已作為檔案 E:\ARCHIVELOG\ARC00011_0695918991.001.ARC 存在於
磁碟上
存檔日誌檔名 =E:\ARCHIVELOG\ARC00011_0695918991.001.ARC 執行緒 =1 序列 =11
介質恢復完成, 用時: 00:00:02
完成 recover 於 28-8月 -09
資料庫已開啟
記憶體指令碼的內容:
{
# export the tablespaces in the recovery set
host 'exp userid =\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=or
aclefaqm)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'ORACLE
_SID=faqm^'))(CONNECT_DATA=(SID=faqm))) as sysdba\" point_in_time_recover=y tablesp
aces=
TEST file=
tspitr_a.dmp';
# shutdown clone before import
shutdown clone immediate
# import the tablespaces in the recovery set
host 'imp userid =\"/@ as sysdba\" point_in_time_recover=y file=
tspitr_a.dmp';
# online/offline the tablespace imported
sql "alter tablespace TEST online";
sql "alter tablespace TEST offline";
# enable autobackups in case user does open resetlogs from RMAN after TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(TRUE); end;';
}
正在執行記憶體指令碼
Export: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:57:25 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 將不匯出表資料 (行)
即將匯出表空間時間點恢復物件...
對於表空間 TEST...
. 正在匯出簇定義
. 正在匯出表定義
. . 正在匯出表 T2
. 正在匯出引用完整性約束條件
. 正在匯出觸發器
. 終止時間點恢復
成功終止匯出, 沒有出現警告。
主機命令完成
資料庫已關閉
資料庫已解除安裝
Oracle 例項已關閉
Import: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:57:50 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
經由常規路徑由 EXPORT:V10.02.01 建立的匯出檔案
即將匯入表空間時間點恢復物件...
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 SYS 的物件匯入到 SYS
. 正在將 XH 的物件匯入到 XH
. . 正在匯入表 "T2"
. 正在將 SYS 的物件匯入到 SYS
成功終止匯入, 沒有出現警告。
主機命令完成
sql 語句: alter tablespace TEST online
sql 語句: alter tablespace TEST offline
sql 語句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;
刪除自動例項
自動例項已刪除
已刪除輔助例項檔案 D:\AUXILIARY\CNTRL_TSPITR_ORCL_FAQM.F
已刪除輔助例項檔案 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_59GOCHB8_.DBF
已刪除輔助例項檔案 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_59GOCHC7_.DBF~~~~~~~~~~~~~~自動刪除
已刪除輔助例項檔案 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_59GODZ4W_.TMP
已刪除輔助例項檔案 D:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_1_59GODT00_.LOG
已刪除輔助例項檔案 D:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_2_59GODVDP_.LOG
已刪除輔助例項檔案 D:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_3_59GODWGN_.LOG
完成 recover 於 28-8月 -09
11:54:56 SQL> select * from t1;
A
----------
1
2
11:58:39 SQL> select * from t2;
select * from t2
*
第 1 行出現錯誤:
ORA-00376: 此時無法讀取檔案 6
ORA-01110: 資料檔案 6: 'D:\TEST.DBF'
11:58:40 SQL> alter tablespace test online;
表空間已更改。
11:58:51 SQL> select * from t2;
A
----------
1
11:58:52 SQL> select * from t3;
select * from t3
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
C:\>imp '/ as sysdba' tables=t3 fromuser=xh file=e:\t3.dmp
Import: Release 10.2.0.1.0 - Production on 星期五 8月 28 12:01:00 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
經由常規路徑由 EXPORT:V10.02.01 建立的匯出檔案
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 SYS 的物件匯入到 SYS
. 正在將 XH 的物件匯入到 XH
. . 正在匯入表 "T3"匯入了 1 行
成功終止匯入, 沒有出現警告。
11:58:56 SQL> select * from t3;
A
----------
1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-613479/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RMAN 表空間恢復Oracle
- 【Oracle 恢復表空間】 實驗Oracle
- 表空間TSPITR恢復-實驗
- mongodb 基於oplog的時間點恢復MongoDB
- DM8 基於時間點的恢復
- PostgreSQL 時間點恢復SQL
- ORACLE資料庫基於時間點的不完全恢復Oracle資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- (Les16 執行資料庫恢復)-表空間恢復資料庫
- 7.5 使用binary log 做基於時間點的恢復
- 基於percona xtrabackup之innobackupex實現基於時間點資料庫恢復資料庫
- SYSTEM 表空間管理及備份恢復
- Oracle RMAN恢復測試Oracle
- RMAN恢復實踐
- Oracle 12C新特性-RMAN恢復表Oracle
- mongodb異機做時間點恢復(基於時間範圍查詢匯出oplog)MongoDB
- PostgreSQL啟動恢復期間,恢復到的時間線的確定SQL
- oracle基於SCN增量恢復Oracle
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- RMAN增量恢復
- MySQL binlog基於時間點恢復資料失敗是什麼鬼?MySql
- 2.MongoDB 4.2副本集環境基於時間點的恢復MongoDB
- 【PG備份恢復】pg_basebackup 多表空間備份恢復測試
- ORACLE DG從庫 Rman備份恢復Oracle
- Oracle 備份恢復篇之RMAN catalogOracle
- 【DATAGUARD】Oracle 通過Dataguard指定恢復時間用於找回丟失資料Oracle
- mongodb使用備份後的oplog做時間點恢復MongoDB
- RMAN備份恢復技巧
- rman 增量備份恢復
- 1.MongoDB 2.7主從複製(master –> slave)環境基於時間點的恢復MongoDBAST
- PostgreSQL12中實現增量備份與任意時間點恢復SQL
- RMAN備份恢復典型案例——異機恢復未知DBID
- 《PostgreSQL 指南:內幕探索》之基礎備份與時間點恢復(上)SQL
- 使用NineData構建任意時間點(PITR)資料恢復能力資料恢復
- win10恢復到上一個時間節點的方法Win10
- RMAN恢復之RMAN-06555處理
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- oracle 增量備份恢復驗證Oracle
- 基於 Vuex 的時移操作(撤回/恢復)實現Vue