标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr kgegpa MySQL恢复 ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kdsgrp1 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (110)
- 数据库 (1,821)
- DB2 (22)
- MySQL (80)
- Oracle (1,651)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (620)
- Oracle安装升级 (102)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (36)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (45)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (28)
-
最近发表
- Patch_SCN快速解决ORA-600 2663故障
- 在生产环境错误执行dd命令破坏asm磁盘故障恢复
- obet实现对数据文件坏块检测功能
- oracle linux 8.10注意pmlogger导致空间被大量占用
- obet快速修改scn/resetlogs恢复数据库(缺少归档,ORA-00308)
- 使用DBMS_PDB.RECOVER抢救单个pdb
- aix环境写入大文件设置combehin提高效率
- 记录一次国产数据库被rm -rf /*删除的救援过程
- 数据库启动报 maximum number of processes () exceeded分析
- ORA-600 [ksunfy : too few sessions]
- 由于数据块scn大于数据库scn导致ORA-600 kcbzib_kcrsds_1错误
- ORA-600 ktbair2: illegal inheritance恢复
- 一键恢复ORA-00704 ORA-00702故障—202512
- PostgreSQL查询一个表相关的所有oid
- PostgreSQL oid文件替换实现数据访问
- 模拟sql server故障备份完成恢复实现数据0丢失
- sql server 事务日志备份异常恢复案例
- win平台挂起Oracle数据库启动进程
- linux异常磁盘lvm恢复操作演示
- open数据库报ora-600 kdsgrp1故障处理
标签归档:rm恢复
Oracle误删除数据文件恢复
有客户通过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 删除数据文件异常恢复
dbca删除库和rm删库恢复
由于误操作删除库的事情偶有发生,遇到过dbca误删除数据库,遇到过rm删除数据文件的故障.近期有过两次类似的恢复请求,一次是win平台dbca本该删除测试库,结果选择错误把生产库给删除,发生误操作之后,没有及时对磁盘进行卸载,而是有一些写操作,当事人找了各种反删除软件进行恢复,结果只是成功了恢复了部分文件,核心文件全部丢失.另外一次是linux平台误操作,rm -rf 删除了整个oracle目录,而且数据文件也全部在里面,所幸没有任何写操作.
对于dbca客户已经使用反删除软件进行恢复,但是效果不行,我们直接从底层扫描,恢复出来需要数据

有个别文件少量block被覆盖,而且客户只要其中部分核心表数据,因此直接使用dul恢复出客户需要数据,完美完成恢复
对于rm掉所有数据文件的客户,通过extundelete进行反删除恢复(参考:extundelete恢复Linux被删除文件),由于句柄丢失,导致有几个数据文件恢复失败.通过linux平台底层恢复,实现需要数据文件完全恢复,数据库正常open,实现完美恢复


对于这类删库的操作,一定要保护好现场,对数据文件存在分区不要有二次写操作,尽可能的减少覆盖.理论上数据文件在磁盘上,都可以恢复出来.如果有遇到数据库文件误删除,或者文件系统损坏的恢复需求,无法自行解决,可以联系我们从底层进行恢复:Phone:17813235971 Q Q:107644445
E-Mail:dba@xifenfei.com类似恢复案例:
又一例asm格式化文件系统恢复
文件系统损坏导致数据文件异常恢复
Oracle 数据文件大小为0kb或者文件丢失恢复
oracle asm disk格式化恢复—格式化为ntfs文件系统
oracle asm disk格式化恢复—格式化为ext4文件系统
ORA-15042: ASM disk “N” is missing from group number “M” 故障恢复
Solaris rm datafile recovery—利用句柄误删除数据文件恢复
今天早上接到有客户恢复请求,他一不小心在solaris系统中使用rm -rf oradata命令把一个分区下面的所有数据文件全部删除了。现在不知道怎么办,请求我们给予支持.上去检查发现比较幸运,数据库没有crash,看来直接考虑使用句柄进行恢复
root@CNISORCLSVR # uname -a
SunOS CNISORCLSVR 5.9 Generic_112233-08 sun4u sparc SUNW,Sun-Fire-880
root@CNISORCLSVR # ps -ef|grep lgwr
oracle 597 1 0 Mar 05 ? 17:14 ora_lgwr_xifenfei
root 28069 28043 0 18:51:17 pts/2 0:00 grep lgwr
root@CNISORCLSVR # ls -ltr
total 189348454
-r--r--r-- 1 oracle dba 657920 Apr 26 2002 12
c--------- 1 root sys 13, 12 Mar 27 2004 8
c--------- 1 root sys 13, 12 Mar 27 2004 10
-rw-r----- 0 oracle dba 34359730176 Nov 12 2013 291
-rw-r----- 0 oracle dba 1073750016 Nov 13 2013 293
D--------- 1 root root 0 Mar 5 19:31 11
-rw-r----- 1 oracle dba 1758 Mar 5 22:04 9
-rw-rw---- 1 oracle dba 24 Mar 5 22:04 13
s--------- 0 root root 0 Mar 8 00:45 14
-rw-r----- 1 oracle dba 1887444992 Mar 12 03:27 289
-rw-r----- 1 oracle dba 943726592 Mar 12 11:17 290
-rw-r----- 0 oracle dba 4294975488 Mar 13 00:09 292
-rw-r----- 0 oracle dba 268443648 Mar 13 01:33 288
-rw-r----- 0 oracle dba 536879104 Mar 13 01:33 279
-rw-r----- 1 oracle dba 134225920 Mar 13 01:33 278
-rw-r----- 0 oracle dba 134225920 Mar 13 01:33 269
-rw-r----- 1 oracle dba 268443648 Mar 13 01:33 267
-rw-r----- 1 oracle dba 148119552 Mar 13 01:33 266
-rw-r----- 1 oracle dba 10493952 Mar 13 01:33 265
-rw-r----- 1 oracle dba 26222592 Mar 13 01:33 264
-rw-r----- 1 oracle dba 62922752 Mar 13 01:33 263
-rw-r----- 1 oracle dba 20979712 Mar 13 01:33 262
-rw-r----- 0 oracle dba 134225920 Mar 13 01:33 287
-rw-r----- 1 oracle dba 209723392 Mar 13 01:33 285
-rw-r----- 0 oracle dba 536879104 Mar 13 01:33 283
-rw-r----- 1 oracle dba 67117056 Mar 13 01:33 282
-rw-r----- 0 oracle dba 536879104 Mar 13 01:33 281
-rw-r----- 0 oracle dba 536879104 Mar 13 01:33 280
-rw-r----- 0 oracle dba 536879104 Mar 13 01:33 276
-rw-r----- 0 oracle dba 1073750016 Mar 13 01:33 275
-rw-r----- 0 oracle dba 2214600704 Mar 13 01:33 274
-rw-r----- 0 oracle dba 134225920 Mar 13 01:33 273
-rw-r----- 0 oracle dba 536879104 Mar 13 01:33 272
c--------- 1 root sys 13, 2 Mar 13 02:00 5
c--------- 1 root sys 13, 2 Mar 13 02:00 4
c--------- 1 root sys 13, 2 Mar 13 02:00 3
c--------- 1 root sys 13, 2 Mar 13 02:00 2
c--------- 1 root sys 13, 2 Mar 13 02:00 1
c--------- 1 root sys 13, 2 Mar 13 02:00 0
--w------- 1 oracle dba 4640842 Mar 13 04:43 7
--w------- 1 oracle dba 4640842 Mar 13 04:43 6
-rw-r----- 0 oracle dba 1207967744 Mar 13 18:21 271
-rw-r----- 0 oracle dba 15929974784 Mar 13 18:39 284
-rw-r----- 0 oracle dba 134225920 Mar 13 18:45 277
-rw-r----- 0 oracle dba 2122326016 Mar 13 18:46 286
-rw-r----- 0 oracle dba 9261031424 Mar 13 18:47 270
-rw-r----- 0 oracle dba 18253619200 Mar 13 18:47 268
-rw-r----- 1 oracle dba 134225920 Mar 13 18:51 261
-rw-r----- 1 oracle dba 524296192 Mar 13 18:51 260
-rw-r----- 1 oracle dba 104858112 Mar 13 18:52 259
-rw-r----- 1 oracle dba 1941504 Mar 13 18:52 258
-rw-r----- 1 oracle dba 1941504 Mar 13 18:52 257
-rw-r----- 1 oracle dba 1941504 Mar 13 18:52 256
SQL> select file#,name from v$datafile wehre name like '/disk%';
FILE# NAME
---------- --------------------------------------------------
9 /disk/oradata/xifenfei/xifenfei.dbf
10 /disk/oradata/xifenfei/CSSN.dbf
11 /disk/oradata/xifenfei/NCSSN.dbf
12 /disk/oradata/xifenfei/CSIC_RDS.dbf
13 /disk/oradata/xifenfei/CSIC_CSSN.dbf
14 /disk/oradata/xifenfei/CNIS_I.dbf
15 /disk/oradata/xifenfei/CNIS.dbf
16 /disk/oradata/xifenfei/TRSWCM6_CSSN.dbf
17 /disk/oradata/xifenfei/TRSWCM6_CSSN_PLUGINS.dbf
18 /disk/oradata/xifenfei/DIGIREF.dbf
20 /disk/oradata/xifenfei/TRSWCM.dbf
21 /disk/oradata/xifenfei/TRSWCM52_NSLC.dbf
22 /disk/oradata/xifenfei/TRSWCM52_PLUGINS_NSLC.dbf
24 /disk/oradata/xifenfei/TRSWCM_PLUGINS.dbf
25 /disk/oradata/xifenfei/CNIS_ALL.dbf
27 /disk/oradata/xifenfei/undotbs01.dbf
28 /disk/oradata/xifenfei/TRS_IDS02.dbf
29 /disk/oradata/xifenfei/xdb02.dbf
在solaris中比较郁闷,虽然进入了fd目录,但是无法知道哪些文件句柄是删除,哪些是正常的,因此没有办法,只能使用lsof进一步分析
root@CNISORCLSVR # pkgadd -d lsof-4.80-sol9-sparc-local
The following packages are available:
1 IBMlsof lsof
(sparc) 4.80
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <IBMlsof> from </tmp/lsof-4.80-sol9-sparc-local>
lsof
(sparc) 4.80
Vic Abell
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
The following files are already installed on the system and are being
used by another package:
* /usr/local/bin <attribute change only>
* - conflict with a file which does not belong to any package.
Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.
The following files are being installed with setuid and/or setgid
permissions:
/usr/local/bin/lsof <setgid sys>
/usr/local/bin/sparcv7/lsof <setgid sys>
/usr/local/bin/sparcv9/lsof <setgid sys>
Do you want to install these as setuid/setgid files [y,n,?,q] y
Installing lsof as <IBMlsof>
## Installing part 1 of 1.
/usr/local/bin/lsof
/usr/local/bin/sparcv7/lsof
/usr/local/bin/sparcv9/lsof
/usr/local/doc/lsof/00.README.FIRST
/usr/local/doc/lsof/00CREDITS
/usr/local/doc/lsof/00DCACHE
/usr/local/doc/lsof/00DIALECTS
/usr/local/doc/lsof/00DIST
/usr/local/doc/lsof/00FAQ
/usr/local/doc/lsof/00LSOF-L
/usr/local/doc/lsof/00MANIFEST
/usr/local/doc/lsof/00PORTING
/usr/local/doc/lsof/00QUICKSTART
/usr/local/doc/lsof/00README
/usr/local/doc/lsof/00TEST
/usr/local/doc/lsof/00XCONFIG
/usr/local/doc/lsof/lsof.man
/usr/local/man/man8/lsof.8
[ verifying class <none> ]
Installation of <IBMlsof> was successful.
root@CNISORCLSVR # ./lsof -p 597
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
oracle 597 oracle cwd VDIR 85,5 2048 106299 /export/home/oracle/app/product/9.2.0/dbs
oracle 597 oracle txt VREG 85,5 61272672 2332 /export/home/oracle/app/product/9.2.0/bin/oracle
…………
oracle 597 oracle 260u VREG 85,5 524296192 106517 /export/home/oracle/oradata/xifenfei/system01.dbf
oracle 597 oracle 261u VREG 85,5 134225920 106518 /export/home/oracle/oradata/xifenfei/undotbs01.dbf
…………
oracle 597 oracle 268u VREG 118,70 18253619200 109 /disk (/dev/dsk/c2t600A0B800029CEFA0000036C491B270Bd0s6)
oracle 597 oracle 269u VREG 118,70 134225920 110 /disk (/dev/dsk/c2t600A0B800029CEFA0000036C491B270Bd0s6)
oracle 597 oracle 270u VREG 118,70 9261031424 111 /disk (/dev/dsk/c2t600A0B800029CEFA0000036C491B270Bd0s6)
…………
oracle 597 oracle 293u VREG 118,70 1073750016 14 /disk (/dev/dsk/c2t600A0B800029CEFA0000036C491B270Bd0s6)
到这一步,基本上定位/disk部分是我们需要恢复的数据,从而可以定位到句柄,然后结合数据文件信息,直接使用cp命令恢复出来文件.然后数据库层面recover并且online.
cd /proc/597/fd cp 269 /disk/oradata/cnisora2/CSSN.dbf chown oracle:dba /disk/oradata/xifenfei/CSSN.dbf SQL> recover datafile 10; ORA-00283: 恢复会话因错误而取消 ORA-01124: 无法恢复数据文件 10 - 文件在使用中或在恢复中 ORA-01110: 数据文件 10: '/disk/oradata/xifenfei/CSSN.dbf' SQL> alter database datafile 10 offline; 数据库已更改。 SQL> recover datafile 10; 完成介质恢复。 SQL> alter database datafile 10 online; 数据库已更改。
至此基本上恢复完成,万幸是数据库没有crash,遇到此类问题,千万不要盲目关闭数据库.另外数据库备份重于一切

加我微信(17813235971)
加我QQ(107644445)

