环境:

Linux release 7.5

oracle19c (无pdb,从11.2.0.4升级上去的)

一:单个非系统表空间的数据文件被删除

我先备份一下,虽然是测试环境。

[oracle@19c ~]$ cat full_backup.sh
source /home/oracle/.bash_profile
dir=$(date +%Y%m%d)
mkdir -p /u01/backup/$dir
rman target / log /u01/backup/rman_fullbackup_`date +%Y%m%d`.log <<EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
allocate channel c6 type disk;
crosscheck backup ;
delete noprompt expired backup;
backup spfile format '/u01/backup/$dir/spfile_%t_%U.ora';
backup as COMPRESSED BACKUPSET database format '/u01/backup/$dir/full_%t_%U.dbf';
backup current controlfile format '/u01/backup/$dir/cont_%t_%U.ctl';
backup as COMPRESSED BACKUPSET archivelog until time 'sysdate-1/24' format '/u01/backup/$dir/arch_%t_%U.arc';
}
EOF
find /u01/backup/ -type d -name `date +"%Y%m%d" -d "-4 day"`| xargs rm -rf
exit;

测试一下我先建一个表;

create table test(id int ,name varchar(100)) tablespace EXAMPLE;

insert into test select rownum, dbms_random.string('x',20) from dual connect by rownum <=10000;

commit;

select count(*) from test;

select name, open_mode from v$database;

col name for a55

select file#, name from v$datafile;

删除数据文件

! rm -fr /u01/app/oracle/oradata/TEST19C/datafile/o1_mf_example_hnz0crm9_.dbf

! ls -h /u01/app/oracle/oradata/TEST19C/datafile/o1_mf_example_hnz0crm9_.dbf

 此时数据库尚未关闭,服务器当然是不能重启了,也就是对应句柄存在,需要linux知识了;删除后,数据文件不要执行OFFLINE语句,因为执行了句柄没有了,跟你关闭操作系统和数据库一样,都不会有了。

此时查询操作仍然可以进行,但是写入操作就会报错了。

ps -fe|grep ora_dbw

chown -R oracle:oinstall o1_mf_example_hnz0crm9_.dbf

生产是哪个如果发生了这种情况,需要立马的进行恢复,因为很多业务数据不能够进行更新会报一大堆错误提示。本次测试不需要进行recover操作。

二:多个数据文件或者系统表空间数据文件被删

select file_name from dba_data_files;

cd /u01/app/oracle/oradata/ORCL/datafile/

rm -fr *

ls -lh

同样利用句柄进行删除文件恢, 数据库已经删懵逼了,报警日志有报错,千万不能关闭数据库和操作系统。

cp 258 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_hxz2d3nx_.dbf
cp 259 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_hxz2dwqb_.dbf
cp 260 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_hxz2fcs4_.dbf
cp 261 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_hxz2fdtt_.dbf
cp 262 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_hxz2gy96_.tmp

select file#, checkpoint_change# from v$datafile;

select file#, checkpoint_change# from v$datafile_header;

查看数据库数据文件以及数据文件头SCN不一致,需要进行数据库恢复:

进行在线恢复。

recover database until scn 2314719;

进行数据库重启,查看是否异常。

经过recover重启后,数据文件SCN一致,进行数据插入没有问题。

三.建议

1.其实全库数据文件删除这种情况要是可以把删除的文件恢复回来后,建议立马把数据库中的业务数据导出来,另外重新建一个数据库,导入数据。

2.rman进行全库备份或者expdp备份是DBA的一个底线,必须要有。

最新文章

  1. Lambda表达式详解
  2. 前端开发--面试题整理(JS篇)
  3. phpcms v9 模板调用代码大全
  4. PHP版3DES加解密类
  5. epub、ocf等常用电子书格式浅析----附JAVA示例程序
  6. jQuery动态添加的元素中处理字符串溢出后在指定字符数后添加省略号
  7. poj 3159 Candies
  8. setTimeout()和setInterval()小结
  9. xml中,button改变背景颜色方法
  10. IT行业为什么没有进度
  11. 111_climbing-stairs
  12. kafka可视化客户端工具Kafka Tool
  13. Html骨架、基本语法
  14. NSScanner类的基本用法
  15. 将 Azure VM 迁移到 Azure 中的托管磁盘
  16. setsockopt调用IP_ADD_MEMBERSHIP出错errno:19 no such device
  17. centos7安装mantis
  18. 在sourceinsight中添加快速注释 Ctrl+/
  19. [2017BUAA软工]提问回顾
  20. 【原】Spring整合Redis(第三篇)—盘点SDR搭建中易出现的错误

热门文章

  1. 思维导图软件iMindMap的使用方法
  2. Go-Web编程_表单_0x02_验证表单的输入
  3. 关于Java中的内存屏障
  4. MySql学习笔记--详细整理--下
  5. 【2020.11.28提高组模拟】T2 序列(array)
  6. 关于esp8266的SDK开发串口打印mismatch map 3,spi_size_map 6 system_partition_table_regist fail解决办法
  7. PyQt(Python+Qt)学习随笔:QSlider滑动条部件功能简介
  8. PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中当前列currentColumn和选中项selectedItems访问方法
  9. PyQt(Python+Qt)入门:设计师中部件toolTip、statusTip、whatsThis的属性
  10. DokcerFile的添加及如何生成一个自定义镜像mycentos(四)