- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-01-27T00:51:32+00:00","default:wikiadmin","wikiadmin")
#author("2022-01-27T04:30:51+00:00","default:wikiadmin","wikiadmin")
-backupを極める
-実行はpostgresユーザー前提なので、そうじゃない場合は-U postgresつける
*DBサイズ確認 [#ucad605a]
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
*実行中の負荷 [#g2afd4e7]
-どの形式でもPostgresのCPU使用率は100%程度まで上がる。
*テキスト形式 [#f9a89d27]
pg_dump -d DB_NAME > dump.sql
*Custom形式 [#vd2e8d18]
-並列実行可能でアーカイブしてくれる
-テキスト形式の1/10以下のサイズ。テキスト+gzipと同等。時間を考えるとこれ一択
-ただしバイナリ
-リストアはpg_restoreが必要
pg_dump -Fc DB_NAME > /var/tmp/custom.dmp
*時間計測 [#t128b22f]
4G程度で2分半あれば終わる。サイズは圧縮で200MBほど。
*大量データ作成 [#l2ee97b8]
CREATE TABLE tasks (
id SERIAL NOT NULL,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id)
);
-10億レコード
INSERT
INTO tasks (
id
,name
,created_at
,updated_at
)
SELECT
i
,format('%s連番とても長いデータを造るためにがんばります', i)
,now()
,now()
FROM
generate_series(1, 1000000000) as i;