• 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热备,对存储引擎有要求 强大 较大规模的备份
  • 相关阅读:
    在日本被禁止的コンプガチャ設計
    Starling常见问题解决办法
    Flixel引擎学习笔记
    SQLSERVER中修复状态为Suspect的数据库
    T4 (Text Template Transformation Toolkit)实现简单实体代码生成
    创建Linking Server in SQL SERVER 2008
    Linq to Sql 与Linq to Entities 生成的SQL Script与分页实现
    Linq to Entity 的T4 模板生成代码
    在VisualStudio2008 SP1中调试.net framework 源代码
    使用HttpModules实现Asp.net离线应用程序
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11196939.html
Copyright © 2020-2023  润新知