找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 21970|回复: 15

[数据库知识] 利用SQL Server 备份及恢复账套数据的几种方法

  [复制链接]
发表于 2008-5-5 21:29:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
随着SQL Server 版软件越来越多,与此相关的数据备份与恢复的问题也越来越多,我们在解决问题的过程中总结了一些经验如下:

1备份各种形式
①从系统管理里作备份,包括帐套的备份和年度帐的备份,这种BE备份的优点是简单,易操作,压缩性好,占用硬盘空间小,但速度慢,并且如果是软件出现故障的情况下,可能无法进入系统管理。

②从Enterprise Manager里做数据库的备份.每个数据库都有一个单独的备份.这种备份的优点是备份速度快,如果对SQL Server有一定了解的话,也是很简单的.

③如果SQL Server无法启动的话,上述两种方法都是无效的,只能采用复制物理文件的方法,把院校所使用帐套的ufdata.mdf ufdata.ldf 和ufsystem.mdf 和ufsystem.ldf

2 恢复数据的方法
①如果有帐套的备份的话,直接使用系统管理里的帐套引入功能就可以了。在这种情况下,一些操作员的权限信息可以丢失,可以重新赋予权限,也可心恢复原来的ufsystem系统控制库

② 如果是年度帐的备份,并且软件中还有这个帐套和年度的话,可以用帐套主管注册,然后从年度帐菜单下引入;如果是没有这个帐套存在,就要在系统管理中新建一套帐,建帐时只要注意启用日期、行业性质、帐套主管即可,其他均可忽略,然后把备份中的ufdata.ba_ 用ADMIN目录下的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:\U8SOFT\admin\ufsystem.ldf','D:\U8SOFT\admin\ufsystem.mdf'
注:如果是该数据库为灰色,则需要先断开该物理文件与数据库的连接, 使用sp_detach_db 语法: exec sp_detach_db '数据库名'

⑦ 如果是只有mdf 文件(数据库文件),则需要另外一个系统存储过程sp_attach_single_file_db 具体语法为 exec ap_attach_single_file_db 'ufsystem','D:\U8SOFT\admin\ufsystem.mdf'

⑧stop SQL Server service ,replace physname by new files and start SQL server service. 其实这一种方法也可以应用于当数据库出现损坏的情况,利用SQL Server 在启动时主动检测数据库是否完好的功能。

3帐套备份日志文件.LST的说明
使用用友软件时我们经常会使用系统管理进行数据备份和数据恢复,在备份的数据中我们会发现有一个1、2K大的.lst文件,文件名一般是 UfErpAct.lst或者UfErpYer.lst,而在数据恢复时这些文件是必须存在。那么这些文件到底是做什么用的?这些文件中又记录着什么信息呢?

UfErpAct.lst和UfErpYer.lst分别是帐套数据备份信息文件和年度数据备份信息文件。其中,UfErpAct.lst是系统管理用系统管理员登录后选用帐套菜单下的输出功能备份出来的数据信息文件。而UfErpYer.lst是系统管理用某帐套主管身份登录某年度帐帐套后,在年度帐菜单下选择输出功能备份出来的数据信息文件。因此这二个备份文件及代表的备份数据是不相同的且不能通用的。简单的说,UfErpAct.lst及代表的备份数据是整个帐套的备份数据,包括各个年度的数据;而UfErpYer.lst及代表的备份数据只是某个年度的的数据备份。

UfErpAct.lst 和UfErpYer.lst都是可以用记事本(notepad)或者类似的文本编辑器打开的。因为UfErpAct.lst和UfErpYer.lst文件中的内容基本一样,因此我们仅对UfErpAct.lst进行举例说明讲解。下面是一个典型的UfErpAct.lst文件内容:
[BackRetInfo]
Type=Account
cAcc_Id=128
iSysId=36501.4353819444
cacc_path=C:\u8soft\admin\Zt128\
InfoFile=UfErpInf.mdb 帐套信息数据库文件名称
Version=1.00
VersionEx=8.0
Date=2000-07-13 12:45 备份时间
ValueEx=
Backup=Success
Disks=0 备份软盘数量(0为硬盘,1代表1张软盘,)
Bytes=20747560 备份前数据库大小
Test=Write
[FileInfo]
Count=5 备份的文件总数
File1=C:\u8soft\admin\Zt128\1999\UFDATA.MDB
File2=C:\u8soft\admin\Zt128\2000\UFDATA.MDB
File3=C:\u8soft\admin\Zt128\1.VTS
File4=C:\u8soft\admin\Zt128\FATITLE.REP
File5=C:\u8soft\admin\Zt128\FATAIL.REP
[Files]
File1=1,,UfErpInf.md_,UfErpInf.mdb,C:\WINDOWS\SYSTEM\UFSYSTEM\Tmp\,,,2000-07-13 12:45,104448

