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 [email protected] --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)完成数据备

原文地址:https://blog.51cto.com/14444348/2419945

时间: 2024-07-31 16:23:46

Mysql数据迁移备份的相关文章

mysql数据迁移

一. 数据迁移简介所谓的数据迁移,就是指将原有的数据库系统迁移到另外一个业务系统上数据迁移的原因是多种多样的,有可能是业务变更.硬件升级.平台切换或升级mysql数据库 迁移的注意事项:(1).相同版本可以迁移(2).注意版本可以使用的引擎(3).低版本可以向高版本进行数据迁移,高版本一般兼容低版本的特性(4).高版本的数据不能向低版本进行数据迁移,会出现数据不兼容的情况(5).迁移是请注意导出数据和备份数据,出现迁移失败时,立即启动备份方案,保证公司业务的正常运行(6).在数据迁移时,要选择用

阿里云 CentOS下面 Mysql 数据迁移

本次Mysql数据迁移, 只是从阿里云的CentOS系统盘中,把mysql的data数据, 迁移到非系统盘中. 起因: 由于购买阿里云时候,  默认的系统盘只有20G.  后又购买了100G磁盘空间, 这时, 需要把原mysql数据, 迁移到新的磁盘分区中. 所有的操作步骤记录如下: 1. 新挂载磁盘分区: mount, 并设置为重启后自动加载. 2. 暂时关闭nginx服务器. 再关闭mysql服务器. 3. 修改/etc/my.cnf配置文件, 将里面的路径, 修改为新磁盘中的, 需要保存m

MySQL数据迁移到MSSQL-以小米数据库为例-测试828W最快可达到2分11秒

这里采用.NET Framework 4.0以上版本中新出现的 ConcurrentQueue<T> 类 MSDN是这样描述的: ConcurrentQueue<T> 类是一个线程安全的先进先出 (FIFO) 集合. ConcurrentQueue<T> 的所有公共且受保护的成员都是线程安全的,可从多个线程同时使用. 共采用两个线程,一个读一个写. ConcurrentQueue<T>的实现方法: (FIFO) 集合: ConcurrentQueue<

MySQL数据的备份还原及数据修复

在日常的生产环境中为什么要进行备份??备份可以使生产中的数据进行有效的灾难恢复:硬件故障.软件故障.自然灾害.误操作测试等数据丢失场景. 备份注意要点能容忍最多丢失多少数据恢复数据需要在多长时间内完成需要恢复哪些数据还原要点做还原测试,用于测试备份的可用性还原演练备份类型完全备份.不分备份完全备份:整个数据集部分备份:只备份数据子集,如部分库或表增量备份.差异备份增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂差异备份:仅备份最近一次完全备份以来变化的

mysql学习之旅-数据迁移-备份-恢复

1.数据迁移 将/tmp/t3.txt中的数据导入到t3表中,数据以逗号为分割符 load data infile ‘/tmp/t3.txt’ into table t3 fields terminated by ','; 将table2表中的数据导出为文件data.txt,以逗号为分隔符 SELECT * INTO OUTFILE 'data.txt' ->     FIELDS TERMINATED BY ',' ->     FROM table2; #####在mysql命令行内执行

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

新跳槽了一家公司,上来就是数据库调优和数据迁移.调优那部分后面再补上来.公司目前用的是5.1的数据库,很老了,而且随着业务的发展需要做读写分离和主从复制.想把所有的数据都挪到新库上去.但这个库大概有60G的数据.主要思路: 1.创建用户,并授权 2.搭建主从,做到主从同步,数据目前先保持一致,在切换主从同步切换ipMysql5.1已有数据量了,为保证数据的一致性.故需要锁库,等数据导入后再解锁 3.需要注意从库和主库的引擎,字符集show variables like 'character_se

MySQL数据迁移问题

最近尝试了一下小型数据迁移.本地迁移,windows平台,修改配置文件中的data_dir项,然后将旧的data文件下的数据文件全部拷贝过去. 之后登陆数据库,竟然1145错误.可以看到数据库的结构,各个表的名称,但是想深入表看其中数据却看不了. 不知道为什么,搜了一下,有人说拷贝的时候原SQL服务没有停下,有的说InnoDB引擎创建的表不支持这种直接拷贝,而MyISAM则可以. 没办法,只能采取笨办法咯~先在原来数据库上进行备份,然后再导入. mysqldump -u root -p data

Mysql 数据迁移后 启动出错

今天上班后不知道为什么,mysql一直无法启动,折腾了半天于是决定重装 我本地的服务器用的是wamp , 重装的时候, 要进行数据备份 , 我使用的最简单粗暴的备份方式, 就是直接进入到mysql的安装目录下, 把data拷贝一份就可以了. 然后卸载wamp后重装,数据迁移就是把data贴到相同位置替换下就ok了 但是今天迁移完后,mysql怎么也启动不了,查看log,显示各种错误 2014-11-13 13:40:29 5196 [Note] Plugin 'FEDERATED' is dis

MySQL数据迁移实战

一.背景: 公司因为机器资源紧张,需要给测试部分腾出几台机器做测试用,需要把现有机器上的应用全部迁移到别的机器上. 经过讨论,采用Xtrabackup工具对对InnoDB做数据备份. 二.准备工作 1.安装Xtrabackup工具 1)安装依赖包 yum install libaio libaio-devel perl-Time-HiRes curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel p