测试linux删除Oracle文件,使用文件句柄恢复

删除Oracle文件

oracle@zdb002 orcl ps -ef\|grep smon oracle 12774 1 0 11:44 ? 00:00:00 ora_smon_orcl oracle 16681 16604 0 12:49 pts/1 00:00:00 grep --color=auto smon \[oracle@zdb002 orcl\] ls
control01.ctl control02.ctl redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf
oracle@zdb002 orcl rm -rf \* \[oracle@zdb002 orcl\] ls -l
total 0
oracle@zdb002 orcl$ ps -ef|grep smon
oracle 12774 1 0 11:44 ? 00:00:00 ora_smon_orcl
oracle 16736 16604 0 12:49 pts/1 00:00:00 grep --color=auto smon

插入数据测试复制之前是否会丢数据

SQL> select * from test;

X


1

SQL> insert into test values(2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

X


1

2

用文件句柄复制恢复

---通过dbw进程查看

oracle@zdb002 \~$ ps -ef|grep dbw|grep -v grep

oracle 12768 1 0 11:44 ? 00:00:00 ora_dbw0_orcl

oracle@zdb002 \~$ ls -rtl /proc/12768/fd

total 0

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 9 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/hc_orcl.dat

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 8 -> /dev/zero

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 7 -> /proc/12768/fd/

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 6 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 5 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 4 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 3 -> /dev/null

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 262 -> /u01/app/oracle/oradata/orcl/temp01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 261 -> /u01/app/oracle/oradata/orcl/users01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 260 -> /u01/app/oracle/oradata/orcl/undotbs01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 259 -> /u01/app/oracle/oradata/orcl/sysaux01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 258 -> /u01/app/oracle/oradata/orcl/system01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 257 -> /u01/app/oracle/oradata/orcl/control02.ctl (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 256 -> /u01/app/oracle/oradata/orcl/control01.ctl (deleted)

l-wx------. 1 oracle oinstall 64 Nov 13 12:51 2 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 11 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb

lrwx------. 1 oracle oinstall 64 Nov 13 12:51 10 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/lkORCL

l-wx------. 1 oracle oinstall 64 Nov 13 12:51 1 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:51 0 -> /dev/null

--通过lgwr进程查看,比dbw多出redo

oracle@zdb002 \~$ ps -ef|grep lgw|grep -v grep

oracle 12770 1 0 11:44 ? 00:00:00 ora_lgwr_orcl

oracle@zdb002 \~$ ls -rtl /proc/12770/fd

total 0

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 9 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/hc_orcl.dat

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 8 -> /dev/zero

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 7 -> /proc/12770/fd/

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 6 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 5 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 4 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 3 -> /dev/null

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 265 -> /u01/app/oracle/oradata/orcl/temp01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 264 -> /u01/app/oracle/oradata/orcl/users01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 263 -> /u01/app/oracle/oradata/orcl/undotbs01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 262 -> /u01/app/oracle/oradata/orcl/sysaux01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 261 -> /u01/app/oracle/oradata/orcl/system01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 260 -> /u01/app/oracle/oradata/orcl/redo03.log (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 259 -> /u01/app/oracle/oradata/orcl/redo02.log (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 258 -> /u01/app/oracle/oradata/orcl/redo01.log (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 257 -> /u01/app/oracle/oradata/orcl/control02.ctl (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 256 -> /u01/app/oracle/oradata/orcl/control01.ctl (deleted)

l-wx------. 1 oracle oinstall 64 Nov 13 12:52 2 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 11 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 10 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/lkORCL

l-wx------. 1 oracle oinstall 64 Nov 13 12:52 1 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 0 -> /dev/null

复制删除文件回原位置

oracle@zdb002 \~$ cp /proc/12770/fd/265 /u01/app/oracle/oradata/orcl/temp01.dbf

oracle@zdb002 \~$ cp /proc/12770/fd/264 /u01/app/oracle/oradata/orcl/users01.dbf

oracle@zdb002 \~$ cp /proc/12770/fd/263 /u01/app/oracle/oradata/orcl/undotbs01.dbf

oracle@zdb002 \~$ cp /proc/12770/fd/262 /u01/app/oracle/oradata/orcl/sysaux01.dbf

oracle@zdb002 \~$ cp /proc/12770/fd/261 /u01/app/oracle/oradata/orcl/system01.dbf

oracle@zdb002 \~$ cp /proc/12770/fd/260 /u01/app/oracle/oradata/orcl/redo03.log

oracle@zdb002 \~$ cp /proc/12770/fd/259 /u01/app/oracle/oradata/orcl/redo02.log

oracle@zdb002 \~$ cp /proc/12770/fd/258 /u01/app/oracle/oradata/orcl/redo01.log

oracle@zdb002 \~$ cp /proc/12770/fd/257 /u01/app/oracle/oradata/orcl/control02.ctl

oracle@zdb002 \~$ cp /proc/12770/fd/256 /u01/app/oracle/oradata/orcl/control01.ctl

oracle@zdb002 orcl$ ls -l

total 1470028

-rw-r-----. 1 oracle oinstall 9748480 Nov 13 12:54 control01.ctl

-rw-r-----. 1 oracle oinstall 9748480 Nov 13 12:54 control02.ctl

-rw-r-----. 1 oracle oinstall 52429312 Nov 13 12:54 redo01.log

-rw-r-----. 1 oracle oinstall 52429312 Nov 13 12:54 redo02.log

-rw-r-----. 1 oracle oinstall 52429312 Nov 13 12:54 redo03.log

-rw-r-----. 1 oracle oinstall 513810432 Nov 13 12:54 sysaux01.dbf

-rw-r-----. 1 oracle oinstall 775954432 Nov 13 12:54 system01.dbf

-rw-r-----. 1 oracle oinstall 20979712 Nov 13 12:54 temp01.dbf

-rw-r-----. 1 oracle oinstall 31465472 Nov 13 12:54 undotbs01.dbf

-rw-r-----. 1 oracle oinstall 5251072 Nov 13 12:54 users01.dbf

还是显示delete,未使用复制文件

oracle@zdb002 \~$ ls -rtl /proc/12770/fd

total 0

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 9 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/hc_orcl.dat

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 8 -> /dev/zero

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 7 -> /proc/12770/fd/

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 6 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 5 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 4 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 3 -> /dev/null

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 265 -> /u01/app/oracle/oradata/orcl/temp01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 264 -> /u01/app/oracle/oradata/orcl/users01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 263 -> /u01/app/oracle/oradata/orcl/undotbs01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 262 -> /u01/app/oracle/oradata/orcl/sysaux01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 261 -> /u01/app/oracle/oradata/orcl/system01.dbf (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 260 -> /u01/app/oracle/oradata/orcl/redo03.log (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 259 -> /u01/app/oracle/oradata/orcl/redo02.log (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 258 -> /u01/app/oracle/oradata/orcl/redo01.log (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 257 -> /u01/app/oracle/oradata/orcl/control02.ctl (deleted)

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 256 -> /u01/app/oracle/oradata/orcl/control01.ctl (deleted)

l-wx------. 1 oracle oinstall 64 Nov 13 12:52 2 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 11 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb

lrwx------. 1 oracle oinstall 64 Nov 13 12:52 10 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/lkORCL

l-wx------. 1 oracle oinstall 64 Nov 13 12:52 1 -> /dev/null

lr-x------. 1 oracle oinstall 64 Nov 13 12:52 0 -> /dev/null

插入数据测试复制后是否会丢数据

SQL> insert into test values(3);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

X


1

2

3

SQL> insert into test values(4);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

X


1

2

3

4

重启数据库

SQL> shutdown immediate

ORA-03113: end-of-file on communication channel

SQL>

SQL> startup

ORACLE instance started.

Total System Global Area 1586708480 bytes

Fixed Size 2253624 bytes

Variable Size 973081800 bytes

Database Buffers 603979776 bytes

Redo Buffers 7393280 bytes

Database mounted.

Database opened.

后插入数据未出现

SQL> select * from test;

X


1

2

复制数据文件前需要停止业务,复制后产生的新数据不录入数据库。

由于测试全部删除数据文件,不涉及文件scn变化。

相关推荐
zx_7414848124 分钟前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS35 分钟前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿1 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
wdfk_prog2 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲2 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
彧azz2 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
日常筹谋记3 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
susplus3 小时前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Shadow(⊙o⊙)3 小时前
Linux进阶知识1.0
linux·运维·服务器