第5章 移行
この章では、Red Hat Software Collections 3.4 に含まれるコンポーネントのバージョンへの移行に関する情報を提供します。
5.1. MariaDB 10.3 への移行
rh-mariadb103 Software Collection は、デフォルトの MySQL 実装として MariaDB 5.5 を含む Red Hat Enterprise Linux 7 で利用できます。
rh-mariadb103 Software Collection は、コアシステムの mysql または mariadb パッケージと競合しません。*-syspaths パッケージがインストールされていない限り (下記参照)、mysql パッケージまたは mariadb パッケージとともに rh-mariadb103 Software Collection をインストールできます。特定のリソースが競合しないようにするため、両方のバージョンを同時に実行することもできますが、ポート番号と
my.cnf
ファイルのソケットを変更する必要があります。さらに、rh-mariadb102 Collection がインストールされ、実行中でも、rh-mariadb103 Software Collection をインストールすることもできます。
rh-mariadb103 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-mariadb103-syspaths パッケージが含まれます。rh-mariadb103*-syspaths パッケージのインストール後に、rh-mariadb103* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb102 および rh-mysql80 Software Collections からの対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
MariaDB 5.5 から MariaDB 10.3 への推奨される移行パスは、最初に MariaDB 10.0 にアップグレードしてから、1 バージョンずつ順次アップグレードすることです。詳細は、以前の Red Hat Software Collections リリースノートの手順を参照してください (Migrating to MariaDB 10.0、Migrating to MariaDB 10.1、および Migrating to MariaDB 10.2)。
注記
rh-mariadb103 Software Collection では、NFS によるマウントや scl register コマンドによる動的登録はサポートしていません。
5.1.1. rh-mariadb102 および rh-mariadb103 Software Collections 間の主な相違点
- mariadb-bench サブパッケージが削除されました。
- プラグインの成熟度に対するデフォルトの許可レベルは、サーバーの成熟度よりレベルが 1 つ低くなるように変更になりました。その結果、以前は動作していた、成熟度レベルが低いプラグインが、読み込まれなくなりました。
5.1.2. rh-mariadb102 から rh-mariadb103 Software Collection へのアップグレード
重要
アップグレードする前に、MariaDB データベースを含むすべてのデータのバックアップを作成します。
- rh-mariadb102 データベースサーバーが実行している場合は停止します。サーバーを停止する前に、
innodb_fast_shutdown
オプションを0
に設定し、InnoDB
が完全なパージや挿入バッファーマージを含む低速なシャットダウンを実行します。アップストリームのドキュメント で、このオプションの詳細を参照してください。この操作は、通常のシャットダウンの場合よりも長い時間がかかる可能性があります。mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0"
rh-mariadb102 サーバーを停止します。systemctl stop rh-mariadb102-mariadb.service
- mysql_upgrade ユーティリティーを提供するサブパッケージを含む rh-mariadb103 Software Collection をインストールします。
yum install rh-mariadb103-mariadb-server rh-mariadb103-mariadb-server-utils
これらの Collections が競合しないため、rh-mariadb103 Software Collection のインストール中は rh-mariadb102 Software Collection をインストールすることができることに注意してください。 /etc/opt/rh/rh-mariadb103/my.cnf
ファイルおよび/etc/opt/rh/rh-mariadb103/my.cnf.d/
ディレクトリーに保存される rh-mariadb103 の設定を確認します。これを/etc/opt/rh/rh-mariadb102/my.cnf
および/etc/opt/rh/rh-mariadb102/my.cnf.d/
に保存されている rh-mariadb102 の設定と比較して、必要に応じて調整します。- rh-mariadb102 Software Collection のすべてのデータは、異なる設定でない限りは
/var/opt/rh/rh-mariadb102/lib/mysql/
ディレクトリーに保存されます。このディレクトリーのすべての内容を/var/opt/rh/rh-mariadb103/lib/mysql/
にコピーします。コンテンツを移動することはできますが、アップグレードを続行する前にデータをバックアップすることを忘れないようにしてください。データがmysql
ユーザーによって所有され、SELinux コンテキストが正しいことを確認します。 - rh-mariadb103 データベースサーバーを起動します。
systemctl start rh-mariadb103-mariadb.service
- データ移行を実行します。MDEV-14637 で導入されたアップストリームの変更により、mysql_upgrade コマンドを実行する必要があることに注意してください。
scl enable rh-mariadb103 mysql_upgrade
root
ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p
オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。scl enable rh-mariadb103 -- mysql_upgrade -p
rh-mariadb103*-syspaths パッケージのインストール時には、scl enable コマンドは必要ありません。ただし、*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb102 および rh-mysql80 Software Collections からの対応するパッケージと競合します。
5.2. 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.4 は、MariaDB 10.2 とともに配布されています。
Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方で利用できる rh-mariadb102 Software Collection は、コアシステムの mysql パケージまたは mariadb パッケージと競合しません。*-syspaths パッケージがインストールされていない限り (下記参照)、mysql パッケージまたは mariadb パッケージとともに rh-mariadb102 Software Collection をインストールできます。特定のリソースが競合しないようにするため、両方のバージョンを同時に実行することもできますが、ポート番号と
my.cnf
ファイルのソケットを変更する必要があります。さらに、rh-mariadb101 Collection がインストールされ、実行中でも、rh-mariadb102 Software Collection をインストールすることもできます。
MariaDB 5.5 から MariaDB 10.3 への推奨される移行パスは、最初に MariaDB 10.0 にアップグレードしてから、1 バージョンずつ順次アップグレードすることです。詳細は、Red Hat Software Collections リリースノートの手順 Migrating to MariaDB 10.0 および Migrating to MariaDB 10.1 を参照してください。
注記
rh-mariadb102 Software Collection では、NFS によるマウントや scl register コマンドによる動的登録はサポートしていません。
5.2.1. rh-mariadb101 および rh-mariadb102 Software Collections 間の主な相違点
MariaDB 10.2 における主な変更は、Red Hat Software Collections 3.0 リリースノートを参照してください。
複数のオプションがデフォルト値を変更しているか、非推奨または削除されました。詳細は、ナレッジベースの記事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 システムと rh-mysql80 Software Collection から対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
5.2.2. rh-mariadb101 から rh-mariadb102 Software Collection へのアップグレード
重要
アップグレードする前に、MariaDB データベースを含むすべてのデータのバックアップを作成します。
- rh-mariadb101 データベースサーバーが実行している場合は停止します。サーバーを停止する前に、
innodb_fast_shutdown
オプションを0
に設定し、InnoDB
が完全なパージや挿入バッファーマージを含む低速なシャットダウンを実行します。アップストリームのドキュメント で、このオプションの詳細を参照してください。この操作は、通常のシャットダウンの場合よりも長い時間がかかる可能性があります。mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0"
rh-mariadb101 サーバーを停止します。service rh-mariadb101-mariadb stop
- rh-mariadb102 Software Collection をインストールします。
yum install rh-mariadb102-mariadb-server
これらの Collections が競合しないため、rh-mariadb102 Software Collection のインストール中は rh-mariadb101 Software Collection をインストールすることができることに注意してください。 /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 の設定と比較して、必要に応じて調整します。- rh-mariadb101 Software Collection のすべてのデータは、特に設定されていない限り、
/var/opt/rh/rh-mariadb101/lib/mysql/
ディレクトリーに保存されます。このディレクトリーのすべての内容を/var/opt/rh/rh-mariadb102/lib/mysql/
にコピーします。コンテンツを移動することはできますが、アップグレードを続行する前にデータをバックアップすることを忘れないようにしてください。データがmysql
ユーザーによって所有され、SELinux コンテキストが正しいことを確認します。 - rh-mariadb102 データベースサーバーを起動します。
service rh-mariadb102-mariadb start
- データ移行を実行します。
scl enable rh-mariadb102 mysql_upgrade
root
ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p
オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。scl enable rh-mariadb102 -- mysql_upgrade -p
rh-mariadb102*-syspaths パッケージのインストール時には、scl enable コマンドは必要ありません。ただし、*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと rh-mysql80 Software Collection から対応するパッケージと競合します。
5.3. MySQL 8.0 への移行
rh-mysql80 Software Collection は、デフォルトの MySQL 実装として MariaDB 5.5 を含む Red Hat Enterprise Linux 7 で利用できます。
rh-mysql80 Software Collection は、*-syspaths パッケージがインストールされていない限り、コアシステムの mysql パッケージまたは mariadb パッケージ、rh-mysql* または rh-mariadb* Software Collections と競合しません (以下を参照)。また、複数のバージョンを同時に実行することも可能ですが、特定リソースが競合しないようにするため、ポート番号と
my.cnf
ファイルのソケットを変更する必要があります。
MySQL 5.7 からのみ MySQL 8.0 にアップグレードできることに注意してください。以前のバージョンからアップグレードする必要がある場合は、最初に MySQL 5.7 にアップグレードしてください。手順は、Migration to MySQL 5.7 を参照してください。
5.3.1. MySQL 5.7 と MySQL 8.0 間の主な相違点
rh-mysql80 ソフトウェアの収集に固有の相違点
- Red Hat Enterprise Linux 7 のクライアントツールおよびライブラリーは、アップストリームの MySQL 8.0 バージョンでデフォルトで使用されている
caching_sha2_password
メソッドと互換性がないため、rh-mysql80 Software Collection が提供する MySQL 8.0 サーバーは、mysql_native_password
をデフォルトの認証プラグインとして使用します。デフォルトの認証プラグインをcaching_sha2_password
に変更するには、/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-default-authentication-plugin.cnf
ファイルを次のように変更します。[mysqld] default_authentication_plugin=caching_sha2_password
caching_sha2_password
認証プラグインの詳細は、アップストリームのドキュメント を参照してください。 - rh-mysql80 Software Collection には、rh-mysql80-mysql-config-syspaths パッケージ、rh-mysql80-mysql-server-syspaths パッケージ、および rh-mysql80-mysql-syspaths パッケージをインストールする rh-mysql80-syspaths パッケージが含まれます。これらのサブパッケージは、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供します。rh-mysql80*-syspaths パッケージのインストール後に、rh-mysql80* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb102 および rh-mariadb103 Software Collections からの対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
MySQL 8.0 の一般的な変更点
- バイナリーロギングは、サーバーの起動時にデフォルトで有効になります。
--log-bin
オプションが指定されていない場合でも、log_bin
システム変数はデフォルトでON
に設定されます。バイナリーロギングを無効にするには、起動時に--skip-log-bin
または--disable-log-bin
オプションを指定します。 CREATE FUNCTION
ステートメントを許可するには、DETERMINISTIC
、NO SQL
、またはREADS SQL DATA
のキーワードの中から少なくとも 1 つを明示的に指定する必要があります。指定しない場合は、エラーが発生します。- アカウント管理に関連する特定の機能が削除されました。つまり、
GRANT
ステートメントを使用して、認証、SSL、リソース制限などの特権割り当て以外のアカウントプロパティーを変更できなくなりました。アカウント作成時にに上記のプロパティーを確立するには、CREATE USER
ステートメントを使用します。これらのプロパティーを変更するには、ALTER USER
ステートメントを使用します。 - クライアント側で一部の SSL 関連のオプションが削除されました。
--ssl =1
または--enable-ssl
の代わりに--ssl-mode=REQUIRED
オプションを使用します。--ssl=0
、--skip-ssl
、または--disable-ssl
の代わりに--ssl-mode=DISABLED
オプションを使用してください。--ssl- verify-server-cert
オプションの代わりに--ssl-mode=VERIFY_IDENTITY
オプションを使用してください。このオプションは、サーバー側では変更されないままになることに注意してください。 - デフォルトの文字セットが、
latin1
からutf8mb4
に変更しました。 utf8
文字セットは現時点でutf8mb3
のエイリアスになりますが、今後はutf8mb4
への参照となります。曖昧さを防ぐには、utf8
ではなく文字セット参照にutf8mb4
を明示的に指定します。SET
以外のステートメントでユーザー変数を設定することが非推奨になりました。- 以前エラーログをシステムログに記録した
log_syslog
変数は削除されました。 - 空間データのサポートに対する互換性のない変更がいくつか導入されています。
GROUP BY
句の非推奨のASC
またはDESC
修飾子が削除されました。特定のソート順序を生成するには、ORDER BY
句を指定します。
以前のバージョンと比較した MySQL 8.0 における詳細な変更については、アップストリームのドキュメントWhat Is New in MySQL 8.0およびChanges Affecting Upgrades to MySQL 8.0を参照してください。
5.3.2. rh-mysql80 Software Collection へのアップグレード
重要
アップグレードする前に、MySQL データベースを含むすべてのデータのバックアップを作成します。
- rh-mysql80 Software Collection をインストールします。
yum install rh-mysql80-mysql-server
/etc/opt/rh/rh-mysql80/my.cnf
ファイルおよび/etc/opt/rh/rh-mysql80/my.cnf.d/
ディレクトリーに保存されている rh-mysql80 の設定を検証します。これを/etc/opt/rh/rh-mysql57/my.cnf
と/etc/opt/rh/rh-mysql57/my.cnf.d/
に保存されている rh-mysql57 の設定と比較して、必要に応じて調整します。- rh-mysql57 データベースサーバーが実行している場合は停止します。
systemctl stop rh-mysql57-mysqld.service
- rh-mysql57 Software Collection のすべてのデータは
/var/opt/rh/rh-mysql57/lib/mysql/
ディレクトリーに保存されます。このディレクトリーのすべての内容を/var/opt/rh/rh-mysql80/lib/mysql/
にコピーします。コンテンツを移動することもできますが、アップグレードを続行する前にデータのバックアップを作成することを忘れないようにしてください。 - rh-mysql80 データベースサーバーを起動します。
systemctl start rh-mysql80-mysqld.service
- データ移行を実行します。
scl enable rh-mysql80 mysql_upgrade
root
ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p
オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。scl enable rh-mysql80 -- mysql_upgrade -p
rh-mysql80*-syspaths パッケージのインストール時には、scl enable コマンドは必要ありません。ただし、*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb102 および rh-mariadb103 Software Collections からの対応するパッケージと競合します。
5.4. MongoDB 3.6 への移行
Red Hat Software Collections 3.4 は、rh-mongodb36 Software Collection で提供される MongoDB 3.6 とともにリリースされ、Red Hat Enterprise Linux 7 でのみ利用できます。
rh-mongodb36 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-mongodb36-syspaths パッケージが含まれます。rh-mongodb36*-syspaths パッケージのインストール後に、rh-mongodb36* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
5.4.1. MongoDB 3.4 と MongoDB 3.6 の主な相違点
一般的な変更点
rh-mongodb36 Software Collection では、以下のような重要な変更点が加えられています。
- NUMA (Non-Uniform Access Memory) ハードウェアでは、numactl コマンドを使用して起動するように
systemd
サービスを設定することができます。アップストリームの推奨事項 を参照してください。numactl コマンドで MongoDB を使用するには、numactl RPM パッケージをインストールし、/etc/opt/rh/rh-mongodb36/sysconfig/mongod
および/etc/opt/rh/rh-mongodb36/sysconfig/mongos
設定ファイルを変更する必要があります。
互換性の変更点
MongoDB 3.6 には、MongoDB の以前のバージョンとの互換性に影響を与える可能性があるさまざまなマイナーな変更が含まれています。
- MongoDB バイナリーはデフォルトで
localhost
にバインドされるため、異なる IP アドレスでのリッスンを示的に有効にする必要があります。これは、MongoDB Software Collections で配布されるsystemd
サービスのデフォルト動作であることに注意してください。 - MONGODB-CR 認証メカニズムが非推奨になりました。3.0 よりも前のバージョンの MongoDB で作成したユーザーの場合は、認証スキーマを SCRAM にアップグレードします。
- HTTP インターフェイスと REST API が削除されました。
- レプリカセットの Arbiter の優先度は
0
です。 - master-slave レプリケーションが非推奨になりました。
MongoDB 3.6 での詳細な互換性の変更点は、アップストリームのリリースノート を参照してください。
後方互換性のない機能
次の MongoDB 3.6 機能には後方互換性がないため、featureCompatibilityVersion コマンド を使用してバージョンを 3.6 に設定する必要があります。
- コレクションの UUID
$jsonSchema
ドキュメント検証- ストリームの変更
- チャンク対応のセカンダリー
- バージョン 3.6 のクエリー機能を使用する定義、ドキュメントバリデーター、部分インデックスフィルターを表示する
- セッションおよび再試行可能な書き込み
authenticationRestrictions
のあるユーザーおよびロール
MongoDB 3.6 での後方互換性のない変更の詳細は、アップストリームのリリースノート を参照してください。
5.4.2. rh-mongodb34 から rh-mongodb36 Software Collection へのアップグレード
重要
rh-mongodb34 から rh-mongodb36 Software Collection に移行する前に、デフォルトで
/var/opt/rh/rh-mongodb34/lib/mongodb/
ディレクトリーに保存される MongoDB データベースを含むすべてのデータをバックアップします。また、互換性の変更点 を参照して、アプリケーションおよびデプロイメントが MongoDB 3.6 と互換性があることを確認してください。
rh-mongodb36 Software Collection にアップグレードするには、以下の手順を実行します。
- アップグレードできるようにするには、rh-mongodb34 インスタンスの
featureCompatibilityVersion
が3.4
に設定されている必要があります。featureCompatibilityVersion
を確認します。~]$ scl enable rh-mongodb34 'mongo --host localhost --port 27017 admin' --eval 'db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})'
mongod
サーバーでアクセス制御が有効に設定されている場合は、mongo コマンドに--username
および--password
オプションを追加します。 - rh-mongodb36 Software Collections から MongoDB サーバーおよびシェルをインストールします。
~]# yum install rh-mongodb36
- MongoDB 3.4 サーバーを停止します。
~]# systemctl stop rh-mongodb34-mongod.service
- データを新しい場所にコピーします。
~]# cp -a /var/opt/rh/rh-mongodb34/lib/mongodb/* /var/opt/rh/rh-mongodb36/lib/mongodb/
/etc/opt/rh/rh-mongodb36/mongod.conf
ファイルでrh-mongodb36-mongod
デーモンを設定します。- MongoDB 3.6 サーバーを起動します。
~]# systemctl start rh-mongodb36-mongod.service
- 後方互換性のない機能を有効にします。
~]$ scl enable rh-mongodb36 'mongo --host localhost --port 27017 admin' --eval 'db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )'
mongod
サーバーでアクセス制御が有効に設定されている場合は、mongo コマンドに--username
および--password
オプションを追加します。注記アップグレード後、ダウングレードの可能性を最小限に抑えるために、焼き付き期間の間、下位互換性のない機能を有効にせずに、最初にデプロイメントを実行することが推奨されます。
アップグレードの詳細は、アップストリームのリリースノート を参照してください。
レプリカセットのアップグレードに関する詳細は、アップストリームの MongoDB Manual を参照してください。
Sharded Cluster のアップグレードに関する詳細は、アップストリームの MongoDB Manual を参照してください。
5.5. MongoDB 3.4 への移行
Red Hat Enterprise Linux 6 および Red Hat Enterprise Linux 7 で利用可能な rh-mongodb34 Software Collection は MongoDB 3.4 を提供します。
5.5.1. MongoDB 3.2 と MongoDB 3.4 との間の主な相違点
一般的な変更点
rh-mongodb34 Software Collection では、一般的な変更点が加えられています。ナレッジベースの記事Migrating from MongoDB 3.2 to MongoDB 3.4 に主な変更点が記載されています。詳細な変更については、upstream release notes を参照してください。
また、この Software Collection には rh-mongodb34-syspaths パッケージが含まれており、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージがインストールされます。rh-mongodb34*-syspaths パッケージのインストール後に、rh-mongodb34* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
互換性の変更点
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.5.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 にアップグレードするには、以下の手順を実行します。
- rh-mongodb34 Software Collections から MongoDB サーバーおよびシェルをインストールします。
~]# yum install rh-mongodb34
- MongoDB 3.2 サーバーを停止します。
~]# systemctl stop rh-mongodb32-mongod.service
Red Hat Enterprise Linux 6 システムで service rh-mongodb32-mongodb stop コマンドを使用します。 - データを新しい場所にコピーします。
~]# cp -a /var/opt/rh/rh-mongodb32/lib/mongodb/* /var/opt/rh/rh-mongodb34/lib/mongodb/
/etc/opt/rh/rh-mongodb34/mongod.conf
ファイルでrh-mongodb34-mongod
デーモンを設定します。- MongoDB 3.4 サーバーを起動します。
~]# systemctl start rh-mongodb34-mongod.service
Red Hat Enterprise Linux 6 では、代わりに service rh-mongodb34-mongodb start コマンドを使用します。 - 後方互換性機能を有効にします。
~]$ 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 Manual を参照してください。
5.6. PostgreSQL 12 への移行
Red Hat Software Collections 3.4 は PostgreSQL 12 とともに配布され、Red Hat Enterprise Linux 7 でのみ利用できます。rh-postgresql12 Software Collection は、PostgreSQL または PostgreSQL Software Collection のベースの Red Hat Enterprise Linux システムバージョンと並行して、同じマシンに安全にインストールできます。複数のバージョンの PostgreSQL を同時にマシン上で実行することもできますが、別のポートまたは IP アドレスを使用し、SELinux ポリシーを調整する必要があります。以前のバージョンに移行する方法、または Red Hat Enterprise Linux 6 を使用する場合は、「PostgreSQL 9.6 への移行」を参照してください。
rh-postgresql12 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-postgresql12-syspaths パッケージが含まれます。rh-postgreqsl12*-syspaths パッケージのインストール後に、rh-postgreqsl12* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
重要
コンテナーで PostgreSQL データベースをアップグレードする場合は、コンテナー固有の手順 を参照してください。
以下の表は、postgresql パッケージが提供する PostgreSQL の Red Hat Enterprise Linux 7 システムバージョン、ならびに rh-postgresql10 および rh-postgresql12 Software Colection の異なるパスの概要を示しています。
コンテンツ | postgresql | rh-postgresql10 | rh-postgresql12 |
---|---|---|---|
実行ファイル | /usr/bin/ | /opt/rh/rh-postgresql10/root/usr/bin/ | /opt/rh/rh-postgresql12/root/usr/bin/ |
ライブラリー | /usr/lib64/ | /opt/rh/rh-postgresql10/root/usr/lib64/ | /opt/rh/rh-postgresql12/root/usr/lib64/ |
ドキュメント | /usr/share/doc/postgresql/html/ | /opt/rh/rh-postgresql10/root/usr/share/doc/postgresql/html/ | /opt/rh/rh-postgresql12/root/usr/share/doc/postgresql/html/ |
PDF ドキュメント | /usr/share/doc/postgresql-docs/ | /opt/rh/rh-postgresql10/root/usr/share/doc/postgresql-docs/ | /opt/rh/rh-postgresql12/root/usr/share/doc/postgresql-docs/ |
Contrib ドキュメント | /usr/share/doc/postgresql-contrib/ | /opt/rh/rh-postgresql10/root/usr/share/doc/postgresql-contrib/ | /opt/rh/rh-postgresql12/root/usr/share/doc/postgresql-contrib/ |
ソース | 未インストール | 未インストール | 未インストール |
データ | /var/lib/pgsql/data/ | /var/opt/rh/rh-postgresql10/lib/pgsql/data/ | /var/opt/rh/rh-postgresql12/lib/pgsql/data/ |
バックアップエリア | /var/lib/pgsql/backups/ | /var/opt/rh/rh-postgresql10/lib/pgsql/backups/ | /var/opt/rh/rh-postgresql12/lib/pgsql/backups/ |
テンプレート | /usr/share/pgsql/ | /opt/rh/rh-postgresql10/root/usr/share/pgsql/ | /opt/rh/rh-postgresql12/root/usr/share/pgsql/ |
手順言語 | /usr/lib64/pgsql/ | /opt/rh/rh-postgresql10/root/usr/lib64/pgsql/ | /opt/rh/rh-postgresql12/root/usr/lib64/pgsql/ |
開発ヘッダー | /usr/include/pgsql/ | /opt/rh/rh-postgresql10/root/usr/include/pgsql/ | /opt/rh/rh-postgresql12/root/usr/include/pgsql/ |
他の共有データ | /usr/share/pgsql/ | /opt/rh/rh-postgresql10/root/usr/share/pgsql/ | /opt/rh/rh-postgresql12/root/usr/share/pgsql/ |
リグレッションテスト | /usr/lib64/pgsql/test/regress/ (-test パッケージ内) | /opt/rh/rh-postgresql10/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内) | /opt/rh/rh-postgresql12/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内) |
5.6.1. PostgreSQL の Red Hat Enterprise Linux システムバージョンから PostgreSQL 12 ソフトウェアコレクションへの移行
Red Hat Enterprise Linux 7 には PostgreSQL 9.2 が同梱されています。PostgreSQL の Red Hat Enterprise Linux システムバージョンから rh-postgresql12 Software Collection にデータを移行するには、
pg_upgrade
ツール (推奨) を使用して高速アップグレードを実行するか、SQL コマンドでデータベースデータをテキストファイルにダンプし、新しいデータベースにインポートします。2 つ目の方法は、通常大幅に遅くなるため、手動で修正が必要になる場合があります。このアップグレード方法の詳細は、PostgreSQL ドキュメント を参照してください。
重要
Red Hat Enterprise Linux システムバージョンの PostgreSQL から PostgreSQL 12 にデータを移行する前に、デフォルトで
/var/lib/pgsql/data/
ディレクトリーに格納される PostgreSQL データベースファイルを含む、すべてのデータをバックアップしてください。
手順5.1 pg_upgrade
ツールを使用した高速アップグレード
PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
- 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、
root
で次のコマンドを実行します。systemctl stop postgresql.service
サーバーが起動していないことを確認するには、以下を入力します。systemctl status postgresql.service
- 古いディレクトリー
/var/lib/pgsql/data/
が存在することを確認します。file /var/lib/pgsql/data/
データのバックアップを作成します。 - 新しいデータディレクトリー
/var/opt/rh/rh-postgresql12/lib/pgsql/data/
が存在しないことを確認します。file /var/opt/rh/rh-postgresql12/lib/pgsql/data/
PostgreSQL 12 の新規インストールを実行している場合は、このディレクトリーがシステムに存在しないはずです。その場合は、root
で以下のコマンドを実行してバックアップを作成します。mv /var/opt/rh/rh-postgresql12/lib/pgsql/data{,-scl-backup}
root
で以下のコマンドを実行して、新しいサーバーのデータベースデータをアップグレードします。scl enable rh-postgresql12 -- postgresql-setup --upgrade
または、/opt/rh/rh-postgresql12/root/usr/bin/postgresql-setup --upgrade コマンドを使用できます。別のバージョンの PostgreSQL からのアップグレードには--upgrade-from
オプションを使用できます。可能なアップグレードシナリオのリストは、--upgrade-ids
オプションを使用して利用できます。作成された/var/lib/pgsql/upgrade_rh-postgresql12-postgresql.log
ログファイルを読み、アップグレード中に問題が発生したかどうかを確認することを推奨します。root
で新しいサーバーを起動します。systemctl start rh-postgresql12-postgresql.service
また、以下のようにanalyze_new_cluster.sh
スクリプトを実行することが推奨されます。su - postgres -c 'scl enable rh-postgresql12 ~/analyze_new_cluster.sh'
- 必要に応じて、システムの起動時に PostgreSQL 12 サーバーを自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig postgresql off
PostgreSQL 12 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql12-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
手順5.2 ダンプおよびリストアアップグレードの実行
PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
- シェルプロンプトで、
root
で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。systemctl start postgresql.service
- PostgreSQL データベースの全データをスクリプトファイルにダンプします。
root
で以下のコマンドを実行します。su - postgres -c 'pg_dumpall > ~/pgdump_file.sql'
root
で以下のコマンドを実行して、古いサーバーを停止します。systemctl stop postgresql.service
- 新規サーバーのデータディレクトリーを
root
として初期化します。scl enable rh-postgresql12 -- postgresql-setup initdb
root
で新しいサーバーを起動します。systemctl start rh-postgresql12-postgresql.service
- 以前に作成した SQL ファイルからデータをインポートします。
su - postgres -c 'scl enable rh-postgresql12 "psql -f ~/pgdump_file.sql postgres"'
- 必要に応じて、システムの起動時に PostgreSQL 12 サーバーを自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig postgresql off
PostgreSQL 12 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql12-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
5.6.2. PostgreSQL 10 Software Collection から PostgreSQL 12 Software Collection への移行
データを rh-postgresql10 Software Collection から rh-postgresql12 コレクションに移行するには、
pg_upgrade
ツール (推奨) を使用して高速アップグレードを実行するか、SQL コマンドでデータベースデータをテキストファイルにダンプして新しいデータベースにインポートします。2 つ目の方法は、通常大幅に遅くなるため、手動で修正が必要になる場合があります。このアップグレード方法の詳細は、PostgreSQL ドキュメント を参照してください。
重要
PostgreSQL 10 から PostgreSQL 12 にデータを移行する前に、デフォルトで
/var/opt/rh/rh-postgresql10/lib/pgsql/data/
ディレクトリーに格納される PostgreSQL データベースファイルを含む、すべてのデータをバックアップしてください。
手順5.3 pg_upgrade
ツールを使用した高速アップグレード
PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
- 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、
root
で次のコマンドを実行します。systemctl stop rh-postgresql10-postgresql.service
サーバーが起動していないことを確認するには、以下を入力します。systemctl status rh-postgresql10-postgresql.service
- 古いディレクトリー
/var/opt/rh/rh-postgresql10/lib/pgsql/data/
が存在することを確認します。file /var/opt/rh/rh-postgresql10/lib/pgsql/data/
データのバックアップを作成します。 - 新しいデータディレクトリー
/var/opt/rh/rh-postgresql12/lib/pgsql/data/
が存在しないことを確認します。file /var/opt/rh/rh-postgresql12/lib/pgsql/data/
PostgreSQL 12 の新規インストールを実行している場合は、このディレクトリーがシステムに存在しないはずです。その場合は、root
で以下のコマンドを実行してバックアップを作成します。mv /var/opt/rh/rh-postgresql12/lib/pgsql/data{,-scl-backup}
root
で以下のコマンドを実行して、新しいサーバーのデータベースデータをアップグレードします。scl enable rh-postgresql12 -- postgresql-setup --upgrade --upgrade-from=rh-postgresql10-postgresql
または、/opt/rh/rh-postgresql12/root/usr/bin/postgresql-setup --upgrade --upgrade-from=rh-postgresql10-postgresql コマンドを使用できます。別のバージョンの PostgreSQL からアップグレードする場合には、--upgrade-from
オプションを使用できます。可能なアップグレードシナリオのリストは、--upgrade-ids
オプションを使用して利用できます。作成された/var/lib/pgsql/upgrade_rh-postgresql12-postgresql.log
ログファイルを読み、アップグレード中に問題が発生したかどうかを確認することを推奨します。root
で新しいサーバーを起動します。systemctl start rh-postgresql12-postgresql.service
また、以下のようにanalyze_new_cluster.sh
スクリプトを実行することが推奨されます。su - postgres -c 'scl enable rh-postgresql12 ~/analyze_new_cluster.sh'
- 必要に応じて、システムの起動時に PostgreSQL 12 サーバーを自動的に起動するように設定できます。古い PostgreSQL 10 サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig rh-postgresql10-postgreqsql off
PostgreSQL 12 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql12-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
手順5.4 ダンプおよびリストアアップグレードの実行
PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
- シェルプロンプトで、
root
で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。systemctl start rh-postgresql10-postgresql.service
- PostgreSQL データベースの全データをスクリプトファイルにダンプします。
root
で以下のコマンドを実行します。su - postgres -c 'scl enable rh-postgresql10 "pg_dumpall > ~/pgdump_file.sql"'
root
で以下のコマンドを実行して、古いサーバーを停止します。systemctl stop rh-postgresql10-postgresql.service
- 新規サーバーのデータディレクトリーを
root
として初期化します。scl enable rh-postgresql12 -- postgresql-setup initdb
root
で新しいサーバーを起動します。systemctl start rh-postgresql12-postgresql.service
- 以前に作成した SQL ファイルからデータをインポートします。
su - postgres -c 'scl enable rh-postgresql12 "psql -f ~/pgdump_file.sql postgres"'
- 必要に応じて、システムの起動時に PostgreSQL 12 サーバーを自動的に起動するように設定できます。古い PostgreSQL 10 サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig rh-postgresql10-postgresql off
PostgreSQL 12 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql12-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
5.7. PostgreSQL 9.6 への移行
PostgreSQL 9.6 は、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方で利用できます。また、Red Hat Enterprise Linux 6 の PostgreSQL 8.4、Red Hat Enterprise Linux 7 の PostgreSQL 9.2、または以前のバージョンの Red Hat Software Collections でリリースされた任意のバージョンの PostgreSQL 9.2 と同時に、同じマシンに安全にインストールできます。複数のバージョンの PostgreSQL を同時にマシン上で実行することもできますが、別のポートまたは IP アドレスを使用し、SELinux ポリシーを調整する必要があります。
重要
コンテナーで PostgreSQL データベースをアップグレードする場合は、コンテナー固有の手順 を参照してください。現在、Gluster ファイルボリュームで設定された OpenShift 環境のコンテナーで、PostgreSQL 9.5 から 9.6 にアップグレードすることはできません。
5.7.1. PostgreSQL 9.5 および PostgreSQL 9.6 間の主な違い
rh-postgresql96 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-postgresql96-syspaths パッケージが含まれます。rh-postgreqsl96*-syspaths パッケージのインストール後に、rh-postgreqsl96* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイド を参照してください。
以下の表は、PostgreSQL (postgresql) の Red Hat Enterprise Linux システムバージョン、ならびに postgresql92、rh-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 と似ています。
コンテンツ | postgresql | postgresql92 | rh-postgresql95 | rh-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.2 と PostgreSQL 9.4 との間の主な変更点は、Red Hat Software Collections 2.0 リリースノートを参照してください。PostgreSQL 9.4 と PostgreSQL 9.5 の相違点は、Red Hat Software Collections 2.2 リリースノートを参照してください。
5.7.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.5 pg_upgrade
ツールを使用した高速アップグレード
PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
- 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、
root
で次のコマンドを実行します。service postgresql stop
サーバーが起動していないことを確認するには、以下を入力します。service postgresql status
- 古いディレクトリー
/var/lib/pgsql/data/
が存在することを確認します。file /var/lib/pgsql/data/
データのバックアップを作成します。 - 新しいデータディレクトリー
/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}
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
ログファイルを読み、アップグレード中に問題が発生したかどうかを確認することを推奨します。root
で新しいサーバーを起動します。service rh-postgresql96-postgresql start
また、以下のようにanalyze_new_cluster.sh
スクリプトを実行することが推奨されます。su - postgres -c 'scl enable rh-postgresql96 ~/analyze_new_cluster.sh'
- 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig postgresql off
PostgreSQL 9.6 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql96-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
手順5.6 ダンプおよびリストアアップグレードの実行
PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
- シェルプロンプトで、
root
で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。service postgresql start
- PostgreSQL データベースの全データをスクリプトファイルにダンプします。
root
で以下のコマンドを実行します。su - postgres -c 'pg_dumpall > ~/pgdump_file.sql'
root
で以下のコマンドを実行して、古いサーバーを停止します。service postgresql stop
- 新規サーバーのデータディレクトリーを
root
として初期化します。scl enable rh-postgresql96-postgresql -- postgresql-setup --initdb
root
で新しいサーバーを起動します。service rh-postgresql96-postgresql start
- 以前に作成した SQL ファイルからデータをインポートします。
su - postgres -c 'scl enable rh-postgresql96 "psql -f ~/pgdump_file.sql postgres"'
- 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig postgresql off
PostgreSQL 9.6 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql96-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
5.7.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.7 pg_upgrade
ツールを使用した高速アップグレード
PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
- 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、
root
で次のコマンドを実行します。service rh-postgresql95-postgresql stop
サーバーが起動していないことを確認するには、以下を入力します。service rh-postgresql95-postgresql status
- 古いディレクトリー
/var/opt/rh/postgresql95/lib/pgsql/data/
が存在することを確認します。file /var/opt/rh/rh-postgresql95/lib/pgsql/data/
データのバックアップを作成します。 - 新しいデータディレクトリー
/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}
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
ログファイルを読み、アップグレード中に問題が発生したかどうかを確認することを推奨します。root
で新しいサーバーを起動します。service rh-postgresql96-postgresql start
また、以下のようにanalyze_new_cluster.sh
スクリプトを実行することが推奨されます。su - postgres -c 'scl enable rh-postgresql96 ~/analyze_new_cluster.sh'
- 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古い PostgreSQL 9.5 サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig rh-postgresql95-postgreqsql off
PostgreSQL 9.6 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql96-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
設定ファイル) を必ず更新してください。それ以外の場合は、postgres
ユーザーのみがデータベースにアクセスできます。
手順5.8 ダンプおよびリストアアップグレードの実行
PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
- シェルプロンプトで、
root
で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。service rh-postgresql95-postgresql start
- PostgreSQL データベースの全データをスクリプトファイルにダンプします。
root
で以下のコマンドを実行します。su - postgres -c 'scl enable rh-postgresql95 "pg_dumpall > ~/pgdump_file.sql"'
root
で以下のコマンドを実行して、古いサーバーを停止します。service rh-postgresql95-postgresql stop
- 新規サーバーのデータディレクトリーを
root
として初期化します。scl enable rh-postgresql96-postgresql -- postgresql-setup --initdb
root
で新しいサーバーを起動します。service rh-postgresql96-postgresql start
- 以前に作成した SQL ファイルからデータをインポートします。
su - postgres -c 'scl enable rh-postgresql96 "psql -f ~/pgdump_file.sql postgres"'
- 必要に応じて、システムの起動時に PostgreSQL 9.6 サーバーが自動的に起動するように設定できます。古い PostgreSQL 9.5 サーバーを無効にするには、
root
で以下のコマンドを入力します。chkconfig rh-postgresql95-postgresql off
PostgreSQL 9.6 サーバーを有効にするには、root
で以下を入力します。chkconfig rh-postgresql96-postgresql on
- 設定がデフォルトと異なる場合は、設定ファイル (特に
/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.8. nginx 1.16 への移行
rh-nginx116 Software Collection のルートディレクトリーは、
/opt/rh/rh-nginx116/root/
にあります。エラーログはデフォルトで /var/opt/rh/rh-nginx116/log/nginx
に保存されます。
設定ファイルは
/etc/opt/rh/rh-nginx116/nginx/
ディレクトリーに保存されます。nginx 1.16 の設定ファイルは、以前の nginx Software Collections と同じ構文と、ほとんど同じ形式になります。
/etc/opt/rh/rh-nginx116/nginx/default.d/
ディレクトリー内の設定ファイル (.conf
拡張子付き) は、ポート 80
のデフォルトのサーバーブロック設定に含まれています。
重要
nginx 1.14 から nginx 1.16 にアップグレードする前に、
/opt/rh/nginx114/root/
ツリーにある Web ページや /etc/opt/rh/nginx114/nginx/
ツリーにある設定ファイルを含むすべてのデータをバックアップしてください。
/opt/rh/nginx114/root/
ツリーで設定ファイルの変更や Web アプリケーションのセットアップなどの特定の変更を行った場合は、その変更を新しい /opt/rh/rh-nginx116/root/
ディレクトリーと /etc/opt/rh/rh-nginx116/nginx/
ディレクトリーに反映します。
以下の手順に従って、nginx 1.8、nginx 1.10、nginx 1.12、または nginx 1.14 を nginx 1.16 に直接アップグレードできます。この場合は、適切なパスを使用してください。
nginx の公式ドキュメントは、http://nginx.org/en/docs/を参照してください。
5.9. Redis 5 への移行
rh-redis32 Software Collection で提供されるRedis 3.2 は、主に Redis 5.0 の厳密なサブセットである Redis 4.0 のサブセットです。したがって、バージョン 3.2 からバージョン 5.0 へのアップグレード時には、主要な問題が発生しません。
Redis Cluster をバージョン 5.0 にアップグレードするには、すべてのインスタンスの大量再起動が必要になります。