第十二章 数据库运行与管理
1、数据库系统的运行策略: 从物理环境上保障系统的稳定运行;
从对人员的要求上做保障;
应用数据库的安全性策略;
做好数据库的备份与恢复工作。
2、数据库系统的监控对象和监控方式
监控对象有3个,性能监控、故障监控、安全监控。
监控方式有2种,系统监控和应用程序监控。
3、数据库维护
因为某些原因需要修改数据库的结构,称为数据重构,包括表结构的修改和视图的修改。
视图机制一方面可以实现数据的逻辑独立性,另一方面可以实现数据的安全性。
文档是对系统结构和实现的描述,必须与系统保持调度的一致性。数据库重构过程中的所有修改必须在文档中体现出来。
4、数据库系统的运行统计
系统监控和运行统计是DBA掌握数据库系统运行状态最有效的手段。系统监控用来保障系统的稳定运行,系统统计则用来了解系统性能,作为性能调整的依据。
5、数据库系统的审计,是一种DBMS工具,它记录数据库资源和权限的使用情况。审计是被动的。
6、数据库系统的管理
(1)数据字典的管理:数据字典是存储在数据库中的所有对象信息的知识库,其中存储的数据称为元数据。数据字典是只读的。
(2)数据完整性维护和管理:作用对象有列、行、表3种。列级约束、主码约束和参照完整性约束是在数据库定义过程中定义的,存在数据字典中。更为复杂的约束可以编写触发器程序实现。
因此,由DBMS管理的约束,可通过修改数据库定义完成维护和管理;
由应用程序实现的复杂的完整性约束,要通过分析修改程序(触发器程序)来实现。
(3)数据库的存储管理:数据库中的数据是以文件形式存储在物理存储设备上的,程序通过DBMS完成I/O操作来访问数据。提高系统访问效率的有效手段就是提高I/O操作的效率。使用这样几种手段管理数据的存储,可以有效地提高性能:
1)索引文件和数据文件分开存储,事务日志文件存储在高速设备上;
2)适时修改数据文件和索引文件的页面大小;
3)定期对数据进行排序;
4)增加必要的索引项。
也可以增加计算机内存,引入调整存储设备等外部方式提高系统的访问效率。
(4)数据库备份与恢复的管理:
设定合理的备份周期和备份时间;
把事务日志文件保存在最稳定的存储设备上;
定期在事务日志文件中加入检查点(checkpoint),检查点记录数据库的正确状态点。在数据库恢复过程中,可以反向扫描日志文件找到第一个检查点,执行UNDO、REDO操作。
(5)数据库的并发控制与死锁管理:多用户数据库DBMS都提供并发控制机制。在实际运行过程中,死锁的产生多是因为事务程序的错误引起。管理员需要使用系统监控工具和系统日志,找出频繁产生死锁的事务。分析原因,修改事务程序,减少死锁。
(6)数据库的安全管理:
建立网络安全(防火墙)
操作系统级安全(登录用户管理)
DBMS级安全(访问DB的用户验证密码)
角色和用户授权管理
使用视图和存储过程
使用审计功能
7、数据库系统的性能调整
1)SQL语句的编码检验:通过DBMS提供的监控和统计功能,找出频繁执行的SQL语句并对其进行优化。步骤为,
(1)尽可能地减少多表查询或建立物化视图;
(2)以不相关子查询代替相关子查询;
(3)只检索需要的列;
(4)用带IN的条件子句等价替换OR子句;
(5)经常提交COMMIT,以尽早释放锁。
2)表设计的评价:首先要求关系都能符合3NF或BCNF,然后还要根据实际运行情况对表进行调整。
调整的原则是: 如果频繁地访问涉及的是对两个相关表进行连接操作,则将这两个表合并;
如果频繁地访问只是在表中的一部分字段上进行,则考虑分解表或将该部分单独拿出作为一个表;
对于很少更新的表,引入物化视图。
3)索引的改进:索引的调整原则如下,
如果查询是瓶颈--在关系上新建适当的索引,通常在作为查询条件的属性上建立索引可以提高查询效率;
如果更新是瓶颈--因为每次更新都会重建表上的索引,引起效率的降低,可以考虑删除某些索引;
选择适当的索引类型--比如经常使用范围查询,可以使用B树索引,比散列索引更高效;
将有利于大多数据查询和更新的索引设为聚簇索引。
4)设备的增强:高速的计算机、增加内存、高速网络设备、高速存储设备。