随笔 - 120, 文章 - 1, 评论 - 166, 阅读 - 19万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  MSSQL

摘要:本篇是上一篇SQL Server Log文件对磁盘的写操作大小是多少的续,使用XEvent收集SQL Server Data文件和Log文件的写大小,脚本如下:DECLARE @DBNAME VARCHAR(256)SET @DBNAME = 'myDB'DECLARE @sqlcmd NVARCH... 阅读全文

posted @ 2014-05-23 16:58 nzperfect 阅读(1093) 评论(1) 推荐(2) 编辑

摘要:安装SQL后服务不能启动,报错:2014-03-24 14:33:10.06 spid13s Error: 17190, Severity: 16, State: 1.2014-03-24 14:33:10.06 spid13s Initializing the FallBack certificate failed with error code: 1, state: 20, error number: 0.2014-03-24 14:33:10.06 spid13s Unable to initialize SSL encryption because a valid certificat 阅读全文

posted @ 2014-03-24 16:02 nzperfect 阅读(1491) 评论(0) 推荐(0) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。本篇进入数据库灾难恢复第五篇,上一篇演示了修复简单的非聚集索引损坏,今天,我们将看一个稍复杂点儿的,那就是管理区分配页损坏,不过分配页无法修复,只能恢复整个数据库。什么是管理区分配页?管理区分配页是数据文件中特殊的页,用来跟踪和管理区分配,本篇将关注三种:全局分配映射表 (GAM):记录已分配的区,对于一个数据文件,每4GB会有一个GAM页,它的ID总是为2,之后每511,232页出现一次。 Page ID = 2 阅读全文

posted @ 2013-01-11 14:57 nzperfect 阅读(1059) 评论(1) 推荐(0) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。目录:SQL Server 灾难恢复31天之第1天:DBCC CHECK命令会自动使用已经存在的数据库快照吗?SQL Server 灾难恢复31天之第2天:包含数据库备份在还原时的保护SQL Server 灾难恢复31天之第3天:在还原数据库时确定需要哪些备份文件SQL Server 灾难恢复31天之第4天:备份SQL Server 灾难恢复31天之第5天:处理损坏的非聚集索引SQL Server 灾难恢复31天之第 阅读全文

posted @ 2013-01-11 11:30 nzperfect 阅读(1214) 评论(0) 推荐(2) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。本篇进入数据库灾难恢复第五篇,从本篇开始,主要深入讲述一些数据page损坏的问题,先从容易修复的非聚集索引开始。通常,处理数据损坏的情况按三个步骤进行:1.确定损坏(使用DBCC CHECKDB)2.确定损坏的对象及对象类型(如索引页、分配页等)3.确定适合的修复方法确定损坏当我们在做一些例行完整性检查或者收到一些其它的错误或警告,如果有一个page损坏的信息,不要直接就去处理这个页面,应该先对数据库运行DBCC C 阅读全文

posted @ 2013-01-11 11:25 nzperfect 阅读(1940) 评论(0) 推荐(0) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。本篇进入数据库灾难恢复第四篇,主要讨论备份的重要以及一些容易被忽视而没有备份。系统数据库大多数人都知道要备份用户数据库,其实系统数据也需要备份,他们是master,model,msdb,distribution,以及resource数据库,它的备份采用copy数据文件(mssqlsystemresource.mdf and mssqlsystemresource.ldf)的方式,copy到你的放备份的目录。证书和非对 阅读全文

posted @ 2013-01-10 22:19 nzperfect 阅读(876) 评论(0) 推荐(0) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。本篇进入数据库灾难恢复第三篇,主要提供一个脚本,该脚本通过读取msdb库的一些备份记录信息,自动得到指定数据库最后一个全备+最后一个差异+这之后的全部Log备份。场景:假设你的数据库在某一个时间点被误删除了一个表或者多个表数据,之后发现这个问题,现在需要把数据恢复,那么你可能要先还原一个全备,再加一个差异备(如果有),然后再还原一堆Log备份,如果你5分钟一个Log备份,那么你如果快速的确定这些文件名称及所在位置,以 阅读全文

