1. 程式人生 > >【oracle】oralce 恢復表資料

【oracle】oralce 恢復表資料

今天在做專案的時候,改錯了oracle資料庫表裡面的一個欄位,真的嚇到了一下,要是恢復不過來就悲劇了,肯定要被批。。。
好在成功的恢復了回來,下面給出恢復方法。


情景:在Linux下,假設有一個表TABLE_A,裡面有一個欄位name,我們把name欄位修改了,卻發現改錯了,想恢復到30分鐘前的樣子。


第一步:將30分鐘前資料恢復到臨時表QUICK_TABLE

執行:

CREATE TABLE QUICK_TABLE AS select * from TABLE_A  AS OF TIMESTAMP  (SYSTIMESTAMP - INTERVAL '30' MINUTE);

這個時候,就會產生一個表QUICK_TABLE,裡面儲存了30分鐘前TABLE_A的資料。

這一步的來源是:http://blog.csdn.net/yongde1987/article/details/8285711

第二步:調整輸出格式

執行

1.set head off
2.set linesize 160(根據自己sql insert語句長度調整)
3.set newpage none

上面3句是為了在終端顯示的時候格式更好

第三步:將QUICK_TABLE裡面的資料匯出成為insert 語句

比如我的是:

1.spool /root/god_bless.log  (將insert語句寫入到/root/god_bless.log這個檔案)
2.select 'insert into TABLE_A (mag,name,seed,flag,length) ' || 'values('||''''|| mag ||''''|| ',''' || name ||''''|| ','''|| seed || ''''||',''' || flag ||''''|| ',''' || length || ''''||');' a  from  QUICK_TABLE;(生成insert語句)
3.spool off

這一步的來源是:

http://blog.csdn.net/striveman/article/details/1854327

第四步:將TABLE_A清空

delete from TABLE_A;

第五步:修改/root/god_bless.log檔案

新開啟一個終端,輸入:vim /root/god_bless.log,將檔案中非insert語句刪除,因為spool會將執行的語句也記錄下來,這裡可能要刪除第一行和最後幾行的非insert語句

第六步:執行檔案中的insert語句恢復到半小時前:

[email protected]/root/god_bless.log
2.commit;


ok!恢復到30分鐘前了

相關推薦

oracleoralce 恢復資料

今天在做專案的時候,改錯了oracle資料庫表裡面的一個欄位,真的嚇到了一下,要是恢復不過來就悲劇了,肯定要被批。。。 好在成功的恢復了回來,下面給出恢復方法。情景:在Linux下,假設有一個表TAB

C#C# Excel資料讀取

using System; using System.Data; using System.Windows.Forms; using System.Data.OleDb; using System.IO; namespace TestExerciser { class ExcelDataRea

Oracle閃回

語法: FLASHBACK TABLE [ schema. ] table [, [ schema. ] table ]... TO { { { SCN | TIMESTAMP } expr| RES

C利用單鏈資料結構實現通訊錄,連結串列的增刪改查

C語言中實現連結串列,是需要利用到C語言中比較難的結構體與指標才能實現。 結構體中放一個指向後接節點的指標與每一個結點應該存放的資訊。 下面做一個命令列的通訊錄來說明連結串列的增刪改查這個問題。 一開始讓使用者輸入連結串列,按1可以輸出,按3可以刪除。 可以修改: 可以

Oracle資料庫儲存JSON資料型別的大檔案;

一、問題 因為需要在資料庫儲存pdf的解析檔案,需要用大的資料型別儲存資料內容,所以需要使用CLOB資料檔案型別; 二、方法 資料庫使用CLOB型別的資料,使用方法和其他的一樣,是Character Large Object 的縮寫;在使用Mybatis

oracle使用資料泵導使用者每張部分資料

oracle使用資料泵導使用者每張表部分資料 (每張表5000行資料,少於5000的匯入全部下每張表5000行資料,少於5000的匯入全部) 資料庫版本:11.2.0.4;系統版本:Oracle Linux 6.4 場景: 開發提出一個需求,需要把tods使用者下的資料全部匯入到UA

oracleoracle使用utl_file和sqlloard實現A資料遷移至B資料(欄位數和順序不一樣)

oracle使用utl_file和sqlloard實現A表資料遷移至B表資料(欄位數和順序不一樣) 資料庫版本:11.2.0.4;系統版本:CentOS Linux 6.8 使用utl_file方式從A表匯出部分欄位至文字,再使用sqlload方式載入進B表; 表test欄位: 

ORACLEdmp格式匯入匯出,沒有資料的情況下,該匯入會缺失

使用過oralce很多種匯入匯出的方式,pde,sql(匯出不支援blog格式),dmp格式,覺得.dmp最為方便,可以匯出所有的表結構、資料、SEQ及儲存過程等,下面就開始具體流程,並說明到如果表中沒有資料時如何匯入。匯入匯出.dmp命令,在cmd視窗執行,其中file為儲

Oracle整庫匯出後怎麼恢復到指定使用者的指定

在匯出的時候,整庫匯出 這裡使用的是dba許可權 $exp "'/ as sysdba'" file=full20180227.dmp log=exp_full20180227.log buffer=40960000 full=y 或者 $exp \"/ as sysd

Oracle刪除(釋放)資料檔案/空間流程

oracle刪除(釋放)資料檔案/表空間流程 生產環境:資料庫裡空間不足,niptest 表空間251G,只使用了17G 再alter database datafile '...../niptest1' resize 10G; 的時候說超出了範圍要求  由於表變動比較頻繁

Oracle空間相關集合

長度 例如 參數說明 height ace 並且 報錯 mage 數據 創建表空間 1.語法 CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_nameDATAFILE ‘/path/filename‘ SIZE num[k/

oracle查詢某張重建以前的記錄操作(如能找到哪臺機器執行的更好)

oracle查詢某張表重建以前的記錄操作(如能找到哪臺機器執行的更好) 需求: 開發下午反饋測試環境有一張表不知道誰動過導致資料變了,然後他們十一點多的時候把表重建了; 但他們想知道重建表之前誰動過這張表(猜測肯定是覺得資料丟失了給他們帶來了諸多不便才想起來找DBA誰動過這張表),主要是想知

Oracle匯入和匯出 EXP / IMP 和 EXPDP / IMPDP 資料泵匯出匯入的方法

  【Oracle】EXPDP和IMPDP資料泵進行匯出匯入的方法 一、expdp/impdp和exp/imp的區別 1、exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。 2、expdp和impdp是服務端的工具程式,他們只能在oracle服務端

oracle impdp匯入資料報錯ORA-29283: invalid file operation

oracle impdp匯入資料報錯ORA-29283: invalid file operation ORA-39002: invalid operation ORA-39070: Unable t

OracleOracle查詢資料庫中所有的記錄數

方法一: 首先建立一個計算函式 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g

Unity3D 讀寫 CSV 資料

【先說點廢話】 哈哈哈哈好久沒發文章不知道大家有沒有想我,這一大段時間鬼知道我經歷了什麼,弄比賽、備戰考研、各種求職各種做簡歷、弄畢業設計、租房子。。。等等等,做了一大堆都沒做太好哈哈哈,不過好在找到了心儀的工作,之後會繼續保持更新,把一些技術分享給大家,一起

資料庫Navicat匯入匯出資料

       當我們對mysql資料庫進行了誤操作,造成某個資料表中的部分資料丟失時,肯定就要利用備份的資料庫,對丟失部分的資料進行匯出、匯入操作了。Navicat工具正好給我們提供了一個數據表的匯入匯出功能。 1.匯出資料表         Navicat匯出資料表的格

ORACLE常用物化檢視相關元資料查詢語句

對物化檢視的狀態等資訊進行查詢,監控和管理時,需要對系統檢視進行查詢,以下列出了常用的物化檢視狀態、依賴關聯,批量維護時能用到的查詢語句,根據具體情況進行適當修改。 基本資訊查詢 -- 物化檢視基本資訊 SELECT OWNER

Pythondesc獲取結構建立oracle語句

由於某些oracle系統許可權管理的特別嚴格,或者某些表或檢視由多張表組成, 從而導致獲取建表語句十分困難或者根本不可能,只能通過sqlplus連線到oracle, 只能通過desc命令獲取簡單的表結構。如下圖這樣: 複製到文字檔案後是這樣的: 對於數量較少的

使用ODU恢復oracle被truncate的資料

1。ODU 介紹       ODU全稱為Oracle Database Unloader,是類似於Oracle的DUL的軟體,用於直接從Oracle資料庫的資料檔案中獲取表資料。在各種原因造成的資料庫不能開啟時,用於搶救資料,最大限度地減少資料丟失。       支援的O