随笔分类 - MSSQL dba管理
摘要:【1】构造测试数据 OLTP数据库经常执行DML,有时候DBA维护数据也需要对数据进行更改。依墨菲定律,一旦有权限去修改数据,就一定会发生误操作。如果发生了误删数据,在SQL Server中,你知道怎么恢复吗?你知道恢复到哪个时间点才是最精确的吗? 下面,我们就简单进行一个测试,手把手教你如何精确恢
阅读全文
摘要:【1】执行图解 常规体系架构 一个SQL的执行图解 根据上图,我们来分析一下SQL Server 是如何执行查询脚本的呢? 应用程序连接到SQL Server引擎, 向SQL Server发送 request。一旦应用程序连接到数据库引擎,SQL Server 创建会话(Session),用于表示客
阅读全文
摘要:【1】测试代码 (1.1)测试数据 if db_id('test') is null create database test; go use test; if object_id('test1') is not null begin drop table test1 end ;with t as
阅读全文
摘要:ALTER DATABASE (Transact-SQL) 兼容级别 转自:https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-s
阅读全文
摘要:【1】核心3个DMV DMV 用处 Sys.dm_exec_requests 返回有关在SQL Server中执行的每个请求的信息,包括当前的等待状态 Sys.dm_exec_sessions 对于每个通过身份验证的会话都返回相应的一行。此时图是服务器范围的视图。此视图首先可以查到服务器负荷 Sys
阅读全文
摘要:https://sqlservergeeks.com/category/one-dmv-a-day/page/8/
阅读全文
摘要:【1】交换事件死锁 【1.0】交换事件等待描述 官网:https://docs.microsoft.com/zh-cn/sql/relational-databases/system-dynamic-management-views/sys-dm-os-waiting-tasks-transact-
阅读全文
摘要:【1】需求 随着数据库服务器越来越多,有时候我们可能要需要对所有SQLServer服务器的同名库做一些更新或执行脚本之类的情况。 笨办法就是登录到每一个SQL实例上手工执行,这样费时费力,而且当实例相当多时就是件极痛苦的事,其实我们可以用DOS命令中的for命令来实现: 【2】使用sqlcmd解决
阅读全文
摘要:大部分参考转自:如何正确读取SQL Server中的扩展事件? SQL Server中使用扩展事件捕捉所需的信息后,可以选择存放的位置。比如说内存或文件中,但无论存在哪里,其本质都是一个大XML。因此在SQL Server中读取该XML就是解析扩展事件结果的方式。 微软官方或者一些SQL Serve
阅读全文
摘要:【1】库与库的表结构对比 ALTER PROC [dbo].[SP_CompareStructure] @dbname1 VARCHAR(100), --要比较的数据库名1 @dbname2 VARCHAR(100) --要比较的数据库名2 AS /* --脚本原作者:邹建 --脚本更新:Windy
阅读全文
摘要:【1】 错误日志简介 【1.1】. Windows事件日志与SQL Server 错误日志 Windows事件日志中,应用程序里的SQL Server和SQL Server Agent服务,分别对应来源自MSSQLSERVER和SQLSERVERAGENT的日志信息; SQL Server错误日志中
阅读全文
摘要:【1】死锁信息 【1.1】图 左边:select max(id) from tab 右边:insert into tab values..... 两个语句是同一个表,id是主键、聚集索引 【1.2】XML Deadlock graph <deadlock-list> <deadlock victim
阅读全文
摘要:问题引入 在我们使用sql server中,经常会碰到被外界对sa账户进行暴力攻击,频繁尝试使用sa登录,sql server的错误日志中都可以看到相关大量信息,sa账户又具有莫大的权限。 可以这么说,只要掌握了sa账户,你的整个sql server 以及整个 windows系统 它都可以随意玩弄。
阅读全文
摘要:【1】死锁发生及基本信息 死锁问题,想不明白为什么会死锁,求大佬分析详细原因和加锁、等待之类的详细过程过程,以便理解 解决信息如下: 【1.1】被死锁的基本信息 tOnlineUser 死锁发生表的索引信息:名称:IX_tOnlineUser类型:nonclustered, ignore dupli
阅读全文
摘要:【1】死锁介绍 【1.1】死锁定义 当两个进程正在争用对资源的独占访问但由于另一个进程正在阻止它而无法获得对该资源的独占访问时,将发生死锁。这导致僵局,两个过程都无法进行。摆脱僵局的唯一方法是终止其中一个进程。SQL Server自动检测何时发生死锁,并通过杀死称为受害者的进程之一来采取措施。 死锁
阅读全文
摘要:个人总结: (1)对于误操作而言是鸡肋(因为可能实际业务在同一时间有多个同类型的操作,你根本不知道你的误操作发生在哪一个LSN,也可以结合apexsql log 来解决,但既然都可以apexsql log了,干脆用那个恢复要好的多) (2)对于备份还原的基本功而言 是一次不错的理解练习与总结; 本文
阅读全文
摘要:【0】什么叫静默安装 其实就是用命令提示符 使用参数文件 或直接代码参数的方式安装,这样就不需要人一直点下一步下一步了 本文操作环境如下: 环境:windows server 2016 / win10 + sql server 2016 前置:需要装 jre7 以上版本环境 如果OS环境是 win8
阅读全文
摘要:原文:https://www.cnblogs.com/shanksgao/p/3877674.html 转载只是为了方便查阅,添加到自己的笔记知识库。 【1】需求情况 我们都知道,Sql Server在一个数据量巨大的表中添加一个非空栏位是比较费心的, 缺乏经验的DBA或是开发人员甚至可能鲁莽地直接
阅读全文
摘要:【1】查看当前用户会话参数 DBCC USEROPTIONS; 里面有Set 的,标识已经设置成了ON 转自官网:https://docs.microsoft.com/zh-cn/sql/t-sql/statements/set-statements-transact-sql?view=sql-se
阅读全文
摘要:【0】无法删除登录名,因为它是对象的所有者 【1】作业所有者 【1.1】作业表与登录名基本信息 (1)查看登录名信息 --登录名表,所有者表 select * from master.dbo.syslogins --角色权限关系表 select * from sys.database_princip
阅读全文