一、Mysql逻辑备份
1. 使用mysqldump命令生成INSERT语句备份
此方法类似于oracle的expdp\exp工具
语法如下:
mysqldump [arguments] > file_name.sql
使用帮助:
[root@gc ~]# mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
mysqldump备份常用方法:
1.导出一个数据库
mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
例如
# mysqldump -hhostname -uroot -ppwd dataname >dataname.sql
2.备份服务器上所有数据库
例如
# mysqldump --all-databases > allbackupfile.sql
3.备份一个表
mysqldump -u用户名 -p密码 数据库名 表名> 导出的文件名
例如:
# mysqldump -hhostname -uroot -ppwd dataname specific_tabname1 specific_tabname2> dataname_specific_tabname.sql
4.导出一个数据库结构
例如
# mysqldump -hhostname -uroot -ppwd -–add-drop-table --no-data dataname > dataname_nodata.sql
--no-data:没有数据
–-add-drop-table 在每个create语句之前增加一个drop table命令
5.直接将MySQL数据库压缩备份
例如
# mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
6.同时备份多个MySQL数据库
例如
mysqldump -hhostname -uusername -ppwd --databases dbname1 dbname2 dbname3 > multibackupfile.sql
7.对于支持事务级的存储引擎,为了保证数据一致性可以采用选项“--single-transaction”
例如
# mysqldump -hlocalhost -uroot -p backup --single-transaction > /tmp/backup3.sql
8.导出特定格式的纯文本文件(生成两个.sql和txt两个文件)
例如:
mysqldump -root -p -T /tmp dbname tablename --fields-enclosed-by=\" --fields-terminated-by=,
--fields-enclosed-by:将字段的内容包装起来的符号
--fields-terminated-by:两个字段的分隔符
如果一次dump多个表的话,每个表都会有sql和txt两个文件;这种特定格式比较适合备份
第二、数据库中的数据处于静止状态
通过锁表参数
--lock-tables 每次锁定一个数据库的表,此参数是默认为true(见上面备份内容实例);
--lock-all-tables 一次锁定所有的表,适用于dump的表分别处于各个不同的数据库中的情况
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29065182/viewspace-1158711/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29065182/viewspace-1158711/