Fanr

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  我的MSSQLDBA 日记

摘要:起因: 应用程序日志里面发现报错:当前事务无法提交,而且无法支持写入日志文件的操作 且是间歇性出现。 问题: 直接从报错内容上看看不出什么问题,于是百度了,百度的结果就是 出现这个问题的原因就是事务已经被回滚,但是又去完成事务(commit/rollback) 结合自身的过程的代码,发现代码非常长, 阅读全文
posted @ 2020-06-24 11:07 Fanr_Zh 阅读(1207) 评论(0) 推荐(0) 编辑

摘要:问题: 数据库服务器cpu吃满 troubleshooting过程: 正常这台服务器的cpu是在20-50之前,今天基本在70-100之间这个是不正常的。 可能问题: 1.并行sql或者复杂sql,打开profile,发现有运行很慢的sql,但是没有cpu非常高的。 2.是不是并发变高导致的,打开p 阅读全文
posted @ 2020-04-08 11:32 Fanr_Zh 阅读(312) 评论(0) 推荐(0) 编辑

摘要:背景: 朋友的环境第二天突然访问不了SQL Server,远程SQL Server用户无法登陆,但是本地SQL Server用户登录正常。 报错: 用户XX登录失败(MicroSoft SQL Server,错误18456) 排查: 对与无法连接服务器的,一般的排查手段,也是最常用的手段。 1.因为 阅读全文
posted @ 2018-07-13 15:10 Fanr_Zh 阅读(375) 评论(0) 推荐(0) 编辑

摘要:订阅+镜像切换 主数据库挂了之后,镜像数据库没挂,那么就需要把镜像数据库设置成主数据库。 1.修改主机名,改成和主数据库一样的,重启 2.修改数据库中的主机名 IF SERVERPROPERTY('ServerName')<>@@SERVERNAME BEGIN DECLARE @srvname s 阅读全文
posted @ 2018-04-12 14:11 Fanr_Zh 阅读(371) 评论(0) 推荐(0) 编辑

摘要:右击还存在的订阅,生成脚本,有个过程sp_addpullsubscription_agent 执行,发现报错说distribution agent 已经存在 执行: UPDATE dbo.MSreplication_subscriptions SET distribution_agent =NULL 阅读全文
posted @ 2017-07-06 13:54 Fanr_Zh 阅读(394) 评论(0) 推荐(0) 编辑

摘要:[问题] 带过滤的复制项UI操作导致订阅全部初始化,但是想不全部初始化,只初始化对应的复制项 [解决] 1.如果修改过滤项,可以直接执行,然后生成快照: exec sp_articlefilter @publication = N'testdb', @article = N'tablea' , @f 阅读全文
posted @ 2017-06-29 09:20 Fanr_Zh 阅读(286) 评论(0) 推荐(0) 编辑

摘要:背景: SQL Server 2008 R2 10.50.1600 没有设置页面文件,内存为64G,数据库分配50G cpu使用占了50%以上,平时只有10-20%,某台服务器“RESOURCE MONITOR“CPU占用特别高。 原因: 网上有说是虚拟内存不够,也有说升级版本就可以解决。 猜测,是 阅读全文
posted @ 2017-01-28 07:51 Fanr_Zh 阅读(486) 评论(0) 推荐(0) 编辑

摘要:背景: 开始并不在意索引视图会导致死锁。 问题: 出现死锁,update t1 表尽然发现会去锁t2表从而导致死锁。 原因: 是因为索引视图才会导致死锁问题。单从update的执行计划也能看出问题 例子: 阅读全文
posted @ 2016-12-30 21:21 Fanr_Zh 阅读(474) 评论(0) 推荐(0) 编辑

摘要:问题描述: 使用基于快照初始化的事务复制,在上次发布的时候,添加项,执行快照agent,报错,错误信息:Error messages:Message: The subscription status of the object could not be changed. Command Text:... 阅读全文
posted @ 2015-10-29 17:13 Fanr_Zh 阅读(1355) 评论(1) 推荐(0) 编辑

