SQL数据库置疑修复.docx
- 文档编号:9695574
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:11
- 大小:113.76KB
SQL数据库置疑修复.docx
《SQL数据库置疑修复.docx》由会员分享,可在线阅读,更多相关《SQL数据库置疑修复.docx(11页珍藏版)》请在冰豆网上搜索。
SQL数据库置疑修复
SQL数据库置疑修复说明文档
一,数据库置疑产生的原因
二,数据库置疑的预防
三,数据库置疑的修复
一,数据库置疑产生的原因
1、SQLServer所在分区空间是否够?
数据库文件大小是否达到最大文件限制?
FAT32的格式只支持四G以内的文件
2、数据库文件损坏或被非正常删除时出现这种情况
3、病毒防火墙的扫描也会引起数据库置疑
4、当SQLServer启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。
5、电脑非法关机也会造成数据库置疑
6、电脑磁盘有坏道有可能造成数据库置疑
二,数据库置疑的预防
1、数据库存放的盘符,空间是否够大,经常检查盘符的空间
2、数据库存放的盘符的格式设置为NTFS格式
3、进行病毒清除时,尽量把SQL服务停掉,再进行检查
4、尽量减少非正常关机
5、建议客户购买后备电源
6、给客户实施软件之后一定要做好自动备份
7、建议客户每隔一定时间手动备份一次
三,数据库置疑的修复
1,点击后台登录时,如果提示如下图片就有可能表示数据库置疑了
2,需要确认检查数据库置疑,打开企业管理器中的数据库目录,如下图显示表示置疑
下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库)
3,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作)
A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。
(复制下面置疑语法到查询分析器中执行。
--修复数据库置疑的语法
SP_configure'allowupdate',1
go
RECONFIGUREWITHOVERRIDE
go
updatesysdatabases
setstatus=-32768
wherename='zmsoftpos_cs'--数据库名称
go
dbccrebuild_log('zmsoftpos_cs','D:
\zmsoftpos_cs_log')--重新建立日志
Go
updatesysdatabases
setstatus=26
wherename='zmsoftpos_cs'
Go
Sp_configure'allowupdate',0
Go
Reconfigurewithoverride
GO
备注:
其中所有的“zmsoftpos_cs”是置疑的数据库名称,请根据客户实际的置疑数据库进行更改名称,其他的内容不变
B、拷入置疑语法之后,请按F5执行,如果显示框内显示的内容如下表示置疑修复成功
C、置疑修复成功之后,再到如上图的master下拉框架内就可以选择所修复的置疑数据库了,此时置疑是修复成功了,但是并不代表此数据库就没有问题了,请暂时不要进软件,我们还需要检查数据库有没有问题。
4,检查修复置疑好的数据库是否正常
A、打开查询分析器选中修复好的数据库名称,输入“dbcccheckdb”语法,再按F5执行,根据数据库的大小执行需要的时间不确定,请耐心等待,执行完之后在显示框内就会显示一些相关内容如下图:
如上图所示,把显示框拖到最下面,如果“CHECKDB发现了0个分配错误和0个一致性错误”即表示此数据库已经好了,不用再修复了,客户即可进入软件进行操作了。
备注:
(以下的语法就不用再执行了)
B、如果执行“dbcccheckdb”后显示框内显示了很多红色的记录,那么表示这个数据库的有些表还有错误需要修复
5,修复过程如下:
(修复过程中语法内的数据库名称都根据客户使用的数据库进行更改)
A、首先退出所有的客户端软件与企业管理器,只打开查询分析器,默认数据库“Master”,拷入如下语法执行:
sp_dboption'zmsoftpos_cs','singleuser','true'
备注:
其中的数据库名称根据客户使用的数据库进行更改。
此语法是把数据库设置为“单用户模式”
B、设置为单用户模式之后,拷入如下语法进行多次执行
dbcccheckdb(zmsoftpos_cs,REPAIR_REBUILD)
备注:
数据库名称根据客户使用的数据库进行更改。
此语法可以多次执行,也需要多次执行,每执行完一次拖到显示框内的最后面如果“发现的是0个分配错误与O个一致性错误”就不用再修复了,只需执行下面语法即可
Sp_dboption'zmsoftpos_cs','singleUser','False',
备注:
下面的语法也不需执行了。
如果执行多次之后:
“CHECKDB发现了N个分配错误和N个一致性错误”不会再次减少时,表示此语法修复不成功,需要进行下面的修复过程。
C、再把下面语法拷进入,进行多次执行:
dbcccheckdb('zmsoftpos_cs',REPAIR_allow_data_loss)
备注:
此语法的执行与上面“B”点中执行的语法过程一样,执行到此步骤百分之九十以上的数据库都是可以修复的。
如果执行到最后分配错误与一致性错误还不减少,那么执行下面的”D”操作
D、拷入如下语法执行:
execsp_MSforeachtable'dbccdbreindex(''?
'')'
备注:
执行此语法时,此时的“Master”数据库名称一定要选择修复的数据库名称,执行才会生效。
执行完成之后,再使用“dbcccheckdb”语法再检查一次,如果是“发现的是0个分配错误与O个一致性错误”表示修复成功,如果是:
“CHECKDB发现了N个分配错误和N个一致性错误”
表示此数据库坏得很历害,使用此方法已不能修复成功了。
必面使用其他方法了。
最后不管修复成不成功都要使用下面的语法结尾:
Sp_dboption'zmsoftpos_cs','singleUser','False'
备注:
把之前的单用户模块解除掉
6,在上面的修复过程中不能解决的问题,再使用BCP命令语法进行修复
例:
以超市版本为例,超市版本的数据库名称为:
zmsoftpos_cs
A、打开帐套管理新建一个相同的帐套,数据库名称就会是zmsoftpos_cs_01的帐套名称,新建好之后,一定要使用后台登录进去一次,再退出后台。
B、打开查询分析器,选择好帐套数据库“zmsoftpos_cs”把下面的语法拷进入按F5执行:
select'ifEXISTS(SELECT*FROMzmsoftpos_cs_01..sysobjectsWHEREname='+char(39)+name+char(39)+')'+char(13)+'deletefromzmsoftpos_cs_01..'+namefromzmsoftpos_cs..sysobjectswheretype='U'andnamenotin('system_sheet_setup','system_mode_file','system_image')orderbyname
执行完成之后在下面的显示框架内就会出现如下语法:
使用鼠标左击一下图片中红色圆圈内的按钮,就会选中下面的语法,然后再到红色圆圈内的按钮上点鼠标右键,点击另存为,就会出现如下对话:
其中的保存类型一定要先选择所有文件,然后再到文件名处,填写好如图片中输入的名称,然后点保存!
C、以上的语法另存为之后,再拷入以下的语法执行:
select'bcpzmsoftpos_cs..'+name+'outf:
\data\'+name+'.txt-c-S127.0.0.1-Usa_-P422426362227001'fromzmsoftpos_cs..sysobjectswherextype='U'
andnamenotin('system_sheet_setup','system_mode_file','system_image')orderbyname
备注:
以上的语法中有一个文件存放路径,“f:
\data\”此路径根据实际的情况创建,然后更改过来,再执行。
执行之后,按照上面的方法,点击另存为如下图:
其中的保存类型也要先选择所有文件,然后再到文件名中填入如图上的名称:
导出数据.bat文件名,然后再点保存,保存的路径一定要是上面语法中设置中文件夹的路径。
D、此时再选择超市版本的zmsoftpos_cs_01的帐套名称,然后在左上角的文件中打开找到之前保存的“删除数据.sql”的文件,把其中的
”deletefrom”全部替换成“truncatetable”,然后再按F5执行。
E、把D点的语法执行完成之后,还是选择zmsoftpos_cs.01帐套再执行以下的语法:
select'bcpzmsoftpos_cs_01..'+name+'inf:
\data\'+name+'.txt-c-S127.0.0.1-Usa_-P422426362227001'
fromzmsoftpos_cs..sysobjectswherextype='U'andnamenotin('system_sheet_setup','system_mode_file','system_image')orderbyname
其中的路径f:
\data\一定要与“C”点中的路径一致。
按F5执行之后,按照C点的步骤,把显示框内的语法另存为“导入数据.bat”的文件名,保存到语法的路径文件夹内。
F、以上的步骤操作完成之后,打开以上语法存放的径路,先双击导出数据文件,双击之后就会出现如下对话框架:
此界面表示,正在从原帐套里面把数据导出来,请您静心等待,导出完成之后此界面会自动关闭的。
等待完成之后,再双击”导入数据.bat”文件,也会出现如上的界面。
也请您静心等待,导出完成之后界面也会自动关闭。
G、以上的步骤都完成之后,请把zmsoftpos_cs_01的帐套,备份一次,然后把zmsoftpos_cs与zmsoftpos_cs_01两个帐套都删掉,然后新建超市版本的帐套,把恢复备份的zmsoftpos_cs_01文件,此时您的数据库修复的工作就大功告成了。
。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 置疑 修复