笔记20-徐 SQL I/O
笔记20-徐 SQL I/O
1 --SQL I/O 2 3 --SQL有缓冲区高速缓存 4 --集群在B主写入服务器里不会占用B主服务器的高速缓存区,A主写入服务器完成了事务之后并提交, 5 --会立刻扩展事务到B服务器,并使B服务器提交写入磁盘(5台服务器 2台主写入 2台从读取 1台监视) 6 7 --把脏页写入磁盘的方法 8 --懒惰写入(lazy writing) 9 --勤奋写入(eager writing) 10 --检查点() 11 checkpoint 12 13 14 15 16 --确保I/O系统正常 17 --可以很负责任地说,由SQL的问题导致数据库反复损坏,已经是非常罕见了,几率几乎接近于0 18 19 --Windows和各个硬件子系统在I/O方面有一些已知问题,已经确认会导致SQL数据库损坏现象发生, 20 --这时需要打上Windows补丁,具体哪些书中没有说 21 22 23 --Windows系统健康检查 24 --1、检查系统最近是否有非正常关机或蓝屏(可以在Windows日志里查看) 25 --2、系统最近是否报告过任何硬件错误,尤其是磁盘读写相关的错误 26 --如果Windows都发现磁盘读写有问题,SQL数据库就很难保证了 27 --3、检查系统有没有受到病毒攻击。同时也要确认,防病毒软件不可以扫描任何数据库数据文件和日志文件 28 29 30 -----------------------I/O子系统验证--------------------------------------------------------- 31 --SQL是个读写非常频繁的系统,空载的时候也是,当跑非常繁忙、读写负载很重的OLTP系统, 32 --就可能会遇到I/O问题 33 34 --SQLIOSIM测试 35 --安装软件和各种固件的升级补丁 36 37 --更改数据库的校验和保护选项 38 ALTER DATABASE GPOSDB PAGE_VERIFY(CHECKSUM |TORN_PAGE_DETECTION|NONE) 39 40 --内存页面被篡改 41 --启动参数 /T831:对内存里的数据页也做checksum 42 --/T815:对内存里的数据加锁 43 DBCC TRACEON(815,-1) 44 DBCC TRACEON(831,-1) 45 --这两个开关的指令对性能影响比较大,建议在有经验的SQL工程师的辅助下使用(不一定是微软工程师) 46 47 --/T818:修复824错误 48 49 ------------------SQL2008数据库镜像的页面自动修复功能-----------------------------------------------