mysql 数据迁移

安装第三方软件XtraBackup对数据做增量备份

XtraBackup介绍:

在线热备份工具,备份过程中不锁库表,

只备份表记录,不备份表结构

表的存储引擎必须是InnoDB/XtraDB

必须先有一次完全备份,这样再执行备份时才知道那些数据是新产生。

安装XtraBackup: perl(DBD::mysql)  perl(Time::HiRes) 先安装两个依赖包

rpm -q perl-Time-HiRes

rpm -ivh percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm

提供2个备份命令:

xtrabackup:C程序,支持InnoDB/XtraDB

innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM

xtrabackup_56   命令语法格式:

(完全备份  完全恢复 增量备份  增量恢复)

————————————

xtrabackup_56    <选项>

--backup     备份数据

--prepare    恢复数据

--target-dir=目录名             指定备份文件存储的目录

--datadir=/var/lib/mysql    指定数据库目录的位置

--incremental-basedir=目录名  增量备份时,指定上一次备份文件存储的目录

--incremental-dir=目录名    增量恢复数据时,指定使用恢复文件所在的目录

————————————————————————————————————————————————————————

实验操作:(首先对库做一个完全备份,当增加数据时,做一个增量备份序号1,再增加数据,再做一个增量备份2,再增加数据,再做一个增量备3,再增加数据, 完全备份+增量备份)

(恢复:先恢复完全备份,再恢复增量备份,按顺序从最开始的一个一个恢复,这里恢复的是xtrabackup_checkpoints 中所对应的序列号,最后所有恢复完再把备份文件拷贝会对应数据库目录下,重启服务)

【 注意这个只能恢复一次 一次性】

1.先备份:完全备份+增量备份

db1.a    5 -> 999   完全备份

xtrabackup_56    --backup   --datadir=/var/lib/mysql    --target-dir=/allbak

10 -> 301  第1次增量备份

xtrabackup_56    --backup    --datadir=/var/lib/mysql  --target-dir=/new1    --incremental-basedir=/allbak

8 -> 801  第2次增量备份

xtrabackup_56    --backup    --datadir=/var/lib/mysql    --target-dir=/new2   --incremental-basedir=/new1

3 -> 777 第3次增量备份

xtrabackup_56    --backup    --datadir=/var/lib/mysql    --target-dir=/new3   --incremental-basedir=/new2

2.xtrabackup恢复数据的步骤:

1)准备恢复数据

xtrabackup_56   --prepare  --datadir=/var/lib/mysql    --target-dir=/allbak

xtrabackup_56   --prepare  --datadir=/var/lib/mysql    --target-dir=/allbak    --incremental-dir=/new1

xtrabackup_56   --prepare  --datadir=/var/lib/mysql    --target-dir=/allbak    --incremental-dir=/new2

xtrabackup_56   --prepare  --datadir=/var/lib/mysql    --target-dir=/allbak    --incremental-dir=/new3

2) 把备份文件拷贝回对应的数据库目录下

[[email protected] ~]# cp /allbak/bbsdb/a.ibd /var/lib/mysql/bbsdb/

cp:是否覆盖"/var/lib/mysql/bbsdb/a.ibd"? y

[[email protected] ~]#

3) 重启数据库服务

service  mysql  restart

4) 查看恢复是否成功

select * from bbsdb.a;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

__________________________________________________________________________

[[email protected] ~]# cd /var/lib/mysql

[[email protected] mysql]# ls

auto.cnf          ib_logfile0  performance_schema

host.tedu.cn.err  ib_logfile1  python

host.tedu.cn.pid  mysql        RPM_UPGRADE_HISTORY

ibdata1           mysql.sock   RPM_UPGRADE_MARKER-LAST

__________________________________________________________________________

事务日志    /var/lib/mysql/

ib_logfile0

ib_logfile1      ---sql命令

idbata1 记录数据信息

xtrabackup_checkpoints lsn序列号对应文件

xtrabackup_logfile  序列号所对应的sql命令文件

备份过程

在增量备份时,如何知道在所有记录中,哪些记录是新产生的

在增量备份时:如何知道有新数据写入,有写入的话也要把新数据备份上

时间: 2024-12-17 00:19:14

mysql 数据迁移的相关文章

mysql数据迁移

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

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

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

阿里云 CentOS下面 Mysql 数据迁移

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

MySQL数据迁移问题

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

mysql数据迁移到sql server(微软的迁移工具)

系统环境:win7 64位旗舰版 Mysql数据库:5.5版本  64位 Sql Server 2008: 64位 Odbc驱动程序版本:5.1 64位 迁移数据库:aimsv22 迁移工具: SSMA 2008 forMySQL 数据迁移时必须下载好对应的odbc驱动程序 (此处为odbc for mysql). 在微软官方网站下载SSMA 2008 forMySQL mysql数据库   sql server数据库

centos下mysql数据迁移方法

第一种: 原始数据库不需要重新安装: 默认mysql会安装在/var/lib/mysql这里,若将数据迁移到/data/mysql目录下,步骤如下: 1.停止mysql服务 2.#cp /var/lib/mysql/* /data/mysql/ #chown -R mysql.mysql /data/mysql 3.修改my.cnf文件 basedir = /usr datadir = /data/mysql socket = /data/mysql/mysql.sock pid-file =

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

MySQL 数据迁移脚本

用python写了个数据迁移脚本,主要是利用从库将大的静态表导出表空间,载导入到目标实例中. #!/usr/bin/env python3 #-*- coding:utf8 -*- #author:zhanbin.liu #!!!!!DB必须同版本 #python3环境 pip3 install pymysql paramiko import os #from pathlib import Path import sys import pymysql import paramiko #每次只能迁

MySQL数据迁移到SQL Server

数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持. 此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL Server Migration Assistant for MySQL 的使用. 从上面链接的官网下载安装. 需要注意的是你需要选择迁移到的SQL Server数据库的版本,目前支持:SQL Azure,SQL Server 2005,SQL Server2008,SQL Server 2012