PostgreSQL
PostgreSQL 12.4 の timestamp without timezone の最大値は AD 294276 年。 $ psql "host=aurora-postgres124.cluster-********.ap-northeast-1.rds.amazonaws.com user=awsuser dbname=postgres port=5432" psql (13.4, server 12.4) SSL connection (prot…
PostgreSQL のシーケンスのキャッシュサイズによる tps を比較してみた。pgbench で同時多重(500)でシーケンスにアクセスし、キャッシュサイズが 1 だと 9,601、20 だと 12,714 とキャッシュサイズが大きいほうがスループットは高い。とりあえず流してみた…
PostgreSQLの設定は多くの異なる方法で設定することができます。 しかし普通はpostgresql.confファイルで設定することになるでしょう。 固有のオプションはリリースごとに異なります。 使用中のPostgreSQLのsrc/backend/utils/misc/guc.cというソースコード…
ATTACH 親テーブルは SHARE UPDATE EXCLUSIVE lock、子テーブルは ACCESS EXCLUSIVE lock が取得される。 DETACH 外部キーでパーティションテーブルを参照しているテーブルに SHARE lock が獲得される。 参考 ALTER TABLE changes the definition of an exis…
PostgreSQL の宣言的パーティションでパーティションのメンテナンスを行う。 pgbench(PostgreSQL 13) でパーティションテーブルを作成して、データをロードする。 $ /usr/pgsql-13/bin/pgbench -i -s 100 -U awsuser -h aurora-postgres124.cluster-********…
Amazon Linux 2 に PostgreSQL 13 をインストールする - ablog データをロードする $ /usr/pgsql-13/bin/pgbench -i -s 100 -U awsuser -h aurora-postgres124.cluster-********.ap-northeast-1.rds.amazonaws.com -d postgres --partitions=10 --partition-…
事象 Amazon Linux 2 に psycopg2 をインストールしようとすると "Error: pg_config executable not found." というエラーが発生する。 通常、postgresql-devel パッケージをインストールすると解決するが、PostgreSQL 12 ではインストール(yum install pos…
事象 $ yum install postgresql12-devel (中略) Error: Package: postgresql12-devel-12.3-1PGDG.rhel7.x86_64 (pgdg12) Requires: llvm-toolset-7-clang >= 4.0.1 Error: Package: postgresql12-devel-12.3-1PGDG.rhel7.x86_64 (pgdg12) Requires: llvm5.0-…
Yum リポジトリをインストール $ sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm pgdg-redhat-all.repo の $releasever を 7 に置換 $ cd /etc/yum.repos.d $ sudo per…
事象サマリ pg8000 を使って Python スクリプトから RDS Proxy 経由で Aurora PostgreSQL にクエリを発行しようとするとタイムアウトする pg8000 から直接 Aurora PostfreSQL へ接続するとクエリの発行に成功する psycopg2 を使うと RDS Proxy 経由でもクエ…
インストール $ sudo yum -y install postgresql-server postgresql-devel postgresql-contrib 初期セットアップ $ sudo postgresql-setup initdb 起動 $ sudo systemctl start postgresql.service ステータスを確認する $ sudo systemctl status postgresql…
テーブルのオブジェクトIDを調べる postgres=> SELECT 'public.pgbench_accounts'::regclass::oid; oid ------- 16566
Aurora PostgreSQL で VACUUM FULL 実行中のロックのとりかたを確認したメモ。 Writer で VACUUM FULL 実行 postgres=> vacuum full pgbench_accounts; Writer で VACUUM FULL 実行中のテーブルを参照 postgres=> select count(*) from pgbench_accounts; # …
RDS PostgreSQL から Aurora PostgreSQL に論理レプリケーションでレプリケーションしたメモ。 手順 設定 RDS PostgreSQL のパラメータグループで rds.logical_replication=1 に設定して、再起動する。 rds.logical_replication=1(on) に設定されているこ…
log_destination=stderr に設定すると CSV ログは出力されない。 設定例 DBパラメータグループで以下を設定 log_destination=stderr # postgresql.log に出力するが、csv には出力しない log_statement=all # DDL、DML など全てを記録 log_min_duration_stat…
一定間隔で pg_stat_statements を取得して tsv に出力する。 PostgreSQL に接続する。 $ export LANG=C $ psql "host=aurora-postgres117.cluster-******.ap-northeast-1.rds.amazonaws.com dbname=mydb port=5432 user=awsuser" 10 秒間隔で pg_stat_state…
書式 クエリ \watch 秒数 例 select b.usename, trunc(a.total_time) "total_time(s)", a.calls, trunc(cast(a.total_time as numeric) / a.calls, 6) "avg_time(s)", a.query from pg_stat_statements a join pg_user b on a.userid = b.usesysid where b.u…
書式 クエリ \watch 秒数 例 select b.usename, trunc(a.total_time) "total_time(s)", a.calls, trunc(cast(a.total_time as numeric) / a.calls, 6) "avg_time(s)", a.query from pg_stat_statements a join pg_user b on a.userid = b.usesysid where b.u…
qiita.com pgstatsinfo.sourceforge.net
メモ qiita.com
準備 PostgreSQL に接続する。 $ psql "host=aurora-postgres117.cluster-******.ap-northeast-1.rds.amazonaws.com dbname=writer port=5432 user=awsuser" シーケンスを作成する。 create sequence seqtest1 start with 1 increment by 1 cache 1; create …
PostgreSQL の pg_stat_statements で総実行時間(1回の実行時間 * 実行回数)の長いクエリランキングを取得するクエリ。累積値のため、スループットなどを見ようとすると定期的に取得して差分を計算する必要がある。 クエリ select b.usename, trunc(a.tota…
PostgreSQL で QPS(Queries per second) を確認したい場合、イコールではないが以下で TPS(Transactions per second) を確認することができる。 SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database; RDS PostgreSQL や Aurora PostgreSQL だと、P…
Pgpool-II のログ出力設定メモ。 設定 /etc/pgpool-II/pgpool.conf の設定 # - Where to log - log_destination = 'syslog' # Where to log # Valid values are combinations of stderr, # and syslog. Default to stderr. # - What to log - log_line_prefi…
Aurora PostgreSQL で pg_stat_statements ビューを参照できるようにする手順。 設定手順 RDS でパラメータグループを作成 パラメータグループファミリー: aurora-postgresql11 タイプ: DB Parameter Group 作成したパラメータグループで以下の通り設定 パラ…
事象 $ pcp_node_info -v -h localhost -U pgpool -n 1 -w FATAL: authentication failed for user "pgpool" DETAIL: username and/or password does not match 原因 ~/.pcppass のパーミッションが適切でない場合も上記エラーになる。 解決策 パーミッショ…
Yum リポジトリをインストール $ sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm pgdg-redhat-all.repo の $releasever を 7 に置換 $ cd /etc/yum.repos.d $ sudo per…
設定 PCP のパスワード設定 # echo 'pgpool:'`pg_md5 pgpool` >> /etc/pgpool-II/pcp.conf # echo 'localhost:9898:pgpool:pgpool' > ~/.pcppass # root ユーザー用 # chmod 600 ~/.pcppass $ echo 'localhost:9898:pgpool:pgpool' > ~/.pcppass # 一般ユー…
$ pgbench -Sn -c 4 -j 4 -t 1000 -U awsuser -h localhost -d mydb -p 9999 参考 1.4. 負荷分散を試してみる Pgpool-IIでは、参照クエリの負荷分散が可能です。 デフォルトでこの機能は有効です。 その効果を確かめるために、pgbench -Sコマンドを使ってみ…
PostgreSQL でサーバのIPアドレスを確認する select inet_server_addr(); 参考 https://www.postgresql.jp/document/8.0/html/functions-info.html