it技術:データベース:postgresql:運用
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:データベース:postgresql:運用 [2020/01/24 17:08] – [VACUUM実行確認] yajuadmin | it技術:データベース:postgresql:運用 [2021/06/06 12:32] – [テーブルロックなしのリインデックス] yajuadmin | ||
---|---|---|---|
行 50: | 行 50: | ||
[[https:// | [[https:// | ||
- | * メモリ上でソートが行えるようwork\_memパラメータを調整 | + | * メモリ上でソートが行えるようwork_memパラメータを調整 |
* work_memはセッションごとに確保される領域であるため、SETコマンドで処理に応じて調整するのが望ましい | * work_memはセッションごとに確保される領域であるため、SETコマンドで処理に応じて調整するのが望ましい | ||
行 74: | 行 74: | ||
^搭載メモリ^推奨値^ | ^搭載メモリ^推奨値^ | ||
- | |2GB|512MB| | + | |2GB|512MB→1GB| |
- | |4GB|1GB| | + | |4GB|1GB→2GB| |
- | |8GB|2GB| | + | |8GB|2GB→4GB| |
- | |16GB|4GB| | + | |16GB|4GB→8GB| |
==== random_page_cost ==== | ==== random_page_cost ==== | ||
行 147: | 行 147: | ||
initdb: ディレクトリ " | initdb: ディレクトリ " | ||
- | Userに変更にチェックを追加 することで回避した。\\ | + | Userに変更のチェックを追加 することで回避した。\\ |
他にもrunasコマンドを使用する(データベースクラスタの作成過程でpostgresプロセスを起動しますが、このプロセスは管理者権限では実行できないため)\\ | 他にもrunasコマンドを使用する(データベースクラスタの作成過程でpostgresプロセスを起動しますが、このプロセスは管理者権限では実行できないため)\\ | ||
* [[https:// | * [[https:// | ||
行 513: | 行 513: | ||
SELECT relname, n_live_tup, n_dead_tup, last_vacuum, | SELECT relname, n_live_tup, n_dead_tup, last_vacuum, | ||
FROM pg_stat_all_tables | FROM pg_stat_all_tables | ||
- | WHERE schemaname = 'wh_kousei' | + | WHERE schemaname = 'public' |
ORDER BY relname | ORDER BY relname | ||
</ | </ | ||
行 558: | 行 558: | ||
ageが15億になる前にVACUUMをかける。かけるとまた10億になる。 | ageが15億になる前にVACUUMをかける。かけるとまた10億になる。 | ||
[[http:// | [[http:// | ||
+ | |||
+ | ===== インデックスの再構築 ===== | ||
+ | |||
+ | ==== リインデックス ==== | ||
+ | reindexコマンドを使用して、インデックスの再構築する。\\ | ||
+ | <code bat> | ||
+ | rem PK_REP_RES_QUEをリインデックスする | ||
+ | SET PGPASSWORD=wh_kousei | ||
+ | psql -U wh_kousei -c " | ||
+ | </ | ||
+ | |||
+ | ==== テーブルロックなしのリインデックス ==== | ||
+ | reindexコマンドはテーブルロックがかかってしまうので、運用中のDBに対して使うのは難しい。\\ | ||
+ | ただ、PostgreSQLでは別名で全く同じインデックスの作成を行うことができる\\ | ||
+ | <wrap em> | ||
+ | |||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | <code bat> | ||
+ | rem PK_REP_RES_QUEをリインデックスする | ||
+ | SET PGPASSWORD=wh_test | ||
+ | psql -U wh_test -f reindex_rep_res_que.sql | ||
+ | </ | ||
+ | |||
+ | <code sql reindex_rep_res_que.sql> | ||
+ | create unique index concurrently pk_rep_res_que_new on rep_res_que(que_id); | ||
+ | |||
+ | alter table rep_res_que drop constraint pk_rep_res_que; | ||
+ | alter index pk_rep_res_que_new rename to pk_rep_res_que; | ||
+ | alter table rep_res_que add primary key using index pk_rep_res_que; | ||
+ | </ | ||
===== 確認用SQL ===== | ===== 確認用SQL ===== | ||
=== テーブルのディスク使用量を取得する === | === テーブルのディスク使用量を取得する === | ||
行 610: | 行 645: | ||
|3|Z|マイナーバージョン番号|セキュリティバグやデータ破損の可能性のあるバグ等が修正された場合。\\ その他の軽微な修正も同時に行われる。| | |3|Z|マイナーバージョン番号|セキュリティバグやデータ破損の可能性のあるバグ等が修正された場合。\\ その他の軽微な修正も同時に行われる。| | ||
- | ※10系から、PostgreSQL X.Zと二つの数字で表記に変更。最初がメジャーバージョン、新機能追加 | + | ※10系から、PostgreSQL X.Zと二つの数字で表記に変更。最初がメジャーバージョン:新機能追加、最後がマイナーバージョン:バグフィックスなど |
==== マイナーアップデート ==== | ==== マイナーアップデート ==== | ||
行 618: | 行 653: | ||
==== メジャーアップデート ==== | ==== メジャーアップデート ==== | ||
メジャーアップデートでは、データのバックアップとリストアの作業が必要である。\\ | メジャーアップデートでは、データのバックアップとリストアの作業が必要である。\\ | ||
- | メジャーアップデート用ツールとして、[[https:// | + | メジャーアップデート用ツールとして、[[https:// |
- | [[https:// | + | |
+ | === pg_upgrade === | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ |
it技術/データベース/postgresql/運用.txt · 最終更新: 2024/04/24 11:07 by yajuadmin