学者谷

数据库管理员工作内容

数据库管理员,是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,下面是小编整理的相关内容,希望对你有帮助。

数据库管理员工作内容

一:数据库系统规划

1、硬件:在整套系统规划初期,要针对数据库未来的成长需求、性能需求、商业考虑,决定数据库运行需要的内存、硬盘、cpu及其他资源(IOPS、网络带宽)。

在做硬件规划时,考虑如何使用RAID,这些都会影响到数据库的性能。

2、 软件:选择操作系统、数据库产品、第三方工具。

3、 整体架构:根据数据库负载、重要程度,考虑使用单实例数据库、集群、复制、镜像等高可用性、 可扩展性、负载均衡, 读写分离等策略。

二:数据库设计与开发

一般是在开发环境上进行的,可能接下来还会搬到uat环境,最后才是生产环境

1、表设计:来源于对业务有详尽的需求分析,从而对现实需求进行综合、归纳与抽象并形成完整的E-R图,再由E-R图转换为相应的逻辑模式(表、视图定义等,考虑范式要求)。

2、数据库存储方式设计:根据业务的初期、中期及后期,考虑合理的数据库存储规划,物理存储(数据文件、日志文件要如何放置)、逻辑存储方式(索引、数据、要如何摆放,是否需啊哟建立分区表)。

3、对开发人员的sql进行审核,优化sql

三:数据库建设:

1、安装、升级数据库软件,在安装软件时要了解不同选项的意义,在升级之前,要确定是否会影响到操作系统、应用程序。

安装:先把环境搭建好,诸如内核参数,环境变量,rmp包之类的都要搞定,一般要按照安装参考手册来设置。

尤其是部署生产环境,由于缺省值不一定能满足需求,所以每一个参数都得结合其数据环境考量规划,这个需要一定的经验。

升级:由于会有各种bug,所以比较重要的是要考虑更新patch等之后产生的影响以及做好回退措施。(白天监控数据库,晚上挑灯战bug)。

2、数据库的创建和参数设置,安装之后要创建数据库,有些数据库参数是在创建时就要决定的,之后无法修改。创建数据库需要考虑应用程序的需求、操作熊的限制。

3、建立完善的备份计划,当数据库损坏时,将数据库在第一时间恢复,这依靠完善的备份计划,要考虑到系统的重要性以及企业可承担的分险。

4、建立数据库安全性管理规范,将数据分类,给用户设置适当的权限。

四:运营维护(运维):

1、建立、维护数据库用户和对象,按照安全性管理规范,给用户适当的存取权限。

2、保证数据库的完整性:数据库备份恢复。

很多时候我们无意中不小心删除了数据,给生产数据库带来严重的后果,所以DBA的细心以(每一步操作都尽可能思前想后)、数据库的'定期备份是至关重要的。

数据库的备份策略:主要依赖于对数据丢失的容忍度来决定。也就是说合理的备份策略基于数据库恢复所需要的所有相关的因素,因此备份策略应具体情形具体分析。

数据库的备份方式:每种数据库自带的备份方式是必须要掌握的,对于SQL Server需要搞清数据库的恢复模式以及全备,增量等方式,当然掌握bcp命令也是很有必要的。对于Oracle,datapump,冷备,热备,rman备份几种最好都全部掌握。而且有诸多第三方备份方式。

备份检查:定期监控数据库的备份、做灾备测试等,来确保数据库的备份与恢复是完整无误的。

3、控制、监控用户对数据库的存取情况、使用数据库资源的情况,

4、数据库监控、定期巡检:数据库运行状态、数据库性能、健康检查

通过对数据库不同部分、组件的实时监控,我们可以及时发现问题,采取补救措施,通过这种防患于未然的策略,来保障数据库持续、稳定、健康平稳运行。

这些部分通常包括以下内容:

(1) 实时监控错误日志(绝大部分错误信息都会记录在数据库告警日志,监控告警日志显得尤为重要);

(2) 服务器是否可用(操作系统CPU/IO/Memory监控);

(3) 数据库实例状态监控(数据库服务是否启用/中断);

(4) 数据库磁盘空间监控(表空间的使用率实时监控);

(5) 闪回区或归档日志监控(如果有使用到闪回区,归档主要是针对归档空间空间问题,如不足会hang住)

(6) 数据库备份或恢复监控

(7) 无效对象的监控与处理;

(8) 数据库一致性检查;

(9) 作业运行状态;

(10) 索引碎片检查;

(11) ……

可以选择图形化界面,以及设定阀值来实现自动预警。

当然也可以自己编写shell脚本来定时完成。

比较好的工具大家可以借助于Toad,Spotlight,Myora等优秀工具获得包括sga,pga,top SQL,instance等等更为详细的信息。

除了实时监控之外,定期巡检也是有必要的,这样可以发现隐性的或未决的问题,以及如何改善当前数据库。

5、用户反馈出来的任何数据库问题,需要DBA去做处理,即便有时诊断出来并非数据库的问题。

6、升级/迁移

升级:通常是在本机进行,硬件不变,比如:更换操作系统、数据库的版本、打补丁。

迁移:通常是需要升级硬件,比如:更换新的服务器,所以把数据库搬到新的服务器上,也有在本机“迁移”,只是为了移动数据库文件的位置。

迁移+升级:随着业务增长,对性能要求的提高,以及更新换代,需要升级不得不实施数据库迁移,不影响业务。

迁移也是一个比较耗大的工程,尤其是大型数据库,上TB级的。

比如使用导入导出,尽管操作命令一样,但大型数据库你得考虑的更多,可以考虑使用并行,如何优化这个过程的性能,事先准备好详细的操作步骤时完全有必要的。

不过很多时候,都是在迁移中做升级,也就是换了新的服务器,也换了软件版本。

五:调整数据库性能:

随着业务量的不断增加,业务运行缓慢,客户抱怨不断,导致性能问题表现的异常突出。

性能问题是从整个业务需求分析,数据库架构设计的那一刻起,直至数据库生命周期结束。

尽管整体性能并不完全取决于数据库,但数据库仍然是至关重要的一环。不过仅仅从数据库层面来把控性能是远远不够的,对存储、操作系统、网络、业务的了解与掌握,对性能调整做到有的放矢,应用自如。

下面仅仅从数据库层面来谈谈性能调整与优化涉及到的方面。

操作系统内核参数优化与调整

基于不同的特性使用raid部署不同类型文件

分开存储数据和索引文件以及均衡I/O

调整数据库以及实例级别初始化参数

使用分区表处理海量数据以及滑动窗口归档

消除行链接与行迁移

使用索引、提示或物化视图调整SQL访问负载

调整优化器统计信息

通过调整PL/SQL以提供性能

使用并行技术提高性能

六:数据库故障排除(灾后恢复)

一是由于数据库软件及运行环境等产生的各种bug或隐性问题,

二是人为的问题通常也不在少数。

Troubleshooting是DBA经常面对的问题,因此,如何快速定位并解决这些问题也是衡量一个DBA水平的重要指标。

下面列出几类较为较为常见的需要Troubleshooting的问题。

告警日志中的异常处理

监xx相关的异常处理

数据库备份恢复期间的异常处理

job运行异常的处理

数据库突发的异常处理,如数据库hang,某个时间段性能低下

集群管理中的异常处理

数据库日志传送,恢复等异常处理

用户报告的异常处理

数据库安全的异常处理