当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 用户自定义的数据库修复

MSSQL
系统存储过程sp_MSforeachtable和sp_MSforeachdb使用说明
一些文件未注册导致mssql表文件无法找开的解决方法
用sql获取某字符串中的数字部分的语句
SQL 判断字段类型语句
MSSQL 生成日期列表代码
MSSQL 计算两个日期相差的工作天数的语句
SqlServer 实用操作小技巧集合
sql中all,any,some用法
最常用的SQL语句
SQL语法 分隔符理解小结
sql 服务器知识
隐藏在SQLServer 字段中的超诡异字符解决过程
将备份数据还原到数据库的步骤
SQL Server 高速缓存依赖分析
SQL 多表连接查询实现语句
sql convert函数使用小结
sqlserver2005 行列转换实现方法
跨服务器查询导入数据的sql语句
返回SQL执行时间的存储过程
MSSQL ISQL命令详解

MSSQL 中的 用户自定义的数据库修复


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 41 ::
收藏到网摘: n/a

一、  自动应用重做日志
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;