MySql逻辑备份恢复

      

一、Mysql逻辑备份

 

1. 使用mysqldump命令生成INSERT语句备份

此方法类似于oracleexpdp\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/

你可能感兴趣的:(MySql逻辑备份恢复)