摘要:事务复制事务复制的基本机制,在联机文档上也有介绍。基本原理如图,主要依靠2个代理,1.日志读取代理(log reader agent),2.分发代理(distribution agent)。其中log reader agent,负责从发布数据库上读取日志并且写入到分发数据库(distribution... 阅读全文
posted @ 2015-02-04 09:04 Fanr_Zh 阅读(708) 评论(0) 推荐(1) 编辑

摘要:背景:因为一个语句传入的参数和表中类型不一致,然后就修改类型。碰到有依赖列的索引,所以删除了索引,修改,然后创建索引。问题和原因:导致在数据库事务复制下,没有复制索引的删除和创建,导致复制报错 阅读全文
posted @ 2014-12-08 14:11 Fanr_Zh 阅读(314) 评论(0) 推荐(0) 编辑

摘要:背景: 新建了用户,没有取消掉强制密码策略 修改掉策略报错错误: The CHECK_POLICY and CHECK_EXPIRATION options cannot be turned OFF when MUST_CHANGE is ON.使用代码修改: USE Master GO A... 阅读全文
posted @ 2014-11-24 11:00 Fanr_Zh 阅读(667) 评论(0) 推荐(0) 编辑

摘要:背景: 全新服务器,需要增加性能监控,发现无法通过powershell读取性能指标解决方法:Open the Registry Editor by going to the Start Menu and selecting Run…, then type “regedit”,and click t... 阅读全文
posted @ 2014-11-21 12:58 Fanr_Zh 阅读(410) 评论(0) 推荐(0) 编辑

摘要:首先要安装 mysql odbc然后odbc下创建DSN,并且要在系统DSN下。最后执行execsp_addlinkedserver@server='XY',--这是链接服务器的名称@srvproduct='mysql',--这个你自己随便吧@provider='MSDASQL',--这是固定的,不... 阅读全文
posted @ 2014-10-14 15:32 Fanr_Zh 阅读(544) 评论(0) 推荐(0) 编辑

摘要:背景: 出现cpu高于常规的告警排查: 1.开跟踪,没有发现cup特别高的查询 2.查看内核cpu使用量,看是否是sql server 端引起 3.查看负荷,是否负荷特别高这里使用 batch request 4.全部无解,sql运行都正常,在thread,worker,task级别查看也... 阅读全文
posted @ 2014-08-30 00:09 Fanr_Zh 阅读(847) 评论(0) 推荐(0) 编辑

摘要:背景: 同一个存储设备提供了2块存储,1块已经在使用 a,另外一块没有使用b。疑似: 当b初始化,上线之后,导致在a存储的数据库文件出现一致性问题。原理: 具体原理目前不清楚,也是第一次碰到(看到文章的各位以后务必小心)解决方法: 幸好有数据库镜像,打算切换数据库镜像,然后备份数据库镜... 阅读全文
posted @ 2014-08-04 17:34 Fanr_Zh 阅读(338) 评论(4) 推荐(0) 编辑

摘要:背景:今天被人文集forwarded和forwarding记录的事情。简单介绍:当堆表跟新某一个列的时候发现,不够放了,那么就在那行记录上标记forwarding,并把数据放到另外一个page,行被标记上forwarded。有《深入解析 sql server 2008》 可以看 p272,里面稍微有... 阅读全文
posted @ 2014-07-22 16:55 Fanr_Zh 阅读(433) 评论(5) 推荐(0) 编辑

摘要:create DATABASE T --数据库不能是简单模式goUSE tGOCREATE TABLE t(id INT IDENTITY,value CHAR(8000))GOINSERT INTO dbo.t ( value )VALUES ( REPLICA... 阅读全文
posted @ 2014-07-11 10:54 Fanr_Zh 阅读(383) 评论(2) 推荐(0) 编辑

摘要:背景: 应用程序,在某个时刻或出现超时,一开始以为是dbcc checktable造成,使用了各种手段抓取sql,xevent,profile都没有找到。 之前还写了一篇,[20140117]疑似checkpoint堵塞数据库连接,其实问题不是这个。问题: 出现超时一般是在索引整理的job运行... 阅读全文
posted @ 2014-07-02 09:27 Fanr_Zh 阅读(622) 评论(7) 推荐(0) 编辑

摘要:背景: 最近总是出现客户端超时,那么根据超时进行排查 System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the o... 阅读全文
posted @ 2014-05-04 09:35 Fanr_Zh 阅读(1533) 评论(1) 推荐(0) 编辑