逻辑备份: 备份结果为 SQL 语句(MyISAM会锁表) 举例:mysqlDump
物理备份: 对数据库目录的拷贝, 相对速度快

备份与还原

全量备份 mysqldump
mysqldump -u root -p Password [database name] > [dumpFile.sql]

  1. --all-databases , -A
  2. 导出全部数据库。
  3. --complete-insert, -c
  4. 使用完整的insert语句(包含列名称)。
  5. 这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。
  6. mysqldump -uroot -p --all-databases --complete-insert
  7. --password, -p
  8. 连接数据库密码
  9. --user, -u
  10. 指定连接的用户名。
  11. --add-drop-database
  12. 每个数据库创建之前添加drop数据库语句。
  13. mysqldump -uroot -p --all-databases --add-drop-database
  14. --add-drop-table
  15. 每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项)
  16. mysqldump -uroot -p --all-databases (默认添加drop语句)
  17. mysqldump -uroot -p --all-databases skip-add-drop-table (取消drop语句)

实例

  • 备份MySQL数据库的命令
    mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql
    mysqldump -u[root] -p[jsb] [dbname] > backup.sql
  • 直接将MySQL数据库压缩备份
    mysqldump -h主机名 -u用户名 -p密码 数据库名字 | gzip >备份的数据库名字.sql.gz
  • 备份MySQL数据库某个(些)表
    mysqldump -h主机名 -u用户名 -p密码 数据库名字 数据库表名1 数据库其他表名2 > 备份数据库名字.sql
  • 同时备份多个MySQL数据库
    mysqldump -h主机名 -u用户名 -p密码 —databases 需要备份的数据库名字1 需要备份的数据库名字2 > 备份数据库名字.sql

还原

还原.
mysql -h主机名 -u用户名 -p密码 需要恢复的数据库名字 < 已备份的数据库名字(见上).sql

Xtrabackup增量备份

MySQL冷备、mysqldump、MySQL热拷贝都无法实现对数据库进行增量备份。在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大,需要定制数据备份策略。例如每周实用完整备份,周一到周六实用增量备份。而Percona-Xtrabackup就是为了实现增量备份而出现的一款主流备份工具,xtrabakackup有2个工具,分别是xtrabakup、innobakupe。

在InnoDB内部会维护一个redo日志文件,我们也可以叫做事务日志文件。事务日志会存储每一个InnoDB表数据的记录修改。当InnoDB启动时,InnoDB会检查数据文件和事务日志,并执行两个步骤:它应用(前滚)已经提交的事务日志到数据文件,并将修改过但没有提交的数据进行回滚操作。

性能测试mysqlslap

https://blog.csdn.net/sj349781478/article/details/78224615