我有一个大型数据库,我正在复制到从属服务器.尝试通过常规mysqldump导入它(大约15GB)花了2天时间失败了.所以我正在尝试mysqldump --tab技巧.
我也想使用--use-threads导入 - 但它似乎不是一次做多个表.有什么方法可以判断它是否正常工作?
mysqldump --single-transaction --quick --hex-blob --master-data=1 --tab=/tmp/backup/ apm
Run Code Online (Sandbox Code Playgroud)
在奴隶:
cat *.sql | mysql apm
mysqlimport --lock-tables --use-threads=4 apm /tmp/backup/*.txt
Run Code Online (Sandbox Code Playgroud)
另外:任何想法如何禁用binlog而不编辑conf文件并重新启动服务器?看起来有点愚蠢和缓慢,mysql也将所有数据再次复制到binlog中.
您使用的是MySQL 5.1.7 或更高版本吗?
如果您想测试事情是否确实按预期进行,为什么不使用测试模式并仅使用数据样本,以便运行得更快?
更新 关于 --use-threads 是否有效,我不确定有什么方法可以明确检查。但是,在我刚刚使用约 130M 数据运行的一些测试中,我看不到任何真正的差异:
mysqlimport --lock-tables --debug-info --use-threads=2 test /tmp/test/*.txt
Records: 2076063 Deleted: 0 Skipped: 0 Warnings: 0
User time 0.02, System time 0.08
Maximum resident set size 3884, Integral resident set size 0
Non-physical pagefaults 737, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 1340, Involuntary context switches 17
----
mysqlimport --lock-tables --debug-info --use-threads=4 test /tmp/test/*.txt
Records: 2076063 Deleted: 0 Skipped: 0 Warnings: 0
User time 0.03, System time 0.09
Maximum resident set size 3884, Integral resident set size 0
Non-physical pagefaults 738, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 1343, Involuntary context switches 41
----
mysqlimport --lock-tables --debug-info --use-threads=8 test /tmp/test/*.txt
Records: 2076063 Deleted: 0 Skipped: 0 Warnings: 0
User time 0.02, System time 0.09
Maximum resident set size 3884, Integral resident set size 0
Non-physical pagefaults 738, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 1341, Involuntary context switches 30
Run Code Online (Sandbox Code Playgroud)