Ubuntu 16.10でPostgreSQLを9.6から10.0にアップグレードする。
質問
私のデータベースは 600 GB 以上あり、現在のボリュームは 1 TB しかないので、おそらく私の選択肢は限られています。
私の設定ファイルはここにあります。
/etc/postgresql/9.6/main
私のデータベースはここです。
/mnt/1TB/postgresql/9.6/main
編集する このガイドは私のために働いた。私が行う必要があった唯一の追加は、手動で libicu55 をダウンロードしてインストールすることと、私の /tmp/ フォルダに対して postgres 1777 パーミッションを付与することでした。また、私はデータフォルダを別のドライブに保存していたので、コマンドを使用する必要がありました。
pg_upgradecluster -m upgrade 10 main /mnt/1TB/postgresql/10
https://gist.github.com/delameko/bd3aa2a54a15c50c723f0eef8f583a44
どのように解決するのですか?
ステップ・バイ・ステップ・ガイド
-
バックアップを取る . データベースが更新されていないことを確認してください。
pg_dumpall > outputfile
-
Postgres 10 をインストールします。 . このページの指示に従ってください。 https://www.postgresql.org/download/linux/ubuntu/
次に
sudo apt-get install postgresql-10
. 新しいバージョンが以前のバージョンと並行してインストールされます。 -
実行
pg_lsclusters
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
すでにクラスタが存在する
main
があります (これはパッケージのインストール時にデフォルトで作成されるため)。これは、新規インストール時に最初にクラスタを作成する必要がなく、すぐに動作するようにするためですが、もちろん、アップグレード時に9.6/main
をアップグレードしようとすると衝突します。10/main
も存在します。推奨される手順は、10クラスタをpg_dropcluster
で削除し、アップグレードはpg_upgradecluster
. -
10クラスタを停止し、ドロップします。
sudo pg_dropcluster 10 main --stop
-
データベースに書き込んでいるすべてのプロセスおよびサービスを停止します。データベースを停止します。
sudo systemctl stop postgresql
-
9.6クラスターをアップグレードします。
sudo pg_upgradecluster -m upgrade 9.6 main
-
PostgreSQLを再度起動します。
sudo systemctl start postgresql
-
実行
pg_lsclusters
. 9.6 クラスタがダウンし、10 クラスタが以下の場所でオンラインになっているはずです。5432
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
-
まず、すべてが問題なく動作することを確認します。 その後、9.6クラスタを削除してください。
sudo pg_dropcluster 9.6 main --stop
に関するいくつかの注意事項
pg_upgradecluster
このガイドは、9.5 から 10.1 へのアップグレードに問題なく使用できます。古いバージョンからアップグレードする場合は
-m upgrade
を省略することを検討してください。
sudo pg_upgradecluster 9.6 main
本当に大きなクラスタでは
pg_upgradecluster
と
--link
オプションで指定することで、インプレースでアップグレードが行われます。しかし、これは危険です - 障害が発生した場合にクラスタを失う可能性があります。必要なければこのオプションは使わないでください。
-m upgrade
はすでに十分な速度を持っているからです。
に基づいています。
- Docs: PostgreSQL クラスタのアップグレード
- Gist #1です。 delameko/upgrade-postgres-9.5-to-9.6.md
- Gist #2です。 johanndt/upgrade-postgres-9.3-to-9.5.md
-
中断またはキャンセルするとどうなるか
pg_upgradecluster
? - pg_upgradecluster 用の Ubuntu man ページ。
更新
このガイドは、9.6 から 11、10 から 11、および 10 から 13 へのアップグレードに問題なく使用できます。
関連
-
Centos環境でのPostgresqlのインストールと設定、環境変数の設定Tips
-
Postgresqlへのリモートアクセスの設定方法(ファイアウォールの設定またはOFFが必要です。)
-
Postgresqlのセルフインクリメントidをキーにした場合の重複問題の解決
-
oracle_fdwを介してOracleデータにアクセスするためのPostgreSQLの手順
-
[解決済み] 未知語からテキストへの変換関数の検索に失敗しました。
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLからのPL/pgSQL出力をCSVファイルに保存する
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み】PSQLコマンドを使用してホスト名とポートを検索する
-
[解決済み] Postgresデータベースの全テーブルを切り捨てる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのJSONBのマッチングと交差の問題について
-
postgresql 重複データ削除 ケーススタディ
-
postgresqlにおける時間処理のコツ(推奨)
-
Postgresqlのデータマージ、複数のデータを1つの操作にマージする。
-
Postgresqlのデータベースにおける配列の作成と変更に関する操作
-
[解決済み] 未知語からテキストへの変換関数の検索に失敗しました。
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] Postgresqlの場合。パスワード付きで psql を実行するスクリプト
-
[解決済み] Postgresql。条件付き一意性制約