Answers:
的备份和迁移模块具有这样的特征,以排除选定的表,如:
有关要排除的默认表/数据的问题,还包括一个有趣的表列表,这些表将不被迁移(选择适合您的表),即(引用它):
创建备份配置文件时,默认情况下,模块会根据问题#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 cc all
和drush watchdog delete all
将大大加快速度,如果下探这些是一个选项。
另外,要扩展Shawn Conn的答案,您可以使用没有Drush开销的管道查看器,并且如果使用drush sql-connect
代替,您仍然可以使用Drush为您查找数据库凭据drush sql-cli
。只需用于$()
执行drush sql-connect
打印出的mysql行:
pv mydb.sql | $(drush sql-connect)
最好通过drush sql-dump
转储SQL文件来修剪大型数据库。这使您具有优势,可以指定其他选项以在转储时跳过特定表(例如缓存或迁移表)。
可以在命令行中指定(请参阅:),drush help sql-dump
也可以在drushrc文件中对其进行配置,如下所示example.drushrc.php
:
$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 | ...
)之间添加管道查看器()。
也可以看看: