Oracle database恢復被修改的視圖實現(xiàn)方式
Oracle database恢復被修改的視圖
早上同事來找、 一個視圖被修改了、 能不能查出來修改的時間、
研究了下系統(tǒng)中各個數(shù)據(jù)字典、找到一個表可以看到、
select * from all_objects where OBJECT_NAME='CV_SR_PART'; OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME ------------------------------ ------------------------------ ------------------------------ ---------- -------------- ------------------- ----------- ------------- ------------------- ------- --------- --------- --------- ---------- ------------------------------ SIEBEL CV_SR_PART 287957 VIEW 2016/7/7 2: 2018/6/8 11:5 2018-06-08:11:52:16 VALID N N N 1
據(jù)我推測、 LAST_DDL_TIME就是修改時間
那么問題來了、 怎么恢復呢?
通過數(shù)據(jù)庫備份、 做不完全恢復?
太麻煩了、 生產(chǎn)數(shù)據(jù)庫也不合理、
視圖的本質(zhì)存放的是一條sql、 那么,
select * from dba_views where view_name='CV_SR_PART'
dba_views 這個視圖中text字段存放了視圖本質(zhì)、
下面回溯時間
看下被視圖被修改的時間前text字段存放了什么、
select text from dba_views as of timestamp to_date('201806081100','yyyymmddhh24miss') where view_name='CV_SR_PART';查到之前的視圖內(nèi)容、 重新執(zhí)行下就可以了、
劃重點
生產(chǎn)系統(tǒng)上創(chuàng)建視圖的時候不要create or replace
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
oracle誤drop/update操作后的數(shù)據(jù)恢復測試
本人主要是對drop/update數(shù)據(jù)后,在允許有時間內(nèi)進行數(shù)據(jù)恢復,操作性強,比較實用。不對理論進行講訴,需要的朋友可以參考下2015-08-08
ORA-00349|激活 ADG 備庫時遇到的問題及處理方法
這篇文章主要介紹了ORA-00349|激活 ADG 備庫時遇到的問題及處理方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

