sql >> データベース >  >> RDS >> PostgreSQL

openprojectのデータを失うことなくpostgresqlデータベースを10から12にアップグレードする方法

    A)最初に、そのためのすべてのデータベースのバックアップを作成します(バックアップが必要ない場合は、Bから続行できます)

    1. postgresユーザーとしてログイン
         sudo su postgres
    
    1. すべてのデータベースにあるすべてのデータのバックアップ.sqlファイルを作成します
        pg_dumpall > backup.sql
    

    B)PostgreSQL12にアップグレードする

    1. パッケージを更新してpostgres12をインストールする
         sudo apt-get update
         sudo apt-get install postgresql-12 postgresql-server-dev-12
    
    1. postgresqlサービスを停止します
         sudo systemctl stop postgresql.service
    
    1. データを移行する
         /usr/lib/postgresql/12/bin/pg_upgrade \
         --old-datadir=/var/lib/postgresql/10/main \
         --new-datadir=/var/lib/postgresql/12/main \
         --old-bindir=/usr/lib/postgresql/10/bin \
         --new-bindir=/usr/lib/postgresql/12/bin \
         --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
         --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
    
    1. 通常のユーザーに切り替えます
         exit
    
    1. 古いバージョンと新しいpostgresバージョンのポートを入れ替えます。
         sudo vim /etc/postgresql/12/main/postgresql.conf
         #change port to 5432
         sudo vim /etc/postgresql/10/main/postgresql.conf
         #change port to 5433
    
    1. postgresqlサービスを開始します
         sudo systemctl start postgresql.service
    
    1. postgresユーザーとしてログイン
         sudo su postgres
    
    1. 新しいpostgresバージョンを確認してください
         psql -c "SELECT version();"
    
    1. 生成された新しいクラスタースクリプトを実行します
         ./analyze_new_cluster.sh
    
    1. 通常の(デフォルトユーザー)ユーザーとして戻り、古いバージョンの混乱をクリーンアップします
         sudo apt-get remove postgresql-10 postgresql-server-dev-10
         #uninstalls postgres packages
         sudo rm -rf /etc/postgresql/10/
         #removes the old postgresql directory
         sudo su postgres
         #login as postgres user
         ./delete_old_cluster.sh
         #delete the old cluster data
    
    1. おめでとう!これでpostgresqlバージョンがアップグレードされました。Bですべてが正常に機能する場合は、データを古いバージョンから新しいバージョンにすでに移行しているため、バックアップを適用する必要はありません。何か問題が発生した場合に備えてバックアップを作成します。

    注: 要件に応じてpostgresql.confとpg_hba.confを変更します

    PS :問題、提案、または提案したいその他の変更について、お気軽にコメントしてください



    1. ユーザーがVBAの入力ボックスで[キャンセル]をクリックしたかどうかを確認する方法

    2. JSONサブコンポーネントを抽出するための演算子

    3. テーブルの値を使用したPostgresINTERVAL

    4. SUBSTRING()関数を使用してSQLServerの文字列から部分文字列を返す方法