zoukankan      html  css  js  c++  java
  • MySQL之备份恢复

    六:备份与恢复 (优先掌握)

    语法
    mysqldump  -u用户名  -p密码 -h主机名  -P端口   -A > 文件名.sql
    
    
    ------------------mysqldump的参数------------------------
    -u, --user=name  //指定连接的用户名
    
    -p, --password[=name]  //指定用户的密码,这里可以指定参数名,
    
    -S, --socket=name  //指定socket文件连接  用于本地连接
    
    -h, --host=name		//指定连接的服务器名
    
    -P, --port=端口		//指定连接的服务器端口号
    
    –tables			//导出指定的表对象,格式为 ‘dbname tablename’,如mysqldump -S /tmp/mysql3306.sock test t1,默认会覆盖-B, --databases参数
    
    –single-transaction  //在备份开始前,先执行start transaction命令,以此来获得备份的一致性,当前该参数只对InnoDB存储引擎有效。当启用该参数并进行备份时,确保没有其他任何的DDL语句执行(ALTER TABLE, DROP TABLE, RENAME TABLE,TRUNCATE TABLE),因为一致性读并不能隔离DDL操作。启用此参数时,参数--lock-tables将自动禁用。
    
    -A, --all-databases 	//备份所有数据库
    
    -B, --databases	//备份指定的数据库,如mysqldump -S /tmp/mysql3306.sock --database db1 db2
    
    –default-character-set=name 	//设置字符集,默认为以服务器设置的字符集进行导出。
    
    -l, --lock-tables	//以只读方式依次锁住每个库下的所有表,默认启用。使用--skip-lock-tables禁用。不能保证所有库下的表备份一致。
    
    -x, --lock-all-tables		//在备份过程中,对所有库的所有表,同时锁定。若指定了本参数,则会自动禁用--single-transaction和-l, --lock-tables参数。
    
    –add-drop-database		//在任何创建库语句前,附加drop database语句。
    
    –add-drop-table			//在任何建表语句钱,附加drop table语句。默认启用。如果不希望生成drop table语句,可以通过--skip-add-drop-table参数禁用。
    
    –add-drop-trigger		//创建任何触发器前,附加drop trigger语句。
    
    –add-locks		//在生成的insert语句钱附加lock语句,默认启用。使用 --skip-add-locks来禁用。
    
    –allow-keywords		//允许创建使用关键字的列名。
    
    –master-data[=#]	//该参数有1和2两个值,如果值等于1,就会在备份文件中添加一个change master语句。如果值为2,就会在备份文件中添加一个带有注释符号的change master语句。
                 
    –dump-slave[=#]		//该参数用于在从库备份数据,在线搭建新的从库时使用。此参数也有1和2两个值。值为1时,在备份文件中添加一个change master语句。值为2时,就会在备份文件中添加一个带有注释符号的change master语句。
                
    -t, --no-create-info	//备份过程中,只备份表数据,不备份表结构            
                
    -d, --no-data		//备份过程中,只备份表结构,不备份表数据            
                
    -c, --complete-insert	//使用完整的insert语句会包含表中的列信息,这么做可以提高插入效率。            
    -q, --quick		//表示导出时不会先将数据加载至buffer中,而是直接输出。默认启用,使用 --skip-quick禁用  
                
    -w, --where=name	//导出给定条件的数据            
    
    备份与恢复
    # 备份数据
    
    ---------------------1. 备份命令----------------------
    # 格式:
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
    
    # 示例
    mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql
    
    
    
    -----------------------2. 备份压缩-----------------------
    # 格式
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz
    
    # 示例
    mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz
    
    
    
    -------------------------3. 备份同个库多个表------------
    # 格式:
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql
    
    # 示例
    mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql
    
    
    
    ----------------------4. 同时备份多个库--------------
    # 格式
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql
    
    # 示例
    mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql
    
    
    
    ----------------------5. 备份实例上所有的数据库-------------------
    # 格式:
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql
    
    # 示例
    mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql
    
    
    
    ---------------6. 备份数据出带删除数据库或者表的sql备份-----------
    # 格式:
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql
    
    # 示例
    mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql
    
    
    
    --------------------7. 备份数据库结构,不备份数据-------------
    # 格式:
    mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql
    
    # 示例
    mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql
    
    
    
    
    
    ---------------# 恢复数据---------------------
    第一种:退出数据库之后的恢复
    mysql -u用户名  -p密码  < filename.sql;
    
    第二种:在数据库中
    source filename;
    
    第三种:迁移数据库
    mysqldump -h 源IP  -u用户名  -B 数据库名称 | mysql -h 目标IP -u用户名 -p用户密码
    
    常用的备份工具:链接
    备份方法 备份速度 恢复速度 便捷性 功能 一般用于
    cp 一般,灵活性低 很弱 少量数据备份
    mysqldump 一般,可无视存储引擎 一般 中小型数据量备份
    lvm2快照 一般,支持热备,速度快 一般 中小型数据量备份
    xtrabackup 较快 较快 实现innodb热备,对存储引擎有要求 强大 较大规模的备份
  • 相关阅读:
    显示进度条
    LEAVE&nbsp;LIST-PROCESSING&nbsp;…
    博主心声
    sap设置权限
    快捷键大全
    VS快捷键
    vs中图片资源的横竖屏的影响
    error C4430: 缺少类型说明符
    cocos2dx3.3 使用cocos studio2.0 导出的.csb文件
    让cocos2d-x 3.0读取cocostudio中的csb文件
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11196939.html
Copyright © 2011-2022 走看看