SQL Server DBA工作内容详解

原文:SQL Server DBA工作内容详解

在Microsoft SQL Server 2008系统中,数据库管理员(Database Administration,简称为DBA)是最重要的角色。DBA的工作目标就是确保Microsoft SQL Server 2008系统正常高效地运行。DBA的工作也是最繁忙的工作,无论是性能调整,还是灾难恢复,都离不开DBA的支持。

  一般地,作为一个DBA,至少应该做好以下12项任务:

  •   任务一:安装和配置;
  •   任务二:容量规划;
  •   任务三:应用架构设计;
  •   任务四:管理数据库对象;
  •   任务五:存储空间管理;
  •   任务六:安全管理;
  •   任务七:备份和恢复;
  •   任务八:性能监视和调优;
  •   任务九:调度作业;
  •   任务十:网络管理;
  •   任务十一:高可用性和高可伸缩性管理;
  •   任务十二:故障解决;

  下面简单描述这些DBA的任务

  任务一:安装和配置。

  DBA的第一项任务是安装和配置Microsoft SQL Server 2008软件系统,为顺利使用Microsoft SQL Server 2008软件创建良好的环境。无论是安装还是配置,都应该根据实际需要来进行,使得系统满足用户的实际需求。需要注意的是,系统配置不是一劳永逸的,应该随时根据需求的变化和环境的需要,进行监视和适当地调整。

  任务二:容量规划。

  容量规划是对整个Microsoft SQL Server 2008系统进行一个总体的规划。规划的重点应该放在解决瓶颈问题上。可以从内容和期限两个方面考虑系统的容量规划。

  从内容上来看,应该考虑的主要内容包括:硬件容量规划、软件规划、网络规划。硬件容量规划包括磁盘空间、CPU、I/O等规划。软件规划包括操作系统的安装和配置规划、数据库规划、数据库对象内容和数量规划等。网络规划包括网络硬件、网络软件和协议、网络客户数量流量和分布、网络拓扑结构等规划。

  从期限上来看,应该考虑短期、中期和长期规划。短期规划的目的是满足当前日常业务的需要。中期规划主要是满足业务发展和扩大的需要。长期规划主要是满足业务极限需要等。例如,如果预测某个系统的当前并发用户数量是1000,3年后的用户可能达到1000万,那么这时既不能按照1000用户的需求来设计,也不能一下子按照1000万用户的需求来设计,一定要采取一个折中的形式。

  任务三:应用架构设计。

  应用架构设计包括数据库设计、应用程序设计和相应的技术架构设计。

  数据库设计应该考虑数据库的逻辑需求、数据库的创建方式和数量、数据库数据文件和日志文件的物理位置等。一般情况下,可以在Microsoft SQL Server 2008系统成功安装之后,根据规划的目标,手工创建数据库。

  应用设计应该考虑开发工具的选择、API技术、内部资源和外部资源的结合、应用架构的分布等。需要强调是在应用设计时,DBA应该与开发人员共同工作,确保他们编写出优化的代码,尽可能地使用服务器的资源。

  技术架构设计主要包括表示层、逻辑层和数据层的分布。这些分布不应该考虑到硬件资源和用户需求。既不能片面地追求过高的硬件资源,也不能仅仅局限于当前的环境,一定要按照可扩展的观点来综合考虑。

  任务四:管理数据库对象。

  管理数据库对象是使用数据库的最基本、最重要的工作。这些对象包括表、索引、视图、存储过程、函数、触发器、同义词等。为了完成管理数据库对象的工作,DBA应该能够很好地回答诸如下面的这些问题。

  •   系统应该包括哪些数据?
  •   应该怎样存储这些数据?
  •   应该在系统中创建哪些表?
  •   应该在这些表中创建哪些索引,以便加速检索?
  •   是否应该创建视图?为什么要创建这些视图?
  •   应该创建哪些存储过程、函数、CLR对象?
  •   应该在哪些表上创建触发器?应该针对哪些操作创建触发器?
  •   是否应该创建同义词?

  任务五:存储空间管理。

  存储空间管理任务就是怎样为数据分配空间、怎样保持空间可以满足数据的不断增长。随着业务量的继续和扩大,数据库中的数据也会逐渐地增加,事务日志也不断地增加。存储空间管理任务主要围绕下面几个问题。

  •   当前的数据库由那些数据文件组成?
  •   事务日志的大小应该如何设置?
  •   数据的增长速度是多大?
  •   如何配置数据文件和日志文件的增长方式?
  •   数据库中的数据何时可以清除或转移到其他地方?

  任务六:安全管理。

  安全性是DBA重要的日常工作之一。安全管理的主要内容包括账户管理和权限管理。账户管理就是在数据库中应该增加哪些账户、这些账户应该组合成哪些角色等等。权限管理是对象权限和语句权限的管理,应该回答下面这些问题:

  •   这些账户或角色应该使用哪些对象?
  •   这些账户或角色应该对这些对象执行哪些操作?
  •   这些账户或角色应该在数据库中执行哪些操作?
  •   如何设置架构?如何建立架构和对象、架构和用户的关系?

  任务七:备份和恢复。

  无论系统运行如何,系统的灾难性管理是不可缺少的。天灾、人祸、系统缺陷都有可能造成系统的瘫痪、失败。怎样解决这些灾难性问题呢?办法就是制订和实行备份和恢复策略。备份就是制作数据的副本,恢复就是将数据的副本复原到系统中。备份和恢复工作是DBA的一项持续性的重要工作,其执行频率根据数据的重要程度和系统的稳定程度来确定。

  任务八:性能监视和调优。

  根据企业的经营效益评价企业的管理水平,根据学生的考试成绩评价学生的学习好坏。作为一个大型软件系统,Microsoft SQL Server 2008系统的运行好坏必须得到正确地监视、评价和相应的调整。这是DBA的一项高级工作。借助一些工具和运行性能指标,DBA应该能够监视系统的运行。如果某些运行指标出现了问题,DBA应该及时地采取补救措施,使得系统始终保持高效运行状态。

  任务九:调度作业。

  DBA不可能一天24小时不停地盯住系统的运行,及时地执行某些指定的操作。Microsoft SQL Server 2008系统提供了许多工具,DBA应该充分利用这些工具和机制,解决下面一些问题。

  •   调度哪些作业应该由系统执行?
  •   这些作业应该在何时执行?
  •   如何确保这些作业可以正确地执行?
  •   如果自动执行的作业执行失败时,应该如何处理?
  •   如何使得系统可以均衡地执行相应的操作?

  任务十:网络管理。

  作为一种分布式的网络数据库,网络管理的任务更加的重要。Microsoft SQL Server 2008系统提供了网络管理工具和服务,DBA应该借助这些工具进行服务规划和管理网络操作。

  任务十一:高可用性和高可伸缩性管理。

  作为一个DBA,必须保持系统具有高可用性和高可伸缩性。可用性是一项度量计算机系统正常运行时间的指标。可伸缩性描述应用程序可以接受的并发用户访问的数量问题。影响系统可用性的主要因素包括:网络可靠性、硬件故障、应用程序失败、操作系统崩溃、自然灾害等。无论是数据库系统管理员,还是应用程序设计人员,都应该最小化系统破坏的几率,最大化系统的可用性。在设计系统的可用性时,应该确定采取什么样的可用性策略来满足可用性的需求。

  可用性的需求可以通过3个方面描述,即运行的时间、连接性需求和数据的紧密和松散要求。在确定可用性的需求时,首先考虑系统的运行时间。一般地,数据库应用程序有两种运行时间,即在工作时间是可用的和在任何时间都是可用的。如果只是要求在工作时间是可用的,那么可以把系统的维护等工作安排在周末进行。但是,有许多应用程序要求每天运行24小时、每周运行7天,例如,在线超市等,这时必须采取措施保证系统总是运行的。不同的应用程序有不同的连接性要求。大多数的应用程序和电子商务解决方案要求采用可靠的网络连接。这时,要求永久性的在线连接,必须最小化各种异常现象的发生。有些应用程序允许用户离线使用。这时,系统的可用性要求降低了。大多数应用程序要求数据是同步使用的。用户对数据的请求,系统必须立即做出回应。这是紧密型的数据要求,这种情况必须保证系统的高可用性。有些应用程序不需要数据是同步的,对用户的请求可以延迟回应。这种要求是数据松散型的要求,这时系统的可用性需求比较低。

  任务十二:故障解决。

  虽然不希望Microsoft SQL Server 2008系统出现故障,但是故障可能是无法避免的。这些故障可能每天都会发生。有些故障是人为不小心造成的,有些故障可能是系统中的缺陷形成的,有些故障可能是莫名其妙的。作为一个DBA,在系统中的其他用户心目中是Microsoft SQL Server系统的权威。无论是大事还是小事,DBA都应该做到迅速诊断、准确判断、快速修复。从这个意义上来说,DBA是一个数据库系统的专业医生。

