私はVagrantとOracleVMを使用してDrupal 7.を実行しています。サイトを稼働させて、データベースをインポートしようとしています。これまでにdrush cc
とDrushキャッシュをクリアしてから、
drush sql-cli < mydb.sql
Drushコマンドには非常に長い時間がかかり、それが何かを実行しているかどうかはわかりません。データベースファイルはギガバイト未満です。
これを機能させるために私は何ができますか、またはより良い方法はありますか?
大規模なSQLインポートに加えてオーバーヘッドドラッシュがどの程度の影響を与えるかはわかりません。これは、小さなインポートとクエリにのみ使用しました。ドラッシュのオーバーヘッドを取り除く代替手段として、mysqlクライアントを試すことができます。
パイプビューア をVMにインストールできる場合は、インポートを使用するコマンドの進行状況を表示できます。
pv mydb.sql | drush sql-cli
またはドラッシュオーバーヘッドなしで
pv mydb.sql | mysql -u <DB_USER> -p<DB_PASS> <YOUR_DB>
データベースが小さいほどインポートが速くなるため、これらを削除することがオプションの場合、_drush cc all
_および_drush watchdog delete all
_を使用すると処理速度が大幅に向上します。
また、Shawn Connの答えを拡張するには、Drushオーバーヘッドなしでパイプビューアを使用し、_drush sql-connect
_ではなく_drush sql-cli
_を使用する場合は、Drushを使用してデータベース資格情報を検索できます。 $()
を使用して、_drush sql-connect
_が出力するmysql行を実行します。
_pv mydb.sql | $(drush sql-connect)
_
SQLファイルをダンプするには、drush sql-dump
を使用して、ダンプ時に大きなデータベースをトリミングすることをお勧めします。これにより、ダンプ時に特定のテーブルをスキップする追加オプション(キャッシュテーブルや移行テーブルなど)を指定できるという利点があります。
これはコマンドラインで指定するか(drush help sql-dump
を参照)、 example.drushrc.php
のようにdrushrcファイルで構成します。
$options['structure-tables']['common'] = array('cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog');
$options['skip-tables']['common'] = array('migration_*');
または、リモート間でsql-sync
またはsql-dump
を使用している場合のように、ホストごとに:
$aliases['global'] = array(
// These options will only be set if the alias is used with the specified command.
'command-specific' => array(
'sql-sync' => array(
'structure-tables-key' => 'common',
'skip-tables-key' => 'common',
'structure-tables' => array(
// You can add more tables which contain data to be ignored by the database dump
'common' => array('cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog'),
),
'skip-tables' => array(
'common' =>array('migration_*'),
),
),
'sql-dump' => array(
'ordered-dump' => FALSE,
'structure-tables-key' => 'common',
'skip-tables-key' => 'common',
),
), // end: command-specific
);
次に、次の方法でこの設定をホストにロードできます。
$aliases['stage'] = array(
// ...
) + $aliases['global'];
次に、次のようなことを試すことができます:
drush @source sql-dump | drush @self sql-cli
進行状況を監視するには、パイプビューア(pv
)を(... | pv | ...
のように)間に追加します。
以下も参照してください。
バックアップと移行 モジュールには、次のような選択したテーブルを除外する機能があります。
除外するデフォルトのテーブル/データ に関する問題には、移行しないテーブルの興味深いリストも含まれています(適切なものを選択してください)。
バックアッププロファイルを作成するとき、モジュールはデフォルトで以下のテーブルを設定して、問題に応じてデータを除外します #209647:除外アドバイス :
- キャッシュ
- cache_filter
- cache_calendar_ical
- cache_menu
- cache_page
- cache_views
- セッション
- search_dataset
- search_index
- search_keywords_log
- search_total
- 番犬
- アクセスログ
- devel_queries
- devel_times
あなたは問題を解決したようですが、ここに私のためのものがあります:
drush sql-dump> mydb.sql