聯繫:手機/微信(+86 17813235971) QQ(107644445)
作者:惜分飛©版權所有[未經本人同意,不得以任何形式轉載,否則有進一步追究法律責任的權利.]
有客戶通過sftp誤刪除oracle數據文件,諮詢我們是否可以恢復,通過遠程上去檢查,發現運氣不錯,數據庫還沒有crash,通過句柄找到被刪除文件
oracle@cwgstestdb[testwctdb] /proc/20611/fd $ ls -ltr total 0 lr-x------ 1 oracle oinstall 64 Feb 20 14:03 9 -> /oracle/db19c/rdbms/mesg/oraus .msb lrwx------ 1 oracle oinstall 64 Feb 20 14:03 8 -> /oracle/db19c/dbs/lkTESTWCTDB lrwx------ 1 oracle oinstall 64 Feb 20 14:03 7 -> /oracle/db19c/dbs/hc_testwctdb .dat lr-x------ 1 oracle oinstall 64 Feb 20 14:03 6 -> /var/lib/sss/mc/passwd lr-x------ 1 oracle oinstall 64 Feb 20 14:03 5 -> /proc/20611/fd lr-x------ 1 oracle oinstall 64 Feb 20 14:03 4 -> /oracle/db19c/rdbms/mesg/oraus .msb lrwx------ 1 oracle oinstall 64 Feb 20 14:03 305 -> /oradata/ftms_zx_test01_data8 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 304 -> /oradata/ftms_zx_test01_data7 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 303 -> /oradata/ftms_zx_test01_data6 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 302 -> '/oradata/ftms_zx_test01_data5.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 301 -> '/oradata/ftms_zx_test01_data4.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 300 -> '/oradata/ftms_zx_test01_data3.dbf (deleted)' lr-x------ 1 oracle oinstall 64 Feb 20 14:03 3 -> /dev/null lrwx------ 1 oracle oinstall 64 Feb 20 14:03 299 -> '/oradata/ftms_zx_test01_data2.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 298 -> '/oradata/ftms_zx_test01_data1.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 297 -> '/oradata/ftms_zx_test01_data.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 296 -> /oradata/ftms_zx_test_data .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 295 -> '/oradata/TESTWCTDB/sd.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 294 -> /oradata/TESTWCTDB/ftms_cs3_jiamiceshi lrwx------ 1 oracle oinstall 64 Feb 20 14:03 293 -> /langchao/dumpdata/FTMS_CS_TDE .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 292 -> /oradata/ftms_zx_test01 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 291 -> /langchao/dumpdata/FTMS_CS_DATA4 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 290 -> '/oradata/ftms_zx_data5.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 289 -> /langchao/dumpdata/FTMS_CS_DATA3 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 288 -> /langchao/dumpdata/FTMS_CS_DATA2 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 287 -> /langchao/dumpdata/FTMS_JD_DATA2 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 286 -> '/oradata/LCBIPECDS _TEMP_DAT.DBF' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 285 -> '/oradata/rTB_MBFE_TEMP (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 284 -> '/oradata/TESTWCTDB/temp01.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 283 -> '/oradata/ftms_credit_data5.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 282 -> /oradata/ftmshtdata .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 281 -> '/oradata/dump_data/FTMS_CSBF_DATA.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 280 -> /langchao/dumpdata/FTMS_NEWBL2_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 279 -> /langchao/dumpdata/FTMS_CS_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 278 -> /oradata/LCBIPECDS_DAT .DBF lrwx------ 1 oracle oinstall 64 Feb 20 14:03 277 -> /oradata/rTB_MBFE lrwx------ 1 oracle oinstall 64 Feb 20 14:03 276 -> /oradata/udpcount_02 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 275 -> /oradata/udpcount_01 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 274 -> '/oradata/ftms_credit_data_6.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 273 -> /langchao/dumpdata/FTMS_JD_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 272 -> '/oradata/ftms_old.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 271 -> '/oradata/ftms_credit_data2.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 270 -> /langchao/dumpdata/PJDIP_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 269 -> '/oradata/ftms_credit_data.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 268 -> /langchao/dumpdata/FTMS_NEWBL_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 267 -> '/oradata/ftms_zx_data4.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 266 -> /langchao/dumpdata/QIANZHANG_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 265 -> '/oradata/ftms_zx_data3.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 264 -> '/oradata/ftms_zx_data2.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 263 -> '/oradata/ftms_zx_data.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 262 -> /langchao/dumpdata/FTMSDIP_DATA .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 261 -> /oradata/TESTWCTDB/users01 .dbf lrwx------ 1 oracle oinstall 64 Feb 20 14:03 260 -> '/oradata/TESTWCTDB/undotbs01.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 259 -> '/oradata/TESTWCTDB/sysaux01.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 258 -> '/oradata/TESTWCTDB/system01.dbf (deleted)' lrwx------ 1 oracle oinstall 64 Feb 20 14:03 257 -> /oradata/TESTWCTDB/control02 .ctl lrwx------ 1 oracle oinstall 64 Feb 20 14:03 256 -> /oradata/TESTWCTDB/control01 .ctl l-wx------ 1 oracle oinstall 64 Feb 20 14:03 2 -> /dev/null lrwx------ 1 oracle oinstall 64 Feb 20 14:03 10 -> 'socket:[823411]' l-wx------ 1 oracle oinstall 64 Feb 20 14:03 1 -> /dev/null lr-x------ 1 oracle oinstall 64 Feb 20 14:03 0 -> /dev/null |
查詢數據文件大小(被刪除的文件文件大小通過v$datafile查詢爲0)
SQL> select name ,bytes/1024/1024/1024 from v$datafile; NAME BYTES/1024/1024/1024 -------------------------------------------------------------------------------- -------------------- /oradata/TESTWCTDB/system01.dbf 0 /oradata/TESTWCTDB/sysaux01.dbf 0 /oradata/TESTWCTDB/undotbs01.dbf 0 /oradata/TESTWCTDB/users01.dbf .004882813 /langchao/dumpdata/FTMSDIP_DATA.dbf 3 /oradata/ftms_zx_data.dbf 0 /oradata/ftms_zx_data2.dbf 0 /oradata/ftms_zx_data3.dbf 0 /langchao/dumpdata/QIANZHANG_DATA.dbf 5 /oradata/ftms_zx_data4.dbf 0 /langchao/dumpdata/FTMS_NEWBL_DATA.dbf 30 /oradata/ftms_credit_data.dbf 0 /langchao/dumpdata/PJDIP_DATA.dbf 20 /oradata/ftms_credit_data2.dbf 0 /oradata/ftms_old.dbf 0 /langchao/dumpdata/FTMS_JD_DATA.dbf 15 /oradata/ftms_credit_data_6.dbf 0 /oradata/udpcount_01.dbf 5 /oradata/udpcount_02.dbf 5 /oradata/rTB_MBFE .03125 /oradata/LCBIPECDS_DAT.DBF .5 /langchao/dumpdata/FTMS_CS_DATA.dbf 30 /langchao/dumpdata/FTMS_NEWBL2_DATA.dbf 30 /oradata/dump_data/FTMS_CSBF_DATA.dbf 0 /oradata/ftmshtdata.dbf .087890625 /oradata/ftms_credit_data5.dbf 0 /langchao/dumpdata/FTMS_JD_DATA2.dbf 3 /langchao/dumpdata/FTMS_CS_DATA2.dbf 31.9999847 /langchao/dumpdata/FTMS_CS_DATA3.dbf 10 /oradata/ftms_zx_data5.dbf 0 /langchao/dumpdata/FTMS_CS_DATA4.dbf 12.109375 /oradata/ftms_zx_test01.dbf 19.0527344 /langchao/dumpdata/FTMS_CS_TDE.dbf 1 /oradata/TESTWCTDB/ftms_cs3_jiamiceshi .029296875 /oradata/TESTWCTDB/sd.dbf 0 /oradata/ftms_zx_test_data.dbf .009765625 /oradata/ftms_zx_test01_data.dbf 0 /oradata/ftms_zx_test01_data1.dbf 0 /oradata/ftms_zx_test01_data2.dbf 0 /oradata/ftms_zx_test01_data3.dbf 0 /oradata/ftms_zx_test01_data4.dbf 0 /oradata/ftms_zx_test01_data5.dbf 0 /oradata/ftms_zx_test01_data6.dbf 12.5976563 /oradata/ftms_zx_test01_data7.dbf 9.08203125 /oradata/ftms_zx_test01_data8.dbf 6.25 45 rows selected. |
把數據文件拷貝回來
cp /proc/20611/fd/302 /langchao/orabak/ cp /proc/20611/fd/301 /langchao/orabak/ cp /proc/20611/fd/300 /langchao/orabak/ cp /proc/20611/fd/299 /langchao/orabak/ cp /proc/20611/fd/298 /langchao/orabak/ cp /proc/20611/fd/297 /langchao/orabak/ cp /proc/20611/fd/295 /langchao/orabak/ cp /proc/20611/fd/290 /langchao/orabak/ cp /proc/20611/fd/285 /langchao/orabak/ cp /proc/20611/fd/284 /langchao/orabak/ cp /proc/20611/fd/283 /langchao/orabak/ cp /proc/20611/fd/281 /langchao/orabak/ cp /proc/20611/fd/274 /langchao/orabak/ cp /proc/20611/fd/272 /langchao/orabak/ cp /proc/20611/fd/271 /langchao/orabak/ cp /proc/20611/fd/269 /langchao/orabak/ cp /proc/20611/fd/267 /langchao/orabak/ cp /proc/20611/fd/265 /langchao/orabak/ cp /proc/20611/fd/264 /langchao/orabak/ cp /proc/20611/fd/263 /langchao/orabak/ cp /proc/20611/fd/260 /langchao/orabak/ cp /proc/20611/fd/259 /langchao/orabak/ cp /proc/20611/fd/258 /langchao/orabak/ |
由於涉及system表空間數據文件被刪除,無法在open情況下直接操作,直接關閉數據庫,啓動到mount狀態,重命名數據文件路徑,recover數據文件,open庫,恢復完成
參考以前類似恢復:
Solaris rm datafile recovery—利用句柄誤刪除數據文件恢復
如果數據庫已經關閉,需要考慮以下類似恢復方式:
dbca刪除庫和rm刪庫恢復
記錄一次rm -rf 刪除數據文件異常恢復