MySQL备份与还原

一、数据备份 1. mysqldump方式: 1) shell> mysqldump [options] db_name [tables]>backupname.sql 备份一个数据库,当有tables时,则只备份该数据库中的tables表。 例: shell>mysqldump -u aiml -p students student>D:/bksql.sql Enter password: **** 2) shell> mysqldump [options] --dabatase DB1 [DB2 DB3...]>backupname.sql 备份多个数据库 例: shell>mysqldump -u root -p --database students p1>D:/twodb.sql Enter password: **** 3) shell> mysqldump [options] --all-database>backupname.sql 备份所有数据库 例: shell>mysqldump -u root -p --all-database>D:/alldb.sql Enter password: **** 2. mysqlhotcopy方式: 如果不能停止MySQL服务器,可以采用mysqlhotcopy工具。mysqlhotcopy工具是一个Perl脚本,主要应用在Linux操作系统中。 mysqlhotcopy工具使用lock tables、flush tables和cp来进行快速备份。原理:先将要备份的数据库加上一个读操作锁,然后,用flush tables将内存中的数据写回到硬盘上的数据库中,最后,把要备份的数据库文件复制到目标目录。 shell> mysqlhotcopy [options] dbname1 dbname2… backupDir/ 注:mysqlhotcopy只适合MyISAM存储引擎。 3. 直接复制整个数据目录 该方法虽然简单快速,但不是最好的备份方法。因为,实际情况可能不允许停止MySQL服务器。而且,这种方法对InnoDB存储引擎不适用,且还原时最好是相同版本的MySQL数据库。 二、数据还原 1. 使用mysql命令还原 shell> mysql –u root –p [dbname]<backup.sql 2. 直接复制到数据库目录 使用mysqlhotcopy和直接复制整个数据目录方式备份的数据库数据,可以通过这种方式还原,但是注意,必须保证两个MySQL数据库的主版本号是相同的,且这种方式对InnoDB类型表不适用。
posted @ 2011-06-17 16:19  SillyCoder  阅读(160)  评论(0编辑  收藏  举报