今天接到報障,登陸某個系統報錯,查看應用日誌發現下面錯誤
2013-03-11 15:04:29,053 [http-80-3] ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00942: 表或視圖不存在 ,登陸數據庫查 select * from sys.user_recyclebin t;顯示以下:
BIN$1ocEMnAvQzTgQAAK2QBl0Q==$0 ACCT_ROLE_AUTHORITY DROP TABLE 2013-02-25:13:43:11 ,發現25日ACCT_ROLE_AUTHORITY表被drop,那爲何今日才報錯啊,由於今日這個服務被重啓了一次,這個表是被加載到機器的內存中的,所以重啓後才報錯。
緣由查到了先恢復數據,因爲此數據庫採用RMAN + EXPDP 備份,所以恢復時採用IMPDP把ACCT_ROLE_AUTHORITY表導入進行恢復,見下:
[oracle@XXXX dpdump]$ tar -xzf 217_expdp_db_2013022203.tar.gz -C /u01/app/oracle/admin/ytkdb/dpdump #注:導出時採用默認目錄
[oracle@XXXX dpdump]$ impdp userid=用戶/密碼@SID tables=acct_role_authority dumpfile=hmdba_data_2013022503.dmp logfile=hmdba_data_2013022503.log 數據庫
輸出見下:
........部分省咯..........
因爲如下參數, 舊有模式處於活動狀態:
舊有模式參數: "file=hmdba_data_2013022503.dmp" 位置: Command Line, 替換爲: "dumpfile=hmdba_data_2013022503.dmp"
舊有模式參數: "log=hmdba_data_2013022503.log" 位置: Command Line, 替換爲: "logfile=hmdba_data_2013022503.log"
已成功加載/卸載了主表 "HMDBA"."SYS_IMPORT_TABLE_01"
啓動 "HMDBA"."SYS_IMPORT_TABLE_01": userid=用戶/密碼@SID tables=acct_role_authority dumpfile=hmdba_data_2013022503.dmp logfile=hmdba_data_2013022503.log
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. . 導入了 "HMDBA"."ACCT_ROLE_AUTHORITY" 6.875 KB 1029 行
做業 "HMDBA"."SYS_IMPORT_TABLE_01" 已於 15:50:33 成功完成。 oracle
--------------------------------------------------------------------------app
重啓服務能夠正常登陸。
下面查詢是誰刪除的,查看listener.log文件,發現下面的記錄:
25-2月 -2013 13:43:38 * (CONNECT_DATA=(SERVICE_NAME=eytdbs)(CID=(PROGRAM=F:\oracle\product\10.2.0\db_2\BIN\exp.exe) (HOST=JAMESYE-PC)(USER=JamesYe))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.X.X.X)(PORT=6406)) * 。查出來是一個開發人員私自登陸數據庫時不當心進行刪除,最後對其進行了批評,並限制了開發的IP網段連接到數據庫,避免相似事件的再次發生。 tcp