游客:
注册
|
登录
|
帮助
网友俱乐部
»
数据库操作
»
MSSQL教程
» 用户自定义的数据库修复
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
火狐浏览器,网上冲浪更快更爽更惬意
注册亚洲交友中心,找个人来同居吧!
7CODE查杀恶意代码,守护您的电脑
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 用户自定义的数据库修复
ljjk5
元帅
UID 46706
精华
1
积分 99426
帖子 49691
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
#1
使用道具
发表于 2007-6-16 07:46
资料
个人空间
主页
短消息
加为好友
用户自定义的数据库修复
一、 自动应用重做日志
1、 利用SET AUTORECOVERY命令自动应用重做日志
完成对数据文件的修复操作
SQL>STARTUP MOUNT; 启动实例并加载数据库
SQL>SET AUTORECOVERY ON 启用重做日志自动应用功能
SQL>RECOVER DATABASE 恢复指定表空间、数据文件或整个数据库
SQL>ALTER DATABASE OPEN; 完成恢复后打开数据库
2、 利用RECOVERY AUTOMATIC命令自动应用重做日志
完成对数据文件的修复操作
SQL>STARTUP MOUNT; 启动实例并加载数据库
SQL>RECOVER AUTOMATIC DATABASE
SQL>ALTER DATABASE OPEN; 完成恢复后打开数据库
二、 不归档模式下的数据库介质恢复
1、 将数据库恢复到原来的位置上
SQL>SHUTDOWN IMMEDIATE 如果数据库仍然处于打开状态,关闭数据库;
将数据库文件恢复到原来的位置上,利用最近一次建立的一致性完全备份对整个数据库进行恢复,必须对所有的数据文件与控制文件进行修复;
SQL>RECOVER DATABASE UNTIL CANCEL
SQL>CANCEL
SQL>ALTER DATABASE OPEN RESETLOGS;将当前重做日志顺序号设置为1。
2、 将数据库恢复到新的位置上
SQL>SHUTDOWN IMMEDIATE 如果数据库仍然处于打开状态,关闭数据库;
将数据库文件恢复到新的位置上,利用最近一次建立的一致性完全备份对整个数据库进行恢复,必须对所有的数据文件与控制文件进行修复; 对初始化参数文件中的CONTROL_FILES参数进行编辑,使它执行保存在新位置中修复后的控制文件;
SQL>STARTUP MOUNT
如果修复后的数据库文件处于新的位置,必须利用ALTER DATABASE RENAME FILE语句对控制文件进行修改,使它指向新位置中修复后的数据文件。如:
SQL>ALTER DATABASE RENAME FILE ‘I:\ora9i\oradata\system01.dbf’ TO ‘K:\oracle\oradata\system01.dbf’;
SQL>RECOVER DATABASE UNTIL CANCEL
SQL>CANCEL
SQL>ALTER DATABASE OPEN RESETLOGS;将当前重做日志顺序号设置为1。
三、 归档模式下的完全介质恢复
1、 关闭状态下的完全恢复
SQL>SHUTDOWN ABORT(如果数据库处于打开状态,将它强行关闭)
将数据文件恢复到原来的位置上,如果介质故障无法排除,需要将数据文件恢复到其它位置上;
利用备份修复丢失或损坏的数据文件,也可利用ALTER DATABASE CREATE DATAFILE 语句重建一个空白的数据文件替换对视或损坏的数据文件;
SQL>STARTUP MOUNT
如果修复后的数据文件不在原来的位置上,需要使用ALTER DATABASE RENAME FILE …TO …语句在控制文件中更新它们的信息
SQL>SELECT name,status FROM V$DATAFILE;查询数据文件的名称和状态
SQL>ALTER DATABASE DATAFILE … ONLINE;将脱机数据文件改未联机
SQL>RECOVER DATABASE 或 SQL>RECOVER TABLESPACE users
或 SQL>RECOVER DATAFILE ‘I:\ora9i\oradata\users0.dbf;
SQL>ALTER DATABASE OPEN;
2、 打开状态下的完全介质恢复
SQL>SELECT d.file# f#,d.name,d.status,h.status from v$datafile d,v$datafile_header h
WHERE d.file#=h.file#;查询哪些数据文件被自动设置为脱机状态;
SQL>ALTER TABLESPACE users OFFLINE TEMPORARY;将包含损坏数据文件的表空间设置为脱机状态;将数据文件恢复到原来的位置上,如果介质故障无法排除,需要将数据文件恢复到其它位置上;
利用备份修复丢失或损坏的数据文件;如果修复后的数据文件不在原来的位置上,需要使用ALTER DATABASE RENAME FILE …TO …语句在控制文件中更新它们的信息
SQL>RECOVER TABLESPACE users AUTOMATIC对包含损坏数据文件的脱机表空间进行恢复;
SQL>ALTER TABLESPACE users ONLINE;
四、 归档模式下的不完全介质恢复
1、 不完全恢复的操作准则;
在恢复前后都对数据库进行完全备份
完成不完全介质恢复后,检查数据库是否已经恢复到了目标时刻下的状态;
完成不完全介质恢复后,将归档重做日志文件移动到其它位置保存。
2、 基于时间的不完全恢复
对数据库进行一次完全备份,包括控制文件和所有的联机重做日志文件
SQL>SHUTDOWN ABORT
确定不完全介质恢复的目标时间,即你需要将数据库恢复到哪个时刻下的状态,然后确定需要使用哪些备份来对数据进行修复,数据库修复所使用的控制文件备份应当能够正确反映出目标时刻下数据库的物理结构,所使用的数据文件备份应当是在目标时刻之前创建的,而且必须修复所有的数据文件,
如果没有在目标时刻之前建立的数据文件备份,需要重新创建空白的数据文件
如果在数据库中包含在目标时刻之后建立的数据文件,不要对这个数据文件进行修复,因为在完成不完全恢复后的数据库中根本不应当存在这个数据文件;
将数据文件恢复到原来的位置上,如果介质故障无法排除,则恢复到其它位置上;
利用选定的备份文件修复所有的控制文件和数据文件;
SQL>STARTUP MOUNT 启动实例并加载数据库;
如果修复后的数据文件不在它们原来的位置上,需使用ALTER DATABASE RENAME FILE … TO …语句在控制文件中更新它们的信息;
SQL>SELECT name,status FROM V$DATAFILE;确定所有数据文件都处于联机
SQL>ALTER DATABASE DATAFILE … ONLINE;将数据文件恢复为联机;
SQL>RECOVER DATABASE UNTIL TIME ‘2004-02-01:12:30:30’
如果控制文件是利用备份修复的,必须在RECOVER名利中指定USING BACKUP CONTROLFILE子句;
SQL>ALTER DATABASE OPEN RESETLOGS;
立即对数据库进行一次完全备份。
3、 基于撤销的不完全恢复
SQL>RECOVER DATABASE UNTIL CANCEL
其它步骤同基于时间的不完全恢复
4、 基于SCN的不完全恢复
在进行基于SCN的不完全恢复时,oracle会在应用了所有具有小于等于指定SCN的事务的重做记录之后终止恢复过
RESETLOGS选项
在如下三种情况下,必须使用RESETLOGS选项打开数据库:
1、 在执行任何类型的不完全介质恢复之后;
2、 在使用备份修复控制文件后(在RECOVER命令中使用USING BACKUP CONTROLFILE子句);
在没有联机重做日志文件备份的情况下对不归档数据库进行完全恢复之后。
网友
ljjk5
签名 - 网友社区
===
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-8-30 01:48
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP