(Oracle数据库基于用户管理的控制文件的备份与恢复.doc
文本预览下载声明
时间:2010.1.6 来源:网络 编辑:联动北方技术论坛
在Oracle数据库中,控制文件是非常重要的。它用于记录和维护数据库。当恢复数据库时,服务器进程和后台进程需要从控制文件中读取各种备份相关的信息。如果控制文件损坏,则会导致这些备份信息的丢失。尽管使用多元化控制文件可以防止控制文件损坏,但因为控制文件的重要性,应该定期备份控制文件。当数据库配置发生改变时,一定要备份控制文件。
涉及到数据库配置改变的命令:
alter?database?[add|drop]?logfile ?
?
alter?database?[add|drop]?logfile?member ?
?
alter?database?[add|drop]?logfile?group ?
?
alter?database?[noarchivelog|archivelog] ?
?
alter?database?rename?file ?
?
create?tablespace ?
?
alter?tablespace?[add|rename]?datafile ?
?
alter?tablespace?[read?write|read?only] ?
?
drop?tablespace?
控制文件的备份,三种方式
1)使用OS命令进行拷贝
1)open状态下,使用alter database命令生成控制文件副本
2)open状态下,使用alter database backup controlfile to trace命令将控制文件备份到跟踪文件
控制文件的恢复,两种方式
1)mount状态下,使用RECOVER DATABASE USING BACKUP CONTROLFILE
2)mount状态下,生成跟踪文件并进行恢复
2--2示例:
[oracle@localhost?~]$?rlsqlplus?/?as?sysdba ?
?
SQL*Plus:?Release?10.2.0.1.0?-?Production?on?星期一?8月?1?21:40:03?2011 ?
?
Copyright?(c)?1982,?2005,?Oracle.??All?rights?reserved. ?
?
Connected?to?an?idle?instance. ?
?
SQL?startup ?
?
ORACLE?instance?started. ?
?
Total?System?Global?Area??528482304?bytes ?
?
Fixed?Size??????????????????1220360?bytes ?
?
Variable?Size?????????????176161016?bytes ?
?
Database?Buffers??????????343932928?bytes ?
?
Redo?Buffers????????????????7168000?bytes ?
?
Database?mounted. ?
?
Database?opened.?
--open状态下生成控制文件副本
SQL?alter?database?backup?controlfile?to ?
?
2??/oracle/10g/oracle/bakup/database/oralife.ctl; ?
?
alter?database?backup?controlfile?to ?
?
* ?
?
ERROR?at?line?1: ?
?
ORA-01580:?error?creating?control?backup?file ?
?
/oracle/10g/oracle/bakup/database/oralife.ctl ?
?
ORA-27038:?created?file?already?exists ?
?
Additional?information:?1 ?
?
SQL?alter?database?backup?controlfile?to ?
?
2??/oracle/10g/oracle/bakup/database/oralife.ctl?reuse;?--reuse用于覆盖原有控制文件副本 ?
?
Database?altered.?
--手动删除所有控制文件模拟文件丢失
SQL?ho?rm?/oracle/10g/oracle/product/10.2.0/oradata/oralife/*.ctl;?
--使用evan登录,并添加数据
SQL?conn?evan/evan ?
?
Connected. ?
?
SQL?select?*?from?t_evan; ?
?
TEXT ?
?
---------------
显示全部