lsof 顾名思义,当你把oracle的数据文件误删除了,想要做恢复。lsof就可以找到刚刚被误删的文件,会有一个类似的进程显示。之后恢复进程,再oracle恢复数据文件,就ok了。
[oracle@stg03-az4-sha-oracle-ltag-fr fd]$ lsof |grep /u01/app/oracle/oradata/LTAG/ltag.dbf
ora_dbw0_ 28392 oracle 261uW REG 252,0 21474844672 919718 /u01/app/oracle/oradata/LTAG/ltag.dbf (deleted)
ora_ckpt_ 28398 oracle 261u REG 252,0 21474844672 919718 /u01/app/oracle/oradata/LTAG/ltag.dbf (deleted)
lsof -a -p 28392 -d ^txt | egrep "COMMAND|dbf"
[oracle@stg03-az4-sha-oracle-ltag-fr fd]$ lsof -a -p 28392 -d ^txt | egrep "COMMAND|dbf"
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ora_dbw0_ 28392 oracle 258uW REG 252,0 964698112 267727 /u01/app/oracle/oradata/SITLTAG02/system01.dbf
ora_dbw0_ 28392 oracle 259uW REG 252,0 775954432 267726 /u01/app/oracle/oradata/SITLTAG02/sysaux01.dbf
ora_dbw0_ 28392 oracle 260uW REG 252,0 356524032 267729 /u01/app/oracle/oradata/SITLTAG02/undotbs01.dbf
ora_dbw0_ 28392 oracle 261uW REG 252,0 21474844672 919718 /u01/app/oracle/oradata/LTAG/ltag.dbf (deleted)
ora_dbw0_ 28392 oracle 262uW REG 252,0 5251072 267730 /u01/app/oracle/oradata/SITLTAG02/users01.dbf
ora_dbw0_ 28392 oracle 263uW REG 252,0 125837312 267728 /u01/app/oracle/oradata/SITLTAG02/temp01.dbf
ora_dbw0_ 28392 oracle 264uW REG 252,0 536879104 919719 /u01/app/oracle/oradata/LTAG/ltag_temp.dbf (deleted)
bash-2.05# lsof -a -p 28392 -d ^txt
[oracle@stg03-az4-sha-oracle-ltag-fr fd]$ lsof -a -p 28392 -d ^txt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ora_dbw0_ 28392 oracle cwd DIR 252,0 4096 795171 /u01/app/oracle/product/19.3.0/db_home_1/dbs
ora_dbw0_ 28392 oracle rtd DIR 253,1 4096 2 /
ora_dbw0_ 28392 oracle DEL REG 0,4 0 /SYSV00000000
ora_dbw0_ 28392 oracle DEL REG 0,4 1 /SYSV00000000
ora_dbw0_ 28392 oracle DEL REG 0,4 2 /SYSV00000000
ora_dbw0_ 28392 oracle DEL REG 0,4 3 /SYSVf6ab99b4
ora_dbw0_ 28392 oracle DEL REG 0,11 233780 /[aio]
ora_dbw0_ 28392 oracle mem REG 252,0 4219096 266508 /u01/app/oracle/product/19.3.0/db_home_1/lib/libshpkavx51219.so
ora_dbw0_ 28392 oracle mem REG 253,1 61560 21144 /usr/lib64/libnss_files-2.17.so
ora_dbw0_ 28392 oracle mem REG 253,1 88720 3501 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
ora_dbw0_ 28392 oracle mem REG 253,1 50704 17793 /usr/lib64/libnuma.so.1.0.0
ora_dbw0_ 28392 oracle mem REG 253,1 2156352 3908 /usr/lib64/libc-2.17.so
ora_dbw0_ 28392 oracle mem REG 253,1 109976 21146 /usr/lib64/libresolv-2.17.so
ora_dbw0_ 28392 oracle mem REG 253,1 115816 21142 /usr/lib64/libnsl-2.17.so
ora_dbw0_ 28392 oracle mem REG 253,1 142144 3934 /usr/lib64/libpthread-2.17.so
ora_dbw0_ 28392 oracle mem REG 253,1 1136944 21141 /usr/lib64/libm-2.17.so
ora_dbw0_ 28392 oracle mem REG 253,1 19248 21140 /usr/lib64/libdl-2.17.so
ora_dbw0_ 28392 oracle mem REG 252,0 3609536 266869 /u01/app/oracle/product/19.3.0/db_home_1/lib/libipc1.so
ora_dbw0_ 28392 oracle mem REG 252,0 478432 266672 /u01/app/oracle/product/19.3.0/db_home_1/lib/libmql1.so
ora_dbw0_ 28392 oracle mem REG 252,0 410736 266867 /u01/app/oracle/product/19.3.0/db_home_1/lib/libons.so
ora_dbw0_ 28392 oracle mem REG 253,1 6264 5654 /usr/lib64/libaio.so.1.0.1
ora_dbw0_ 28392 oracle mem REG 252,0 774352 266740 /u01/app/oracle/product/19.3.0/db_home_1/lib/libocrutl19.so
ora_dbw0_ 28392 oracle mem REG 252,0 8581040 266760 /u01/app/oracle/product/19.3.0/db_home_1/lib/libocrb19.so
ora_dbw0_ 28392 oracle mem REG 252,0 3783528 266929 /u01/app/oracle/product/19.3.0/db_home_1/lib/libocr19.so
ora_dbw0_ 28392 oracle mem REG 252,0 17336 266755 /u01/app/oracle/product/19.3.0/db_home_1/lib/libskgxn2.so
ora_dbw0_ 28392 oracle mem REG 252,0 13921936 266733 /u01/app/oracle/product/19.3.0/db_home_1/lib/libhasgen19.so
ora_dbw0_ 28392 oracle mem REG 252,0 197440 266630 /u01/app/oracle/product/19.3.0/db_home_1/lib/libdbcfg19.so
ora_dbw0_ 28392 oracle mem REG 252,0 267072 266845 /u01/app/oracle/product/19.3.0/db_home_1/lib/libclsra19.so
ora_dbw0_ 28392 oracle mem REG 253,1 43712 21147 /usr/lib64/librt-2.17.so
ora_dbw0_ 28392 oracle mem REG 252,0 411704 266722 /u01/app/oracle/product/19.3.0/db_home_1/lib/libskjcx19.so
ora_dbw0_ 28392 oracle mem REG 252,0 1227488 266661 /u01/app/oracle/product/19.3.0/db_home_1/lib/libskgxp19.so
ora_dbw0_ 28392 oracle mem REG 252,0 1917056 266791 /u01/app/oracle/product/19.3.0/db_home_1/lib/libcell19.so
ora_dbw0_ 28392 oracle mem REG 252,0 12536 266645 /u01/app/oracle/product/19.3.0/db_home_1/lib/libofs.so
ora_dbw0_ 28392 oracle mem REG 252,0 17848 266889 /u01/app/oracle/product/19.3.0/db_home_1/lib/libodmd19.so
ora_dbw0_ 28392 oracle mem REG 253,1 163312 3498 /usr/lib64/ld-2.17.so
ora_dbw0_ 28392 oracle mem REG 252,0 1544 795439 /u01/app/oracle/product/19.3.0/db_home_1/dbs/hc_SITLTAG02.dat
ora_dbw0_ 28392 oracle 0r CHR 1,3 0t0 1031 /dev/null
ora_dbw0_ 28392 oracle 1w CHR 1,3 0t0 1031 /dev/null
ora_dbw0_ 28392 oracle 2w CHR 1,3 0t0 1031 /dev/null
ora_dbw0_ 28392 oracle 3r CHR 1,3 0t0 1031 /dev/null
ora_dbw0_ 28392 oracle 4r REG 252,0 1410560 3147088 /u01/app/oracle/product/19.3.0/db_home_1/rdbms/mesg/oraus.msb
ora_dbw0_ 28392 oracle 5r DIR 0,3 0 233383 /proc/28392/fd
ora_dbw0_ 28392 oracle 6u REG 252,0 1544 795439 /u01/app/oracle/product/19.3.0/db_home_1/dbs/hc_SITLTAG02.dat
ora_dbw0_ 28392 oracle 7uR REG 252,0 24 795437 /u01/app/oracle/product/19.3.0/db_home_1/dbs/lkSITLTAG02
ora_dbw0_ 28392 oracle 8r REG 252,0 1410560 3147088 /u01/app/oracle/product/19.3.0/db_home_1/rdbms/mesg/oraus.msb
ora_dbw0_ 28392 oracle 256u REG 252,0 10862592 267731 /u01/app/oracle/oradata/SITLTAG02/control01_standby.ctl
ora_dbw0_ 28392 oracle 257u REG 252,0 10862592 524360 /u01/app/oracle/flash_recovery_area/SITLTAG02/control02_standby.ctl
ora_dbw0_ 28392 oracle 258uW REG 252,0 964698112 267727 /u01/app/oracle/oradata/SITLTAG02/system01.dbf
ora_dbw0_ 28392 oracle 259uW REG 252,0 775954432 267726 /u01/app/oracle/oradata/SITLTAG02/sysaux01.dbf
ora_dbw0_ 28392 oracle 260uW REG 252,0 356524032 267729 /u01/app/oracle/oradata/SITLTAG02/undotbs01.dbf
ora_dbw0_ 28392 oracle 261uW REG 252,0 21474844672 919718 /u01/app/oracle/oradata/LTAG/ltag.dbf (deleted)
ora_dbw0_ 28392 oracle 262uW REG 252,0 5251072 267730 /u01/app/oracle/oradata/SITLTAG02/users01.dbf
ora_dbw0_ 28392 oracle 263uW REG 252,0 125837312 267728 /u01/app/oracle/oradata/SITLTAG02/temp01.dbf
ora_dbw0_ 28392 oracle 264uW REG 252,0 536879104 919719 /u01/app/oracle/oradata/LTAG/ltag_temp.dbf (deleted)
[oracle@stg03-az4-sha-oracle-ltag-fr fd]$
cat /proc/819/fd/26207 > /u01/oracle/oradata/test817/tools01.dbf
cat /proc/28392/fd/261 > /u01/app/oracle/oradata/LTAG/ltag_temp.dbf
cat /proc/28392/fd/261 > /u01/app/oracle/oradata/LTAG/ltag.dbf
RMAN> report schema;
using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name SITLTAG02
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 920 SYSTEM YES /u01/app/oracle/oradata/SITLTAG02/system01.dbf
3 740 SYSAUX NO /u01/app/oracle/oradata/SITLTAG02/sysaux01.dbf
4 340 UNDOTBS1 YES /u01/app/oracle/oradata/SITLTAG02/undotbs01.dbf
5 20480 LTAG NO /u01/app/oracle/oradata/LTAG/ltag.dbf
7 5 USERS NO /u01/app/oracle/oradata/SITLTAG02/users01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 120 TEMP 32767 /u01/app/oracle/oradata/SITLTAG02/temp01.dbf
2 512 LTAG_TEMP 2048 /u01/app/oracle/oradata/LTAG/ltag_temp.dbf
RMAN>
RMAN>
RMAN> alter datafile LTAG offile;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 12/14/2021 21:33:56
ORA-00940: invalid ALTER command
RMAN> alter datafile LTAG offline;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 12/14/2021 21:34:06
ORA-00940: invalid ALTER command
RMAN> alter database datafile LTAG offline;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 12/14/2021 21:34:33
ORA-02236: invalid file name
RMAN> alter database datafile 5 offline;
Statement processed
RMAN>
RMAN>
RMAN>
RMAN>
RMAN> report schema;
Report of database schema for database with db_unique_name SITLTAG02
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 920 SYSTEM YES /u01/app/oracle/oradata/SITLTAG02/system01.dbf
3 740 SYSAUX NO /u01/app/oracle/oradata/SITLTAG02/sysaux01.dbf
4 340 UNDOTBS1 YES /u01/app/oracle/oradata/SITLTAG02/undotbs01.dbf
5 20480 LTAG NO /u01/app/oracle/oradata/LTAG/ltag.dbf
7 5 USERS NO /u01/app/oracle/oradata/SITLTAG02/users01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 120 TEMP 32767 /u01/app/oracle/oradata/SITLTAG02/temp01.dbf
2 512 LTAG_TEMP 2048 /u01/app/oracle/oradata/LTAG/ltag_temp.dbf
RMAN> alter database datafile 5 online;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 12/14/2021 21:35:39
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '/u01/app/oracle/oradata/LTAG/ltag.dbf'
RMAN> recover datafile 5;
Starting recover at 2021-12-14 21:36:07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=270 device type=DISK
starting media recovery
archived log for thread 1 with sequence 309 is already on disk as file /u01/app/oracle/arch/SITLTAG02_1075387478_1_309.arc
archived log for thread 1 with sequence 310 is already on disk as file /u01/app/oracle/arch/SITLTAG02_1075387478_1_310.arc
archived log for thread 1 with sequence 311 is already on disk as file /u01/app/oracle/arch/SITLTAG02_1075387478_1_311.arc
archived log for thread 1 with sequence 312 is already on disk as file /u01/app/oracle/arch/SITLTAG02_1075387478_1_312.arc
archived log for thread 1 with sequence 313 is already on disk as file /u01/app/oracle/arch/SITLTAG02_1075387478_1_313.arc
archived log for thread 1 with sequence 314 is already on disk as file /u01/app/oracle/arch/SITLTAG02_1075387478_1_314.arc
archived log file name=/u01/app/oracle/arch/SITLTAG02_1075387478_1_309.arc thread=1 sequence=309
archived log file name=/u01/app/oracle/arch/SITLTAG02_1075387478_1_310.arc thread=1 sequence=310
archived log file name=/u01/app/oracle/arch/SITLTAG02_1075387478_1_311.arc thread=1 sequence=311
archived log file name=/u01/app/oracle/arch/SITLTAG02_1075387478_1_312.arc thread=1 sequence=312
media recovery complete, elapsed time: 00:00:01
Finished recover at 2021-12-14 21:36:08
RMAN> alter database datafile 5 online;
Statement processed
RMAN> report schema;
Report of database schema for database with db_unique_name SITLTAG02
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 920 SYSTEM YES /u01/app/oracle/oradata/SITLTAG02/system01.dbf
3 740 SYSAUX NO /u01/app/oracle/oradata/SITLTAG02/sysaux01.dbf
4 340 UNDOTBS1 YES /u01/app/oracle/oradata/SITLTAG02/undotbs01.dbf
5 20480 LTAG NO /u01/app/oracle/oradata/LTAG/ltag.dbf
7 5 USERS NO /u01/app/oracle/oradata/SITLTAG02/users01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 120 TEMP 32767 /u01/app/oracle/oradata/SITLTAG02/temp01.dbf
2 512 LTAG_TEMP 2048 /u01/app/oracle/oradata/LTAG/ltag_temp.dbf
RMAN> alter database tempfile 2 offline;
Statement processed
RMAN>
RMAN>
RMAN> alter database tempfile 2 online;
Statement processed