查看: 2096|回复: 6

于SQL数据库的软件帐套数据手动备份/恢复方法

 关闭 [复制链接]

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

发表于 2011-4-23 14:34 | 显示全部楼层 |阅读模式
于SQL数据库的软件帐套数据手动备份/恢复方法


                基于SQL数据库的软件帐套数据手动备份/恢复方法

    很多朋友,在使用以SQL数据库为后台的软件时,可能经常遇到软件无法进入、甚至SQL都无法启动的

情况。
这样的话,软件本身的备份恢复功能,以及SQL数据库提供的备份恢复数据的功能都已经无法使用。
    那么,我们在此给大家说明一个手动备份/恢复 SQL数据库帐套数据文件的方法:【手动备份】
    一般的软件,建立的SQL数据库帐套文件,都是放在软件目录里的,比如速达和管家婆都放在单机版/

服务器端目录的\data\目录下。
与帐套同名的两个文件。比如,假设我们建立的帐套名为"CCU公司",那么就应该能看到:"CCU公司.MDF"

、"CCU公司_log.ldf"两个文件。
    我们仅需简单的把这两个文件复制出来即可完成备份的工作。(如果提示无法复制,那么停止你的

SQL服务器再复制即可)。

【手动恢复】
    系统和软件重装以后,我们先在软件里面先建立一个同名的帐套。还以上面为例,我们建立一个"CCU

公司"为名的帐套,然后退出软件,停止SQL。
    把刚才复制出来的两个帐套文件再复制回\data\目录,替换新建立的帐套文件,启动SQL和软件,我

们的数据就恢复了。


                    速达数据无法恢复SQL的处理方案

   新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建

的数   
   
  据库文件,启动数据库,该数据库被设未suspect   
   
  然后把数据库改成紧急模式:   
  sp_configure   'allow',   1   
  reconfigure   with   override   
  update   sysdatabases   set   status   =   32768   where   name   =   '数据库名'   
   
  把LDF文件改名,再执行   
  DBCC   REBUILD_LOG   ('数据库名',   'E:\fdzz\database\fdzz1204_Log.LDF'   )   
   
  恢复数据库紧急模式   
  update   sysdatabases   set   status   =   0   where   name   =   '数据库名'   
  执行   
  restore   database   数据库名   WITH   RECOVERY   
  sp_configure   'allow',   0   
  reconfigure   with   override   
   
  然后用DBCC   CHECKDB   ('数据库名')看看有没有错误   
   
  如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据

库   
   
   
   
   
  1.系统存储过程是sql管理数据库需要的,删除将导致数据库无法正常运作,通过正常途径也无法删除   
  2.直接用sql语句   
      sp_attach_single_file_db   '库名','数据文件名'   
      如果你的日志文件在删除前未被完全应用,可能会引起数据丢失,也可能损坏数据库   
      所以建议最好用文件恢复工具找回日志文件   
   
   
   
  备份数据文件,然后按下面的步骤处理,运气好的话可以恢复,不过应该是会丢数据的了:   
   
  1.新建一个同名的数据库(数据文件与原来的要一致)   
   
  2.再停掉sql   server(注意不要分离数据库)   
   
  3.用原数据库的数据文件覆盖掉这个新建的数据库   
   
  4.再重启sql   server   
   
  5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)   
   
  6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用   
  数据库的脚本创建一个新的数据库,并将数据导进去就行了.   
   
   
   
  USE   MASTER   
  GO   
   
  SP_CONFIGURE   'ALLOW   UPDATES',1   RECONFIGURE   WITH   OVERRIDE   
  GO   
   
  UPDATE   SYSDATABASES   SET   STATUS   =32768   WHERE   NAME='置疑的数据库名'   
  Go   
   
  sp_dboption   '置疑的数据库名',   'single   user',   'true'   
  Go   
   
  DBCC   CHECKDB('置疑的数据库名')     
  Go   
   
  update   sysdatabases   set   status   =28   where   name='置疑的数据库名'   
  Go   
   
  sp_configure   'allow   updates',   0   reconfigure   with   override   
  Go     
   
  sp_dboption   '置疑的数据库名',   'single   user',   'false'   
  Go




建议你把DATA 下的MDF文件单独提出来,在SQL2000下进行附加上去,

然后你用速达新建一个帐套,接着把刚才附件上去的数据备份下来,恢复到速达新建的那个帐套的数据里

(通过SQL2000操作)

PCOS系统下载站:http://zhuangji.wang

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

 楼主| 发表于 2011-4-23 14:43 | 显示全部楼层
问:已备份数据库的磁盘上结构版本为611.服务器支持版本539,无法还原或升级数据库?
    答:你的数据库版本低了,装个高版本的数据库服务器就能还原了,611是sql 2005的版本,539是sql 2000的版本,楼主的数据库备份是不可能在sql2000的数据库上还原的,怎么比较?只可能安装sql server 2005以上的版本来还原,如果楼主的目标是sql server 2000的数据库,可找台机器安装sql Server 2008,还原数据备份后可生成数据库脚本,并把“编写数据的脚本”设为True, “为服务器版本编写脚本”选择SQL SERVER 2000,把生成的脚本文件在SQL SERVER 2000的目标机器上运行就可以了。
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2011-4-23 16:08 | 显示全部楼层
好贴  从中获益良多,谢谢楼主了
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2013-1-6 15:44 | 显示全部楼层
谢谢分享,学习了
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2013-4-22 12:32 | 显示全部楼层
谢谢分享,学习了
PCOS系统下载站:http://zhuangji.wang

签到天数: 266 天

连续签到: 1 天

[LV.8]以坛为家I

发表于 2013-7-20 13:47 | 显示全部楼层
感谢楼主分享
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2014-2-4 13:59 | 显示全部楼层
不错的备份方法,我回头试试
PCOS系统下载站:http://zhuangji.wang

本版积分规则