RDB:DBエンジンアップグレード
DBサーバーのデータベースエンジンのバージョンをアップグレードできます。
仕様
現在、以下のエンジンバージョンのみサポートしています。
| アップグレード元 | アップグレード先 | |
|---|---|---|
| MySQL 8.0の場合 | 8.0.34 | 8.4.6 |
| MySQL 5.7の場合 | 5.7.15 | 8.0.34 |
| MySQL 5.6の場合 | 5.6.12 / 5.6.21 / 5.6.22 / 5.6.34 | 5.7.15 |
| PostgreSQL 13の場合 | 13.8 | 17.5 |
| PostgreSQL 11の場合 | 11.8 | 13.8 |
| PostgreSQL 9.6の場合 | 9.6.5 | 13.8 |
- DBエンジンアップグレード時に、スロークエリーログ・一般クエリーログは全て削除されます。
- DBエンジンアップグレードは利用状況に応じて変動しますが、目安として30分程度かかります。
利用状況に応じて、DBエンジンアップグレード処理により時間がかかる可能性があります。- 自動バックアップONのDBサーバーの場合、バックアップ取得時間が追加でかかります。
- 自動バックアップOFFのDBサーバーでかつスナップショット作成有でアップグレードを実行した場合、バックアップ取得時間が追加でかかります。
- アップグレード中はDBサーバーへの接続ができません。
- アップグレード中の時間帯を指定したポイントインタイムリカバリーは実行しないでください。リストアに失敗します。
- バージョン間の互換性については、お客様ご自身での確認と検証を実施してください。
- 予期せぬ不具合を抑止するため、DBエンジンアップグレード時にDBスナップショットを取得してください。
- DBエンジンアップグレード完了後、DBエンジンの項目でデータベースエンジンのバージョンがアップグレードされているか確認してください。
アップグレードされていない場合は、RDB:イベントを確認し、適切な対処を実施してから再度DBエンジンアップグレードを実行してください。 - メジャーバージョンのアップグレードでは、お客様の利用方法によって旧バージョンとの間に互換性の問題が発生し、正常に動作しなくなるリスクがあります。
お客様にて十分に検証を行った上でアップグレードを実施してください。
制限事項
- マイナーバージョンアップグレードは実施できません。
- アップグレード後、元のデータベースエンジンのバージョンに戻せません。
- 外部レプリケーションを利用している場合、先に外部レプリケーション先のDBサーバーをアップグレードしてください。マスターとなるDBサーバーを先にアップグレードするとレプリケーションエラーが発生します。
- データーベースエンジンのバージョンによって予約語が異なります。万が一バージョンアップ先のバージョンで利用している予約語を現在利用している場合は、下記事項の対処をしてください。
- アップグレード後、予約語となっているテーブルやカラムを操作する場合は、「DB名.テーブル名」や「テーブル名.カラム名」のように指定することで操作できます。
- レプリケーションにおいて、アップグレード後にマスターDBサーバーで予約語となっているテーブルやカラムの操作を行うとレプリケーションエラーが発生します。
以後は予約語となっているテーブルやカラム以外を操作してもレプリケーションされません。
MySQLエンジンの場合
リードレプリカを利用している場合、マスターDBサーバーのDBエンジンアップグレードを行う前にすべてのリードレプリカのDBエンジンアップグレードを行う必要があります。
リードレプリカのDBエンジンアップグレードは、マスターDBサーバーのデータベースエンジンのバージョンと一致している場合のみ実行できます。MySQL5.6からMySQL5.7へのアップグレード時にMySQL5.5で作成された日付(time,timestamp,datetime)型カラムを含むテーブルが存在する場合、型変換処理時間が追加でかかります。
事前に対象のテーブルに対して下記のコマンドを実行することで処理時間を大幅に減少できます。
なお、コマンドの実行には時間がかかり、実行中はテーブルが読み取り専用としてロックされます。テーブルロックが発生しても問題ないタイミングで実施してください。ALTER TABLE <table_name> FORCE;MySQL5.6からMySQL5.7へのアップグレードでは、「アップグレードチェックのみ実行」と「アップグレードチェックの警告」は利用できません。必ずアップグレードが実行されます。
MySQL 8.0 以降へのアップグレードでは自動的に事前チェックが実行され、非互換性の確認が実施されます。
詳細を示すログには、警告(Warning)も出力されますが、こちらはアップグレードを妨げるような致命的なエラーではなく、潜在的な問題を示すものです。アップグレードは実行できます。
警告(Warning)の内容が重大なものでなければ、警告を無視しアップグレードできます。
事前チェックのみの実行ができます。アップグレードする前は、事前チェックのみの実行を推奨します。MySQL 8.0 からMySQL 8.4 にアップグレードしても、マスターユーザーの認証方式は「mysql_native_password」が引き継がれます。
「caching_sha2_password」を利用するには、MySQL 8.4 へのアップグレード完了後に以下の手順で認証方式を変更してください。mysql_native_passwordでDBサーバーに接続
以下の ALTER USER コマンドを実行して認証方式を変更
ALTER USER '<マスターユーザー名>'@'%' IDENTIFIED WITH caching_sha2_password BY '<マスターユーザーパスワード>';
PostgreSQLエンジンの場合
リードレプリカを利用している場合、マスターDBサーバーのDBエンジンアップグレードはできません。事前にリードレプリカを削除する必要があります。
リードレプリカのDBエンジンアップグレードはできません。
PostgreSQLエンジンのDBエンジンアップグレード詳細は pg_upgradeログに出力されます。詳細は 技術仕様/制限値:DBログ を確認してください。
PostgreSQLエンジンのDBエンジンアップグレード後、統計情報は引き継がれません。
以下のコマンドを実行し、統計情報を更新してください。ANALYZE VERBOSE;PostgreSQLエンジンのDBエンジンアップグレードにおいて、拡張機能はアップグレードされません。
以下のコマンドを利用し、お客様自身でアップグレードしてください。ALTER EXTENSION extension_name UPDATE TO 'new_version';PostgreSQLでサポートしている拡張機能については 技術仕様/制限値:PostgreSQL を確認してください。
DBエンジンアップグレードができない状態と対処
以下に記載する状態では、DBエンジンアップグレードができません。
各状態に合わせて、記載する対処を実施してください。
状態:reg* データ型が存在する
- 対処
- 事前に reg* データ型をすべて削除してください。
- 対処
状態:PostgreSQL13からPostgreSQL17へのアップグレード時に、PostgreSQL13で以下の拡張機能を利用していると、DBエンジンアップグレードができません。
・postgis ・postgis_tiger_geocoder ・postgis_topology ・plv8- 対処
- 事前に対象拡張機能を削除してください(DROP EXTENSION)。
- 必要に応じてアップグレード後に再インストールしてください(CREATE EXTENSION)。
- 対処
状態:PostgreSQL11からPostgreSQL13へのアップグレード時に、PostgreSQL11で以下の拡張機能を利用している
・plv8 ・plls ・plcoffee- 対処
- 事前に対象拡張機能を削除してください(DROP EXTENSION)。
- 必要に応じてアップグレード後に再インストールしてください(CREATE EXTENSION)。
- 対処
状態:PostgreSQL9.6からPostgreSQL13へのアップグレード時に、PostgreSQL9.6で以下の拡張機能を利用している
・postgis ・postgis_tiger_geocoder ・postgis_topology ・plv8 ・plls ・plcoffee- 対処
- 事前に対象拡張機能を削除してください(DROP EXTENSION)。
- 必要に応じてアップグレード後に再インストールしてください(CREATE EXTENSION)。
- 対処
状態:アップグレード先のDBエンジンバージョンと互換性のない拡張機能を利用している
- 対処
- 事前に互換性のない拡張機能を削除してください。
- PostgreSQLでサポートしている拡張機能については 技術仕様/制限値:PostgreSQL を確認してください。
- 対処
状態:プリペアドトランザクションがデータベースにある
- 対処
事前に、すべてのプリペアドトランザクションをコミットまたはロールバックしてください。
以下のコマンドを実行することで、プリペアドトランザクション数を確認できます。
SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
- 対処
状態:ラージオブジェクトがデータベースにある
- 対処
メモリ不足になりDBエンジンアップグレードが失敗する可能性があります。
必要に応じ、DBサーバータイプのスペックアップを実施してください。
以下コマンドにて、ラージオブジェクト数を確認できます。
SELECT count(*) FROM pg_largeobject_metadata;
- 対処
状態:unknownデータ型が存在する
- 対処
- 事前に、unknownデータ型をすべて削除してください。
- 対処
状態:WITH OIDSオプションを利用して作成されたテーブルが存在する
- 対処
- 事前に、WITH OIDSオプションを利用して作成されたテーブルをすべて削除してください。
- 対処
古くなったDBエンジンのバージョン廃止について
運用ポリシー
- 古くなったDBエンジンバージョンは、今後状況に応じて廃止の検討を進めていきます。
- 特定のDBエンジンバージョンを廃止する場合、廃止日から6か月前までにお客様へ告知を実施します。
- 通知を受け取ったお客様は、期日までにご検証のうえ、DBエンジンアップグレードを実施してください。
廃止日以降の対応
- 廃止日時点で残っている廃止対象のDBサーバーについては、弊社にて自動でDBエンジンアップグレードが実行されます。
- メジャーバージョンのアップグレードでは、たとえば、お客様の利用方法によって旧バージョンとの間に互換性の問題が発生し、正常に動作しなくなる可能性があります。
- お客様にて廃止日までに事前に検証し、お客様のタイミングでDBエンジンアップグレードを実施してください。
- 自動DBエンジンアップグレードにて発生した互換性の問題などを含み、お客様サービスへの影響やプログラムやデータの消失若しくは破損等が生じた場合であっても、当社は一切の責任を負いません。
フィードバック
サービス利用中のトラブルは、サポート窓口にお願いします。
お役に立ちましたか?