我有一个 mysql 服务器的 root 访问权限,我需要转储服务器内的所有数据库。我尝试了一个简单的 mysqldump,但由于数据库和表的大小,服务器和 pc 似乎被阻塞了。我可以“优化”这个 DUMP 避免锁定服务器(和 PC)吗?
太感谢了!
编辑:
我想从 Mysql 服务器中导出所有数据库。我需要了解将哪些选项传递给 mysqldump 以避免阻塞:
- Mysql 服务器 <---- 它不能关闭
- 将要执行此 DUMP 的 PC
从命令行触发转储命令。:
mysqldump <other mysqldump options> --routines > outputfile.sql
如果我们只想备份存储过程和触发器,而不是 mysql 表和数据,那么我们应该运行类似:
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql
如果您需要将它们导入到另一个数据库/服务器,则必须运行以下命令:
mysql <database> < outputfile.sql
您可以禁用锁定:
mysqldump --skip-lock-tables
当然,您将无法以这种方式创建一致的转储,因此我不建议使用该选项。
当仅使用 MyISAM 和 ARCHIVE 表时,您可能需要考虑使用 mysqlhotcopy(包含在常规 mysql 包中)。其他表引擎(如 InnoDB)也有类似的软件可用。
另一种选择是使用复制从属设备进行备份。