亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle表空間時間點恢復技術TSPITR

發布時間:2020-08-09 21:56:09 來源:ITPUB博客 閱讀:126 作者:賀子_DBA時代 欄目:關系型數據庫

假定Oracle數據庫發生了以下情形:

1、表空間中,某個表的重要數據被破壞或刪除。

2、誤用DDL語言更改了表空間中的一個或多個表的結構,因此無法使用閃回來恢復這些表。

3、表被誤刪,并且已不在回收站中,如使用了帶purge選項的刪表操作。


那么我們該如何恢復呢?


一種可行的方法就是利用Oracle的表空間時間點恢復技術TSPITRTablespace Point In Time Recover),這是一種僅在部分數據庫上執行不完整恢復的技術。該技術依據目標數據庫的表空間的一個子集來創建輔助數據庫,僅在此子集上執行不完整的恢復,然后使用輔助數據庫的表空間來替代目標數據庫中的表空間。最終結果看起來好像僅恢復和還原了該子集,而保持目標數據庫的其余部分是最新的。


手動完成表空間的時間點恢復非常繁瑣,但利用RMAN可以自動執行TSPITR,在不影響數據庫中其他表空間或對象的前提下,方便的將一個或多個表空間的內容還原到過去的某個時間點。TSPITR是一個有用的恢復工具,但使用前需要明確以下前提:

1、數據庫必須位于歸檔模式,且存在相應的備份集合。

2、要恢復的表空間必須是自包含的,不依賴于其它表空間中的對象。例如,如果一個表在其它表空間中包含索引,則它們或者一起參與恢復,或者先將依賴關系解除才能做恢復。


當然,TSPITR并非是發生所有表空間災難后的萬能救星。例如,不能使用它來恢復已經刪除的表空間。另外,如果重命名了表空間,則無法將其恢復到重命名之前的時間點。


使用RMAN執行TSPITR很簡單,在此之前需要執行幾個步驟以確保操作成功,下面我們通過一個例子說明TSPITR技術的使用方法。


1、假定表空間CMES中的一張表被誤刪,且已無法從回收站中找回


sqlplus cmes/cmes@mes

drop table c_material_t purge;


2、確定破壞大致發生的時間點


這里,首先在操作系統提示符下設置用于控制日期時間格式的環境變量,并使用此會話完成后面的工作,確保日期時間的正確解析:

set nls_date_format=yyyy-mm-dd hh34:mi:ss


查看當前時間:

select sysdate from dual;


SYSDATE

-------------------

2016-02-15 21:30:48


3、驗證表空間的依賴性


查看數據字典視圖TS_PITR_CHECK來確定某個表空間是否與其它表空間存在依賴關系:

select obj1_owner, obj1_name, ts1_name, obj2_owner, obj2_name, ts2_name

  from ts_pitr_check

 where (ts1_name = 'CMES' and ts2_name != 'CMES')

    or (ts1_name != 'CMES' and ts2_name = 'CMES');


該視圖填充了一對一關系的行,其中表空間ts1_name中的一個對象依賴于表空間ts2_name中的一個對象。檢查結果是cmes表空間中的對象沒有和其它表空間對象存在依賴關系。


倘若發現表空間對象存在依賴關系,可以臨時將依賴關系解除,或者將包含依賴對象的表空間一并添加到恢復集中。后者效果更好,可以確保維護表之間邏輯上的一致性。


4、確定在執行TSPITR后會丟失的對象


查看數據字典視圖TS_PITR_OBJECTS_TO_BE_DROPPED來確定表空間在按目標時間進行恢復后將會丟失的對象:

select owner, name, to_char(creation_time, 'yyyy-mm-dd hh34:mi:ss') create_time

  from ts_pitr_objects_to_be_dropped

 where tablespace_name = 'CMES'

   and creation_time > to_date('2016-02-15 21:20:00', 'yyyy-mm-dd hh34:mi:ss');


檢查結果,按選取的時間恢復表空間cmes將是安全的,沒有對象會丟失。倘若存在丟失的對象,可以在執行恢復操作前先導出這些對象,然后在完成恢復后重新將它們導入。


5、使用RMAN命令自動執行TSPITR


D:\下新建一個輔助目錄auxdataRMAN將使用該目錄創建臨時輔助數據庫。


啟動RMAN命令連接到目標數據庫:

rman target /


執行恢復命令:

recover tablespace cmes until time '2016-02-15 21:20:00' auxiliary destination 'd:\auxdata';


6、恢復后的表空間會處于脫機狀態,因此還需要手動執行命令將表空間聯機


sql'alter tablespace cmes online';


7、驗證表空間狀態,確認丟失的表已恢復


select tablespace_name, status from dba_tablespaces;


TABLESPACE_NAME                STATUS

------------------------------ ---------

SYSTEM                         ONLINE

SYSAUX                         ONLINE

UNDOTBS1                       ONLINE

TEMP                           ONLINE

USERS                          ONLINE

CMES                           ONLINE

RMES                           ONLINE

INDX                           ONLINE


select count(*) from cmes.c_material_t;


  COUNT(*)

----------

       345


另外一點需要注意,在TSPITR執行完成后,恢復目標時間之前的表空間備份將不能再使用,因此應當盡快重新備份一次表空間或整個數據庫。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安远县| 托克托县| 渝北区| 凤冈县| 隆子县| 黎川县| 正阳县| 耿马| 永仁县| 大丰市| 墨玉县| 开化县| 和田县| 抚顺市| 新余市| 荆州市| 广元市| 黎平县| 保山市| 彰化市| 阿尔山市| 南京市| 乐清市| 蕲春县| 东兴市| 远安县| 凌云县| 吉林省| 涿州市| 镇宁| 潼南县| 宜春市| 孟村| 宜昌市| 哈巴河县| 元朗区| 东辽县| 固原市| 万安县| 玛沁县| 宁武县|