SQLServer 故障处理
文章平均质量分 69
薛定谔的DBA
这个作者很懒,什么都没留下…
展开
-
SQL Server 如何安装 OLEDB 驱动
意识到这种情况,Microsoft 发布了 Office 2007 以及随之而来的新版 JET,现在称为 Office Access Connectivity Engine (ACE),它允许与 JET 4.0 及其以前的版本兼容,并支持新的 Access 格式 (. accdb),它为 Access 带来了多项新功能,例如多值字段、安全性和加密改进。但是他们之间有什么变化呢?在 Access 2010 中,ACE 驱动程序获得了对 64 位平台的支持,其核心被认为是 JET 驱动程序的 64 位版本。原创 2023-02-26 23:23:59 · 4108 阅读 · 0 评论 -
SQL Server 跟踪标志 3226
在 SQL Server 中,您可能不知道数据库备份消息的一个默认行为。默认情况下,每个数据库成功备份都会在 SQL Server 错误日志中记录一条消息。对所有备份类型、所有数据库都会发生这种情况。如果您有大量数据库且频繁执行事务日志备份,这可能是一个问题。这可能会导致您的 SQL Server 错误日志包含大量不是很有用的信息。您可以使用 SQL Server 跟踪标志 3226 更改此行为。图 1:SQL Server 日志文件查看器早在 2007 年,微软的 Kevin Farlee .原创 2021-11-17 20:46:49 · 2049 阅读 · 0 评论 -
SQLServer msdb备份信息清除
相信数据库运维同学都知道,随着时间的推移,每天备份产生的记录累计越来越多。不仅在系统数据库 msdb 记录下来,SQL Server 的错误日志也会记录相应信息。如果我们不定时清理,长此以往使数据越来越多。我们查看msdb数据库,看看哪张表数据较多。select OBJECT_NAME(id),rows from msdb.sys.sysindexes where indid in(0,1)and rows > 0order by rows desc有2个系统存储过程,可..原创 2021-04-23 00:22:48 · 1013 阅读 · 1 评论 -
SQL Server 系统架构损坏手动修复
今年没怎么整理博客,不过遇到的问题也非常多。今日整理一个,alter或drop某个存储过程、或者打开存储过程列表时,提示“架构损坏”。-- checkdb 中断报错DBCC CHECKDB(DBName)--类似的,修复液报错DBCC CHECKDB (dbname, REPAIR_ALLOW_DATA_LOSS);checkdb 中断报错CHECKDB 在数据库 'dbname' 中发现 0 个分配错误和 0 个一致性错误。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与原创 2020-11-11 23:35:23 · 1919 阅读 · 1 评论 -
SqlServer 队列读取器代理在连接<subscriber>上的<subscriber_db>时遇到错误“No specified error”
在复制监视器中查看队列代理,错误如下:队列读取器代理在连接“”上的“”时遇到错误“No specified error”。请确保正确定义了分发和订阅,并确保这两台服务器都在运行。 在队列读取器代理中查看代理日志历史,记录如下:已以用户 \ 的身份执行。 复制代理遇到错误,其设置是让它在作业步骤重试间隔内重新启动。有关详细信息,请参阅上一个作业步骤历史记录消息或复制监原创 2015-05-13 09:25:17 · 2336 阅读 · 0 评论 -
SQLServer 索引引起大量超时和死锁!
今天出现了大量的死锁和超时,确定是某个用户使用,用户并发几百个账号操作(属正常情况,一个用户可以有多个账号)。但是数据库跟踪到大量死锁和超时的语句。超时的语句单独执行时也挺快,估计是死锁太多也导致了其他查询超时。该用户之前还正常,不知道今天是不是有类似开业的的情形,今天出现很多死锁超时。当然我们是按用户数据操作的,对其他的用户影响是较小的!~其死锁语句类型如下(有做更改了别名)de原创 2015-11-25 16:41:02 · 9417 阅读 · 0 评论 -
SQLServer 定位CPU使用较高的用户和SQL
CPU 高的时候有很多方法定位,以下是一种比较慢的定位方法,不过本人也不会这样跟踪。实例如下:首先确认高CPU是数据库内部消耗还是Windows其他应用程序消耗较高CPU。打开Windows 任务管理器可以确定哪个进程消耗高CPU。确定是 sqlserver 实例内部消耗的CPU,打开性能计数器跟踪。cmd——》perfmon——》选择计数器对象 thread原创 2015-12-03 12:23:29 · 2155 阅读 · 0 评论 -
SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
在可更新订阅中,在订阅设置更新方法,将 “排队更新” 设置为 “立即更新”接着在订阅数据库更新表数据,出错:消息 21079,级别 16,状态 1,过程 sp_getpublisherlink,第 52 行没有发布服务器的 RPC 安全信息,或该信息无效。请用 sp_link_publication 指定该信息。消息 20512,级别 16,状态 1,过程 sp原创 2016-03-02 10:21:53 · 2294 阅读 · 0 评论 -
SqlServer 无法为可更新的订阅设置发布服务器登录名 sp_link_publication
没有截图:创建可更新订阅,正常创建了发布,在订阅端创建订阅,最后一步提示完成,却出现了警告:无法为可更新的订阅设置发布服务器登录名。可能需要使用 sp_link_publication 直接在订阅服务器计算机上设置它。突然想起来这个发布和订阅的数据库都是其他库还原过来的,应该是账号问题:在发布数据库和订阅数据库都执行:-- 查看孤立数据库用户exe原创 2015-03-28 11:33:09 · 3342 阅读 · 0 评论 -
SQLServer 表字段为 NULL 而视图为NOT NULL 问题
之前有处理几次这个问题,不过还是简单记录下来吧。-- 创建测试表和视图-- DROP DATABASE Demo;CREATE DATABASE Demo;GOUSE DemoGO-- DROP TABLE [dbo].[TestTable]CREATE TABLE [dbo].[TestTable]( [Identifier] [uniqueidentifi原创 2015-10-14 13:32:06 · 5901 阅读 · 0 评论 -
The target principal name is incorrect. Cannot generate SSPI context
如图:最近公司停电,也设置过 DNS ,访问内测网页时常常出现上图的错误!~开始以为 web 服务器的问题,进去查看DNS ,发现DNS 改为网关的 IP ! ,改回来后还是不行。从错误看:目标主体名称不正确,无法生成 SSPI 上下文。可能原因是:1. 正在使用集成安全性。2. 使用 Kerberos 执行安全委派。3. SqlServ原创 2015-11-13 18:58:52 · 6177 阅读 · 0 评论 -
SQLServer 在SSMS插入失败却提示成功
今天在处理数据时,wang原创 2014-09-09 20:05:26 · 1399 阅读 · 0 评论 -
SQLServer 不执行的条件分支却消耗时间!求解…
测试脚本:-- 创建测试库-- drop database TestDBuse mastergocreate database TestDBgo-- 创建证书-- drop certificate Mycertificate;use TestDBgocreate certificate Mycertificate encryption by passwor原创 2015-09-21 15:43:01 · 1044 阅读 · 0 评论 -
SQLServer 可更新订阅的订阅库数据未同步到发布库查看
刚更新几行数据,同事查到一个分库的数据未同步到总库。于是想到是不是同步出现什么错误了。在发布实例中打开 “复制监视器” ,没发现有错误,队列读取器、日志读取器、分发都正常同步数据。发布数据库没有错误,想到可能是订阅数据传递堵住了。查看订阅数据库等待同步到发布的事务和命令数:SELECT COUNT(*) FROM [Platform].[dbo].[MSrepl_原创 2015-11-10 10:59:26 · 3984 阅读 · 0 评论 -
SQLServer varbinary 存储16进制末尾的"0"丢失
当前版本:Microsoft SQL Server 2008 (SP4) - 10.0.6000.29 (X64) Sep 3 2014 04:11:34 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 X64> (Build : ) 表结原创 2015-10-24 01:40:01 · 2087 阅读 · 0 评论 -
SqlServer INSTEAD OF UPDATE 视图触发器问题
源于系统中的 INSTEAD OF UPDATE 视图触发器关联表更新时,发生了错误如下:消息 414,级别 16,状态 1,第 1 行不允许使用 UPDATE,因为该语句会更新视图 "VTestTab",而该视图参与联接并且有一个 INSTEAD OF UPDATE 触发器。于是测试该触发器的执行原理是什么!~说明:视图只能被 INSTEAD OF 触发器原创 2015-05-20 16:35:30 · 9606 阅读 · 2 评论 -
SQLServer ucMSrepl_transactions和ucMSrepl_commands插入重复键
起因:1. 将一个存储过程发布并启用快照时(可更新订阅),分发事务表和命令表插入了重复键导致冲突,程序不断重试。队列读取器不断报错,同时也导致分发代理出错不能进行分发。错误如下:错误消息:进程无法在“ServerName”上执行“sp_MSadd_replcmds”。 (源: MSSQLServer,错误号: 1007)不能在具有唯一索引 'ucMSrepl_transactio原创 2015-11-04 13:04:55 · 2537 阅读 · 0 评论 -
SQLServer 进程无法向表进行大容量复制
模拟出来的问题,这里记录下来吧。事物复制中,发布的表有一字段允许为null,并且该字段存在null值。而自己在订阅中先创建该表,并且把这个字段该为not null,结果出现了以下的错误。错误消息:进程无法向表“"dbo"."MyTable"”进行大容量复制。 (源: MSSQL_REPL,错误号: MSSQL_REPL20037)获取帮助: http://help/MS原创 2016-03-04 17:20:40 · 3983 阅读 · 0 评论 -
SQLServer 主体设置镜像伙伴失败:服务器网络地址 "TCP://server. domain.com:5022" 无法访问或不存在
--基本设置主体服务器:DB主体实例:(默认实例)镜像服务器:DB02镜像实例: MSSQLSERVERA(命名实例,服务器还有一个默认实例)--主体&镜像 端口设置一样CREATE ENDPOINT [Endpoint_For_Mirror] AUTHORIZATION [HUANG\sqlservice] STATE=STARTED ASTCP (LIST原创 2016-03-15 16:35:35 · 10725 阅读 · 0 评论 -
SQLServer Always On FCI 脑裂及可疑状态修复
FCI 双节点集群,由于晚上集群节点间的网络中断过,两个节点都认为另一个节点宕机,在各节点的集群管理中都看到对方已宕机。连接到集群IP,提示 msdb 数据库有问题:发现MSDB数据库 “可疑”msdb 损坏了,相关日志也无法查询,从windows查看到信息如下:SQL Server 断言: 文件: ,行=3785 失败的断言 = 'curr->Ge原创 2017-04-07 16:43:56 · 4071 阅读 · 1 评论 -
SQLServer 2005 MSG 2570 类型为"In-row data" 中。列的值超出了数据类型的范围
修复 SQLServer 2005 MSG 2570 类型为"In-row data")中。列 "NAME" 的值超出了数据类型"varchar"的范围原创 2017-05-18 12:20:10 · 1818 阅读 · 0 评论 -
SQLServer 使用数据库邮件时常看到超时语句 sp_readrequest
当数据库使用邮件时,使用 trace 或 profiler 跟踪慢查询语句时,发现有一个语句出现频率较多: exec sp_readrequest @receive_timeout=600000原创 2017-04-25 17:40:07 · 2661 阅读 · 0 评论 -
SQL Server 事务复制分发到订阅同步慢
最近发现有一个发布经常出现问题,每几天就出错不同步,提示要求初始化。重新调整同步后,复制还是很慢!每天白天未分发的命令就达五六百万条!要解决慢的问题,需要了解从发布数据库到订阅数据库中,有哪些操作,才知道哪个步骤同步缓慢。原创 2017-05-04 11:35:37 · 3704 阅读 · 3 评论 -
SQLServer AlwaysOn AG 连接侦听器IP地址很慢
SQLServer AlwaysOn 可用性组配置完成,使用 侦听器DNS名称连接时是很快的,但是使用其IP地址连接时非常慢,需要等待四五秒钟才能连接完成!原创 2017-04-20 16:27:54 · 3600 阅读 · 0 评论 -
SqlServer 服务器CPU升高因为用户未注销引起的explorer.exe CPU升高
今天看监控,发现服务器CPU比往常高几乎一倍,发现是前一天开始升高的。进去服务器查看系统及SqlServer最近30分钟的CPU使用情况(只是取一段时间看看CPU)DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks) FROM sys.dm_os_sys_info WITH (NOLOCK))原创 2015-02-13 16:39:04 · 1277 阅读 · 2 评论 -
SqlServer 数据库日志无法收缩处理过程
今天按常用方法收缩一个测试用的数据库日志,发现没法收缩!原创 2014-12-11 13:45:13 · 13518 阅读 · 0 评论 -
Oracle GoldenGate For SQL Server 未提交事务导致MSSQL日志不截断
使用 Oracle GoldenGate 将 SQL Server 表数据同步到 Oracle 中。偶尔检查MSSQL日志使用情况,发现日志越来越大,17GB了。原创 2016-06-28 11:44:50 · 1647 阅读 · 0 评论 -
SQLServer The datediff function resulted in an overflow
开发同事有一个脚本报错,很简单,简写如下:SELECT COUNT(*)FROM Logs t1 with(nolock)WHERE DATEDIFF(s, '2016-08-18 17:06:35', t1.insertTime) 执行后出错!Msg 535, Level 16, State 0, Line 1The datediff function resulted in原创 2016-08-18 19:41:09 · 1987 阅读 · 0 评论 -
SQLServer 事务复制分发错误 The process could not connect to Subscriber
非域环境创建事务复制,使用IP相互连接正常。都用IP创建数据库别名,这时使用服务器名相互连接也正常。但是初始化复制时,失败了!其他服务器按别名配置的,都能正常复制。但是这两台服务器同样配置,却不成功!分发进程无法连接到订阅服务器!错误如下:Error messages:The process could not connect to Subscriber 'DB-Subscriber原创 2016-08-18 17:51:43 · 2354 阅读 · 0 评论 -
SQLServer 大容量导入导致死锁和系统变慢问题
今天测试同事反馈系统变得比较慢,看看什么原因。按常理,用几个日常排除语句:--当前正在执行的语句SELECTder.[session_id],der.[blocking_session_id],sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame,der.[start_time] AS '开始时间',der.[st原创 2016-07-20 15:35:03 · 4257 阅读 · 1 评论 -
SQL Server 忘记所有登录账号解决方法
当前有台测试数据库许久没用,忘记sa账号了,本地管理员叶备禁用了,所以网上搜索解决如下。【1】 停止SQL Server 服务 和 SQL Server Agent 服务【2】 以管理员身份打开命令行,单用户模式启动服务。(在单用户模式下启动 SQL Server 可使计算机本地 Administrators 组的任何成员作为 sysadmin 固定服务器角色的成员连接原创 2016-06-30 11:02:19 · 5849 阅读 · 0 评论 -
SQL Server 命名实例更改端口进行发布订阅
两台数据库服务器,都没有加入域,都安装多实例,端口也不一样了。现在使用命名实例进行复制,折腾了好久,才发现解决方法。服务器A:myserverAMSSQL命名实例: mymssqlMSSQL端口:14433服务器B:myserverBMSSQL命名实例: mymssqlMSSQL端口:14433正常连接数据库的方法: myserverA\myms原创 2016-07-01 12:25:50 · 3049 阅读 · 1 评论 -
SQLServer 代理 停止时设置定时检查启动
由于服务器压力过大,主要是推送发布较多,SQLserver代理有时会停止。如果没时间常看到监控,也可以让代理自动启动。网上找了个脚本稍加改动完成。以下保存为一个批处理文件:net_start_SQLSERVERAGENT.bat再利用Windows的 “任务计划” 定时执行。(如果检查到代理运行,不做处理;没有运行,则启动SQLserver代理)@echo offfor原创 2015-02-14 10:51:09 · 3038 阅读 · 0 评论 -
SqlServer 远程执行存储过程或其他非DML语句
原本服务器有1个链接服务器,创建命令如下(都为同一域中的计算机):EXEC master.dbo.sp_addlinkedserver @server = N'SZ1CARD1-DB03', @srvproduct=N'SQL Server' GOEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SZ1CARD1-DB03',原创 2015-08-26 16:07:17 · 3809 阅读 · 0 评论 -
Sql Server 表中看不见的乱码
因为已经改好了,测试没有实际示例,仅操作模拟说明: 某表中有一个字段如:charTest(col Nvarchar(50)) 表中某列有符号'【',但是在前端查询出来是时候出现很多这种乱码符号:'?【', '??【', '???【' 将字段拷贝到studio来看,没发现有问题,前后都没有空格,都是正确的:【hh】【dd】【e原创 2014-12-10 13:14:44 · 2488 阅读 · 1 评论 -
在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题:消息 15281,级别 16,状态 1,第 1 行SQL Server 阻止了对组件原创 2013-06-27 12:20:15 · 19622 阅读 · 5 评论 -
SqlServer删除复制监视器中无效的发布名称
在服务器复制监视器中有一个发布名称,因为该发布订阅已经删除。ReportServerTempDB只有一个发布,已无效,打算删除。--直接删除表记录select * from dbo.MSsnapshot_agents where publisher_db='ReportServerTempDB'原创 2014-12-02 14:58:24 · 3692 阅读 · 0 评论 -
SQLServer 内存溢出问题?(待解决)
报错是在3个小时前的,但是问题还没有立即出现,3个小时左右,Windows系统操作总是出错,数据库连接不上。SQLserver代理总是自动停止,启动几分钟就停止。部分错误如下: --查看日志是否报内存信息exec xp_readerrorlog 1,1,'Manager',NULL,'2015-01-23 13:00:00','20原创 2015-01-24 14:24:44 · 14775 阅读 · 0 评论 -
SqlServer 还原差异备份失败:对应不上完整备份
如图:客户需要原创 2014-10-14 18:08:19 · 2592 阅读 · 0 评论 -
队列读取器启动失败: JobOwner sa 无权使用代理 14 (子系统 QueueReader)). 该步骤失败
在本地测试库zz原创 2014-10-21 13:28:00 · 1638 阅读 · 0 评论