sqlserver系列课程(一)--创建可恢复的数据库

上传人:wt****50 文档编号:50753225 上传时间:2018-08-10 格式:PPT 页数:29 大小:483KB
返回 下载 相关 举报
sqlserver系列课程(一)--创建可恢复的数据库_第1页
第1页 / 共29页
sqlserver系列课程(一)--创建可恢复的数据库_第2页
第2页 / 共29页
sqlserver系列课程(一)--创建可恢复的数据库_第3页
第3页 / 共29页
sqlserver系列课程(一)--创建可恢复的数据库_第4页
第4页 / 共29页
sqlserver系列课程(一)--创建可恢复的数据库_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《sqlserver系列课程(一)--创建可恢复的数据库》由会员分享,可在线阅读,更多相关《sqlserver系列课程(一)--创建可恢复的数据库(29页珍藏版)》请在金锄头文库上搜索。

1、开始睿智汇海SQL Server免费培训课程讲师:顾劲鹏课程大纲n第一天:创建可恢复的数据库n第二天:创建可靠的自动的备份机制n第三天:表设计,数据类型设计n第四天:数据库索引最佳实践n第五天:混合负载数据库,锁和隔离级别机制n第六天:执行计划缓存和存储过程性能优化n第七天:数据加载,表及索引分区n第八天:数据性能监控调优进度n第一天:创建可恢复的数据库n第二天:创建可靠的自动的备份机制n第三天:表设计,数据类型设计n第四天:数据库索引最佳实践n第五天:混合负载数据库,锁和隔离级别机制n第六天:执行计划缓存和存储过程性能优化n第七天:数据加载,表及索引分区n第八天:数据性能监控调优本次课程内容

2、n数据结构u数据修改的原子性u数据文件和日志文件u优化数据库中的数据文件u事务和日志u优化数据库中的日志文件n数据库运行环境u数据恢复模式学习目标n了解SQL Server的基础结构n了解SQL Server的运行原理n了解SQL Server内部资源使用机制n理解SQL Server数据可恢复性的基础n可以根据需求,合理的创建数据库,并进行 配置数据库基础结构n数据结构数据库数据文件 *.mdf(1) *.ndf(0-n)日志文件 *.ldf(1-n)MDF:主数据文件 NDF:非主数据文件LDF:日志数据文件 一般情况下,一个 就够了数据原子性、持久性 - 1n用户发出数据修改请求u需要修

3、改的数据是高选择性的(5行数据)u索引已经建立,并且能够用户搞笑的搜索到需要 修改的数据u修改请求是简单的Update语句,并且并没有包含 在任何的事务请求中数据原子性、持久性 - 2n数据库服务器接收到数据修改请求,在缓存 中找到需要修改的数据,或者将磁盘上需要 修改的数据读取到缓存中u因为需要修改的数据是高选择性的,所以只有需 要修改的数据页被读取到缓存中u假设我们需要修改的五行数据在两个页上面数据原子性、持久性 - 2数据库数据日志 数据缓存数据原子性、持久性 - 3n数据库锁定需要修改的数据u锁被用来保证修改数据时的数据一致性u如果存在别的会话,锁定了我们需要修改的数据 ,那么我们就需

4、要等待,直到我们能够锁定住所 有我们需要修改的数据u在我们的这个例子中,由于我们的数据是高选择 性的,并且我们存在能够使用的索引,所以SQL Server将采用行级锁来进行数据锁定数据原子性、持久性 - 3nSQL Server使用行级锁,但是也会使用“意 向锁”进行更高级别的“意向”锁定u这次的事务将会使用如下的锁:n5个更新行级锁n3个意向互斥页级锁n1个意向互斥表级锁n1个共享数据库级锁u如果我们会访问索引,还会应用到其他的锁,我 们暂时不去关注这些锁数据原子性、持久性 - 3缓存数据页数据页数据行数据行数据行数据行数据行更新锁更新锁更新锁更新锁更新锁数据原子性、持久性 - 4n在获得了

