无归档,无备份,rm误删除所有数据文件恢复(四)
时间:2021-07-01 10:21:17
帮助过:37人阅读
恢复的原理,请查看关于该恢复主题的第一篇博文:http://fly1116.blog.51cto.com/8301004/1337681恢复过程使用的fly.sh脚本,及其他脚本的简..
恢复的原理,请查看关于该恢复主题的第一篇博文:
恢复过程使用的fly.sh脚本,及其他脚本的简要介绍,请看关于该恢复主题的第二篇博文:
在数据库非归档状态,没有任何的备份情况下,通过操作系统命令rm,误删除了所有数据文件,要如何恢复呢
1、数据库版本11.1.0.7.0和数据库处于非归档状态
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0
Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL> archive log list;
Database log mode
No Archive Mode
Automatic archival
Disabled
Archive destination
/archivelog
Oldest online log sequence
45
Current log sequence
47
SQL>
2、在fly用户下创建fly表,表记录为:2256800
SQL> conn fly/fly
Connected.
SQL> create table fly as select * from dba_objects;
Table created.
SQL> insert into fly select * from fly;
70525 rows created.
SQL> /
141050 rows created.
SQL> /
282100 rows created.
SQL> /
564200 rows created.
SQL> /
1128400 rows created.
SQL> commit;
Commit complete.
SQL> select count(*) from fly;
COUNT(*)
----------
2256800
3、查看所有数据文件,以及删除所有数据文件
oracle@fly007:~> cat fly.sh
#!/bin/bash
rman target sys/oracle<
/dev/null
crosscheck archivelog all;
delete noprompt expired archivelog all;
quit
EOF
if [ -f fly_datafile.sh ];then
rm fly_datafile.sh
fi
sqlplus /nolog< cat fly.sql
set echo on
col file_name format a80
col name format a100
set linesize 200
select file_name from dba_data_files;
select name from v$archived_log where name is not null;
set echo off
set heading off
set newpage none
set feedback off
set termout off
set trimspool on
spool fly_datafile.sh
select 'rm'||' '||file_name from dba_data_files;
select 'rm'||' '||name from v$archived_log where name is not null;
spool off
quit
oracle@fly007:~> ./fly.sh
SQL*Plus: Release 11.1.0.7.0 - Production on Mon Dec 9 21:11:29 2013
Copyright (c) 1982, 2008, Oracle. All rights reserved.
SQL> Connected.
SQL> SQL> col file_name format a80
SQL> col name format a100
SQL> set linesize 200
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/home/oracle/oradata/fly/datafiles/fly01.dbf
/home/oracle/oradata/APPLE/datafile/users02.dbf
/home/oracle/oradata/APPLE/datafile/o1_mf_users_8mfvsbdd_.dbf
/home/oracle/oradata/APPLE/datafile/o1_mf_undotbs1_8mfvsbbx_.dbf
/home/oracle/oradata/APPLE/datafile/o1_mf_sysaux_8mfvsb9t_.dbf
/home/oracle/oradata/APPLE/datafile/o1_mf_system_8mfvsb5r_.dbf
/home/oracle/oradata/APPLE/datafile/o1_mf_example_8mfvwlmk_.dbf
/home/oracle/oradata/APPLE/datafile/example02.dbf
/home/oracle/oradata/APPLE/datafile/example03.dbf
/home/oracle/oradata/APPLE/datafile/example04.dbf
/home/oracle/oradata/APPLE/datafile/example05.dbf
/home/oracle/oradata/APPLE/datafile/system03.dbf
/home/oracle/oradata/APPLE/datafile/sysaux03.dbf
13 rows selected.
SQL> select name from v$archived_log where name is not null;
no rows selected
SQL> set echo off
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
oracle@fly007:~> cat fly_datafile.sh
rm /home/oracle/oradata/fly/datafiles/fly01.dbf
rm /home/oracle/oradata/APPLE/datafile/users02.dbf
rm /home/oracle/oradata/APPLE/datafile/o1_mf_users_8mfvsbdd_.dbf
rm /home/oracle/oradata/APPLE/datafile/o1_mf_undotbs1_8mfvsbbx_.dbf
rm /home/oracle/oradata/APPLE/datafile/o1_mf_sysaux_8mfvsb9t_.dbf
rm /home/oracle/oradata/APPLE/datafile/o1_mf_system_8mfvsb5r_.dbf
rm /home/oracle/oradata/APPLE/datafile/o1_mf_example_8mfvwlmk_.dbf
rm /home/oracle/oradata/APPLE/datafile/example02.dbf
rm /home/oracle/oradata/APPLE/datafile/example03.dbf
rm /home/oracle/oradata/APPLE/datafile/example04.dbf
rm /home/oracle/oradata/APPLE/datafile/example05.dbf
rm /home/oracle/oradata/APPLE/datafile/system03.dbf
rm /home/oracle/oradata/APPLE/datafile/sysaux03.dbf
oracle@fly007:~> ./fly_datafile.sh
oracle@fly007:~> 4、fly用户创建表报错
oracle@fly007:~> sqlplus /nolog
SQL*Plus: Release 11.1.0.7.0 - Production on Mon Dec 9 21:11:52 2013
Copyright (c) 1982, 2008, Oracle. All rights reserved.
SQL> conn sys/oracle as sysdba
Connected.
SQL> conn fly/fly
Connected.
SQL> create table fly008 as select * from dba_objects;
create table fly008 as select * from dba_objects
*
ERROR at line 1:
ORA-01116: error in opening database file 7
ORA-01110: data file 7: '/home/oracle/oradata/fly/datafiles/fly01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3