您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

SQL Server 用户自定义的数据库修复

添加时间:2012-12-31 20:40:12  添加: 思海网络 

本文讲解了用户如何自定义的数据库修复。

一、自动应用重做日志

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: ora9ioradatasystem01.dbf’ TO ‘K: oracleoradatasystem01.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: ora9ioradatausers0.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子句);

在没有联机重做日志文件备份的情况下对不归档数据库进行完全恢复之后。

关键字:SQL Server、数据库

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站