在Microsoft SQL Server 系统中数据库管理员(Database Administration简称为DBA)是最重要的角色DBA的工作目标就是确保Microsoft SQL Server 系统正常高效地运行DBA的工作也是最繁忙的工作无论是性能调整还是灾难恢复都离不开DBA的支持
一般地作为一个DBA至少应该做好以下项任务
;任务一安装和配置;
;任务二容量规划;
;任务三应用架构设计;
;任务四管理数据库对象;
;任务五存储空间管理;
;任务六安全管理;
;任务七备份和恢复;
;任务八性能监视和调优;
;任务九调度作业;
;任务十网络管理;
;任务十一高可用性和高可伸缩性管理;
;任务十二故障解决;
下面简单描述这些DBA的任务
任务一安装和配置
DBA的第一项任务是安装和配置Microsoft SQL Server 软件系统为顺利使用Microsoft SQL Server 软件创建良好的环境无论是安装还是配置都应该根据实际需要来进行使得系统满足用户的实际需求需要注意的是系统配置不是一劳永逸的应该随时根据需求的变化和环境的需要进行监视和适当地调整
任务二容量规划
容量规划是对整个Microsoft SQL Server 系统进行一个总体的规划规划的重点应该放在解决瓶颈问题上可以从内容和期限两个方面考虑系统的容量规划
从内容上来看应该考虑的主要内容包括硬件容量规划软件规划网络规划硬件容量规划包括磁盘空间CPUI/O等规划软件规划包括操作系统的安装和配置规划数据库规划数据库对象内容和数量规划等网络规划包括网络硬件网络软件和协议网络客户数量流量和分布网络拓扑结构等规划
从期限上来看应该考虑短期中期和长期规划短期规划的目的是满足当前日常业务的需要中期规划主要是满足业务发展和扩大的需要长期规划主要是满足业务极限需要等例如如果预测某个系统的当前并发用户数量是年后的用户可能达到万那么这时既不能按照用户的需求来设计也不能一下子按照万用户的需求来设计一定要采取一个折中的形式
任务三应用架构设计
应用架构设计包括数据库设计应用程序设计和相应的技术架构设计
数据库设计应该考虑数据库的逻辑需求数据库的创建方式和数量数据库数据文件和日志文件的物理位置等一般情况下可以在Microsoft SQL Server 系统成功安装之后根据规划的目标手工创建数据库
应用设计应该考虑开发工具的选择API技术内部资源和外部资源的结合应用架构的分布等需要强调是在应用设计时DBA应该与开发人员共同工作确保他们编写出优化的代码尽可能地使用服务器的资源
技术架构设计主要包括表示层逻辑层和数据层的分布这些分布不应该考虑到硬件资源和用户需求既不能片面地追求过高的硬件资源也不能仅仅局限于当前的环境一定要按照可扩展的观点来综合考虑
任务四管理数据库对象
管理数据库对象是使用数据库的最基本最重要的工作这些对象包括表索引视图存储过程函数触发器同义词等为了完成管理数据库对象的工作DBA应该能够很好地回答诸如下面的这些问题
;系统应该包括哪些数据?
;应该怎样存储这些数据?
;应该在系统中创建哪些表?
;应该在这些表中创建哪些索引以便加速检索?
;是否应该创建视图?为什么要创建这些视图?
;应该创建哪些存储过程函数CLR对象?
;应该在哪些表上创建触发器?应该针对哪些操作创建触发器?
;是否应该创建同义词?
任务五存储空间管理
存储空间管理任务就是怎样为数据分配空间怎样保持空间可以满足数据的不断增长随着业务量的继续和扩大数据库中的数据也会逐渐地增加事务日志也不断地增加存储空间管理任务主要围绕下面几个问题
;当前的数据库由那些数据文件组成?
;事务日志的大小应该如何设置?
;数据的增长速度是多大?
;如何配置数据文件和日志文件的增长方式?
;数据库中的数据何时可以清除或转移到其他地方?
任务六安全管理
安全性是DBA重要的日常工作之一安全管理的主要内容包括账户管理和权限管理账户管理就是在数据库中应该增加哪些账户这些账户应该组合成哪些角色等等权限管理是对象权限和语句权限的管理应该回答下面这些问题
;这些账户或角色应该使用哪些对象?
;这些账户或角色应该对这些对象执行哪些操作?
;这些账户或角色应该在数据库中执行哪些操作?
;如何设置架构?如何建立架构和对象架构和用户的关系?
任务七备份和恢复
无论系统运行如何系统的灾难性管理是不可缺少的天灾人祸系统缺陷都有可能造成系统的瘫痪失败怎样解决这些灾难性问题呢?办法就是制订和实行备份和恢复策略备份就是制作数据的副本恢复就是将数据的副本复原到系统中备份和恢复工作是DBA的一项持续性的重要工作其执行频率根据数据的重要程度和系统的稳定程度来确定
任务八性能监视和调优
根据企业的经营效益评价企业的管理水平根据学生的考试成绩评价学生的学习好坏作为一个大型软件系统Microsoft SQL Server 系统的运行好坏必须得到正确地监视评价和相应的调整这是DBA的一项高级工作借助一些工具和运行性能指标DBA应该能够监视系统的运行如果某些运行指标出现了问题DBA应该及时地采取补救措施使得系统始终保持高效运行状态
任务九调度作业
DBA不可能一天小时不停地盯住系统的运行及时地执行某些指定的操作Microsoft SQL Server 系统提供了许多工具DBA应该充分利用这些工具和机制解决下面一些问题
;调度哪些作业应该由系统执行?
;这些作业应该在何时执行?
;如何确保这些作业可以正确地执行?
;如果自动执行的作业执行失败时应该如何处理?
;如何使得系统可以均衡地执行相应的操作?
任务十网络管理
作为一种分布式的网络数据库网络管理的任务更加的重要Microsoft SQL Server 系统提供了网络管理工具和服务DBA应该借助这些工具进行服务规划和管理网络操作
任务十一高可用性和高可伸缩性管理
作为一个DBA必须保持系统具有高可用性和高可伸缩性可用性是一项度量计算机系统正常运行时间的指标可伸缩性描述应用程序可以接受的并发用户访问的数量问题影响系统可用性的主要因素包括网络可靠性硬件故障应用程序失败操作系统崩溃自然灾害等无论是数据库系统管理员还是应用程序设计人员都应该最小化系统破坏的几率最大化系统的可用性在设计系统的可用性时应该确定采取什么样的可用性策略来满足可用性的需求
可用性的需求可以通过个方面描述即运行的时间连接性需求和数据的紧密和松散要求在确定可用性的需求时首先考虑系统的运行时间一般地数据库应用程序有两种运行时间即在工作时间是可用的和在任何时间都是可用的如果只是要求在工作时间是可用的那么可以把系统的维护等工作安排在周末进行但是有许多应用程序要求每天运行小时每周运行天例如在线超市等这时必须采取措施保证系统总是运行的不同的应用程序有不同的连接性要求大多数的应用程序和电子商务解决方案要求采用可靠的网络连接这时要求永久性的在线连接必须最小化各种异常现象的发生有些应用程序允许用户离线使用这时系统的可用性要求降低了大多数应用程序要求数据是同步使用的用户对数据的请求系统必须立即做出回应这是紧密型的数据要求这种情况必须保证系统的高可用性有些应用程序不需要数据是同步的对用户的请求可以延迟回应这种要求是数据松散型的要求这时系统的可用性需求比较低
任务十二故障解决
虽然不希望Microsoft SQL Server 系统出现故障但是故障可能是无法避免的这些故障可能每天都会发生有些故障是人为不小心造成的有些故障可能是系统中的缺陷形成的有些故障可能是莫名其妙的作为一个DBA在系统中的其他用户心目中是Microsoft SQL Server系统的权威无论是大事还是小事DBA都应该做到迅速诊断准确判断快速修复从这个意义上来说DBA是一个数据库系统的专业医生