不小心删除数据文件的处理方式
来源:互联网 发布:人民邮电 算法谜题 编辑:程序博客网 时间:2024/04/28 23:37
一,不小心删除了一个数据文件,非归档模式,为了把危害降到最低,打算强制打开数据库,这时候的操作方法。
我们先删除一个数据文件,现在打开数据库
SQL> shutdown abort;ORACLE instance shut down.SQL> startup;ORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE instance started.Total System Global Area 167772160 bytesFixed Size 1218316 bytesVariable Size 79694068 bytesDatabase Buffers 83886080 bytesRedo Buffers 2973696 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 7 - see DBWR trace fileORA-01110: data file 7: '/u01/app/oracle/oradata/orcl/tsp_test01.dbf'SQL> alter database open;alter database open*ERROR at line 1:ORA-01157: cannot identify/lock data file 7 - see DBWR trace fileORA-01110: data file 7: '/u01/app/oracle/oradata/orcl/tsp_test01.dbf'我们可以看出来,数据库在停止在mount阶段,开始open的时候报错,报错显示出:不能识别和锁定file_id=7的数据文件,这个文件正是我刚才删除的。
那么现在必须打开数据库,该怎么办呢?我们可以将这个数据文件设为脱机(OFFLINE),如下:
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/tsp_test01.dbf' offline;Database altered.现在打开数据库:
SQL> alter database open;Database altered.数据库被打开。
那么现在打开数据库了,我们得确认一下这个数据文件的丢失对数据库的那些对象产生的影响,这样我们才可以清楚的了解到失误对数据库造成了多大的伤害,所以,下面我们要找到这些收影响的对象,首先我们知道这个数据文件所代表的表空间
SQL> select tablespace_name from dba_data_files where file_id = '7';TABLESPACE_NAME------------------------------TSP_TEST得到了这个表空间的名字是:TSP_TEST,下面找到这个表空间中的对象
SQL> select OWNER,TABLESPACE_NAME,EXTENTS,HEADER_FILE,SEGMENT_NAME from dba_segments where tablespace_name = 'TSP_TEST'; OWNER TABLESPACE_NAME EXTENTS HEADER_FILE SEGMENT_NAME------------------------------ ------------------------------ ---------- ----------- ---------------------------------------------------------------------------------TEST TSP_TEST 21 7 BIN$5Jl2esAloA7gQAB/AQB4Dg==$0TEST TSP_TEST 21 7 TEST7这样我们可以清楚地为下一步的拯救做基础。
二,不小心删除了数据文件,归档模式,我们将怎么来恢复数据库
创建表空间tp_test,表test10,索引ind_test10
SQL> create tablespace tp_test datafile '/u01/app/oracle/oradata/orcl/tp_test01.dbf' size 10M;Tablespace created.SQL> create table test10 (v_num number)tablespace tp_test;Table created.SQL> create index ind_test10 on test10(v_num) tablespace tp_test;Index created.手工删除数据文件,模拟断电关闭数据库,然后启动
SQL> shutdown abortORACLE instance shut down.SQL> startupORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE instance started.Total System Global Area 167772160 bytesFixed Size 1218316 bytesVariable Size 67111156 bytesDatabase Buffers 96468992 bytesRedo Buffers 2973696 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 8 - see DBWR trace fileORA-01110: data file 8: '/u01/app/oracle/oradata/orcl/tp_test01.dbf'发现启动到mount阶段,不能open
接下来我们要恢复数据库,创建数据文件,打开自动恢复功能,恢复数据文件
SQL> alter database create datafile '/u01/app/oracle/oradata/orcl/tp_test01.dbf';Database altered.SQL> set autorecovery on;SQL> recover datafile '/u01/app/oracle/oradata/orcl/tp_test01.dbf';Media recovery complete.SQL> alter database open;Database altered.SQL> select * from test10;no rows selected
这样我们在查询表,发现表还是完整的存在。
- 不小心删除数据文件的处理方式
- oracle DBF数据文件不小心删除 oracle登录不了解决方法
- 误删除ORACLE数据文件后的处理方式
- 修复你不小心删除的硬盘分区!
- Ubuntu的panel不小心删除了
- android 恢复不小心删除的文件
- 异常删除oracle数据文件的处理办法
- webapp不小心删除解决办法
- 郁闷,不小心把自己的文章给删除了
- 在windows下不小心删除了fedora的分区
- 不小心把文件夹管理员权限删除的回复方法
- 我不小心删除了所有的数据
- 如何在mac 删除 不小心checkOut下来的项目
- 找回不小心删除掉的存储过程!
- Google Chrome 标签不小心删除的解决办法
- 【快速还原不小心被删除掉的文件】
- 【快速还原不小心被删除掉的文件】
- 收藏很久的照片不小心删除了怎么恢复
- HTML5 拖拽上传多个文件文件
- Android学习之——intent-fliter配置之data属性
- C#程序连接SqlServer数据库
- Tea and Coffee in Singapore
- 有关Linux
- 不小心删除数据文件的处理方式
- maven 处理无法下载jar包方法
- MVC模式的php实现方式 实例
- 开启Objective-c的学习之旅(四)
- 【金刚&&狼xp主题】_8.23
- PreparedStatement是如何大幅度提高性能的
- cocos2d-x 当中访问WebServer服务器的方法,以及解析XML文件.
- 针对mysql innodb配置的优化
- 修改mysql数据存储的地址