随着SQL Server 版软件越来越多,与此相关的数据备份与恢复的问题也越来越多,我们在解决问题的过程中总结了一些经验如下:
一、备份各种形式
①从系统管理里作备份,包括帐套的备份和年度帐的备份,这种份的优点是简单,易操作,压缩性好,占用硬盘空间小,但速度慢,并且如果是软件出现故障的情况下,可能无法进入系统管理.
②从Enterprise Manager里做数据库的备份.每个数据库都有一个单独的备份.这种备份的优点是备份速度快,如果对SQL Server有一定了解的话,也是很简单的.
③如果SQL Server无法启动的话,上述两种方法都是无效的,只能采用复制物理文件的方法,把用户帐套的ufdata.mdf ufdata.ldf 和ufsystem.mdf 和ufsystem.ldf
二、恢复数据的方法
①如果有帐套的备份的话,直接使用系统管理里的帐套引入功能就可以了。在这种情况下,一些操作员的权限信息可以丢失,可以重新赋予权限,也可心恢复原来的ufsystem系统控制库
②如果是年度帐的备份,并且软件中还有这个帐套和年度的话,可以用帐套主管注册,然后从年度帐菜单下引入;如果是没有这个帐套存在,就要在系统管理中新建一套帐,建帐时只要注意启用日期、行业性质、帐套主管即可,其他均可忽略,然后把备份中的ufdata.ba_ 用APP目录下的ufuncomp.exe 将它解压缩为ufdata.bak 再将此文件在enterprise manager 里restore 即可
③通过Enterprise Manager 做的单个数据库的备份的和年度帐的备份可以通过 restore database 功能来操作,具体过程为 右键该数据库—所有任务—还原数据库—从设备—选择设备—磁盘—添加—浏览该文件—确定, 在选项标签里把‘强制还原’选上,移至的物理文件名为 该帐套的目录和文件名。然后就可以正常恢复了。
④如果是从其他数据库的备份信息里恢复的话,就可以选择还原自数据库,然后在参数处查找该数据库和数据库的备份信息。在选项标签里把‘强制还原’选上,移至的物理文件名为 该帐套的目录和文件名。然后就可以正常恢复了。
⑤如果是帐套的备份,而该帐套又包含很多个年度,可以先将该文件解压缩,然后通过方法③所述找到该备份文件(备份设备),查看该设备的内容,选择要恢复数据库对应的备份号(每个年度一个号),在选项标签里选强制恢复,配置正确的物理文件位置
⑥如果只有ufdata.mdf(数据库文件),ufdata.ldf(日志文件)可以运用系统数据库(master)里的系统存储过程 sp_attach_db 来恢复,具体操作过程:在Query Analyzer 或者 Dos 里的osql 命令来实现,exec sp_attach_db '数据库名','参数1(第一个物理文件的目录及文件名)','参数1(第二个物理文件的目录及文件名)' 如 exec sp_attach_db 'ufsystem','D:\wf821\admin\ufsystem.ldf','D:\wf821\admin\ufsystem.mdf'
注:如果是该数据库为灰色,则需要先断开该物理文件与数据库的连接, 使用sp_detach_db 语法: exec sp_detach_db '数据库名'
⑦如果是只有mdf 文件(数据库文件),则需要另外一个系统存储过程sp_attach_single_file_db
具体语法为 exec ap_attach_single_file_db 'ufsystem','D:\wf821\admin\ufsystem.mdf'
⑧stop SQL Server service ,replace physname by new files and start SQL server service. 其实这一种方法也可以应用于当数据库出现损坏的情况,利用SQL Server 在启动时主动检测数据库是否完好的功能。