Postgresql:运用管理篇 |
|
由于很多人对 Postgresql运用管理中要做什么不是很清楚。本篇大体介 绍 一下运用管理要做的工作。 |
|
关于Postgresql运用管理必要的工作 |
PostgreSQL运用管理中要做的工作是什么呢?虽 然运用要求不同,可能工作有所不同,但一般要做的工作如下: |
Maintenance(维护 ) :DB(数据 库 )由于 长时间 的运行,内部状 态伦 理,物理上发生了 变 化,或者性能只 发挥 了一部分等。通 过维护 使系 统 最 优 化。 |
监视 :DB异常 发 生前或者 发 生后的管理,DB和OS的状 态 的 监视 是非常关 键 的。把握下一个事情要 发 生或已 经 的事情,防范 问题 于未然。系 统 的 资 源和DB的运行 统计 信息的 监视 就是 这 部分的工作。 |
备 份/恢复 :系 统 故障 发 生的 场 合的数据 丢 失等等,从 备 份DB恢复是必要的。根据 备 份和恢复要花 费 的 时间 来决定 备 份方法。 |
升级 /更新 :Postgresql的新版 发 布中,有两个部分,版本名(x.y.z)的y 变 化的主要 发 布(8.3 → 8.4),和z 变 化的一般 发 布(8.3.6 → 8.3.7)。 |
|
上面的这 些工作究竟什么 时 候做呢?以下分 为 运用前的 设 定,日 单 位,月 单 位,不定期来 说 明。 |
运用前设 定 |
1 log的管理设 定 :Log的 输 出路径,log 级别 等等。Log是 问题发 生后最直接的重要信息。 |
2 运行统计 信息 设 定:Postgresql会 监视 自身的内部活 动 , 这 些 统计 信息都保持在 专门 的表里面。 |
3 开启autovacuum :这 个功能是 监视 表的状 态 在必要的 时 候自 动 VACUUM。8.3版本以后默 认 都是开启的。可以 设 置 执 行多 长时间 的VACUUM才 输 出到log。 |
|
日单 位 进 行的工作 |
1 VACUUM :Postgresql是追加类 型的 软 件架构。更新, 删 除的 处 理中会有数据内部的Garbage的 产 生。Garbage是DB肥大化和 缓 存利用效率低下的重要原因。VACUUM是做回收Garbage的。 |
|
2 ANALYZE :DBMS在检 索DB内的数据的 时 候,根据数据的排序和物理配置等等 统计 信息,采取最有效率的方法来 检 索数据。ANALYZE就是更新 这 些 统计 数据的。 |
3 取得系统 的 资 源信息 :DBMS和OS等等 软 件所消 费 的HW(硬件) 资 源。比如典型的cpu使用率,硬 盘 使用率,每个 进 程的活 动 状 态 等等信息。 记录 好 这 些信息后在 问题发 生前就能 够 察 觉 然后采取 对 策避免。比如DB肥大,硬 盘 没空 间 了等等。 |
4 备 份 :分 为 两种方式,DB内容 逻辑 形式取得和文件系 统 的文件取得。 |
① 逻辑备 份(pg_dump):用pg_dump命令取得sql形式的数据,可以是取得一部分表,整个DB。 这 种方式小 规 模的 场 合比 较 常用。 |
② 在线备 份:用rsync,cp命令从DB族中取得文件。不能指定DB或表 单 位,因此是DB族全体 备 份。根据Active log来恢复。 |
|
月单 位 进 行的工作 |
每月一次的Maintenance,定期使系统 达到最 优 状 态 。主要有以下工作: |
1 REINDEX :重新构筑index。因此index有失效的可能。 |
2 CLUSTER :根据index顺 序,表的数据在物理上重新 编 成。 |
3 VACUUM FULL :表的物理压缩 等,避免DB肥大化。 |
4 及时 版本更新等。 |
|
不定期进 行的工作 |
数据库 一下子很慢了或者没有反 应 了。 这 个 时 候就要采取 应 急措施。如系 统 重新或者Postgresql重启。 |