#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;

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS