第5章 マイグレーション

この章では、Red Hat Software Collections 3.0 に含まれるコンポーネントのバージョンへの移行に関する情報を提供します。

5.1. MariaDB 10.2 への移行

Red Hat Enterprise Linux 6 には、デフォルトの MySQL 実装として MySQL 5.1 が含まれています。Red Hat Enterprise Linux 7 では、デフォルトの MySQL 実装として MariaDB 5.5 が含まれています。MariaDB は、MySQL に代わるコミュニティー開発のドロップインに置き換えられます。MariaDB 10.1 は、Red Hat Software Collections 2.2 以降、ソフトウェアコレクションとして提供されています。Red Hat Software Collections 3.0 は、MariaDB 10.2 とともに配布されています。
Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方で利用可能なrh-mariadb102 Software Collection は、コアシステムのmysql またはmariadb パッケージと競合しないため、rh-mariadb102 Software Collection をmysql またはmariadb パッケージと一緒にインストールすることが可能です。特定のリソースが競合しないようにするため、両方のバージョンを同時に実行することもできますが、ポート番号と my.cnf ファイルのソケットを変更する必要があります。さらに、rh-mariadb101 Collection がインストールされ、実行中でも、rh-mariadb102 Software Collection をインストールすることもできます。
MariaDB 5.5 または MariaDB 10.0 を使用している場合は、まず rh-mariadb101 Software Collection にアップグレードする必要があります。これについては、Red Hat Software Collections 2.4 リリースノート で説明されています。
MariaDB 10.2 の詳細は、バージョン 10.2 での変更点およびアップグレードに関するアップストリームドキュメントを参照してください。
注記
rh-mariadb102 Software Collection では、NFS によるマウントや scl register コマンドによる動的登録はサポートしていません。

5.1.1. rh-mariadb101 および rh-mariadb102 Software Collections 間の主な相違点

MariaDB 10.2 の主な変更点は、「MariaDB の変更点」 に記載されています。
MariaDB 10.2 以降、SQL_MODE 変数の動作が変更になりました。詳細はアップストリームのドキュメント を参照してください。
複数のオプションがデフォルト値を変更しているか、非推奨または削除されました。詳細は、ナレッジベースの記事Migrating from MariaDB 10.1 to the MariaDB 10.2 Software Collectionを参照してください。
rh-mariadb102 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-mariadb102-syspaths パッケージが含まれます。rh-mariadb102*-syspaths パッケージのインストール後に、rh-mariadb102* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。

5.1.2. rh-mariadb101 から rh-mariadb102 Software Collection へのアップグレード

重要
アップグレードする前に、MariaDB データベースを含むすべてのデータのバックアップを作成します。
  1. rh-mariadb101 データベースサーバーが実行している場合は停止します。
    サーバーを停止する前に、innodb_fast_shutdown オプションを 0 に設定し、InnoDB が完全なパージや挿入バッファーマージを含む低速なシャットダウンを実行します。アップストリームのドキュメント で、このオプションの詳細を参照してください。この操作は、通常のシャットダウンの場合よりも長い時間がかかる可能性があります。
    mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0"
    rh-mariadb101 サーバーを停止します。
    service rh-mariadb101-mariadb stop
  2. rh-mariadb102 Software Collection をインストールします。
    yum install rh-mariadb102-mariadb-server
    これらの Collections が競合しないため、rh-mariadb102 Software Collection のインストール中は rh-mariadb101 Software Collection をインストールすることができることに注意してください。
  3. /etc/opt/rh/rh-mariadb102/my.cnf ファイルおよび /etc/opt/rh/rh-mariadb102/my.cnf.d/ ディレクトリーに保存される rh-mariadb102 の設定を確認します。これを /etc/opt/rh/rh-mariadb101/my.cnf および /etc/opt/rh/rh-mariadb101/my.cnf.d/ に保存されている rh-mariadb101 の設定と比較して、必要に応じて調整します。
  4. rh-mariadb101 Software Collection のすべてのデータは、特に設定されていない限り、/var/opt/rh/rh-mariadb101/lib/mysql/ディレクトリーに保存されます。このディレクトリーのすべての内容を /var/opt/rh/rh-mariadb102/lib/mysql/ にコピーします。コンテンツを移動することはできますが、アップグレードを続行する前にデータをバックアップすることを忘れないようにしてください。データが mysql ユーザーによって所有され、SELinux コンテキストが正しいことを確認します。
  5. rh-mariadb102 データベースサーバーを起動します。
    service rh-mariadb102-mariadb start
  6. データ移行を実行します。
    scl enable rh-mariadb102 mysql_upgrade
    root ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。
    scl enable rh-mariadb102 -- mysql_upgrade -p

5.2. MongoDB 3.4 への移行

Red Hat Software Collections 3.0 は、rh-mongodb34 Software Collection で提供されるMongoDB 3.4 と共にリリースされます。

5.2.1. MongoDB 3.2 と MongoDB 3.4 との間の主な相違点

一般的な変更点

rh-mongodb34 Software Collection では、一般的な変更点が加えられています。主な変更点は、「MongoDB の変更点」、ナレッジベースの記事Migrating from MongoDB 3.2 to MongoDB 3.4 に掲載されています。
詳細な変更については、アップストリームのリリースノート を参照してください。
また、この Software Collection には rh-mongodb34-syspaths パッケージが含まれており、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージがインストールされます。rh-mongodb34*-syspaths パッケージのインストール後に、rh-mongodb34* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。

互換性の変更点

MongoDB 3.4 には、MongoDB の以前のバージョンとの互換性に影響を与える可能性があるさまざまなマイナーな変更が含まれています。詳細は、ナレッジベースの記事Migrating from MongoDB 3.2 to MongoDB 3.4 およびupstream documentation を参照してください。
特に、次の MongoDB 3.4 機能には後方互換性がないため、featureCompatibilityVersion コマンドを使用してバージョンを 3.4 に設定する必要があります。
  • 既存のコレクションまたはその他のビューから読み取り専用ビューを作成するためのサポート
  • 照合、10 進データ、および大文字と小文字を区別しないインデックスのサポートを追加するインデックスバージョン v: 2
  • 新しい decimal データ型による decimal128 フォーマットのサポート
MongoDB 3.4 での後方互換性のない変更の詳細は、アップストリームのリリースノート を参照してください。

5.2.2. rh-mongodb32 から rh-mongodb34 Software Collection へのアップグレード

MongoDB 3.4 にアップグレードして新機能を使用したら、バージョン 3.2.7 以前のバージョンにダウングレードできないことに注意してください。バージョン 3.2.8 以降にダウングレードできます。
重要
rh-mongodb32 から rh-mongodb34 Software Collection に移行する前に、デフォルトで /var/opt/rh/rh-mongodb32/lib/mongodb/ ディレクトリーに保存される MongoDB データベースを含むすべてのデータをバックアップします。また、互換性の変更を参照して、アプリケーションおよびデプロイメントが MongoDB 3.4 と互換性があることを確認します。
rh-mongodb34 Software Collection にアップグレードするには、以下の手順を実行します。
  1. rh-mongodb34 Software Collections から MongoDB サーバーおよびシェルをインストールします。
    ~]# yum install rh-mongodb34
  2. MongoDB 3.2 サーバーを停止します。
    ~]# systemctl stop rh-mongodb32-mongod.service
    Red Hat Enterprise Linux 6 システムで service rh-mongodb32-mongodb stop コマンドを使用します。
  3. データを新しい場所にコピーします。
    ~]# cp -a /var/opt/rh/rh-mongodb32/lib/mongodb/* /var/opt/rh/rh-mongodb34/lib/mongodb/
  4. /etc/opt/rh/rh-mongodb34/mongod.conf ファイルで rh-mongodb34-mongod デーモンを設定します。
  5. MongoDB 3.4 サーバーを起動します。
    ~]# systemctl start rh-mongodb34-mongod.service
    Red Hat Enterprise Linux 6 では、代わりに service rh-mongodb34-mongodb start コマンドを使用します。
  6. 後方互換性機能を有効にします。
    ~]$ scl enable rh-mongodb34 'mongo --host localhost --port 27017 admin' --eval 'db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )'
    mongod サーバーでアクセス制御が有効に設定されている場合は、mongo コマンドに --username および --password オプションを追加します。
    アップグレード後に、この機能を最初に有効にせずにデプロイメントを実行することが推奨されます。
アップグレードの詳細は、アップストリームのリリースノート を参照してください。
レプリカセットのアップグレードに関する詳細は、アップストリームの MongoDB Manual を参照してください。
Sharded Cluster のアップグレードに関する詳細は、アップストリームの MongoDB マニュアル を参照してください。

5.3. MySQL 5.7 への移行

Red Hat Enterprise Linux 6 には、デフォルトの MySQL 実装として MySQL 5.1 が含まれています。Red Hat Enterprise Linux 7 では、デフォルトの MySQL 実装として MariaDB 5.5 が含まれています。これらの基本バージョンに加えて、MySQL 5.6 は、Red Hat Software Collections 2.0 以降、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方のソフトウェアコレクションとして利用可能になりました。
Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方で利用可能なrh-mysql57 Software Collection は、コアシステムのmysql またはmariadb パッケージやrh-mysql56 Software Collection とは競合しないため、rh-mysql57 Software Collection をmysqlmariadbrh-mysql56 パッケージと一緒にインストールすることができます。また、複数のバージョンを同時に実行することも可能ですが、特定リソースが競合しないようにするため、ポート番号と my.cnf ファイルのソケットを変更する必要があります。
MySQL 5.7 には、MySQL 5.6 からのみアップグレードできることに注意してください。以前のバージョンからアップグレードする必要がある場合は、まず MySQL 5.6 にアップグレードしてください。MySQL 5.6 にアップグレードする手順については、Red Hat Software Collections 2.2 リリースノート を参照してください。

5.3.1. MySQL 5.6 と MySQL 5.7 の注目すべき相違点

  • mysql-bench サブパッケージは、rh-mysql57 Software Collection には含まれていません。
  • MySQL 5.7.7 以降、デフォルトの SQL モードに NO_AUTO_CREATE_USER が含まれています。GRANT ステートメントではデフォルトでユーザーが作成されなくなったため、CREATE USER ステートメントを使用して MySQL アカウントを作成する必要があります。詳細は、upstream documentation を参照してください。
以前のバージョンと比較した MySQL 5.7 の詳細な変更点については、アップストリームのドキュメント What Is New in MySQL 5.7 および Changes Affecting Upgrades to MySQL 5.7 を参照してください。

5.3.2. rh-mysql57 Software Collection へのアップグレード

重要
アップグレードする前に、MySQL データベースを含むすべてのデータのバックアップを作成します。
  1. rh-mysql57 Software Collection をインストールします。
    yum install rh-mysql57-mysql-server
  2. /etc/opt/rh/rh-mysql57/my.cnf ファイルおよび /etc/opt/rh/rh-mysql57/my.cnf.d/ ディレクトリーに保存される rh-mysql57 の設定を確認します。これを /etc/opt/rh/rh-mysql56/my.cnf/etc/opt/rh/rh-mysql56/my.cnf.d/ に保存されている rh-mysql56 の設定と比較して、必要に応じて調整します。
  3. rh-mysql56 データベースサーバーがまだ実行中の場合は停止します。
    service rh-mysql56-mysqld stop
  4. rh-mysql56 Software Collection のすべてのデータは /var/opt/rh/rh-mysql56/lib/mysql/ ディレクトリーに保存されます。このディレクトリーのすべての内容を /var/opt/rh/rh-mysql57/lib/mysql/ にコピーします。コンテンツを移動することもできますが、アップグレードを続行する前にデータのバックアップを作成することを忘れないようにしてください。
  5. rh-mysql57 データベースサーバーを起動します。
    service rh-mysql57-mysqld start
  6. データ移行を実行します。
    scl enable rh-mysql57 mysql_upgrade
    root ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。
    scl enable rh-mysql57 -- mysql_upgrade -p

5.4. PostgreSQL 9.6 への移行

Red Hat Software Collections 3.0 は PostgreSQL 9.6 とともに配布されており、Red Hat Enterprise Linux 6 の PostgreSQL 8.4、Red Hat Enterprise Linux 7 の PostgreSQL 9.2、または以前の Red Hat Software Collections バージョンでリリースされた PostgreSQL の任意のバージョンと並行して、同じマシンに安全にインストールできます。複数のバージョンの PostgreSQL を同時にマシン上で実行することもできますが、別のポートまたは IP アドレスを使用し、SELinux ポリシーを調整する必要があります。

5.4.1. PostgreSQL 9.5 および PostgreSQL 9.6 間の主な違い

PostgreSQL 9.5PostgreSQL 9.6 の間の最も注目すべき変更点は、アップストリームのリリースノート に記載されています。
rh-postgresql96 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-postgresql96-syspaths パッケージが含まれます。rh-postgreqsl96*-syspaths パッケージのインストール後に、rh-postgreqsl96* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。
以下の表は、PostgreSQL (postgresql) の Red Hat Enterprise Linux システムバージョン、ならびに postgresql92rh-postgresql95、および rh-postgresql96 Software Collections のさまざまなパスの概要を示しています。Red Hat Enterprise Linux 6 で配布される PostgreSQL 8.4 のパスと、Red Hat Enterprise Linux 7 に同梱された PostgreSQL 9.2 のシステムバージョンは同じです。rh-postgresql94 Software Collection のパスは rh-postgresql95 と似ています。

表5.1 PostgreSQL パスの相違点

コンテンツpostgresqlpostgresql92rh-postgresql95rh-postgresql96
実行ファイル/usr/bin//opt/rh/postgresql92/root/usr/bin//opt/rh/rh-postgresql95/root/usr/bin//opt/rh/rh-postgresql96/root/usr/bin/
ライブラリー/usr/lib64//opt/rh/postgresql92/root/usr/lib64//opt/rh/rh-postgresql95/root/usr/lib64//opt/rh/rh-postgresql96/root/usr/lib64/
ドキュメント/usr/share/doc/postgresql/html//opt/rh/postgresql92/root/usr/share/doc/postgresql/html//opt/rh/rh-postgresql95/root/usr/share/doc/postgresql/html//opt/rh/rh-postgresql96/root/usr/share/doc/postgresql/html/
PDF ドキュメント/usr/share/doc/postgresql-docs//opt/rh/postgresql92/root/usr/share/doc/postgresql-docs//opt/rh/rh-postgresql95/root/usr/share/doc/postgresql-docs//opt/rh/rh-postgresql96/root/usr/share/doc/postgresql-docs/
Contrib ドキュメント/usr/share/doc/postgresql-contrib//opt/rh/postgresql92/root/usr/share/doc/postgresql-contrib//opt/rh/rh-postgresql95/root/usr/share/doc/postgresql-contrib//opt/rh/rh-postgresql96/root/usr/share/doc/postgresql-contrib/
ソース未インストール未インストール未インストール未インストール
データ/var/lib/pgsql/data//opt/rh/postgresql92/root/var/lib/pgsql/data//var/opt/rh/rh-postgresql95/lib/pgsql/data//var/opt/rh/rh-postgresql96/lib/pgsql/data/
バックアップエリア/var/lib/pgsql/backups//opt/rh/postgresql92/root/var/lib/pgsql/backups//var/opt/rh/rh-postgresql95/lib/pgsql/backups//var/opt/rh/rh-postgresql96/lib/pgsql/backups/
テンプレート/usr/share/pgsql//opt/rh/postgresql92/root/usr/share/pgsql//opt/rh/rh-postgresql95/root/usr/share/pgsql//opt/rh/rh-postgresql96/root/usr/share/pgsql/
手順言語/usr/lib64/pgsql//opt/rh/postgresql92/root/usr/lib64/pgsql//opt/rh/rh-postgresql95/root/usr/lib64/pgsql//opt/rh/rh-postgresql96/root/usr/lib64/pgsql/
開発ヘッダー/usr/include/pgsql//opt/rh/postgresql92/root/usr/include/pgsql//opt/rh/rh-postgresql95/root/usr/include/pgsql//opt/rh/rh-postgresql96/root/usr/include/pgsql/
他の共有データ/usr/share/pgsql//opt/rh/postgresql92/root/usr/share/pgsql//opt/rh/rh-postgresql95/root/usr/share/pgsql//opt/rh/rh-postgresql96/root/usr/share/pgsql/
リグレッションテスト/usr/lib64/pgsql/test/regress/ (-test パッケージ内)/opt/rh/postgresql92/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内)/opt/rh/rh-postgresql95/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内)/opt/rh/rh-postgresql96/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内)
PostgreSQL 8.4 から PostgreSQL 9.2 への変更点は、 Red Hat Software Collections 1.2 リリースノートを参照してください。PostgreSQL 9.2PostgreSQL 9.4 との間の主な変更点は、Red Hat Software Collections 2.0 リリースノートを参照してください。PostgreSQL 9.4PostgreSQL 9.5 の相違点は、Red Hat Software Collections 2.2 リリースノートを参照してください。

5.4.2. Red Hat Enterprise Linux システムバージョンの PostgreSQL から PostgreSQL 9.6 Software Collection への移行

Red Hat Enterprise Linux 6 には PostgreSQL 8.4 が含まれ、Red Hat Enterprise Linux 7 には PostgreSQL 9.2 が同梱されています。PostgreSQL の Red Hat Enterprise Linux システムバージョンから rh-postgresql96 Software Collection にデータを移行するには、pg_upgrade ツールを使用して高速アップグレードを行うか (推奨)、データベースのデータを SQL コマンドでテキストファイルにダンプして新しいデータベースにインポートします。2 番目の方法は、通常かなり時間がかかり、手動による修正が必要になる場合があることに注意してください。このアップグレード方法の詳細は、PostgreSQL のドキュメント を参照してください。以下の手順は、Red Hat Enterprise Linux 6 および Red Hat Enterprise Linux 7 の PostgreSQL の両方に適用できます。
重要
Red Hat Enterprise Linux システムバージョンの PostgreSQL から PostgreSQL 9.6 にデータを移行する前に、デフォルトで /var/lib/pgsql/data/ ディレクトリーに格納される PostgreSQL データベースファイルを含む、すべてのデータをバックアップしてください。

手順5.1 pg_upgrade ツールを使用した高速アップグレード

PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
  1. 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、root で次のコマンドを実行します。
    service postgresql stop
    サーバーが起動していないことを確認するには、以下を入力します。
    service postgresql status
  2. 古いディレクトリー /var/lib/pgsql/data/ が存在することを確認します。
    file /var/lib/pgsql/data/
    データのバックアップを作成します。
  3. 新しいデータディレクトリー /var/opt/rh/rh-postgresql96/lib/pgsql/data/ が存在しないことを確認します。
    file /var/opt/rh/rh-postgresql96/lib/pgsql/data/
    PostgreSQL 9.6 の新規インストールを実行している場合は、このディレクトリーがシステムに存在しないはずです。その場合は、root で以下のコマンドを実行してバックアップを作成します。
    mv /var/opt/rh/rh-postgresql96/lib/pgsql/data{,-scl-backup}
  4. root で以下のコマンドを実行して、新しいサーバーのデータベースデータをアップグレードします。
    scl enable rh-postgresql96 -- postgresql-setup --upgrade
    または、/opt/rh/rh-postgresql96/root/usr/bin/postgresql-setup --upgrade コマンドを使用することもできます。
    別のバージョンの PostgreSQL からのアップグレードには --upgrade-from オプションを使用できます。可能なアップグレードシナリオのリストは、--upgrade-ids オプションを使用して利用できます。
    作成された /var/lib/pgsql/upgrade_rh-postgresql96-postgresql.log ログファイルを読み、アップグレード中に問題が発生したかどうかを確認することを推奨します。
  5. root で新しいサーバーを起動します。
    service rh-postgresql96-postgresql start
    また、以下のように analyze_new_cluster.sh スクリプトを実行することが推奨されます。
    su - postgres -c 'scl enable rh-postgresql96 ~/analyze_new_cluster.sh'
  6. 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig postgresql off
    PostgreSQL 9.6 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql96-postgresql on
  7. 設定がデフォルトと異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

