龙三公子博客 - 让自己的内心藏着一条巨龙,既是一种苦刑,也是一种乐趣!
龙三公子博客是一个草根站!一个业余电脑爱好者的独立博客,博客内容综合,主要有电脑网络、健康养生、日常生活等!

思迅数据库修复方法整理

 

一、              数据库修复
二、              数据库损坏
三、              BCP数据的导入导出
四、              数据库修复技巧
五、              数据库修复需要注意问题
六、              数据库损坏的原因
 
--1、使用对应版本的数据库安装程序,安装与客户数据库同名的数据库,依次执行如下语句:
use master
go
sp_configure 'allow', 1
go
reconfigure wITh override
go
update sysdatabases set status = 32768 where name = 'isszmv7'
go
--2、停止sql server服务删除log文件,用客户损坏的数据文件覆盖原数据文件,开启sql server服务,依次实现如下语句:
--可修改数据库日志文件的生产目录,最好是与数据文件一致;
DBCC REBUILD_LOG ('isszmv7', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\isszmv7_Log.LDF' )
go
update sysdatabases set status = 0 where name = 'isszmv7'
go
sp_configure 'allow', 0
reconfigure with override
go
USE master
Go
--单用户模式
EXEC sp_dboption 'isszmv7', 'single user', 'TRUE'
go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复,可进行多次交叉修复
DBCC CHECKDB ('isszmv7',repAIr_rebuild)               --一般修复
DBCC CHECKDB ('isszmv7',repair_allow_data_loss)         --高级修复
Go
--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功
DBCC CHECKDB ('isszmv7')
Go
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'isszmv7', 'single user','FALSE'
Go
 
三、BCP数据的导入导出
--以专卖V7总部数据库为例进行,需要处理其他数据库问题,将isszmv7修改为其他对应的数据库名称即可
--在使用前,指定服务器名称
--1.首先在D盘建立TESTDB目录,并在查询分析器中选择思迅数据库运行:
 
use isszmv7
select 'bcp isszmv7..'+name + ' out '+'d:\testdb\'+name+'.txt -c -Usa -S服务器名小写 -P' FROM SYSOBJECTS WHERE TYPE = 'U'
ORDER BY NAME
 
--把查询的结果集全部复制下来,新建一个文本文件取名为“导出.bat”把结果集复制进去并保存,把该文件存放在d盘目录下。
--2.在查询分析器中选择思迅数据库运行:
 
use isszmv7
select 'bcp isszmv7..'+name + ' IN '+'d:\testdb\'+name+'.txt -c -Usa -S服务器名小写 -P ' FROM SYSOBJECTS WHERE TYPE = 'U'
ORDER BY NAME
 
--把查询的结果集全部复制下来,新建一个文本文件取名为“导入.bat”把结果集复制进去并保存,把该文件存放在d盘目录下。
 
--3.运行“导出.bat”(注意:该文件双击即可运行),数据库中的数据会倒出到TESTDB目录中。
 
--4.删除原来的问题数据库,使用软件的数据库安装程序,重新建立新的数据库。
 
--5.在查询分析器中选择思迅数据库运行:
 
use isszmv7
select 'delete '+name FROM SYSOBJECTS WHERE TYPE = 'U'
 
--然后把返回的结果集复制,新建一个查询分析器窗口,把复制的内容粘贴下运行!
 
--6.最后运行“导入.bat” ,倒入成功后就恢复数据库了!
--注意:对于服装以及医药软件,需要在导出前确定日结指向那条t_im_flow中数据,记住具体的数据,导入完之后进行日结指针的修改;
use hbfsv8
update t_sys_system set ioflow_pointer = '指针数值'
go
 
--当数据库较大时,每次修复时间比较久,可在检查数据库时记录下出错的表名,针对单个数据表进行修复;
--修复表错误语句,替换表名为需要修复的数据表名
DBCC CHECKTABLE(table_name, REPAIR_REBUILD )
DBCC CHECKTABLE(table_name, repair_allow_data_loss )
--重建索引
DBCC DBREINDEX(table_name,'')
 
--1、修复完数据库之后,需要对有子曾列的数据表进行子曾列的修复,以免出现客户不能正常销售的情况:
--语法:
DBCC CHECKIDENT(table_name,RESEED)
--针对思迅软件直接执行如下语句即可,需要指定数据库名称
--修复索引语句:
use issbakev7   --数据库名请根据修复的数据库进行跟换。
go
declare @tablename varchar(100)
declare test_cur cursor for
select object_name(id) from syscolumns
where status=128
open test_cur
fetch test_cur into @tablename
while @@fetch_status=0
begin  
   DBCC CHECKIDENT (@tablename, RESEED)  
   fetch test_cur into @tablename
end
close test_cur
deallOCate test_cur
go
--2、修复完自增列之后,首先备份数据库,保证客户的数据库环境
--3、按照原来客户的版本升级客户数据库,以修复损坏的存储过程和触发器;
--4、对数据库的进行测试,前台销售、批发单据、批发单据,以及档案的查询等
--5、没有问题后,将修复好的数据库发给客户。
六、数据库损坏的原因:
1.错误的删除日志;  
2.硬件(HD)损坏,造成日志和数据文件写错误;  
3.硬盘空间不够,比如日志文件过大;   
4.病毒原因;
5.非法关机

 

打赏 思迅数据库修复方法整理  思迅 数据库 龙三公子 电脑 技巧方法 第1张支付宝打赏 思迅数据库修复方法整理  思迅 数据库 龙三公子 电脑 技巧方法 第2张微信打赏
爆品精选

标签: 思迅 数据库 龙三公子 电脑 技巧方法
分类:电脑网络| 发布:xiadao81| 查看:4822 | 发表时间:2012-08-13
原创文章如转载,请注明:转载自龙三公子博客 https://www.mybabycastle.com/
本文链接:https://www.mybabycastle.com/post/11.html

淘宝客交流 2017-03-12 11:26:43 回复

可不可以增加点其他内容呢??

淘宝客交流 2017-01-25 19:43:09 回复

可不可以增加点其他内容呢??

淘宝客交流 2017-01-25 19:43:09 回复

可不可以增加点其他内容呢??
已经有 ( 3 ) 位网友发表了评论,你也评一评吧!  

Design By XvDesign.Com | Power By Z-BlogPHP 1.7.3
点击关闭
  • 联系客服