时间: 2024-08-09 11:27:23

SQL Server DBA工作内容详解的相关文章

SQL SERVER分区具体例子详解

在日常工作中,我们会遇到以下的情况,一个表每日数万级的增长,而查询的数据通常是在本月或今年,以前的数据偶尔会用到,但查询和插入的效率越来越慢,用数据库分区会有助于解决这个问题.关于分区的理论知识网上很多我这里就不在累赘,我从一个实际例子出发,看如何将一个已经运行了很长时间的普通表进行分区. 回到目录 提出问题 需解决问题:有一个数据表数据很大,我们通常的查询是在一个季度中.我们需要将以往年份的数据按不同年份存在文件组里,当年的数据分为4个季度存,如果到了新的一年,将之前4个季度的合并到一年中,新

SQL Server 事务隔离级别详解

原文:SQL Server 事务隔离级别详解 标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设计数据库事务级别 SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可以在查询(表级别)级别上设置事务隔离级别.事务隔离级别总共有6个隔离级别:READ UNCOMMITTED(未提交读,读脏),相当于(NOLOCK)R

SQL Server 执行计划操作符详解(2)——串联(Concatenation )

本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻想一下是干嘛的.其实还是挺直观,就是把东西连起来,那么下面我们来看看到底连什么?怎么连?什么时候连? 简介: 串联操作符既是物理操作符,也是逻辑操作符,在中文版SQL Server的图形化执行计划中称为"串联",在其他格式及英文版本中称为"Concatenation".