手順5.2 ダンプおよびリストアアップグレードの実行

PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
  1. シェルプロンプトで、root で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。
    service postgresql start
  2. PostgreSQL データベースの全データをスクリプトファイルにダンプします。root で以下のコマンドを実行します。
    su - postgres -c 'pg_dumpall > ~/pgdump_file.sql'
  3. root で以下のコマンドを実行して、古いサーバーを停止します。
    service postgresql stop
  4. 新規サーバーのデータディレクトリーを root として初期化します。
    scl enable rh-postgresql96-postgresql -- postgresql-setup --initdb
  5. root で新しいサーバーを起動します。
    service rh-postgresql96-postgresql start
  6. 以前に作成した SQL ファイルからデータをインポートします。
    su - postgres -c 'scl enable rh-postgresql96 "psql -f ~/pgdump_file.sql postgres"'
  7. 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig postgresql off
    PostgreSQL 9.6 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql96-postgresql on
  8. 設定がデフォルトと異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

5.4.3. PostgreSQL 9.5 Software Collection から PostgreSQL 9.6 Software Collection への移行

rh-postgresql95 Software Collection から rh-postgresql96 コレクションにデータを移行するには、pg_upgrade ツールを使用して高速アップグレードを行うか (推奨)、データベースのデータを SQL コマンドでテキストファイルにダンプして新しいデータベースにインポートします。2 番目の方法は、通常かなり時間がかかり、手動による修正が必要になる場合があることに注意してください。このアップグレード方法の詳細は、PostgreSQL のドキュメント を参照してください。
重要
PostgreSQL 9.5 から PostgreSQL 9.6 にデータを移行する前に、デフォルトで /var/opt/rh/rh-postgresql95/lib/pgsql/data/ ディレクトリーに格納される PostgreSQL データベースファイルを含む、すべてのデータをバックアップしてください。

手順5.3 pg_upgrade ツールを使用した高速アップグレード

PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
  1. 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、root で次のコマンドを実行します。
    service rh-postgresql95-postgresql stop
    サーバーが起動していないことを確認するには、以下を入力します。
    service rh-postgresql95-postgresql status
  2. 古いディレクトリー /var/opt/rh/postgresql95/lib/pgsql/data/ が存在することを確認します。
    file /var/opt/rh/rh-postgresql95/lib/pgsql/data/
    データのバックアップを作成します。
  3. 新しいデータディレクトリー /var/opt/rh/rh-postgresql96/lib/pgsql/data/ が存在しないことを確認します。
    file /var/opt/rh/rh-postgresql96/lib/pgsql/data/
    PostgreSQL 9.6 の新規インストールを実行している場合は、このディレクトリーがシステムに存在しないはずです。その場合は、root で以下のコマンドを実行してバックアップを作成します。
    mv /var/opt/rh/rh-postgresql96/lib/pgsql/data{,-scl-backup}
  4. root で以下のコマンドを実行して、新しいサーバーのデータベースデータをアップグレードします。
    scl enable rh-postgresql96 -- postgresql-setup --upgrade --upgrade-from=rh-postgresql95-postgresql
    または、/opt/rh/rh-postgresql96/root/usr/bin/postgresql-setup --upgrade --upgrade-from=rh-postgresql95-postgresql コマンドを使用することもできます。
    別のバージョンの PostgreSQL からアップグレードする場合には、--upgrade-from オプションを使用できます。可能なアップグレードシナリオのリストは、--upgrade-ids オプションを使用して利用できます。
    作成された /var/lib/pgsql/upgrade_rh-postgresql96-postgresql.log ログファイルを読み、アップグレード中に問題が発生したかどうかを確認することを推奨します。
  5. root で新しいサーバーを起動します。
    service rh-postgresql96-postgresql start
    また、以下のように analyze_new_cluster.sh スクリプトを実行することが推奨されます。
    su - postgres -c 'scl enable rh-postgresql96 ~/analyze_new_cluster.sh'
  6. 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古い PostgreSQL 9.5 サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig rh-postgresql95-postgreqsql off
    PostgreSQL 9.6 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql96-postgresql on
  7. 設定がデフォルトと異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

