6

サーバー全体をBarracudaファイル形式と動的行形式を使用するように変換しています。これが私がしたことです:

  1. 完全なmysqldump
  2. 構成済み*innodb_file_per_table=1*および*innodb_file_format= barracuda *
  3. すべてのmysqlデータをリセットしました。
  4. ダンプされたすべてのデータベースをインポートしました。

テーブルを再作成するためにすべてのデータベースを再度作成していたので、すべてがバラクーダであると期待していましたが、代わりにほとんどがアンテロープです。

mysqldumpまたはインポート時にrow_formatを指定する方法はありますか?

注:誰かが理由を尋ねる前に、私はさまざまなファイル形式を試して、現在680のデータベースと合計326kのテーブルと40Gbを備えたサーバーで最高のパフォーマンスをテストします。現在の主な問題は、mysqlエンタープライズバックアップがすべてをバックアップするのに時間がかかりすぎることです。

4

1 に答える 1

13

これが私がそれをやることになる方法です:

フルダンプの後、sedを使用して最終ファイルを変換しました。

cat full.sql | sed -e 's/ROW_FORMAT=COMPACT/ROW_FORMAT=DYNAMIC/'  | sed -e '/ROW_FORMAT/!s/^) ENGINE=InnoDB/) ENGINE=InnoDB ROW_FORMAT=DYNAMIC/' > full.mod.sql

この行は、ROW_FORMATをCOMPACTからDYNAMICに変更し、フォーマットが指定されていない場合はROW_FORMAT=DYNAMICを追加します。

于 2011-11-23T19:18:24.630 に答える