在刀尖上跳舞,一次sql server 数据库恢复的过程
[ 2006-06-30 12:22:33 | 作者: progame ]
昨天晚上,在升级程序时,有一条SQL语句执行出错,报错为:
连接中断
当时晕了半天,怎么会连接中断,我在查询分析器里执行的啊,后来用
dbcc checkdb检查
出现一大堆的一致性错误
在用dbcc checkdb检查时,错误信息如下:
(因为我那个毁坏的数据库都无法再attach了,所以上面的错误是我再通过google查出来的)
以下忽略了我的尝试,痛苦,彷徨,为具体的修复过程,因为我这个是一个订阅数据库,所以如果所有方法都不行的话,我只能重建数据库再从DataCenter(Publisher)中把数据导过来,因为这个是单向的合并更新,所以如果导过来,是需要非常多的where语句的
直接truncate table那个无法操作的表,因为这个表数据不重要
尝试:
无效
取消订阅,将数据库中的配置修改为维护状态,防止应用程序继续对数据库操作,这个是我自己的配置,和数据库无关
取消订阅后,导致服务器clean subscriber时访问了不一致的数据,数据库变成suspect状态,并且连表都无法查看了
想赶紧停止服务,先备份数据库文件
失败,mdf文件无法支持copy了,CRC校验失败
后悔+伤心.....
google 查找置状态的SQL
阅读全文...
连接中断
当时晕了半天,怎么会连接中断,我在查询分析器里执行的啊,后来用
dbcc checkdb检查
出现一大堆的一致性错误
在用dbcc checkdb检查时,错误信息如下:
服务器: 讯息 8966,层级 16,状态 1,行 1
无法使用闩类型 SH 来读取和闩住分页 (1:3460)。sysindexes 失败。
英文的大致为:无法使用闩类型 SH 来读取和闩住分页 (1:3460)。sysindexes 失败。
Msg 8966, Level 16, State 5, Server 01AW01, Procedure , Line 3
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not read and latch page
(1:177936) with latch type SH. PFS failed.
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not read and latch page
(1:177936) with latch type SH. PFS failed.
(因为我那个毁坏的数据库都无法再attach了,所以上面的错误是我再通过google查出来的)
以下忽略了我的尝试,痛苦,彷徨,为具体的修复过程,因为我这个是一个订阅数据库,所以如果所有方法都不行的话,我只能重建数据库再从DataCenter(Publisher)中把数据导过来,因为这个是单向的合并更新,所以如果导过来,是需要非常多的where语句的
直接truncate table那个无法操作的表,因为这个表数据不重要
尝试:
sp_dboption 'xxxxx','single user','true'
dbcc check db REPAIR_REBUILD
dbcc check db REPAIR_REBUILD
无效
取消订阅,将数据库中的配置修改为维护状态,防止应用程序继续对数据库操作,这个是我自己的配置,和数据库无关
取消订阅后,导致服务器clean subscriber时访问了不一致的数据,数据库变成suspect状态,并且连表都无法查看了
想赶紧停止服务,先备份数据库文件
失败,mdf文件无法支持copy了,CRC校验失败
后悔+伤心.....
google 查找置状态的SQL
UPDATE sysdatabases SET status = status ^ 32768 WHERE name = ...
...阅读全文...
分类: 数据同步和复制 |
评论: 2 |
浏览: 2574
SQLSERVER中对日期操作时的一个注意事项
[ 2006-06-07 22:58:57 | 作者: progame ]
在一个存储过程中 我要统计一年的日期段
我图省事 对日期操作很反常地用了between..and..而还是>@datefrom and <@dateto
可以看到 我需要的是这一年的数据
如果用>= and < 那么@dateto也只要设为cast(cast(@year + 1 as varchar(4)) + '-01-01' as datetime)
当然也可以用
select @dateto = cast(cast(@year as varchar(4)) + '-12-31 23:59:59.997' as datetime)
但这样写得难看了一点,于是我用了上面的代码
可是我们知道sql server2000中datetime的精度是3ms
于是select @dateto = dateadd(ms, -1, @dateto)后实际@dateto还是原来的值
所以对于这种操作,应该用
select @dateto = dateadd(ms, -3, @dateto)才可以
我图省事 对日期操作很反常地用了between..and..而还是>@datefrom and <@dateto
select @datefrom = cast(cast(@year as varchar(4)) + '-01-01' as datetime)
select @dateto = cast(cast(@year + 1 as varchar(4)) + '-01-01' as datetime)
select @dateto = dateadd(ms, -1, @dateto)
select @dateto = cast(cast(@year + 1 as varchar(4)) + '-01-01' as datetime)
select @dateto = dateadd(ms, -1, @dateto)
可以看到 我需要的是这一年的数据
如果用>= and < 那么@dateto也只要设为cast(cast(@year + 1 as varchar(4)) + '-01-01' as datetime)
当然也可以用
select @dateto = cast(cast(@year as varchar(4)) + '-12-31 23:59:59.997' as datetime)
但这样写得难看了一点,于是我用了上面的代码
可是我们知道sql server2000中datetime的精度是3ms
于是select @dateto = dateadd(ms, -1, @dateto)后实际@dateto还是原来的值
所以对于这种操作,应该用
select @dateto = dateadd(ms, -3, @dateto)才可以
UBB编辑器加入了可以设置搜索关键字的按钮
[ 2006-06-03 00:05:51 | 作者: progame ]
因为写起日志来,如果对于每个名词都去查看原始链接,再去设置真是一件麻烦事,而如果不去设置的话,对于阅读者来说,又比较痛苦,还得copy/paste到搜索引擎中去,现在为了解决双方的麻烦,只要在写日志时选中文本再点一下button就可以设置搜索链接了,现在使用的是google的搜索。
下面举个例子:
FLTK,如同其名字所表达的:The Fast Light Tool Kit,一个轻量级的GUI开发库。但这轻量级并不代表功能的羸弱,相反,FLTK在具有基本的GUI功能之外,还拥有一些特殊的功能,比如跨平台、内置 OpenGL功能、速度更快、尺寸更小、协议宽松等。当然,缺点也是有的,比如对于复杂的界面构件支持不够,资源支持的不足等。但一个工具如果使用的好,取其长而去其短,自然可以飞花摘叶皆可伤人;P
下面举个例子:
FLTK,如同其名字所表达的:The Fast Light Tool Kit,一个轻量级的GUI开发库。但这轻量级并不代表功能的羸弱,相反,FLTK在具有基本的GUI功能之外,还拥有一些特殊的功能,比如跨平台、内置 OpenGL功能、速度更快、尺寸更小、协议宽松等。当然,缺点也是有的,比如对于复杂的界面构件支持不够,资源支持的不足等。但一个工具如果使用的好,取其长而去其短,自然可以飞花摘叶皆可伤人;P
分类: Heybrain 相关 |
评论: 1 |
浏览: 2020
1