5、所有的五个行更新锁后,SQL Server将开始去更新数据:u升级到更加严格的锁互斥锁n更新锁帮助我们获得更好的并发性能,他和共享锁不会 互斥,所以能够在有更新锁的时候,请求共享锁n互斥锁在这里用来保证数据库不会返回脏数据u更新数据 (在缓存中进行更新)u将事务日志写入到日志页 (同样也是在缓存中)数据原子性、持久性 - 3缓存数据页数据页数据行数据行数据行数据行数据行互斥锁更新锁更新锁更新锁更新锁更新锁互斥锁互斥锁互斥锁互斥锁数据原子性、持久性 - 5n最后,事务完成:u所有行都已经修改u事务中已经没有别的语句或任务u最终步骤:n将内存中日志页缓存同步到磁盘上n释放所有锁n返回事务执行结果(

6、5行数据已经被更新)n这个里面使用了Write-Ahead Logging技术关于检查点n为什么会有检查点u最新的日志文件总是在磁盘上u最新的数据在内存中u什么时候数据写入到磁盘上?n检查点 Check Pointn检查点触发时并不只是将已提交的页同步到 磁盘上,而是将所有页(不管使用他们的事 务的状态)写入到磁盘上事务恢复和检查点五个事务检查点服务器crash12345重启恢复需要完成的动作空前滚回滚前滚回滚时间线文件自动增长n配置数据库数据文件和日志文件自动增长n在创建数据库之前,对数据量进行估算,按 照估算,设置数据库文件和日志的初始大小n设置最大文件设置,特别是在多数据库使用 同一个服

7、务器的情况下,防止磁盘被完全占 用n设置合理的自动增长值u1Gigabytes或者一下数据文件n主要是读操作n大量用户随机读取n和日志文件分开来n优化读取性能nRAID 0+1, RAID 1+0或者RAID5nRAID 0+1 比RAID 1+0更快,但是后者更加 安全可靠nRAID 5不常用,而且在写入操作时, 效率不 高数据文件优化n磁盘碎片整理n合理的RAID配置n预分配合理的文件大小n控制住文件自动增长n最重要的是合理的数据库设计日志文件n有限的(很少量)的读取操作u数据库复制技术u事务回滚n主要优化写操作u使用RAID 0+1或者RAID 1+0u尽量避免使用RAID 5n优化SQ

8、L Server的写日志操作u预分配合理的文件大小u清除虚拟日志文件 (VLF)日志文件工作原理VLF 1VLF 2VLF 3VLF 4VLF 5活动的非活动的非活动的非活动的非活动的n在事务提交的时候,日志被顺序的写入到日 志文件中n在一个VLF被写满后,日志的写入操作会自 动的转入到下一个VLF中n自动增长日志文件操作会导致:u短时间的服务暂停uWindows扩展日志文件(可能导致磁盘碎片)u每次自动增长都会添加一个VLF日志文件优化n预分配合理的文件大小n尽量减少自动增长n可能在日志备份后,日志并没有做到0使用率 ,但是合理的应该是在6%以下n在日志备份的时候,可能会导致数据库性能 受到

9、影响n考虑使用RAID 1+0, 而不是RAID 1或者 RAID 5n尽量减少VLF数量减少VLF的数量-1n数量过多的VLF会给跟日志相关操作造成性 能上的损耗u日志记录u日志备份u数据库复制(replication)n应该少于50个n如果多余200,就应该考虑进行处理 (可以 用工具例如BPA进行监控)减少VLF的数量-2n运行DBCC LOGINFO 来获得VLF信息u这个语句返回的每一行数据表示一个VLFn如果超过了50个u用事务日志备份来清除日志空间n如果数据库采用的是Full或者Bulk_Logged的恢复设 置,日志备份将会清除非活动的VLF的空间n如果采用的是Simple的恢复设置,日志文件将被清空减少VLF的数量-3n压缩数据库日志uDBCC SHRINKFILE(logfilename, TRUNCATEONLY)n修改数据库,为日志文件设置一个更加合理 的大小 ALTER DATABASE dbname MODIFY FILE (NAME=name, SIZE=new_size)日志文件优化n将事务日志文件安放在独立的磁盘上n磁盘碎片整理n合理的RAID配置n预分配合理的大小n不要让自动化增长失去控制总结n数据库结构u数据修改的原子性u数据文件和日志文件u优化数据文件u事务和日志u优化日志文件n数据库恢复基础原理n现场交流

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号