web-dev-qa-db-ja.com

MySQL 5.6からMySQL 5.7へのXtraBackupの復元

MySQL 5.6を実行しており、XtraBackup 2.4を使用してバックアップを取得しています。 600GBをはるかに超えるデータセットがあるため、同じバックアップを使用してMySQL 5.7に移行したいと考えています。

そうすることは可能ですか?XtraBackup復元を使用しているときに心配する必要がある長所と短所は何ですか?

1

Xtrabackupは物理バックアップツールであり、同じMySQL(またはMariaDB)バージョンにバックアップおよび復元するためのものです。マイグレーションで動作するようには設計されていません。うまくいくかもしれないし、うまくいかないかもしれない.

したがって、可能であれば、バックアップを新しいインスタンスに復元したい場合は、別のMySQL 5.6インスタンスに復元し、その後そのインスタンスを5.7にアップグレードするのが最善の方法だと思います。

4
dbdemon

助成金

MySQLの各メジャーリリースは、いくつかの点でMySQLスキーマを変更します

たとえば、私が答えた投稿( MySQLサービスはユーザーに特権を付与しようとした後に停止します )で、mysql.userに異なる数の列があることを述べました。

更新された列数のリストは次のとおりです

このクエリを実行すると

SELECT COUNT(1) column_count FROM information_schema.columns
WHERE table_schema='mysql' AND table_name='user';

あなたは次の番号をする必要があります

  • 45を取得した場合、MySQL 5.7
  • 43を取得した場合、MySQL 5.6
  • 42を取得した場合、MySQL 5.5
  • 39を取得した場合、MySQL 5.1
  • 37を取得した場合、MySQL 5.0

MySQL 5.6バックアップをMySQL 5.7サーバーに復元すると、処理する権限の物理的な調整がずれる場合があります。

MySQLスキーマファイル

MySQLスキーマのInnoDBテーブルの数もメジャーリリース間で変化します。

Dec 09, 2017に戻って、私は答えました エラー1031(HY000): 'proc'のテーブルストレージエンジンにはこのオプションがありません とInnoDBテーブルがMySQLスキーマで使用され始めたときに議論されました。

MySQL 5.6では、5つのテーブルでした。 MySQL 5.7では19になりました。MySQL8.0では、31のテーブルすべてがInnoDBです。

最終的な考え

Xtrabackupが復元された直後にMyISAMからInnoDBへのテーブルの変換を実行するには、何らかのmysql_upgradeコマンドを実行する必要がある場合があります

2
RolandoMySQLDBA