web-dev-qa-db-ja.com

古いバージョンのmariadb / mysqlダンプを新しいバージョンで使用できますか?

私はmariadb/mysqlの初心者です。完全にバックアップしたい。

どうやらこれが方法です(私が間違っている場合は修正してください):

mysqldump \
  -h... -u... -p... \
  --hex-blob --routines --triggers \
  --all-databases \
  --add-drop-database --add-drop-table \
  | gzip > backup.sql.gz

しかし、 この答え によると:

欠点は、この方法で作成されたmysqldumpは、mysqldumpが生成されたものと同じmajotリリースバージョンのmysqlにのみ再ロードできることです。つまり、MySQL 5.0データベースのmysqldumpを5.1または5.5にロードすることはできません。理由 ? mysqlスキーマは、メジャーリリース間で完全に異なります。

それは2011年に書かれました-それはまだ本当ですか?

1
lonix
major   Release Candidate   General Availability
8.0     2017-09-21 8.0.3    2018-04-19 8.0.11
5.7     2015-04-08 5.7.7    2015-10-21 5.7.9
5.6     2012-09-29 5.6.7    2013-02-05 5.6.10
5.5     2010-09-13 5.5.6    2010-12-03 5.5.8
5.1     2007-09-24 5.1.22   2008-11-14 5.1.30
5.0     2005-09-22 5.0.13   

(MariaDBのGA日付がありません。)

別のメジャーバージョンでmysqldumpを使用するにはtryを使用できますが、mayには非互換性があります。

「古い」mysqldumpは「新しい」dbを理解できない場合がありますが、「新しい」mysqldumpが「古い」データを正しく読み取る可能性が高いことに注意してください。

いくつかの注目すべき非互換性:

TYPE --> ENGINE  (4.1?)
fractional seconds (new in 5.6.4 / 10.0)
VISIBLE indexes  (8.0)

8.0のmysqldumpは、デフォルトを含めることを主張していますが、VISIBLEの「新しい」オプションです。これにより、8.0のmysqldumpによって取得された(任意のバージョンの)ダンプを移動し、そのダンプをMySQL 8.0以外のMySQL/MariaDBにロードすると、混乱が生じます。

次のようなコメントに気付くでしょう:これにより、(ほとんどの場合)ダンプがどのバージョンでも機能します。

/*!50100 PARTITION BY ... */

つまり、「5.1以降で処理できますが、ターゲットバージョンが5.1より古い場合は、これをコメントとして扱います。」警告:MariaDBの番号付けがMySQLから分岐したため、このコメントのスタイルは何かを台無しにします。

新しいバージョンに移行する必要があるときに、将来的に問題が発生するかどうか尋ねています。その場合は、今日それを考慮に入れて、リンクされた質問で指定されている別のアプローチを使用する必要があります。

それらは常に1つのバージョンからnextメジャーバージョンへのダンプを許可します。アップグレードの主要な方法です。バージョンをスキップするmayしゃっくりが発生しますが、それでもめったに問題が発生することはありません。

2
Rick James