手順5.4 ダンプおよびリストアアップグレードの実行

PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
  1. シェルプロンプトで、root で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。
    service rh-postgresql95-postgresql start
  2. PostgreSQL データベースの全データをスクリプトファイルにダンプします。root で以下のコマンドを実行します。
    su - postgres -c 'scl enable rh-postgresql95 "pg_dumpall > ~/pgdump_file.sql"'
  3. root で以下のコマンドを実行して、古いサーバーを停止します。
    service rh-postgresql95-postgresql stop
  4. 新規サーバーのデータディレクトリーを root として初期化します。
    scl enable rh-postgresql96-postgresql -- postgresql-setup --initdb
  5. root で新しいサーバーを起動します。
    service rh-postgresql96-postgresql start
  6. 以前に作成した SQL ファイルからデータをインポートします。
    su - postgres -c 'scl enable rh-postgresql96 "psql -f ~/pgdump_file.sql postgres"'
  7. 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古い PostgreSQL 9.5 サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig rh-postgresql95-postgresql off
    PostgreSQL 9.6 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql96-postgresql on
  8. 設定がデフォルトと異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。
postgresql92 Software Collection から移行する必要がある場合は、Red Hat Software Collections 2.0 Release Notes を参照してください。この手順は同じですが、新しい Collection のバージョンを調整する必要があります。これは、Red Hat Software Collections 2.2 Release Notes で説明したように、rh-postgresql94 Software Collection からの移行を適用します。

5.5. nginx 1.12 への移行について

rh-nginx112 Software Collection は、Red Hat Enterprise Linux 7.4 以降のバージョンでのみ利用可能です。
rh-nginx112 Software Collection のルートディレクトリーは、/opt/rh/rh-nginx112/root/ にあります。エラーログは、デフォルトでは /var/opt/rh/rh-nginx112/log/nginx に保存されます。
設定ファイルは、/etc/opt/rh/rh-nginx112/nginx/ ディレクトリーに格納されます。nginx 1.12 の設定ファイルは、以前の nginx Software Collections と同じ構文で、ほぼ同じ形式です。
/etc/opt/rh/rh-nginx112/nginx/default.d/ ディレクトリー内の設定ファイル (.conf 拡張子付き) は、ポート 80 のデフォルトのサーバーブロック設定に含まれています。
重要
nginx 1.10 からnginx 1.12 にアップグレードする前に、/opt/rh/nginx110/root/ ツリーにある Web ページや、/etc/opt/rh/nginx110/nginx/ ツリーにある設定ファイルなど、すべてのデータをバックアップしてください。
/opt/rh/nginx110/root/ ツリーで設定ファイルの変更や Web アプリケーションのセットアップなどの特定の変更を行った場合は、その変更を新しい /opt/rh/rh-nginx112/root/ ディレクトリーと /etc/opt/rh/rh-nginx112/nginx/ ディレクトリーに反映します。
この手順を使用して、nginx 1.4nginx 1.6nginx 1.8、または nginx 1.10 から nginx 1.12 に直接アップグレードできます。この場合は、適切なパスを使用してください。
nginx の公式ドキュメントは、http://nginx.org/en/docs/を参照してください。