假设数据库名称是 ds_shop
alter database ds_shop set emergency
use master
exec sp_dboption ds_shop, N'single', N'true'
dbcc checkdb('ds_shop',REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb('ds_shop',REPAIR_REBUILD)
exec sp_dboption 'ds_shop', N'single', N'false'
exec sp_resetstatus 'ds_shop'
exec sp_dboption 'ds_shop','single user','false'
***************************
在实际的工作和学习中,许多人的SQL Server 2005数据库日志文件可能会发生损坏,例如硬件故障、计算机非正常重启或关机等等。 在SQL Server 2005的日志文件损坏时,你会发现以下的情况:
◆1、在SQL Server Management Studio中显示数据库处于置疑(suspect)状态。
◆2、事件日志可能会出现如下错误信息: Could not redo log record (217376869), for transaction ID (02334886), on page (137527), database 'Test' (database ID 15). Page LSN = (217352995), type = 2. Log OpCode = 3, context 19, PrevPageLSN (217376151). Restore from a backup of the database, or repair the database. During redoing of a logged operation in database 'Test', an error occurred at log record ID (761162862). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
◆3、无法分离数据库
◆4、用CREATE DATABASE DBName ON ( FILENAME = N'DBFile' ) FOR ATTACH_REBUILD_LOG附加数据库时出现提示:The log cannot be rebuilt because the database was not cleanly shut down.
详细的恢复方法:
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库:
use master
declare @databasename varchar(255)
set @databasename='要恢复的数据库名称'
exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
注:这个方法是通过.mdf文件恢复数据库,即使大家的log文件丢失也可以进行恢复。
9. 如果DBCC CHECKDB('ds_shop', REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
重新执行DBCC CHECKDB('ds_shop')命令,确认数据库中已没有错误存在。
清除数据库的置疑状态:sp_resetstatus 'ds_shop'
清除数据库的单用户模式状态:sp_dboption 'ds_shop',’single user’,’false’
重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。
10. 如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。
如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
1. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
3. 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。
4. 停止并重新启动SQL Server服务。
5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
DBCC REBUILD_LOG('ds_shop', 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ds_shop_Log.LDF')
6. 重新将该数据库置为单用户模式。(http://support.microsoft.com/?id=264154)
7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中的错误
正确执行完成的提示应该类似于:
警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
H.验证数据库一致性(可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
I.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 [table=95%][tr][td]以下是引用片段:
sp_configure 'allow updates',0
go
reconfigure with override
go
2012年11月21日星期三
2012年6月4日星期一
如何将USB接口打印机虚拟为并口?
如何将USB接口打印机虚拟为并口?
在DOS命令行下运行以下命令(以下为示例,根据实际情况要有所改动):
NET USE LPT2 \\192.168.0.2\EPSONLQ635 /PERSISTENT:YES
;以上这行的含义为将打印端口LPT2映射为共享主机192.168.0.2的共享打印机EPSONLQ635
;这时本机应用程序把打印结果发送到LPT2就会在共享主机192.168.0.2的EPSONLQ635上打印出来
;如果只要打印到本机,只需要将192.168.0.2改成本机的IP地址
;如果不知道共享打印机的名称,可以在我的电脑地址栏输入\\192.168.0.2列出所有共享内容
;以上映射会保存下来,电脑重启也不会丢失
NET USE
;以上这行表示列出所有的映射内容
NET USE LPT2 /Delete
;以上这行表示删除前面的映射定义
///////////////
用USB虚拟LPT口
某些系统或软件只支持LPT接口的打印机,如果打印机刚好没有LPT口,这就需要我们用USB接口来虚拟LPT口,实现打印
第一步,我们在系统中安装一个环路网卡:
1)打开控制面板,点击添加硬件;
2)等安装向导扫描完,在硬件已经连接好的提示框中,选择“是,我已经连接了此硬件(Y)”,然后点下一步;
3)在已安装硬件的列表框中,选择最后一个选项,“添加新的硬件设备”,点击下一步;
4)在你期望向导做什么的提示框中,选择“安装我手动从列表选择的硬件(高级)(M)”,点下一步;
5)在硬件类型列表框中选择“网络适配器”,下一步;
6)在选择网卡页中,厂商选择Microsoft,网卡选择“Microsoft Loopback Adapter”,下一步完成安装。
第二步,配置第一步中安装的网卡的IP地址,指定一个固定IP与子网掩码;
第三步,共享USB接口的条码打印机,记得起一个简单易记的名字,我的打印机起名叫Zebra888;
第四步,映射出刚才共享的打印机到LPT1端口,在命令行端口运行NET USE LPT1: \\[Computer Name]\Zebra888 /Persistent:YES,回车
第五步,电脑重启后需要重新执行一下四步的命令,我们可以建立一个批处理文件,放到启动项中
///////////////////////////////
把USB打印机映射到LPT端口(简约版)
对于要用程式来操作条码机的朋友,可能好多时候都要用自己写的程式来打印,恰恰现在的打印都是配给USB连接线,这时我们要用程式来调用打印机,都不能用原来的的命令:
COPY C:\TEST.TXT LPT1
如果我们改成COPY C:\TEST.TXT USB001
直接执行,只会在C多一个文件罢了,这时候要怎么办呢?
有两种解决办法:
1.去市场买条USB转COM口或转LPT口的线(这肯定行,在此不多说);
2.我们用个办法来骗WINDOWS一下,
先找到安装打印机的PC机名称,然后把打印机共享,
然后在你要打印的那台电脑,进入DOS,
用NET USE命令完成映射:
NET USE LPT1 \\安装打印机电脑名\共享打印机名 /persistent:yes
回车就完成映射,完成后再执行NET USE命令,查看MAP是否成功,显示OK就表示成功了.
百分百OK~
在DOS命令行下运行以下命令(以下为示例,根据实际情况要有所改动):
NET USE LPT2 \\192.168.0.2\EPSONLQ635 /PERSISTENT:YES
;以上这行的含义为将打印端口LPT2映射为共享主机192.168.0.2的共享打印机EPSONLQ635
;这时本机应用程序把打印结果发送到LPT2就会在共享主机192.168.0.2的EPSONLQ635上打印出来
;如果只要打印到本机,只需要将192.168.0.2改成本机的IP地址
;如果不知道共享打印机的名称,可以在我的电脑地址栏输入\\192.168.0.2列出所有共享内容
;以上映射会保存下来,电脑重启也不会丢失
NET USE
;以上这行表示列出所有的映射内容
NET USE LPT2 /Delete
;以上这行表示删除前面的映射定义
///////////////
用USB虚拟LPT口
某些系统或软件只支持LPT接口的打印机,如果打印机刚好没有LPT口,这就需要我们用USB接口来虚拟LPT口,实现打印
第一步,我们在系统中安装一个环路网卡:
1)打开控制面板,点击添加硬件;
2)等安装向导扫描完,在硬件已经连接好的提示框中,选择“是,我已经连接了此硬件(Y)”,然后点下一步;
3)在已安装硬件的列表框中,选择最后一个选项,“添加新的硬件设备”,点击下一步;
4)在你期望向导做什么的提示框中,选择“安装我手动从列表选择的硬件(高级)(M)”,点下一步;
5)在硬件类型列表框中选择“网络适配器”,下一步;
6)在选择网卡页中,厂商选择Microsoft,网卡选择“Microsoft Loopback Adapter”,下一步完成安装。
第二步,配置第一步中安装的网卡的IP地址,指定一个固定IP与子网掩码;
第三步,共享USB接口的条码打印机,记得起一个简单易记的名字,我的打印机起名叫Zebra888;
第四步,映射出刚才共享的打印机到LPT1端口,在命令行端口运行NET USE LPT1: \\[Computer Name]\Zebra888 /Persistent:YES,回车
第五步,电脑重启后需要重新执行一下四步的命令,我们可以建立一个批处理文件,放到启动项中
///////////////////////////////
把USB打印机映射到LPT端口(简约版)
对于要用程式来操作条码机的朋友,可能好多时候都要用自己写的程式来打印,恰恰现在的打印都是配给USB连接线,这时我们要用程式来调用打印机,都不能用原来的的命令:
COPY C:\TEST.TXT LPT1
如果我们改成COPY C:\TEST.TXT USB001
直接执行,只会在C多一个文件罢了,这时候要怎么办呢?
有两种解决办法:
1.去市场买条USB转COM口或转LPT口的线(这肯定行,在此不多说);
2.我们用个办法来骗WINDOWS一下,
先找到安装打印机的PC机名称,然后把打印机共享,
然后在你要打印的那台电脑,进入DOS,
用NET USE命令完成映射:
NET USE LPT1 \\安装打印机电脑名\共享打印机名 /persistent:yes
回车就完成映射,完成后再执行NET USE命令,查看MAP是否成功,显示OK就表示成功了.
百分百OK~
2012年5月25日星期五
160打印机USB口的打印解决方案
本批80160II usb 打印机使用windows驱动打印,不是模拟com口。
使用方案:
安装一个350/160/220打印机驱动,驱动里面切纸功能要勾选,勾选打印时开钱箱.
1.使用打印中文小票,设置为[字体:黑体,字号 9,调整 -8,商品分行/分行模式2取消]
2.每行字数: 38
3.钱箱:需要安装另一个350/160/220打印机驱动,建议命名为cajon ,驱动里面切纸功能不要勾选,勾选打印时开钱箱. 钱箱选择USB,打印机名为这个打印机名.
2012年4月8日星期日
收缩数据库文件
/*--特别注意 请按步骤进行,未进行前面的步骤,请不要做后面的步骤 否则可能损坏你的数据库. 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. --*/
1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K 或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a.分离 EXEC sp_detach_db @dbname = 'pubs' b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 5.为了以后能自动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式: EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' 6.如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式: alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
2012年3月21日星期三
网站下单数据导入商业管理软件步骤
网站下单数据转移步骤
1. 订单管理,选择 导出.格式会发生变化.
2.使用鼠标选择 从编号/货号开始 ,至 单据结束. 按右键->复制,或者按Ctrl+C 复制单据信息
3.打开销售界面,选择粘贴. 系统询问是否是用本地价格,选择后,单据就会自动生成
2012年3月20日星期二
dw5.5 激活
可以安装英文版的序列号
1192-1321-8328-4108-7860-1096
安装成功了!
dw5.5不能安装的解决方法
在别的机器安装成功后,直接复制到本地,然后输入序列号
用记事本编辑“C:\Windows\System32\Drivers\etc\”目录下的 hosts 文件
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com
127.0.0.1 ereg.adobe.com
127.0.0.1 activate.wip3.adobe.com
127.0.0.1 wip3.adobe.com
127.0.0.1 3dns-3.adobe.com
127.0.0.1 3dns-2.adobe.com
127.0.0.1 adobe-dns.adobe.com
127.0.0.1 adobe-dns-2.adobe.com
127.0.0.1 adobe-dns-3.adobe.com
127.0.0.1 ereg.wip3.adobe.com
127.0.0.1 activate-sea.adobe.com
127.0.0.1 wwis-dubc1-vip60.adobe.com
127.0.0.1 activate-sjc0.adobe.com
以防止其连接 Adobe 的激活验证服务器。
1192-1321-8328-4108-7860-1096
安装成功了!
dw5.5不能安装的解决方法
在别的机器安装成功后,直接复制到本地,然后输入序列号
用记事本编辑“C:\Windows\System32\Drivers\etc\”目录下的 hosts 文件
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com
127.0.0.1 ereg.adobe.com
127.0.0.1 activate.wip3.adobe.com
127.0.0.1 wip3.adobe.com
127.0.0.1 3dns-3.adobe.com
127.0.0.1 3dns-2.adobe.com
127.0.0.1 adobe-dns.adobe.com
127.0.0.1 adobe-dns-2.adobe.com
127.0.0.1 adobe-dns-3.adobe.com
127.0.0.1 ereg.wip3.adobe.com
127.0.0.1 activate-sea.adobe.com
127.0.0.1 wwis-dubc1-vip60.adobe.com
127.0.0.1 activate-sjc0.adobe.com
以防止其连接 Adobe 的激活验证服务器。
2012年3月7日星期三
2012年2月26日星期日
Cint 和 int
cint()会四舍五入进它最接近的偶数,当小数部分大于0.5时,取其左右整数部分的偶数值。当小数部分小于0.5时,取整
int()直接取整数,舍弃小数部分。
如
Cint(0.5)=0,Cint(1.5)=2,Cint(1.2)=1,Cint(3.3)=3
Int(0.5)=0,Int(1.5)=1,Int(1.2)=1,Int(3.3)=3
int()直接取整数,舍弃小数部分。
如
Cint(0.5)=0,Cint(1.5)=2,Cint(1.2)=1,Cint(3.3)=3
Int(0.5)=0,Int(1.5)=1,Int(1.2)=1,Int(3.3)=3
2012年1月16日星期一
在iPad一代上用Apple Digital AV Adapter (HDMI适配器)开启画面镜像
在iPad一代上用Apple Digital AV Adapter (HDMI适配器)开启画面镜像
随着iPad2的面世Apple推出了Digital AV Adapter,就是个一头接iPad,另一头有个标准HDMI输出接口的适配器。它可以将视频输出到通过HDMI链接的电视机/投影仪上,在家浏览iPad上的电影就方便多了。不仅支持iPod程序里的电影,也支持HTML5网页中的视频,或是自带的Youtube程序中播放的视频,这些均可以全屏显示。
这个适配器在iPad2上使用还可以实现镜像 (display mirror),即在电视机上同步输出iPad2上你能看到内容,比如待机画面或是程序画面。用这个东西连接46寸电视机玩Angry Birds可以让人感受“这个鸟怎么那么大啊”的感觉。
根据Apple的产品销售说明,它也支持iPhone4代和iPad一代,不过默认情况下只能在这两者上输出视频,画面镜像功能就没了。
直到我们有了越狱….
不管你是用iFile还是开启了OpenSSH,只要修改/System/Library/CoreServices/SpringBoard.app/K48AP.plist这个文件
插入两行内容即可实现画面镜像功能(需要re-spring或者重启设备)
修改好后的文件内容类似于
然后你的iPhone4和iPad1也可以实现镜像功能。不过镜像功能无法在16:9电视机上实现全屏(估计因为比例问题,iOS上是4:3),即使是iPad2也无法实现全屏镜像。
这个适配器在iPad2上使用还可以实现镜像 (display mirror),即在电视机上同步输出iPad2上你能看到内容,比如待机画面或是程序画面。用这个东西连接46寸电视机玩Angry Birds可以让人感受“这个鸟怎么那么大啊”的感觉。
根据Apple的产品销售说明,它也支持iPhone4代和iPad一代,不过默认情况下只能在这两者上输出视频,画面镜像功能就没了。
直到我们有了越狱….
不管你是用iFile还是开启了OpenSSH,只要修改/System/Library/CoreServices/SpringBoard.app/K48AP.plist这个文件
插入两行内容即可实现画面镜像功能(需要re-spring或者重启设备)
<key>display-mirroring</key>
<true/>
<true/>
然后你的iPhone4和iPad1也可以实现镜像功能。不过镜像功能无法在16:9电视机上实现全屏(估计因为比例问题,iOS上是4:3),即使是iPad2也无法实现全屏镜像。
2012年1月9日星期一
WLAN 算号器
RedditMessengerVodpodYahoo BookmarksBeboMister-WongWordPressGoogle ReaderOrkutXINGEvernoteNetvibes ShareStrandsPosterousBusiness ExchangeArtoTipdSmakNewsPlurkAIMYahoo MessengerIdenti.caMozillacaBlogger PostTypePad PostBox.netNetlogTechnorati FavoritesCiteULikeJumptagsHemidemiFunPInstapaperPhoneFavsXerpiNetvouzWinkDiigoBibSonomyBlogMarksTailrankStartAidKledyKhabbrMeneameYoolinkBookmarks.frTechnotizieNewsVineMultiplyFriendFeedPlaxo PulsePingSquidooProtopage BookmarksBlinklistFavesYiGGWebnewsSegnaloPushaYouMobSlashdotFarkAllvoicesJamespotImera BrazilTwiddlaLinkaGoGounalogHuggDiglogNowPublicTumblrLiveJournalCurrentHelloTxtSpurlYampleOneviewLinkatopiaSimpyLinkedInBuddyMarksAsk.com MyStuffViadeoMapleWistsConnoteaBackflipMyLinkVaultSiteJotSphinnDZoneCare2 NewsHyvesSphereBitty BrowserGabbrSymbaloo FeedsTagzaFolkdNewsTrustAmazon Wish ListPrintFriendlyRead It LaterTuentiEmailRediff MyPage
订阅:
博文 (Atom)