签到天数: 2 天
连续签到: 1 天
[LV.1]初来乍到
于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操作)