文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
SQL Server 不存在或访问被拒绝
未与信任SQL Server连接相关联的解决..
SQL Server数据库六种数据移动方法
提高数据库访问速度
如何在两个SQLSERVER之间数据同步
将ACCESS的数据库转化为SQL SERVER的..
动态创建SQL Server数据库、表、存储..
在SQL Server中寻找资料库的TABLE数量..
SQL Server 7.0储存过程调试指南
关于SQL Server 2000的安全配置
用SQL语句来建立跟踪的问题
SQL SERVER2000备份和恢复存储过程
将Excel中的数据导入到SQL Server 200..
SQL Server数据库文件恢复技术
千万级数据库高速分页显示
找出存放用户名和密码的表
SQL Server 7六种数据移动方法
SQL Server中读取XML文件的简单做法
SQL Server 2000中的触发器使用
SQL Server中各个系统表的作用
在SQL Server存储过程中执行DTS包
Sqlserver中的一些技巧
SQL Server 2005:数据类型最大值
SQL Server 存储过程的分页
SQL Server 中易混淆的数据类型
SQL Server 服务器安装剖析
SQL Server导出导入数据方法
SQL数据恢复问题深入剖析
SQLServer和Oracle常用函数对比
用SQL Server为Web浏览器提供图像(一..


技术教程 -> SQLserver教程 ->  
SQL数据恢复问题深入剖析
来源:csdn   人气:870   录入时间:2007-11-8
    
   一般性的数据库恢复问题解疑问:
   
   一,首先是数据库服务器崩溃或文件被破坏导致数据库不能使用,如果数据没有备份,则在SQL SERVER安装目录的DATA文件夹下,默认的路径("C:\Program Files\Microsoft SQL
   
   Server\MSSQL\Data")中会找到原来数据库的原文件,DatabaseName_Data.MDF和DatabaseName_Log.LDF两个文件。把这两个文件拷出来,其实不拷也每事,安全起见嘛。
   
   办法1:重装SQL SERVER 服务器后再把拷出来的数据库放放到默认目录或自己的目录也可以。通过SQL SERVER的企业管理器---注册实例--数据库--所有任务--附加数据库,把数据库附加到服务器上。这种方法比较安全;
   
   方法2:就是数据库重装了,直接在SQL SERVER服务器--注册实例--数据库--新建数据库,
   数据库名跟原来的数据库名一致,建完后再把拷贝出来的两个数据库文件覆盖到,新建的数据库目录上,像这种做法比较冒险,如果新安装的数据库服务器跟以前安装的是同一个版本,一般不会出现问题,但是如果新安装的数据库服务器版本比较高的话,一般会出错,注意版本只会向后兼容,导致应用程序无法运行所以这种办法不提倡。
   
   二.针对备份文件恢复问题:
   
    如果SQL SERVER服务器崩溃或损坏导致数据库不能使用,一般是先把备份文件拷到安全的地方,重新安装SQL SERVER服务器,现在也出现两种问题:
   
   1.安装的SQL SERVER服务器是同一版本的。
   
   第一种办法:在SQL SERVER服务器的企业管理器---注册实例子---数据库---新建数据库,数据库名一般跟原来的一致,然后选种数据库---所有任务----还原数据库---从设备中还原数据库即可;
   
   法1:
   
   
   进入查询分析器
   
   假设你的备份文件放在d:\nn.bak
   
   1执行restore verifyonly from disk='d:\nn.bak'--确认备份设备有效
   
   2执行restore headeronly from disk='d:\nn.bak'--看看数据库的名称
   
   3执行restore filelistonly from disk'd:\nn.bak'--查看一下数据库文件物理位置I
   4按从第三步看到的物理位置建相应的路径
   
   4restore database 数据库名 from disk='d:\nn.bak'--还原数据库 打开查询分析器
   
   法2:
   
   
   RESTORE DATABASE dbname (数据库名) FROM DISK = N '(备份文件名,绝对路径)
   
   ' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , REPLACE ,
   
   MOVE N'(逻辑数据文件名)' TO N'(新机器上物理数据文件名)',
   
   MOVE N'(逻辑日志文件名)' TO N'(新机器上物理日志文件名)'
   
   go
   
   
    2.就是版本不同问题,很多使用者在不清楚以前安装的是什么版本的情况下重新
   
   
   安装了SQL SERVER服务器,最后在恢复备份文件的时候出现问题:
   
    一般高版本备份要还原到低版本的服务器上会出现如下问题:
   
    首先在企业管理器中手动还原:
   
    错误提示1:(在选择强制还原的时候出现如下)
   
   -------------------------------------------------------------------------------
   
    Microsoft SQL-DMD(ODBC-SQLstate:HY000)
   
    Error 3624:
   
    Location:upgraddb.cpp:214
   
    SPID:8
   
    ProcessID:136
   
   -------------------------------------------------------------------------------
   
    错误提示2:(在确定还原的时候出现如下提示)
   
   -------------------------------------------------------------------------------
   
    Microsoft SQL-DMO:
   
    [SQL-DMO] You must be logged in as 'sa',or a member of sysadmin,or a member of dbcreator to perform this operation.
   
   -------------------------------------------------------------------------------
   
    其次在SQL 查询分析器中:
   
    运行:restore verifyonly from disk='d:\nn.bak'--确认备份设备有效
   
    出错提示:
   
   ---------------------------------------------------------------------------
   
    服务器: 消息 3624,级别 20,状态 1,行 1
   
    Location: upgraddb.cpp:214
   
    Expression: tableIndex < ARRAY_LEN (upgradeMap)
   
   SPID: 10
   
   Process ID: 136
   
   连接中断
   
   -------------------------------------------------------------------------------
   
   以上这种情况就是备份文件比你目前安装的SQL SERVER服务器版本高,没办法,辛
   
   苦你一趟,装个版本比较高的就OK。
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987