2023年11月23日发(作者:)
用友u8数据恢复方法谈
第一种情况: 在只有.MDF和.ldf的情况下进行数据库
的备份与恢复。 因病毒问题,用友软件无法正常启动.系统管
理也不能进入.因此无法正常备份数据,这时就要用到附加数
据库了.通过附加数据库使数据库和用友软件相关联,步骤如
下:
1'把用友软件下的ADMIN文件夹下的内容挎出,主要是*.mdf
和*.ldf文件,就用友通标版2005来说其中包括系统数据
和及各账套下的内容.
2'重装系统及软件
3'把挎备出来的文件复制回原来的位置.
4'通过查询分析器SQL语句附加数据库,或者通过企业管理
器/服务器/数据库/右键/附加数据库 来附加数据库。
<例:通过查询分析器SQL语句
--sp_attach_db
'ufsystem','D:','D:UF2000Admi
' //第一行'ufsystem'为系统数据库名,
'D:UF2000Admin'为物理地址.
--sp_detach_db 'ufsystem' //第二行,在第一行执行时提示
ufsystem已经存在,因此要删除ufsystem,但要注意,重做的系
统要和之前的系统一样.要不就恢复不了。
--sp_attach_db
'ufdata_001_2002','D:','
D:' //第三行
'ufdata_001_2002'为001账套2002的数据库。
'D:UF2000AdminZT0012002'为物理地址. 其它的账套也
是如此。>
另外,用户设置了SQL server 超级用户SA的密码,大家都知
道设置SA密码后,当其他软件用到SQL server数据库时是非
常不方便的.所以要把SA的密码清空.
方法是:打开企业管理器,依次打开SQL server组,打开安全性,
打开登录,在SA上点右键,选属性,在密码项上清空,依次确定
即可。
第二种情况:
1、已没有数据库文件,只有账套备份
2、既有数据库文件,也有账套备份
3、只有数据库文件
一、 已没有数据库文件,只有账套备份
1.如果有整个账套备份,直接使用系统管理里的帐套引入最
新时间备份的账套就可以了。
2.如果是年度帐的备份,并且软件中还有这个帐套和年度的
话,可以用帐套主管注册,然后从年度帐菜单下引入;如果
是没有这个帐套存在,就要在系统管理中新建一套帐,建帐
时只要注意启用日期、行业性质、帐套主管即可,其他均可
忽略,然后把备份中的_ 用APP目录下的
将它解压缩为 再将此文件在
enterprise manager 里restore 即可.
二、 已没有数据库文件,只有账套备份
如果是帐套的备份,而该帐套又包含很多个年度,可以先将
该文件解压缩,然后通过方法3.2所述找到该备份文件(备
份设备),查看该设备的内容,选择要恢复数据库对应的备
份号(每个年度一个号),在选项标签里选强制恢复,配置
正确的物理文件位置既有数据库文件,又有账套备份
2.如果磁盘上既有数据库文件,又有账套备份的话,那就考虑
哪种方法更方便,更有效,更迅速的解决问题.在没有用系统管
理做备份,只备份了(zt+帐套号)的的情况下, sql server 数
据库与access数据库的恢复数据不同,它不能象access数据
库一样直接用原来的.mdb文件覆盖新建的的数据库即可,它
需要用sp_detach_db命令从服务器分离新建立的数据库,然
后再用原来备份的数据库文件替换新建立的数据库文件,最
后用sp_attach_db命令将原来备份的数据库附加到服务器。
例如: 如果存在数据库、 两个文件,
则可以使用 EXEC sp_detach_db 'ufdata_001_2002', 'true'
EXEC sp_attach_db @dbname = N'ufdata_001_2002',
@filename1 =
N'c:',
@filename2 =
N'c:' 如果只有
数据库,而丢失了文件,则可以使用
EXEC sp_attach_single_file_db @dbname = 'ufdata_001_2002',
@physname =
'c:' 另外,针
对安装了SQL简版的用户,由于不能直接使用SQL的查询
分析器,无法调用sp_detach_db命令,则可以尝试下面的方
法:
1. 引入早期备份的账套数据,如果从前一次都没有进行过
数据备份,则可以先通过系统管理建立一套新帐,账套编号
及其它参数与原账套保持一致;
2. 停止并退出MS SQLServer 服务器;
3. 停止[控制面版]---[服务]中的---U8管理软件---进程;
4. 将数据库文件、 复制到系统中账套
目录下,覆盖掉通过备份恢复的数据(或通过系统管理新建
立的数据); 。
5. 重新启动并运行MS SQLServer 服务器;
6.
重新启动并运行[控制面版]---[服务]中的---U8管理软件---进
程。
第三种情况:系统重装后,没有账套备份,如何恢复账套
建和原来的帐套号,帐套名称,启用日期,行业性质一样的
账套.建帐完成后SQL和用友通服务停止.把原来的数据库文
件放到新建账套的文件夹下面,然后重新启动sql的数据库服
务,检查是否恢复.如果数据库被置疑,运行下面的角本进行修
复即可.注意要把相就原数据库和路径修改和新建账套一致。
use master go sp_configure 'allow updates' ,1 go reconfigure
with override go update sysdatabases set status=-32768 where
dbid=DB_ID('UFDATA_001 _2007') go dbcc
rebuild_log('UFDATA_001_2007
','C:') go
sp_dbopti on 'UFDATA_001_2007 ','dbo use only','false' go
sp_configure 'allow updates',0 go reconfigure with ov erride go
如果当年的恢复后需要恢复下一年的,那么首先把下一年的
帐建好,完了停止数据库和U8的服务,用以前的数据覆盖
这个年度的数据,再次启动
我来发免费版吧。
建和原来的帐套号,帐套名称,启用日期,行业性质一样的
账套.建帐完成后SQL和用友通服务停止.把原来的数据库文
件放到新建账套的文件夹下面,然后重新启动sql的数据库服
务,检查是否恢复.如果数据库被置疑,运行下面的角本进行修
复即可.注意要把相应原数据库和路径修改和新建账套一致.
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
update sysdatabases set status=-32768 where
dbid=DB_ID('UFDATA_001_2007')
go
dbcc rebuild_log('UFDATA_001_2007
','C:')
go
sp_dboption 'UFDATA_001_2007 ','dbo use only','false'
go
sp_configure 'allow updates',0
UA_Account_sub(账套年度表)UA_Account(账套表)将帐套信
息加上去就行了!
直接复制 和 和和
subsystem还有就是帐套 ,重装好后,在把
这些拷贝到安装的目录下面 然后进行附加 就OK了
二楼说的也不错就是了 不过在最好的办法就是
先关掉SQL服务(不然没法复制系统数据库)
再把ADMIN 里面的所以文件复制到别的地方
重新安装用友 最好能安装在原路径
等安装完以后 就把ADMIN 复制到 你安装的那个文件
夹里面
有提示要不要替换 ,选择是 再重启一下就可以了
不过如果重启后提示要建系统数据库
那时要选择否,这一步很重要哦
呵呵,今天才看到这贴;我就做个总结性发言,顺便关闭贴
子:问题1:楼主说到网上下载的“SA密码工具”那只是
SQL数据库SA密码,不是用友的密码,如果只是修改了SA
密码,直接修改应用服务器配置里面的SA密码就可以,重
新启动IIS,但不可初始化数据库;切记!问题2:初始化数
据后无账套信息,但账套数据文件存在,这是针对用友应用
服务器配置的初始化数据库,即该数据库初始化,将所有该
数据源的账套信息清空,与账套实际的数据文件无关,但系
统数据库UFSYSTEM将初始化成安装时状态了;所以楼主
无法再看到登陆的账套信息了;前面有几位朋友说的很好,
直接复制账套数据文件到备份目录,记住一定要先备份目前
的数据文件,备份先停止SQL服务器,直接复制账套目录到
新备份目录下保存;乱操作只会损失更大,备份是所有特殊
操作的第一步,这是所有技术人员必须记住的;这世界上后
悔药还不知道在那个科学家的研究室里面呢;备份好现有的
账套数据文件;
下面的操作分两种情况,一种是有最近一次的备份,一定是
最近的,不是去年的,也不要是上月的;
直接恢复最近一次的备份;关闭用友系统所有功能,进入
SQL企业管理器,直接将恢复的账套数据库三年度的文件分
就得按2007年开始创建;
创建好后直接进数据库修改空账套的GL_MEND结账状态,
全部修改成12个月份全部已经结账;然后进系统管理用账
套主管登陆创建下一年度账套;类似创建第三年度账套;
然后退出用友系统,停止SQL服务,直接复制原备份好账套
目录覆盖新创建的账套数据目录;重新启动SQL服务;登陆
用友门户,检查数据;有个办法可以做到就是新建一个用户,
设定密码,通过数据库管理器将密码字段拷贝出来运行下列
语句就可以改过来
use ufsystem
select * from ua_user where cuser_id='01'
update ua_user set cpassword=写入你看到的乱码(密码)where
cuser_id='01'
ufsystem库被初始化了,账套信息和操作员信息都在这个库
里,用户可以重新添加,要恢复账套信息必须新建账套,再
把以前的数据替换回来,前提是不能新建账套的时候不要把
以前的数据覆盖掉。
用友系统数据库被覆盖了,找找有没有系统数据库的备份文
件,一般重新初始系统数据库时系统会自动备份系统数据,
并放对应安装目录下,文件名一般为:ufsystem.000
找到的话试着还原看看
由于初始化数据库之后,UFSYSTEM中的信息已不在,要在
相关的表中添加信息才可以,要不就把数据文件拷贝出来,再
重新引入之前的数据备份,在UFSYSTEM库中添加相关的信
息后,再拷贝回数据文件,就可以了
看样子数据库文件都存在,问题应该不大,我的处理意见如
下:
1.先将所有数据库文件另外备份到移动硬盘上
2.确认有没有做过帐套备份或是备份过数据库UFSystem,如
果没有,就先找个数据恢复软件看看能不能找回数据库
UFSystem的数据库文件。主要是因为UFSystem数据库保存
有所有操作员的信息和权限关系
3.如果有做过帐套备份,就恢复一下帐套,如果没有就一步
一步重新建立所有的空帐套
4.如果没有做过帐套备份,而备份过UFSystem,就恢复
UFSystem数据库,如果都没有,只能进入UFSystem中一个
个录入操作员的信息,密码留空;或是进入后台录入操作员
信息,重新分配权限。
5.进入数据库,分离各个帐套的数据库文件(都是空的或是
旧的),然后再将原来正确的数据库文件附加上去正解
正解 正解
“8#说:提供一个简单的办法
先把数据库文件备出来,然后引入帐套备份,把备份出来的
文件覆盖回去”
================
1、先把数据库文件备出来,通过sql备份出来吗?里面有
各个账套的多个年度张数据库,备份只一个一个备份单个年
度账套的数据库吗?比如我只备份出来ufdata_001_2009
吗?然后呢?建立一个空的会计期间为2009年的帐,再
通过系统管理引入刚刚备份的ufdata_001_2009吗?
2、用友系统管理支持引入sql备份出来的文件吗?
3、其他的2007、2008年度张也是依依这样备份出
来再引入吗??
首先
EM 以及 UFDATA 数据库中存放着大部分基础
信息。
2.也就是说所有帐套的信息都在UFSYSTEM中,一旦该数
据库被覆盖或丢失,在登陆界面的帐套信息就会丢失。
3.解决的办法就是找会原有的UFSYSTEM数据库,附加回
去。我知道的就这么多,希望对你有帮助


发布评论