42-数据备份

1.使用MySQLdump命令备份
  • MySQLdump是MySQL提供的一个 非常有用的数据库备份工具
  • MySQLdump命令执行时,可以将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE和INSERT语句,使用这些语句可以重新创建表和插入数据
mysqldump -u user -h host -p password dbname [tb_name,[tb_name ...]]>filename.sql;

右箭头">"告诉MySQLdump将备份数据表的定义和数据都写入备份文件;filename为备份文件的名称

例子:

/*备份单个数据库的所有表*/
mysqldump -i root -p test_db >C:/backup/test_db.sql
/*备份数据库的某个表*/
mysqldump -u root -p test_db test_tb >C:/backup/test_tb.sql
/*备份多个数据库*/
mysqldump -u root -p --databases test_db1,test_db2 >C:/backup/test_db12.sql
  • 使用--all-databases参数可以备份系统中所有的数据库
  • 使用--all-databases时,不需要指定数据库名称
mysqldump -u user -h host -p --all-databases > filename.sql

如果在服务器上进行备份,并且表均为MyISAM表,应考虑使用MySQLhotcopy,因为可以更快的进行备份和恢复

MySQLdump还有一些其他选项可以用来定制备份过程:

2.直接赋值整个数据库目录

因为MySQL表保存为文件方式,所以可以直接赋值MySQL数据库的存储目录及文件进行备份

  • 这是一种简单,快速,有效的备份方式
  • 要想保持备份的一致性,备份前需要对相关的表执行LOCK TABALE操作,然后对表执行FLUSH TABLE;这样当赋值数据库目录中的文件时,允许其他客户继续查询表;FLUSH TABLES语句确保开始备份前将所有激活的索引页写入硬盘
  • 当然也可以停止MySQL服务在进行备份操作
  • Windows平台下默认的存放目录:"C:\Cocuments and Settings\All Users\Application Data\MySQL\MySQL Server 5.7\data";Linux平台下:"/var/lib/MySQL/"
  • 这种方法虽然简单,但并不是最好的办法;因为这种方法对InnoDB存储引擎的表不适用;使用这种办法备份的数据最好恢复到相同的版本的服务器中,不同的版本可能不兼容

在MySQL版本号中,第一个数据表示主版本号,主版本号相同的MySQL数据库文件格式相同

3.使用MySQLhotcopy工具快速备份
  • MySQLhotcopy是一个perl脚本
  • 使用LOCK TABLES, FLUSH TABLES和cp或scp来快速备份数据库
  • 是备份数据库或单个表的最快的途径
  • 只能允许值数据库目录所在的机器上
  • 只能备份MyISAM类型的表
  • 想要执行MySQLhotcopy,必须可以范文备份的表文件,具有哪些表的SELECT权限,RELOAD权限(一边能够执行FLUSH TABLES)和LCOK TABLES权限
mysqlhotcopy db_name_1,...,db_name_n /path/to/new_directory
  • MySQLhotcopy只是将表所在的目录复制到另一个位置,只能用于备份MyISAM和ARCHIVE表
  • 备份InnoDB类型的数据表时会出现错误信息
  • 由于它复制的本地格式的文件,故也不能移植到其他硬盘或操作系统下

转载于:https://my.oschina.net/majorx/blog/3066989

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值