新网创想网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Mysql(三)------数据迁移备份(针对数据量很大的情况)

新跳槽了一家公司,上来就是数据库调优和数据迁移。调优那部分后面再补上来。公司目前用的是5.1的数据库,很老了,而且随着业务的发展需要做读写分离和主从复制。想把所有的数据都挪到新库上去。但这个库大概有60G的数据。
主要思路:

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的凤县网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

  1.创建用户,并授权

2.搭建主从,做到主从同步,数据目前先保持一致,在切换主从同步切换ip
MySQL5.1已有数据量了,为保证数据的一致性。故需要锁库,等数据导入后再解锁

3.需要注意从库和主库的引擎,字符集
show variables like 'character_set%'; --查看当前环境的character_set
  show variables like 'collation%'; --查看当前的collation

4.数据搬完后做数据校验,校验一致性
 采用pt-table-checksum  进行校验用pt-table-sync恢复一致
Zabbix定时监控mysql是否一致,如果不一致,调用脚本自动修复

统计了几种方式:
一·版本相同的数据库


 1.如果版本相同的话,直接停库,拷贝(cp、tar,gzip,cpio) 把mysql的整个目录打包发送到新的主机上。
 这个是最简单粗暴的,也是最有效,而且数据也是很一致的

2。也可以采用percona-xtrabackup 物理备份 + binlog
 借助第三方软件备份,好处:它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份;
为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。

3.mysqldump备分
      a.主机A备份成sql文件,在导入到主机B数据库里,这种方式需要长时间锁表,而且需要大量时间
        mysqldump -uvnum  -pvnum@123  --force data_base_name  >  /data/data_base_name.sql
        或直接传到对应主机下的sql文件,60个G的话,导出导入时间差不多要五个小时左右,太慢了

        b.tar备份
        备份并压缩
        mysqldump -uusername -ppassword dbname | gzip > /data/wwwroot/www/dbname.sql.gz
    解压并还原
        gunzip < /root/dbname.sql.gz | mysql -uusernameb -ppasswordb dbnamenew
        时间相对减少点

        最佳方式介绍
        还有一种直接将数据库A直接转移到数据库B的方式(在服务器A中执行)但要求网速一定要好
        mysqldump --default-character-set=utf8mb4 --host=127.0.0.1 -uusername -ppassword 
        1.必须保证服务器B的数据库能够服务器A访问,且B服务器存在对应的库
        2.--opt命令可选,建议加上。等同于指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以给出很快的转储操作并产生一个可以很快装入MySQL服务器的转储文件。
        3.--default-character-set=utf8mb4 指定该数据库连接的字符类型。如果服务器默认未utf8的话,导出的数据可能会丢失四字节的unicode信息(表情之类的)
        4.-C 客户端和服务器之间启用压缩传递所有信息。当然得要有咯。

mysql通过命令行快速转移数据库,一个命令(mysqldump)完成数据备

本文名称:Mysql(三)------数据迁移备份(针对数据量很大的情况)
网站路径:http://wjwzjz.com/article/jpjdee.html
在线咨询
服务热线
服务热线:028-86922220
TOP