Oracle恢复实验一:使用添加数据文件之前的控制文件
2005-03-26 12:27
633 查看
---------------------------------------------
实验平台:windows + Oracle 10.1.0.2.0
Author:NinGoo 2005-03-26
--------------------------------------------
在备份控制文件之后,在数据库中又添加了数据文件,然后当前控制文件损坏,需要使用之前的备份控制文件来做恢复。
[/b]
1.[/b]备份控制文件[/b]
[/b]
SQL> alter database backup controlfile to 'e:/control.ctl';
数据库已更改。
2.[/b]使用[/b]create tablespace[/b]或者[/b]alter tablespace add datafile[/b]给数据库添加数据文件[/b]
[/b]
SQL> create tablespace test
2 datafile 'E:/ORACLE/ORADATA/NING/TEST01.DBF' size 10M,
3 'E:/ORACLE/ORADATA/NING/TEST02.DBF' size 10M;
表空间已创建。
3.shutdown[/b]后将现在的控制文件删除[/b]
[/b]
[/b]
c:/>del E:/ORACLE/ORADATA/NING/control01.ctl
c:/>del E:/ORACLE/ORADATA/NING/control02.ctl
c:/>del E:/ORACLE/ORADATA/NING/control03.ctl
[/b]
4.startup[/b]数据库[/b]
[/b]
报错:ORA-00205: error in identifying controlfile, check alert log for more info
5.[/b]将备份的控制文件[/b]restore
[/b]
c:/>copy e:/control.ctl e:/ORACLE/ORADATA/NING/control01.ctl
c:/>copy e:/control.ctl e:/ORACLE/ORADATA/NING/control02.ctl
c:/>copy e:/control.ctl e:/ORACLE/ORADATA/NING/control03.ctl
6.[/b]使用备份控制文件做恢复[/b]
[/b]
SQL> recover database using backup controlfile;
ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 5: 'E:/ORACLE/ORADATA/NING/TEST01.DBF'
ORA-01110: 数据文件 6: 'E:/ORACLE/ORADATA/NING/TEST02.DBF'
此时,查看v$datafile可以看到有两个unname文件
SQL> select name from v$datafile;
NAME
-------------------------------------------
E:/ORACLE/ORADATA/NING/SYSTEM01.DBF
E:/ORACLE/ORADATA/NING/UNDOTBS01.DBF
E:/ORACLE/ORADATA/NING/SYSAUX01.DBF
E:/ORACLE/ORADATA/NING/USERS01.DBF
C:/WINDOWS/SYSTEM32/UNNAMED00005
C:/WINDOWS/SYSTEM32/UNNAMED00006
查看alert_sid[/i].log,可以看到如下内容
File #5 added to control file as 'UNNAMED00005'. Originally created as:
'E:/ORACLE/ORADATA/NING/TEST01.DBF'
File #6 added to control file as 'UNNAMED00006'. Originally created as:
'E:/ORACLE/ORADATA/NING/TEST02.DBF'
可知UNNAMED00005对应'E:/ORACLE/ORADATA/NING/TEST01.DBF'
UNNAMED00006对应'E:/ORACLE/ORADATA/NING/TEST02.DBF'
[/b]
7[/b].重命名数据文件[/b]
[/b]
[/b]
SQL> alter database rename file 'C:/WINDOWS/SYSTEM32/UNNAMED00005' to
2 'E:/ORACLE/ORADATA/NING/TEST01.DBF';
数据库已更改。
SQL> alter database rename file 'C:/WINDOWS/SYSTEM32/UNNAMED00006' to
2 'E:/ORACLE/ORADATA/NING/TEST02.DBF';
数据库已更改。
8[/b].再使用备份控制文件恢复[/b]
[/b]
[/b]
SQL> recover database using backup controlfile;
完成介质恢复。
9[/b].使用[/b]resetlogs[/b]选项打开数据库[/b]
[/b]
[/b]
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
10[/b].添加[/b]temp[/b]文件[/b]
[/b]
此时查看alert_sid[/i].log,可以看到以下警告
***************************************************************
WARNING: The following temporary tablespaces contain no files.
This condition can occur when a backup controlfile has
been restored. It may be necessary to add files to these
tablespaces. That can be done using the SQL statement:
ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
Alternatively, if these temporary tablespaces are no longer
needed, then they can be dropped.
Empty temporary tablespace: TEMP
***************************************************************
使用备份控制文件恢复后,Temp表空间被置空
SQL> select name from v$tempfile;
未选定行
SQL>alter tablespace temp add tempfile
2 'E:/ORACLE/ORADATA/NING/TEMP01.DBF';
表空间已更改。
实验平台:windows + Oracle 10.1.0.2.0
Author:NinGoo 2005-03-26
--------------------------------------------
在备份控制文件之后,在数据库中又添加了数据文件,然后当前控制文件损坏,需要使用之前的备份控制文件来做恢复。
[/b]
1.[/b]备份控制文件[/b]
[/b]
SQL> alter database backup controlfile to 'e:/control.ctl';
数据库已更改。
2.[/b]使用[/b]create tablespace[/b]或者[/b]alter tablespace add datafile[/b]给数据库添加数据文件[/b]
[/b]
SQL> create tablespace test
2 datafile 'E:/ORACLE/ORADATA/NING/TEST01.DBF' size 10M,
3 'E:/ORACLE/ORADATA/NING/TEST02.DBF' size 10M;
表空间已创建。
3.shutdown[/b]后将现在的控制文件删除[/b]
[/b]
[/b]
c:/>del E:/ORACLE/ORADATA/NING/control01.ctl
c:/>del E:/ORACLE/ORADATA/NING/control02.ctl
c:/>del E:/ORACLE/ORADATA/NING/control03.ctl
[/b]
4.startup[/b]数据库[/b]
[/b]
报错:ORA-00205: error in identifying controlfile, check alert log for more info
5.[/b]将备份的控制文件[/b]restore
[/b]
c:/>copy e:/control.ctl e:/ORACLE/ORADATA/NING/control01.ctl
c:/>copy e:/control.ctl e:/ORACLE/ORADATA/NING/control02.ctl
c:/>copy e:/control.ctl e:/ORACLE/ORADATA/NING/control03.ctl
6.[/b]使用备份控制文件做恢复[/b]
[/b]
SQL> recover database using backup controlfile;
ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 5: 'E:/ORACLE/ORADATA/NING/TEST01.DBF'
ORA-01110: 数据文件 6: 'E:/ORACLE/ORADATA/NING/TEST02.DBF'
此时,查看v$datafile可以看到有两个unname文件
SQL> select name from v$datafile;
NAME
-------------------------------------------
E:/ORACLE/ORADATA/NING/SYSTEM01.DBF
E:/ORACLE/ORADATA/NING/UNDOTBS01.DBF
E:/ORACLE/ORADATA/NING/SYSAUX01.DBF
E:/ORACLE/ORADATA/NING/USERS01.DBF
C:/WINDOWS/SYSTEM32/UNNAMED00005
C:/WINDOWS/SYSTEM32/UNNAMED00006
查看alert_sid[/i].log,可以看到如下内容
File #5 added to control file as 'UNNAMED00005'. Originally created as:
'E:/ORACLE/ORADATA/NING/TEST01.DBF'
File #6 added to control file as 'UNNAMED00006'. Originally created as:
'E:/ORACLE/ORADATA/NING/TEST02.DBF'
可知UNNAMED00005对应'E:/ORACLE/ORADATA/NING/TEST01.DBF'
UNNAMED00006对应'E:/ORACLE/ORADATA/NING/TEST02.DBF'
[/b]
7[/b].重命名数据文件[/b]
[/b]
[/b]
SQL> alter database rename file 'C:/WINDOWS/SYSTEM32/UNNAMED00005' to
2 'E:/ORACLE/ORADATA/NING/TEST01.DBF';
数据库已更改。
SQL> alter database rename file 'C:/WINDOWS/SYSTEM32/UNNAMED00006' to
2 'E:/ORACLE/ORADATA/NING/TEST02.DBF';
数据库已更改。
8[/b].再使用备份控制文件恢复[/b]
[/b]
[/b]
SQL> recover database using backup controlfile;
完成介质恢复。
9[/b].使用[/b]resetlogs[/b]选项打开数据库[/b]
[/b]
[/b]
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
10[/b].添加[/b]temp[/b]文件[/b]
[/b]
此时查看alert_sid[/i].log,可以看到以下警告
***************************************************************
WARNING: The following temporary tablespaces contain no files.
This condition can occur when a backup controlfile has
been restored. It may be necessary to add files to these
tablespaces. That can be done using the SQL statement:
ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
Alternatively, if these temporary tablespaces are no longer
needed, then they can be dropped.
Empty temporary tablespace: TEMP
***************************************************************
使用备份控制文件恢复后,Temp表空间被置空
SQL> select name from v$tempfile;
未选定行
SQL>alter tablespace temp add tempfile
2 'E:/ORACLE/ORADATA/NING/TEMP01.DBF';
表空间已更改。
相关文章推荐
- Oracle恢复实验(四):所有控制文件和数据文件丢失。
- Oracle使用RMAN恢复控制文件实例
- oracle实验记录 (恢复,备份-含坏块数据文件)
- Oracle rman不完全恢复(数据文件,归档日志,控制文件全部丢失)
- 使用文件句柄方式恢复误删除的Oracle数据文件
- Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- 使用linux文件句柄恢复误删除的Oracle数据文件
- NBU恢复Oracle控制文件或者数据文件
- 使用linux文件句柄恢复误删除的Oracle数据文件
- Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复
- oracle数据恢复案例 - 控制文件损坏,无备份
- RMAN实战14:用RMAN恢复ORACLE归档日志、控制文件、spfile及logminer的使用
- Oracle恢复实验(二):数据文件user01.dbf损坏,打开数据库情况下进行恢复。
- 使用linux文件句柄恢复误删除的Oracle数据文件
- Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- 使用文件句柄方式恢复误删除的Oracle数据文件
- Oracle使用超大SQL脚本文件恢复数据问题记录
- ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复
- Oracle恢复实验(三):恢复未备份的数据文件。