posted @ 2013-01-10 22:19 nzperfect 阅读(874) 评论(0) 推荐(0) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。本篇进入数据库灾难恢复第二篇,主要讨论还原包含数据库备份的还原时的保护措施,特别是当你拿到一个包含数据库备份,但没有人告诉你他是一般数据库还是包含数据库时,它本身会是一个什么样的保护措施呢?还原包含数据库:当我了解到包含性数据库,我第一个担心的问题是,作为一个dba如何阻止那些没有专业知识的人来访问数据库呢?还好,已经有三个保护层面了。第一层保护:在还原一个包含数据库或创建一个包含数据库之前,或者之前已经存在一个包含 阅读全文

posted @ 2013-01-10 22:18 nzperfect 阅读(1230) 评论(0) 推荐(0) 编辑

摘要:说明:灾难恢复系列的文章是由 Robert Davis 写的,发布在SQLSoldier, 个人认为挺不错的,所以根据自己的理解,边测试边整理,并非直接翻译,如有不准确,欢迎指正。作为灾难恢复这个系列的第一篇文章,我们看一下如果一个数据库存在快照数据库,那么当执行DBCC CHECK命令时,是否会自动使用已存在的快照数据库呢?我一直认为是不会的,并且也这样告诉其它人。为了证明给我自己以及其它人,本篇将尝试最终去证明DBCC CHECK命令将不会使用已存在的数据库快照。执行DBCC CHECK命令时是否会自动使用已存在的快照数据库 ?我做了大量DBCC CHECK命令的调查试图找到办法查看DBC 阅读全文

posted @ 2013-01-10 22:17 nzperfect 阅读(1504) 评论(0) 推荐(0) 编辑

摘要:背景:最近一段时间,有一个发布订阅在晚上总是报延时,由于晚上在copy备份占用带宽,而且晚上没有人使用订阅上的数据,所以也一直没有去看,最近有时间,上去看了下,发现诸多问题,服务器是12GB内存16CPU.排查步骤及解决办法:1.查看到当前大量的PAGEIOLATCH_SH等待信息,执行的是分发的读程进命令SQL-sp_MSget_repl_commands,怀疑IO/内存有压力,理论上分发库不大,应该可以全部缓存在内存中:2.于是查看分发库大小,发现有22GB,再查看表msrepl_commands数据量,居然有4000W,16GB大小:3.需要再排查一下是发布到分发和分发到订阅是哪个出现了 阅读全文

posted @ 2013-01-09 10:16 nzperfect 阅读(1455) 评论(0) 推荐(1) 编辑

摘要:作者:nzperfect本文地址:http://www.cnblogs.com/nzperfect/archive/2012/12/28/2837286.html本文示例使用FASH nuber_rows改变SQL执行计划准备测试数据:USE TEMPDBGO--建立基本数据:--///////////////////CREATE TABLE STUDENT(SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME,CLASS VARCHAR(5))GOCREA 阅读全文

posted @ 2012-12-28 14:45 nzperfect 阅读(1253) 评论(2) 推荐(1) 编辑

摘要:相信,很多网友都有用SQL界面生成脚本再执行的习惯,今天在CSDN看到一个案例,好大的风险-_-!!!本示例是将一个表的列由datetime变成char型:step 1 生成数据库:USE masterGO--创建测试数库CREATE DATABASE [DB_TEST] ON PRIMARY ( NAME = N'DB_TEST', FILENAME = N'D:\SQL2008\Data\DB_TEST.mdf' , SIZE = 512MB , FILEGROWTH = 1024KB, MAXSIZE = 524288KB)LOG ON ( ... 阅读全文

posted @ 2012-12-26 17:32 nzperfect 阅读(2262) 评论(6) 推荐(5) 编辑

摘要:考虑这种情况:在大多数时间里你的存储过程运行良好,但是有时非常差,性能仿佛从天下掉到地下,有人会说肯定是统计信息更新不及时,而且当你手动运行它并查看执行计划,你会发现预估行数和实际行数有很大差距,你会因此而确定是统计信息不准确造成执行计划生成不正确。但是,可能并不是。。。存储过程、使用sp_executesql的参数化语句、预编译的SQL语句都会重用一个缓存的执行计划,它是由一个称为参数嗅探定义的,参数嗅探本身并没有问题,但是相同的存储过程或参数化语句去调用已经生成的执行计划时,就有可能引发一些问题。比如:如果一个参数化查询语句只返回一行数据,那么它可能会生成一个简单的轻量级执行计划,这个执行 阅读全文

posted @ 2012-12-24 16:42 nzperfect 阅读(1998) 评论(21) 推荐(4) 编辑

摘要:/*该脚本示例如何完整的修改一个数据库的名称.数据库为原名称为DB_BEIJING,需要修改成DB_SHANGHAInzperfect 2012.12.19*/--判断是否存在同名的数据库,以防止误删除USE masterGOIF EXISTS (SELECT name FROM sys.databases WHERE name = N'DB_BEIJING')BEGIN RAISERROR('请注意:数据库已存在!',15,1) RETURN --DROP DATABASE DB_BEIJINGENDGOUSE masterGO--创建测试数库CREATE D 阅读全文

posted @ 2012-12-19 17:42 nzperfect 阅读(5006) 评论(0) 推荐(0) 编辑

摘要:考虑下面的情况:当update值与原值相同时,SQL Server会真的去update还是忽略?例如:update tbnameset name='abc' --name原来的值就是abcwhere id=1再如:update tbnameset name='abc' --name原来的值就是abcwhere name='abc'接下来我们将实际测试:--Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Micros 阅读全文

posted @ 2012-12-12 14:08 nzperfect 阅读(5181) 评论(8) 推荐(7) 编辑

摘要:Safety FULL with Witness :Well the answer for this ‘depends on the mode in which mirroring is configured’. If mirroring is configured in High Availability mode (Full safety) then we don’t need to worry about failover as the mirror server will form a quorum with witness and will initiate an automatic 阅读全文

posted @ 2012-08-22 17:57 nzperfect 阅读(623) 评论(0) 推荐(0) 编辑

摘要:Windows Server 2008 R2 En Enterprise 64bitSQL Server 2008 R2 En Enterprise 64bit症状:在performance monitor中看不到Sql Server相关的性能计数器解决办法:Rebuilding the counters: cd c:\windows\system32 lodctr /R cd c:\windows\sysWOW64 lodctr /RResyncing the counters with Windows Management Instrumentation (... 阅读全文

posted @ 2012-08-13 14:52 nzperfect 阅读(1230) 评论(0) 推荐(1) 编辑

摘要:错误:对数据库的备份、文件操作(如 ALTER DATABASE ADD FILE)以及加密更改必须序列化。请在当前备份或文件操作完成后重新发出该语句。Shrink Database fails with Error “Backup, file manipulation operations”In some cases users may get below error while trying to shrink their databases manually or using SQLServer management studio.Executing the query "DB 阅读全文

posted @ 2012-07-24 17:09 nzperfect 阅读(8774) 评论(2) 推荐(0) 编辑

摘要:记录一下之前遇到过两次服务器由于MEMORYCLERK_SQLOPTIMIZER占用内存过高带来的性能问题。症状:SQL Server突然变的特别慢,无论是读还是写。检查:如下图,可以看到当前正在进行的进程,等待类型是RESOURCE_SEMAPHORE,初步判断是内存不足造成;接下来我们查看服务器内存配置:可以看到SQL可用内存为29GB,实用29GB,没有问题,再继续,可以看到Single_page占到了27GB左右,这表明DataPage只占到了2GB,明显存在问题;再接下,我们查看SinglePage内存占用情况,发现MEMORYCLERK_SQLOPTIMIZER占用了27GB左右; 阅读全文

posted @ 2012-04-24 11:08 nzperfect 阅读(1731) 评论(1) 推荐(0) 编辑

摘要:原文:http://blogs.msdn.com/b/grahamk/archive/2011/01/10/sql-server-blocking-caused-by-database-mirroring-wait-type-dbmirror-dbm-event.aspxI was looking at a problem this morning about long blocking chains caused by the wait type DBMIRROR_DBM_EVENT, and it makes an interesting case study about database 阅读全文

posted @ 2012-03-21 15:23 nzperfect 阅读(1109) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示