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

MSSQL
SQL Server 中死锁产生的原因及解决办法
教你在SQL Server 2000数据库中使用分区
数据仓库基本报表制作过程中的SQL写法
自动定时重启sql server回收内存
轻松解决SQL Server 2005中的常见问题
用一个案例讲解SQL Server数据库恢复
安装SQL Server 2005时出现计数器错误
讲解SQL Server 2005数据库的同义词Bug
利用SQL语句对不同数据库进行高效果分页
三种数据库利用SQL语句进行高效果分页
数据库连接字符串的常见问题和解决方法
教你快速掌握一些方便易用的SQL语句
深入分析SQL Server的数据转换服务
系统默认的MySQL用户名消失的解决方法
SQL 2008邮件故障排除:发送测试电子邮件
SQL Server 2005日志文件损坏的处理方法
在SQL Server 2005数据库中进行错误捕捉
SQL Server查询速度慢原因及优化方法
加密SQL Anywhere 提升政府行业数据安全
Windows Server 2008之数据安全保护

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 114 ::
收藏到网摘: 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;