SQLSERVER DBA容易犯的十个错误
SQLSERVER DBA容易犯的十个错误
翻译自:http://sqlsentry.tv/top-10-administrative-mistakes-on-sql-server/
除了排名前十的错误之外,其他排名靠前的错误
抛开SQL Server方面的错误,这些错误主要体现在开发或者是设计的时候:
1、不合理的规范和不合理的数据库设计
2、没有设计好可伸缩性的需求
3、没有数据库性能基线或基准
4、索引的问题
5、对语句调优不够重视
错误倒数第十位(磁盘-只要磁盘空间充足就不理会磁盘IO了)
经常只考虑磁盘子系统的磁盘空间,不理会IO负载
没有足够的专业知识,有可能会出现以下问题:
选择了不恰当的容错机制
IO性能不足:
OLTP系统需要较高的TPS
OLAP需要较高的传输速度
选择了较差的RAID类型、控制器、通道
没有足够的磁盘主轴
SSD固态硬盘可以改变这个IO游戏的规则
错误倒数第九位(对业务规则不理解)
作为一位IT PRO,你应该知道SQL Server内部是如何工作的
什么是checkpoint?什么是Lazy writer?
TempDB的使用方式是怎样的?plan cache里面有什么?
你要知道DBA是企业资产数据的保护者
业务和IT之间的联系,你应该知道如何以及在何种方式使用您的服务器
当程序down掉的时候谁会在意,每分钟的停机时间公司需要损失多少钱?
商业周期是什么?
什么时候是最好的宕机?
什么样的的基线、基准是正常的?
错误倒数第八位(没有一套自己的故障排除方法)
危急时,DBA需要一个强大的、一步一步的方法进行根源分析。
如果没有,你将会:
1、错过了数据库的错误和问题
2、由于错误引起的数据丢失或者灾难性的问题
3、很差的响应时间或者会违反SLA服务级别协议
4、失去信誉
如果您还没有一套方法论,那么可以参考
End-to-End Troubleshooting on http://SQLSentry.TV
SQL Server Troubleshooting Guide by J. Kehayias on http://www.simple-talk.com
错误倒数第七位(基本上都使用默认值)
使用默认值安装SQL Server安装的目的是尽快让服务器启动并运行
但是这样会造成运行时得不到最优,例如如下设置:
数据库自动增长 、自动收缩
数据库自动增长的大小
默认文件组
一些小问题也会成为大问题
1、并行度
2、填充因子
其他一些服务器和数据库的设置选项
错误倒数第六位(在事后才想起数据库的安全性)
现在互联网上面的SQL 注入漏洞成为第一位
值得注意的是,十年前很多关于防SQL注入的方法,直到今天我们依然继续在使用
提前计划好使问题最小化:
确保您的服务器上运行的应用程序只有最小的权限,并且这个权限能够保证你的程序能正常运行
你的服务器暴露面有多少?暴露越多受攻击面就越广
谁有权访问你的服务器?
当出问题的时候你如何找出谁开了一些不恰当的权限?
错误倒数第五位(没有充分使用自动化)
自动化能减轻DBA的很多工作,讽刺的是,一开始DBA就需要将大量的工作进行自动化
没有自动化,DBA必须面对下面问题:
如果全靠人去操作有可能容易出错和遗漏
当服务器的数量增加的时候你的工作将会加倍
使用自动化的例子:
自动报错通知
维护计划作业
基本都是脚本,而不需要使用GUI
错误倒数第四位(在工作上使用了不合适的功能或技术)
DBA是公司里IT程序的“性能工程师”
他的工作是对于每个业务需求使用最合适的功能
否则就会:
使应用程序变复杂
过度的资源消耗
有一条定理:没有IT的项目,只有利用IT解决商业项目
错误倒数第三位(对管理的变更很冷漠)
变更管理是很重要的!没有管理变更,dba将面临:
如果不变,那么他们所做的事情将会更加糟糕
改变控制对改变管理
合理的管理改变意味着:
在规定好的时间限制里面预先规划好时间
在生产环境里面,管理改变的好坏会被验证和测试
改变是隔离的、原子的、可逆的
错误倒数第二位(不恰当的维护计划)
适当的预防性维护(PM)可以帮助您:
在出现问题之前抓住问题
能确定优化方向
用户在系统上执行资源密集型的操作会减少
预防性维护在SQLSERVER里应该包括
数据库一致性检查和DBCC CHECKIDENT
备份和还原数据库的时候使用校验选项
索引填充因子、碎片整理
索引统计信息
不要依赖数据库维护计划向导!!
不用重复做轮子,有很多维护计划已经有仙人帮我们写好了
错误倒数第一位(备份和还原)
DBA不会经常验证备份的可用性
这会带来一些问题:
您对客户的SLA不能保证,还有RTO和RPO不能保证
没人能确保备份可用
如有不对的地方,欢迎大家拍砖o(∩_∩)o
SQLSERVER DBA容易犯的十个错误的更多相关文章
- Java开发者常犯的十个错误
翻译自:Top 10 Mistakes Java Developers Make 文章列出了Java开发者最常犯的是个错误. 1.将数组转换为ArrayList 为了将数组转换为ArrayList,开 ...
- SQLServer DBA 三十问(加强版)
距离最初发布SQLServer DBA 三十问 已有一年多了,大家对其中的某些问题讨论比较激烈,要回答出来这些问题需要比较扎实的SQLServer 基础和一定的实际操作经验,如果你试着去回答其中的问题 ...
- 【转载学习前辈的经验】-- Mistakes I made (as a developer) 我(作为一名开发者)所犯过的错误
我 2006 年开始工作,至今已经 10 年.10 年是个里程碑,我开始回顾自己曾经犯过的错误,以及我希望从同行那里得到什么类型的忠告.一切都在快速改变,10 年了,我不能确定这些秘诀是否还有用. 不 ...
- PHP开发者常犯的MySQL错误
PHP开发者常犯的MySQL错误 数据库是WEB大多数应用开发的基础.如果你是用PHP,那么大多数据库用的是MYSQL也是LAMP架构的重要部分. PHP看起来很简单,一个初学者也可以几个小时内就 ...
- 使用Core Data应避免的十个错误
原文:Avoiding Ten Big Mistakes iOS Developers Make with Core Data http://www.cocoachina.com/applenew ...
- 关于JDBC学习过程中的注意事项(分享自己犯过的错误,写给初学JDBC的小伙伴的八条建议)
关于JDBC学习过程中的注意事项(分享自己犯过的错误,写给初学JDBC的小伙伴的八条建议) 前言:最近在学习JDBC,总结了几个小问题,特地分享给大家,让大家不要犯这样的错误,也希望大家养成学会总结的 ...
- Sqlserver 2008 error 40出现连接错误的解决方法
说明(2017-5-25 15:00:16): 核心:把端口号改成1433 Sqlserver 2008 error 40出现连接错误的解决方法
- iOS开发过程中使用Core Data应避免的十个错误
原文出处: informit 译文出处:cocoachina Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据.对很多开发者来说,Core Data比较容易入手,但很 ...
- Socket编程, 在server端read()函数调用后显示错误:Transport endpoint is not connected (犯了低级错误)
for(;;){ socklen_t len = sizeof(client_address); connfd = accept(listenfd, (struct sockaddr *)&c ...
随机推荐
- mac 下 chrome 语言环境 设置
当然,如果把系统语言更改为英文,Chrome.QQ 等一系列软件会自动变成英文界面,而且没有提供切换语言的设置. 啪了下 Google,找到了方法,直接在终端运行后重启 Chrome 即可更改. 英文 ...
- Search history in "Maps"
A friend of mine came to me with her iPhone yesterday. She wanted to know how to clear search histor ...
- Nginx 学习
1.Nginx编译安装 nginx依赖于pcre库,需要先安装pcre(二进制包,跟正则表达式有关),pcre-devel(头文件) configure --prefix=/usr/local/ng ...
- Visual Studio 换皮肤
通过字体和颜色修改 Visual Studio 提供了修改配色的入口,你完全可以根据自己的喜好进行自定义,下面就通过该方法把编辑器背景设置成 “豆沙绿”. 选择 工具 / 选项 / 环境 / 字体和颜 ...
- 在线学习体验大PK 云智慧发布在线教育网站性能监测报告
互联网不但改变了我们的生活.娱乐和消费方式,也推动各行各业进行着快速变革,越来越多的职场人士必须通过不断的学习.充电才能跟上行业发展的步伐,获得职业的提升,而这也引发了国内教育市场的爆炸式发展.据统计 ...
- 爬虫--scrapy--windows上安装
关于scrapy的安装网上有一大把教程,但是比较麻烦,各种包----------,这里给大家介绍一款神器: 下载地址:http://continuum.io/downloads 根据自己电脑的系统选择 ...
- C# conn.open() 外部表不是预期的格式( 读取EXCEL文件出错)
环境:win7+iis7+Office2007 在asp.net网站中导出Excel文件后,再把文件导入到数据库中. 读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决:检查了一 ...
- DNA Pairing
function pair(str) { //return str; var arr = str.split(''); var pait = ''; var result = arr.map(func ...
- css3 进度条
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>1 ...
- 第二章 ZAB协议介绍
ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...