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

Ubuntu16.10でPostgreSQLを9.6から10.0にアップグレードします

    ステップバイステップガイド

    1. バックアップを作成する 。データベースが更新されていないことを確認してください。

       pg_dumpall > outputfile
      
    2. Postgres10をインストール 。このページの指示に従ってください:https://www.postgresql.org/download/linux/ubuntu/

      次に、sudo apt-get install postgresql-10を実行します。 。新しいバージョンが以前のバージョンと並べてインストールされます。

    3. 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があります 10の場合(これはパッケージのインストール時にデフォルトで作成されるため)。これは、最初にクラスターを作成しなくても、新しいインストールがすぐに機能するようにするために行われますが、もちろん、9.6/mainをアップグレードしようとすると衝突します。 10/mainの場合 も存在します。推奨される手順は、pg_dropclusterを使用して10個のクラスターを削除することです。 次に、pg_upgradeclusterでアップグレードします 。

    4. 10クラスターを停止してドロップします:

       sudo pg_dropcluster 10 main --stop
      
    5. データベースへの書き込みを行うすべてのプロセスとサービスを停止します。データベースを停止します:

       sudo systemctl stop postgresql 
      
    6. 9.6クラスターをアップグレードします:

       sudo pg_upgradecluster -m upgrade 9.6 main
      
    7. PostgreSQLを再起動します

       sudo systemctl start postgresql
      
    8. 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. まず、すべてが正常に機能することを確認します。 その後、9.6クラスターを削除します。

        sudo pg_dropcluster 9.6 main --stop
      

    pg_upgradeclusterに関する注意事項

    このガイドは、9.5から10.1にアップグレードする場合に問題なく機能します。古いバージョンからアップグレードする場合は、-m upgradeを省略することを検討してください。 ステップ6:

    sudo pg_upgradecluster 9.6 main
    

    非常に大きなクラスターがある場合は、pg_upgradeclusterを使用できます。 --linkを使用 オプションで、アップグレードがインプレースになります。ただし、これは危険です。障害が発生すると、クラスターが失われる可能性があります。 -m upgradeのように、必要がない場合はこのオプションを使用しないでください。 すでに十分に高速です。

    に基づく:

    • ドキュメント:PostgreSQLクラスターのアップグレード
    • 要点#1:delameko / upgrade-postgres-9.5-to-9.6.md
    • 要点#2:johanndt / upgrade-postgres-9.3-to-9.5.md
    • pg_upgradeclusterを中断またはキャンセルするとどうなりますか ?
    • pg_upgradeclusterのUbuntuマンページ

    更新

    このガイドは、9.6から11、10から11、および10から13へのアップグレードに適しています。



    1. 画像をデータベースBLOBに保存します。 dbからPictureboxに取得

    2. Oracleの日付に序数標識を追加する

    3. MicrosoftAzureでのPostgreSQLのフェイルオーバーとフェイルバック

    4. SQLServerでINSERTINTOとしてデータをエクスポートする