欢迎来到天天文库
浏览记录
ID:35294749
大小:38.00 KB
页数:7页
时间:2019-03-23
《mysql备份方法总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、总结下几种常用的MySQL备份方法:一、直接拷贝数据库文件a、首先把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入mysql>FLUSH TABLES WITH READ LOCK;b、使用tar或cp等命令备份数据库文件,这里使用tartar zcvf /backup/mysql_$(date "+%Y%m%d").tar.gz /var/lib/mysqlc、备份完后解锁数据表mysql> unlock tables;这种方法备份出来的数据恢复也很简单,直接拷贝回
2、原来的数据库目录下即可。需要注意,对于 Innodb 引擎的表来说,还需要备份其日志文件,即 ib_logfile* 文件。因为当 Innodb 表损坏时,就可以依靠这些日志文件来恢复。二、 使用mysqlhotcopy备份mysqlhotcopy 是一个 PERL 程序,使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。mysqlhotc
3、opy 只能用于备份 MyISAM。例:把数据库test备份到/backup目录下:/usr/local/mysql/bin/mysqlhotcopy -uroot -pxxx test /backupmysqlhotcopy在执行前将会锁定数据库,执行完毕后将自动释放锁定还原:mysqlhotcopy 备份出来的是整个数据库目录,还原时直接拷贝覆盖就行了,注意权限问题cp -rf /backup/test /var/lib/mysql/注意,想要使用 mysqlhotcopy,必须要有 SELEC
4、T、RELOAD(要执行 FLUSH TABLES) 权限,并且还必须要能够有读取 datadir/db_name 目录的权限。三、使用mysqldump备份mysqldump 是SQL级别的备份机制,它将数据表导成 SQL 脚本文件,可以方便的在不同的mysql版本间进行恢复或升级,这也是最常用的备份方法。下面介绍下mysqldump的参数:–compatible=name它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、mysql3
5、23、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。–complete-insert,-c导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎
6、使用该参数,至少我不推荐。–default-character-set=charset指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。–disable-keys告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,
7、这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。–extended-insert = true
8、false默认情况下,mysqldump 开启 –complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。–hex-blob使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。–lock-all-tables,-x在开始导出
9、之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 –single-transaction 和 –lock-tables 选项。–lock-tables它和 –lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 –single-transaction 选项。–no-create-info,-t只导出数据,而不添加 CRE
此文档下载收益归作者所有