SQL Server 2012实施与管理实战指南
更多关于 》》》《SQL Server 2012实施与管理实战指南》内容简介计算机书籍 《SQL Server 2012实施与管理实战指南》主要面向对Microsoft SQL Server有一定基础的数据库系统管理人员和开发人员,针对他们在日常工作中可能遇到的种种困扰提出解决方案。本书讨论的主题不是一般的功能介绍,也不偏重于理论讨论,而是面向实践,解决用户开发和使用SQL Server过程中常见的经典问题。在每个章节里,都会基于这个主题从经常遇到的问题入手,描述其表现形式,介绍其背后的运行机理与基本理论知识,介绍搜集和分析问题日志的方法,以及解决实际问题的可选手段。本书所包含的案例分析都来源于真实案例。读者既可以把这本书作为一部进阶学习的参考书籍,更深入地理解SQL Server的原理和运行规律;也可以把这本书作为一本工具书,在遇到问题时查阅解决办法。目录《sql server 2012实施与管理实战指南》第1部分 数据库系统的选型和部署第1章 sql server的安装和升级 21.1 数据库安装过程介绍 31.1.1 setup.exe执行过程 31.1.2 重要的数据库的安装日志文件 51.2 单机版本的数据库安装和打补丁 131.2.1 安装注意事项 131.2.2 用slipstream方式进行安装 141.2.3 用product update方式进行安装 151.2.4 常见安装问题 161.3 特殊版本的数据库安装 181.4 群集环境下数据库的安装和升级 201.5 数据库的升级 271.6 小结 30第2章 选择必要的高可用性和灾难恢复技术 312.1 什么是sql server的“高可用性”与“灾难恢复” 312.2 sql server故障转移群集 332.2.1 windows故障转移群集 332.2.2 sql server故障转移群集 36.2.2.3 sql server群集什么时候会发生“故障转移” 402.2.4 sql server群集的拓扑结构 432.2.5 sql 2012对故障转移群集的改进 442.2.6 故障转移群集的故障排查 552.3 日志传送 582.3.1 日志传送的结构 592.3.2 日志传送的工作机制 602.3.3 日志传送作业的执行间隔 642.3.4 日志传送的故障转移 652.3.5 日志传送的监控和故障排查 682.4 数据库镜像 712.4.1 数据库镜像的基本概念 712.4.2 数据库镜像操作模式 742.4.3 客户端连接重定向及超时控制 782.4.4 数据库镜像的监控和故障排查 812.5 复制 842.5.1 复制的基本概念 842.5.2 复制的类型 862.5.3 灾难恢复和复制 902.6 高可用和灾难恢复技术的选择 912.6.1 高可用和灾难恢复技术的比较 912.6.2 高可用和灾难恢复技术的组合 972.7 小结 100第3章 新一代的高可用技术alwayson 1013.1 alwayson的基本架构 1023.2 alwayson的数据同步原理 1063.3 alwayson的可用性模式 1073.4 alwayson的故障转移形式 1113.5 创建一个alwayson可用性组 1183.6 可读的辅助数据库 1273.7 监视alwayson可用性组的运行状态 1333.8 小结 138第4章 数据库连接组件编程机理 1404.1 数据库应用编程方法概述和组件架构 1414.1.1 wdac编程 1414.1.2 snac编程 1624.1.3 ado.net编程 1634.2 连接字符串 1664.3 连接池 1694.4 connection timeout和command timeout 1734.5 使用bid tracing来跟踪检查应用程序的执行 1814.6 小结 185第2部分 sql server日常管理第5章 启动sql server服务和数据库 1885.1 sql server服务启动步骤 1895.1.1 从注册表读取sql server启动信息 1905.1.2 检测硬件,配置内存与cpu 1935.1.3 数据库启动 1955.1.4 准备网络连接 1955.2 数据库状态切换 1985.3 数据库长时间处于recovering状态 2015.4 数据库不能启动的常见原因和解决办法 2065.4.1 master数据库不能启动 2065.4.2 资源数据库 2085.4.3 model数据库 2105.4.4 tempdb数据库 2125.4.5 用户数据库 2145.5 群集环境下,数据库资源不能online的常见原因 2205.5.1 由于单机原因导致数据库服务无法启动 2225.5.2 由于sql server所依赖的资源失败所导致 2235.5.3 由于群集服务无法连接导致数据库资源失败 2245.6 小结 228第6章 连接的建立和问题排查 2296.1 协议的选择与别名 2306.1.1 服务器网络配置 2316.1.2 sql server browser的作用 2336.1.3 客户端网络配置 2356.1.4 客户端网络连接选择机制 2396.2 连接失败检测步骤——命名管道 2416.2.1 sql server命名管道工作原理 2426.2.2 客户端的命名管道配置 2436.2.3 命名管道连接问题的解决步骤 2456.2.4 一些常见的连接问题 2466.3 连接失败检测步骤——tcp/ip 2476.3.1 sql server监听的tcp/ip端口号 2486.3.2 客户端的tcp/ip协议配置 2496.3.3 tcp/ip连接的keepalive机制 2516.3.4 配置sql server的keepalive配置 2526.3.5 配置客户端的keepalive配置 2536.3.6 tcp/ip连接问题的解决步骤 2546.4 一般性网络错误 2586.5 利用ring buffer排查连接问题 2666.6 小结 271第7章 身份认证与连接加密 2727.1 sql server的认证方式 2737.1.1 sql server认证模式和密码管理 2737.1.2 windows认证模式 2747.1.3 常见认证问题 2867.1.4 delegation的配置要求 2887.2 包含数据库认证 2957.2.1 创建包含数据库 2967.2.2 使用包含数据库认证 2997.2.3 包含数据库认证的安全须知 3037.3 连接加密和证书 3057.3.1 sql server的连接加密 3067.3.2 使用证书来加密sql server连接 3137.4 小结 319第8章 数据库空间管理 3208.1 数据文件的空间使用和管理 3218.1.1 数据文件存储结构 3218.1.2 表存储结构 3238.1.3 比较存储结构对空间使用的影响 3328.2 日志文件的空间使用和管理 3378.3 空间使用计算方法 3418.4 tempdb的空间使用 3468.5 数据文件的收缩 3538.6 日志文件不停地增长 3628.7 文件自动增长和自动收缩 3678.8 小结 370第9章 数据库备份与恢复 3719.1 备份概述 3729.2 选择备份策略和恢复模式 3759.2.1 简单恢复模式下的备份 3769.2.2 完整恢复模式下的备份 3779.2.3 文件或文件组备份 3819.3 选择数据库还原方案 3829.3.1 数据库完整还原 3849.3.2 文件还原 3869.3.3 页面还原 3879.3.4 段落还原 3909.3.5 还原方案小结 3939.3.6 孤立用户故障排除 3949.4 系统数据库备份与恢复 3959.4.1 master数据库 3969.4.2 model数据库 3979.4.3 msdb数据库 3979.4.4 tempdb和资源数据库 3989.5 带有filestream功能的数据库备份和恢复 3999.6 应对由于备份损坏导致的还原错误 4019.7 实例:将数据库系统在一台新服务器上恢复 4039.8 小结 408第10章 数据库损坏修复 40910.1 常见错误解读 40910.1.1 823 40910.1.2 824 41010.1.3 605 41210.1.4 其他 41310.2 dbcc checkdb 41410.2.1 dbcc checkdb在做什么 41410.2.2 dbcc checkdb提供的修复方法 41810.2.3 如何在超大数据库上运行dbcc checkdb 42010.3 不同部位损坏的应对 42310.3.1 备份文件损坏 42410.3.2 日志文件损坏 42610.3.3 用户数据文件损坏 42710.3.4 系统数据库损坏 43110.4 如何从损坏的数据库导出数据 43210.5 如何使用tablediff工具发现哪些数据有丢失或改变 43910.6 数据库反复损坏问题应对 44010.6.1 sql i/o 管理操作方法 44110.6.2 确保系统i/o正常 44310.6.3 sql层面能够做的设置 44810.7 database mirroring和alwayson的页面自动修复功能 44910.8 小结 452第3部分 sql server资源调度与性能调优第11章 sql server内存分配理念和常见内存问题 45411.1 从操作系统层面看sql server内存分配 45711.1.1 windows的一些内存术语 45711.1.2 32位下windows的地址空间及awe 46011.1.3 windows层面上的内存使用检查 46311.1.4 内存使用和其他系统资源的关系 46811.1.5 sql内存使用和windows之间的关系 47011.1.6 sql内存使用量陡然下降现象 47211.1.7 案例分析 47411.1.8 如何“合理”配置sql server内存 47611.2 sql server内部独特的内存管理模式 47711.2.1 内存使用分类 47811.2.2 32位下各部分内存的分布和大小限制 48211.2.3 sql server在不同服务器配置下各部分内存的最高使用上限 48411.2.4 一些内存使用错误理解 48511.3 sql server内存使用状况分析方法 48711.3.1 sql性能计数器 48811.3.2 内存动态管理视图(dmv) 49011.4 数据页缓冲区压力分析 49711.4.1 表现特征 49711.4.2 确定压力来源和解决办法 50011.5 stolen memory缓存压力分析 50811.5.1 stolen缓存区与数据页缓存区的相互关系 50911.5.2 内部压力与外部压力 51011.5.3 表现特征与解决办法 51011.6 multi-page缓存区压力分析 51211.7 常见内存错误与解决办法 51511.7.1 错误701 51611.7.2 错误8645 52011.7.3 sql server无法创建新的线程 52411.8 sql server 2012 内存管理的新变化 52511.8.1 总体变化 52711.8.2 awe和lockedpages的变化 52811.8.3 内存相关的诊断工具的变化 53011.8.4 sql server 2012内存相关配置的变化 53311.8.5 其他改变 53511.9 小结 535第12章 sql server i/o问题 53712.1 sql server的i/o操作 53712.2 系统级i/o问题判断 54412.3 数据库引擎错误833 54812.4 i/o问题的sql server内部分析 55012.5 硬盘压力测试 55812.6 圣剑——windows提供的新的底层监测功能 56412.7 小结 570第13章 任务调度与cpu问题 57213.1 sql server独特的任务调度算法 57313.1.1 sqlos的任务调度算法 57513.1.2 任务调度健康监测及常见问题 58013.1.3 一个内存转储文件的分析调试过程 58313.1.4 案例分析 58813.2 sql server cpu 100%问题 59213.3 oltp和data warehouse系统差别及常用性能阈值 59713.3.1 oltp系统 59713.3.2 data warehouse系统 60413.4 小结 609第14章 阻塞与死锁——知识准备 61114.1 锁产生的背景 61214.2 锁资源模式和兼容性 61414.3 事务隔离级别与锁的申请和释放 61814.4 如何监视锁的申请、持有和释放 62814.4.1 检查一个连接当前锁持有的锁 62814.4.2 监视语句执行过程中sql对锁的申请和释放行为 62914.5 锁的数量和数据库调优的关系 63014.5.1 一个常见的select动作要申请的锁 63414.5.2 一个常见的update动作要申请的锁 63914.5.3 一个常见的delete动作要申请的锁 64114.5.4 一个常见的insert动作要申请的锁 64314.6 小结 645第15章 阻塞与死锁——问题定位与解决 64615.1 阻塞问题定位方法及实例演示 64715.2 如何捕捉不定时出现的阻塞信息 65515.3 常见阻塞原因与解决方法 65815.4 案例分析:连接池与阻塞 66615.4.1 连接池与sql server 66615.4.2 正常情况下连接池在sql server端的处理方式 66715.4.3 程序端意外情况下sql server端可能导致的问题——应用端超时 67115.4.4 程序端意外情况下sql server端可能导致的问题——应用层事物未提交 67515.5 死锁问题定位及解决方法 68015.5.1 死锁所在的资源和检测 68015.5.2 问题定位 68215.5.3 解决办法 68615.5.4 动手实验 68715.6 小结 698第16章 从等待状态判断系统资源瓶颈 69916.1 lck_xx类型 70116.2 pageiolatch_x与writelog 70216.3 pagelatch_x 70416.4 tempdb上的pagelatch 70816.5 其他资源等待 71016.6 最后一道瓶颈:许多任务处于runnable状态 71316.7 小结 715第17章 语句调优——知识准备 71917.1 索引与统计信息 72317.1.1 索引上的数据检索方法 72317.1.2 统计信息的含义与作用 72717.1.3 统计信息的维护和更新 73217.2 编译与重编译 73617.3 读懂执行计划 75017.3.1 连接 75417.3.2 其他常见的运算操作 76217.4 读懂语句运行统计信息 76517.4.1 set statistics time on 76617.4.2 set statistics io on 76817.4.3 set statistics profile on 77017.5 小结 775第18章 语句调优——问题定位与解决方法 77618.1 是否是因为做了物理i/o而导致的性能不佳 77718.2 是否是因为编译时间长而导致性能不佳 78018.3 判断执行计划是否合适 78418.3.1 预估cost的准确性 78418.3.2 是index seek还是table scan 79018.3.3 是nested loops还是hash (merge) join 79418.3.4 filter运算的位置 79518.3.5 确认问题产生的原因 79818.4 parameter sniffing 80018.4.1 什么是“parameter sniffing” 80118.4.2 本地变量的影响 80218.4.3 parameter sniffing的解决方案 80418.5 调整数据库设计来优化语句性能 81418.5.1 调整索引 81418.5.2 计划指南 82118.6 调整语句设计提高性能 82918.6.1 筛选条件与计算字段 82918.6.2 会在运行前改变值的变量 83218.6.3 临时表和表变量 83418.6.4 尽可能限定语句的复杂度 83618.7 小结 838第4部分 sql server常用日志信息与推荐搜集方法第19章 sql server常用日志信息与推荐搜集方法 84019.1 windows事件日志 84119.2 sql server errorlog文件 84319.3 性能监视器 84519.4 sql trace文件 85119.4.1 sql trace文件的收集方法 85119.4.2 sql trace文件的分析方法 86019.4.3 自动化分析sql trace 86219.5 系统管理视图跟踪 86619.6 sqldiag工具 86819.7 强烈推荐:pssdiag工具 87319.7.1 使用pssdiag收集信息 87419.7.2 自动化分析pssdiag收集的信息 87619.8 系统自动监视工具——performance dashboard 87919.9 小结 882?本图书信息来源:中国互动出版网