SQL SERVER 中的Schema详解

以往 SQL Server 内的对象命名是"服务器.数据库.用户名.对象",但新版的对象命名改为"服务器.数据库.Schema.对象".这让你规划数据库对象命名时更有弹性. 架构是形成单个命名空间的数据库实体的集合.命名空间是一个集合,其中每个元素的名称都是唯一的. 虽然 SQL Server 2000 包含 CREATE SCHEMA 语句,但实际上并不会像上面所定义的那样创建架构.在 SQL Server 2000 中,数据库用户和架构是隐式连接在一起的.每个数

SQL Server 执行计划操作符详解(1)——断言(Assert

前言: 很多很多地方对于语句的优化,一般比较靠谱的回复即使--把执行计划发出来看看.当然那些只看语句就说如何如何改代码,我一直都是拒绝的,因为这种算是纯蒙.根据本人经验,大量的性能问题单纯从语句来看很难发现瓶颈,同一个语句,由于环境的不同,差距非常大,所以比较合适的还是分析执行计划. 那么对于执行计划,一般使用图形化执行计划就差不多了,但是用过的人也有一些疑惑,里面的图标(称为操作符)并不非常直观.所以从本文开始,会整理一些不怎么常见但由比较重要的操作符并进行解释,对于那些表扫描.索引扫描.聚集

SQL Server 2012 安装过程详解(包含每一步设置的含义)

转http://www.cnblogs.com/EastLiRoar/p/4051969.html 一.启动安装程序,点击"安装"选项卡,选择"全新SQL Server独立安装或向现有安装添加功能".(首次安装数据库系统或向现有数据库系统添加功能,均选择此选项)

SQL server中的parsename详解

1.SQL server中如何拆分ip地址 比如有一个ip地址是 192.168.0.8 2.再或者,如何拆分一个包装比例,比如1:5:3 用parsename方法即可以实现: select parsename(replace('1:5:3',':','.'),1) 执行结果是:3 select parsename(replace('1:5:3',':','.'),2) 执行结果是:5 select parsename(replace('1:5:3',':','.'),3) 执行结果是:1

sql server中部分函数功能详解

1.TOP 子句 TOP 子句用于规定要返回的记录的数目. 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. SQL Server 的语法: SELECT TOP number|percent column_name(s) FROM table_name 2.’%%’查询 我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人: 我们可以使用下面的 SELECT 语句:

SQL server 数据库之“索引”详解

什么是索引?数据库中的索引与书籍中的目录类似,索引使SQL Server编排数据的内部方法,它为SQL Server提供一种方法来编排查询数据的路由. 索引页是数据中存储索引的数据页.索引页存放检索数据行的关键字页及该数据行的地址指针.通过使用索引,可以大大提高数据库的检索速度.改善数据库性能. 索引的分类1.唯一索引 唯一索引不允许两行具有相同的索引值.创建了唯一约束,将自动创建唯一索引.尽管唯一索引有助于找到信息,但是为了获得最佳性能,建议使用主键约束.2.主键索引 在数据库关系图中为表定义