File2=1,,UFDATA.MD_,UFDATA.MDB,C:\u8soft\admin\Zt128\1999\,,,2000-07-13 12:44,9164800

File3=1,,34075129.uf_,UFDATA.MDB,C:\u8soft\admin\Zt128\2000\,,,2000-07-13 12:44,11438080

File4=1,,1.VT_,1.VTS,C:\u8soft\admin\Zt128\,,,2000-07-13 12:44,13312

File5=1,,FATITLE.RE_,FATITLE.REP,C:\u8soft\admin\Zt128\,,,2000-07-13 12:44,13504

File6=1,,FATAIL.RE_,FATAIL.REP,C:\u8soft\admin\Zt128\,,,2000-07-13 12:44,13416

可以看到这个文件共3个部分,每个部分都用标记开头,分别是“[BackRetInfo]”、“[FileInfo]”、“[Files]”。其中斜体字部分是可以人为手工修改在“[BackRetInfo]”部分,“cAcc_Id=128”为帐套号,譬如,此例中帐套号为128。我们可以修改此值为其他001—997中的任何一个数字作为帐套号(只要此帐套号没有被使用)即可。“cacc_path=C:\u8soft\admin\Zt128\”为帐套存放路径,此处设置的路径为C盘的ufsoft80目录下的zt128目录下。这个值也是可以修改的,但最好和帐套号配合修改。其他行的说明见此行后面说明文字。

在“[FileInfo]”部分,主要记录的备份文件数量和备份前的存放路径和名称。其中各文件备份前的存放路径必须和上述“cacc_path=C:\u8soft\admin\Zt128\”的值一致。
“[Files]”部分,记录的是备份后的文件名称,和恢复时的路径以及备份时间。其中恢复路径也必须和上述“cacc_path=C:\u8soft\admin\Zt128\”路径一致。

从上面的说明我们可以清楚的知道通过可以修改的字符,可以方便的将帐套号和帐套存放路径修改,方便我们查验问题和导入数据。

对于UfErpYer.lst文件内容,基本和UfErpAct.lst相同,不同的是在“[BackRetInfo]”部分添加了“iYear=2000”一行,用来说明此年度数据属于的年份。

[ 本帖最后由 murongfeng 于 2008-5-5 22:41 编辑 ]
发表于 2008-5-5 22:44:01 | 显示全部楼层
收下了~~~
发表于 2008-7-21 09:15:36 | 显示全部楼层
很复杂,看不懂啊
发表于 2008-7-21 21:35:44 | 显示全部楼层
谢谢  !
谢谢非常好!
发表于 2009-1-22 09:06:55 | 显示全部楼层
非常好的东西
发表于 2009-2-3 10:24:32 | 显示全部楼层
谢谢非常好!
发表于 2009-2-11 16:02:39 | 显示全部楼层
{:2_31:}{:2_31:}{:2_31:}
发表于 2009-2-21 19:58:41 | 显示全部楼层
很好,十分感谢~~~~~~~~
发表于 2009-2-23 16:02:03 | 显示全部楼层
这贴还不错啊,谢谢楼主
发表于 2009-5-4 21:36:23 | 显示全部楼层
请教楼主:如何将ufdata.bak 文件在enterprise manager 里restore?
发表于 2010-4-13 17:06:39 | 显示全部楼层
谢谢了,学习学习!!
发表于 2010-9-2 17:36:45 | 显示全部楼层
呵呵,不错,多谢楼主提供,单位的U8正要让我维护,正愁呢
发表于 2010-9-4 16:02:41 | 显示全部楼层
还是这个厚道,不象别人,都要下载
发表于 2010-9-29 11:12:37 | 显示全部楼层
嗯。顶13楼。收藏。谢谢楼主。
发表于 2010-9-30 09:56:55 | 显示全部楼层
收藏,极力顶
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-6-3 11:13 , Processed in 0.046247 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表