MySQL 的备份可以透过直接复制 MySQL 数据库目录(冷备份),或者用 mysqldump 汇出数据库的完整 SQL 语句实现(热备份),以下是两种方法的优/缺点,以及实现方法:
冷备份
这种方法最大的好处是简单,备份只要直接复制数据库目录,还原则只要将备份目录抄回原来位置便可以,而且速度会较快。但缺点是冷备份时必须要关闭 MySQL,如果 MySQL 在执行时进行冷备份,备份档可能会有不完整及损毁的情况,以下是冷备份步骤:
1. 关闭 MySQL:
# /etc/rc.d/init.d/mysqld stop
2. 把 MySQL 的资料目录(包括 ibdata1, ib_logfile0, ib_logfile1 等)完整复制到另一个硬盘里面。
3. 开启 MySQL:
# /etc/rc.d/initd/mysql start
这样就完成了,至于还原的过程同样简单,关闭 MySQL 后直接将资料目录替换原来的目录,并重启 MySQL 即可。
热备份
热备份的好处是不需要中断 MySQL 的服务,但速度较慢,以下是实现方法:
执行以下指令汇出所以数据库:
# mysqldump -u root -p –all-databases > backup.sql;
以上指令的意思为,”-u root” 指定执行的 MySQL 用户,”-p” 会弹出输入 MySQL root 密码提示,”–all-databases” 是备份所有数据库,”> backup.sql” 是指定汇出的备份档案为 backup.sql
这样就完成了,但如果数据库很大,那么可能需要等一段时间,我的经验备份大约 1GB 的数据库,需时大约 2 分钟。
而还原的指令如下:
# mysql -u root -p < backup.sql