有谁知道为什么 MYSQLDUMP 在使用以下指令运行时只会执行数据库的部分备份:
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" databaseSchema -u root --password=rootPassword > c:\backups\daily\mySchema.dump
有时会执行完整备份,有时会在仅包含数据库的一小部分后停止备份。这个分数是可变的。
该数据库确实有数千个表,总计约 11Gb。但是这些表中的大多数都很小,只有大约 1500 条记录,很多只有 150 - 200 条记录。由于存储的频率数据,这些表的列数可能有数百个。
但我被告知 MySQL 中模式中的表数量不是问题。在正常操作期间也没有性能问题。
并且使用单个表的替代方案实际上并不可行,因为所有这些表都有不同的列名签名。
我应该补充一点,数据库在备份期间正在使用中。
在使用指令集运行备份之后:
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" mySchema -u root --password=xxxxxxx -v --debug-check --log-error=c:\backups\daily\mySchema_error.log > c:\backups\daily\mySchema.dump
我明白了:
mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE '\_dm\_10730\_856956\_30072013\_1375194514706\_keyword\_frequencies'': Error on delete of 'C:\Windows\TEMP\#sql67c_10_8c5.MYI' (Errcode: 13) (6)
我认为这是一个权限问题。
我怀疑我的架构中的任何一张表都在 2GB 范围内。
我在具有 8 Gb 内存的 Windows 7 64 位服务器上使用 MySQL Server 5.5。
有任何想法吗?
我知道更改 MySQL 可以打开的文件数 open_files_limit 参数可能会解决这个问题。
另一种可能性是来自反病毒产品的干扰,如下所述: