mysql备份恢复

将数据库数据从一台服务器迁移到另一台服务器

按照备份的量或者业务可以分为三种备份,分别是完全备份、增量备份、差异备份。

数据备份的方式: MyISAM Innodb

·热备份:数据库启动,读写不影响 N Y

·温备份:读不影响,写不行 (lock tables) Y Y

·冷备份:数据库掉线,读写都不行 Y Y

逻辑备份,适合数据量比较小的情况

使用mysqldump.exe(SQL备份)进行数据库导出。

mysqldump -uroot -p --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob --single-transaction passport > /root/temp/passport20190121.sql;

再将数据库导入
mysql.exe -h 数据库 < 文件位置
或source

SQL备份因为需要备份结构,因此产生的备份文件特别大,因此不适合特大型数据备份,也不适合数据变换频繁性的数据库备份

物理备份,数据库文件的data文件拷贝

以表”Table”为例:
如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/ d a t a b a s e n a m e / ” 目 录 中 . 如 类 型 是 I n n o D B , 数 据 文 件 则 存 储 在 ” databasename/”目录中. 如类型是InnoDB, 数据文件则存储在” databasename/.InnoDB,innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.
MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。
而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“.frm”文件,不像MyISAM那样还“.MYD,.MYI”文件。
MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:同时拷贝innodb数据库表“
.frm”文件和innodb数据“ibdata1”文件到合适的位置。

二进制log文件的增量恢复

一般来说开启binlog日志大概会有1%的性能损耗。

binlog日志有两个最重要的使用场景
1)MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到
master-slave数据一致的目的。
2)自然就是数据恢复了。

binlog日志需要使用mysql的自带的mysqlbinlog工具进行解码,执行:mysqlbinlog mysql-bin.000005可以将二进制文件转为可阅读的sql语句,然后再进行对应的恢复。

binlog日志包括两类文件
1)二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件
2)二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。

一般数据库备份采用全备 + mysql-binlog日志的方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值