zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

【MySql】 MySql备份工具Xtrabackup之二

mysql备份工具 之二 xtrabackup
2023-09-14 08:57:29 时间
1. Xtrabackup二进制64位下载地址: http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/Linux/binary/x86_64/ 2.MySQL5.1.56的下载地址: http://dev.mysql.com/downloads/mysql/5.1.html#downloads 操作系统环境: CentOS release 5.4 (Final) x86_64 GNU/Linux 2.6.18-164.el5 2.安装配置 1)安装配置mysql-5.1.56 在MySQL 5.1.38前的版本中,当你需要安装InnoDB Plugin时,必须下载Plugin的文件,解压后再进行一系列的安装。从MySQL 5.1.38开始往后,MySQL包含了2个不同版本的InnoDB存储引擎—一个是旧版本的引擎,称之为build-in innodb;另一个是1.0.4版本的InnoDB存储引擎。 Shell tar –zxvvf mysql-5.1.56.tar.gz Shell cd mysql-5.1.56 Shell ./configure --prefix=/opt/mysql5156 --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=latin1,gb2312 --with-plugins=innobase,innodb_plugin,myisam,heap,csv,federated,blackhole --enable-local-infile --enable-thread-safe-client Shell make Shell make install Shell cp support-files/my-medium.cnf /etc/my.cnf Shell cd /opt/mysql5156 Shell chown –R mysql . Shell chgrp –R mysql . Shell bin/mysql_install_db –user=mysql Shell chown –R root . Shell chown –R mysql var 配置启动plugin-innodb Shell vi /etc/my.cnf port= 3307 socket= /tmp/mysql5156.sock [mysqld] port= 3307 socket= /tmp/mysql5156.sock ignore_builtin_innodb 启动:shell /opt/mysql5156/bin/mysqld_safe –user=mysql 加载plugin-innodb: mysql INSTALL PLUGIN INNODB SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_TRX SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_LOCKS SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_LOCK_WAITS SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_CMP SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_CMP_RESET SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_CMPMEM SONAME ha_innodb_plugin.so; mysql INSTALL PLUGIN INNODB_CMPMEM_RESET SONAME ha_innodb_plugin.so; 上述语句只需执行一次就ok了,即使重启mysqld也不需要再次安装了。 mysql show plugins; mysql select @@innodb_version; +------------------+ | @@innodb_version | +------------------+ | 1.0.15| +------------------+ 1 row in set (0.00 sec) mysql执行INSTALL PLUGIN INNODB SONAME ha_innodb_plugin.so; 如果报错提示:ERROR 1289 (HY000): The ‘plugin’ feature is disabled; you need MySQL built with ‘HAVE_DLOPEN’ to have it working 经上网搜索找到解决问题方法: 在编译时不要用静态编译,将下面两个从编译参数中删除 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static 至于原因不是很清楚。 另有人提出可以用下面方法解决 在编译mysql时先执行下面的命令 export CFLAGS=”-O2 -DHAVE_DLOPEN=1″export CXXFLAGS=”-O2 -DHAVE_DLOPEN=1″ 但在做测试时,发现仍然有问题不能编译通过,可能是环境不同吧,我的系统环境为: Centos 5.4x86_64 GNU/Linux (2)安装配置Xtrabackup 先看看如何安装Xtrabackup,最简单的安装方式是使用RPM包,不过想使用源代码方式安装的话,其安装方式有点古怪,因为它采用的在MySQL源代码上打补丁构建的方式安装的。这里使用二进制包的安装方式,相对比较灵活。 Shell mkdir /usr/local/xtrabackup Shell tar -zxvf xtrabackup-1.6.tar.gz –C /usr/local/xtrabackup Shell cd /usr/local/xtrabackup/bin Shell ln –s innobackupex-1.5.1 innobackupex 配置环境变量: Shell export PATH=$PATH:/usr/local/xtrabackup/bin 修改mysql配置文件: Shell vi /etc/my.cnf 添加或修改:datadir =/usr/local/mysql/var(数据库目录) 特别注意:default_table_type = InnoDB(必须改,否则进行增量备份的时候不成功) 三.xtrabackup的备份与恢复使用 关于xtrabackup的参数选项,如下:–defaults-file=#默认配置文件的路径,如果补该参数,xtrabackup将从依次从以下位置查找配置文件/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf,并读取配置文件中的[mysqld]和[xtrabackup]配置段 –defaults-extra-file=#如果使用了该参数,在读取了全局配置文件之后,会再读取这里指定的配置文件 –target-dir=name备份文件的存放目录路径 –backup实施备份到target-dir –prepare实施对备份文件迚行恢复前的准备(生成InnoDB log file) –print-param打印备份或恢复时需要的参数 –use-memory=#该参数在prepare的时候使用,控制prepare时innodb实例使用的内存量 –suspend-at-end在target-dir目录下产生一个xtrabackup_suspended文件,将xtrabackup进程挂起,不停地将数据文件的变化同步到备份文件,直到用户手工删除xtrabackup_suspended文件 –throttle=#每秒IO次数,限制backup时使用的I/O操作量,使备份对数据库正常业务的影响最小化 –log-stream该参数在backup的时候使用,将xtrabackup_logfile的内容输出到标准输出,使用该参数时会自动使用–suspend-at-end参数,innobackupex脚本的–stream模式会使用该参数。 –incremental-lsn=name增量备份时只拷贝LSN比该参数指定值新的ibd pages,前次备份到了哪个LSN可以看前次备份集的xtrabackup_checkpoints文件 –incremental-basedir=name该参数在backup的时候使用,备份比该参数指定位置的备份集新的idb pages –incremental-dir=name该参数在prepare的时候使用,指定prepare时产生的.delta文件和日志文件的存放路径 –tables=name在备份file-per-table类型的数据文件时使用,使用正则表达式指定需要备份的innodb表 –datadir=name MySQL数据库的数据文件目录。 xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm) 1.普通备份(全量备份) shell mkdir -p /backup/xtrabackup shell xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/backup/xtrabackup 全量备份模拟恢复:需要执行两次xtrabackup –prepareshell xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/backup/xtrabackup shell xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/backup/xtrabackup 删除数据库目录下的数据文件: Shell rm –rf /usr/local/mysql/var/ib* Shell cp /backup/xtrabackup/ib* /usr/local/mysql/var Shell chown –R mysql.root /usr/local/mysql/var 重启测试是否恢复成功。 注意,xtrabackup只备份数据文件,并不备份数据表结构(.frm),所以使用xtrabackup恢复的时候,你必须有对应表结构文件(.frm)。 2.普通备份(增量备份) 增量备份优点: 1.数据库太大没有足够的空间全量备份,作增量备份有效节省空间,且效率高。 2.支持热备份。备份过程不锁表,不受时间限制,不影响用户使用。 3.每日备份只产生少量数据,远程备份传输更方便。同时节省空间。 4.备份恢复基于文件操作,降低直接对数据库操作风险。 5.备份效率更高,恢复效率更高。 增量备份及模拟恢复步骤: shell mkdir -p /backup/xtrabackup/base shell mkdir -p /backup/xtrabackup/delta(1)先做一次全量备份,因为后面的增量备份要以此为基础 shell xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/backup/xtrabackup/base shell ls /backup/xtrabackup/base ibdata1xtrabackup_checkpointsxtrabackup_logfile (2)以此全量备份为基础进行增量备份 Shell xtrabackup --defaults=/etc/my.cnf--backup--target-dir=/backup/xtrabackup/delta/ --incremental-basedir=/backup/xtrabackup/base/ shell ls /backup/xtrabackup/delta ibdata1.deltaxtrabackup_checkpointsxtrabackup_logfile ps:在增量备份的目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份后被修改过的page,所以增量备份只暂用较少的空间。 增量备份可以在增量备份的基础上增量。 (注:/backup/xtrabackup/delta/是每次都需修改的。比如第二次增量就改成/backup/xtrabackup/delta2,当然可以写个脚本进行自动备份) 增量备份模拟恢复过程: 我们需要分别对全量、增量备份各做一次prepare操作。 shell xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/backup/xtrabackup/base/ shell xtrabackup --defaults-file=/etc/my.cnf --prepare--target-dir=/backup/xtrabackup/base/ --incremental-dir=/backup/xtrabackup/delta/ shell xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/backup/xtrabackup/base/ shell rm –rf /usr/local/mysql/var/ib* #删除原来数据目录下的数据文件Shell cp /backup/xtrabackup/base/ib* /usr/local/mysql/var Shell chown –R mysql.root /usr/local/mysql/var 重启后测试是否成功。 再次提醒,xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm)。 3.增量备份对比innobackupex和xtrabackup我们可以看到,innobackupex操作起来更方便,但是innobackupex会有短暂的锁表(时间依赖于MyISAM大小)。xtrabackup备份还有另一个重要特性:增量备份。(未来的版本innobackupex也可能增长该功能)比如表中目前有10条数据,先备份.备份到/usr/local/backup/1/目录(完整备份) shell xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/1/查看它的lsn点: shell cat xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0:0 to_lsn = 0:592411再向表中插入数据,增量备份 shell xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/2/ --incremental-basedir=/usr/local/backup/1/把增量备份到2(1到2的增量备份)查看它的lsn点: shell cat xtrabackup_checkpoints backup_type = incremental from_lsn = 0:592411 to_lsn = 0:908563再向表中插入数据,增量备份 shell xtrabackup --defauls-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/3/ --incremental-basedir=/usr/local/backup/1/把增量备份到3(1到3的增量备份,2的备份已经包含在里面了,按照这种方式备份的话,最后的还原只需要还原完全备份和最后一份增量备份即可)查看它的lsn点: shell cat xtrabackup_checkpoints backup_type = incremental from_lsn = 0:592411 to_lsn = 0:1507854 或则另一种增量备份方式: shell xtrabackup --defauls-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/3/ --incremental-basedir=/usr/local/backup/2/把增量备份到3(2到3的增量备份,各个增量备份独立,按照这种方式备份的话,最后的还原需要还原完全备份和各个增量备份)查看它的lsn点: shell cat xtrabackup_checkpoints backup_type = incremental from_lsn = 0:908563 to_lsn = 0:1507854 增量备份模拟恢复:我们需要分别对全量、增量备份各做一次prepare操作。①:基于(1到3的增量备份,2的备份已经包含在里面了,按照这种方式备份的话,最后的还原只需要还原完全备份和最后一份增量备份即可)把第1次的完备恢复 shell xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/backup/1/继续把增量备份恢复上去 shell xtrabackup --prepare --target-dir=/usr/local/backup/1/ --incremental-dir=/usr/local/backup/3/ shell xtrabackup --prepare --target-dir=/usr/local/backup/1/恢复完成接着 cd /usr/local/backup/1/ cp 1/ib* /usr/local/mysql/var/ chown –R mysql.root /usr/local/mysql/var /etc/init.d/mysql restart 2基于(2到3的增量备份,各个增量备份独立,按照这种方式备份的话,最后的还原需要还原完全备份和各个增量备份)把第1次的完备恢复 xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/backup/1/继续把增量备份恢复上去 shell xtrabackup --prepare --target-dir=/usr/local/backup/1/ --incremental-dir=/usr/local/backup/2/继续把增量备份恢复上去 shell xtrabackup --prepare --target-dir=/usr/local/backup/1/ --incremental-dir=/usr/local/backup/3/恢复完成接着 cd /usr/local/backup/1/ cp 1/ib* /usr/local/mysql/var/ chown –R mysql.root /usr/local/mysql/var /etc/init.d/mysql restart 四、innobackupex备份与恢复 Usage: innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME] [--password=WORD] [--port=PORT] [--socket=SOCKET] [--no-timestamp] [--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar] [--defaults-file=MY.CNF] [--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF] [--ibbackup=IBBACKUP-BINARY] BACKUP-DIR innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR 第一个命令行是热备份mysql数据库。 带有--apply-log选项的命令是准备在一个备份上启动mysql服务。 带有--copy-back选项的命令从备份目录拷贝数据,索引,日志到my.cnf文件里规定的初始位置。 参数注释: –defaults-file=同xtrabackup的–defaults-file参数; –apply-log对xtrabackup的–prepare参数的封装; –copy-back做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir; –remote-host=HOSTNAME通过ssh将备份数据存储到进程服务器上; --stream=[tar] http://samyubw.blog.51cto.com/978243/555388
MySQL Workbench 图形化界面工具 MySQL官方提供了一款免费的图形工具——MySQL Workbench,它是一款功能强大且易于使用的数据库设计、管理和开发工具,总之,MySQL Workbench是一款非常好用的MySQL图形工具,可以满足大多数MySQL用户的需求。
03_mysql下载安装登入及图形化工具Windows版 https://github.com/qq153916230/study.git mysql windows 5.7及8.0版本下载安装步骤和常见问题,mysql登入方式,5.7版本中文插入报错
MySQL基础(mysql下载,图形化界面工具,DDL) 1.Mysql下载安装启动 1.下载 3.配置 4. 启动mysql 5.客户端连接 2.图形化界面工具 2. 使用 3.SQL 1.SQL分类 1.DDL 1.数据库操作 2. 表操作 3.表操作-数据类型 4.表操作-案例
推荐几款MySQL相关工具 随着互联网技术的不断发展, MySQL 相关生态也越来越完善,越来越多的工具涌现出来。一些公司或个人纷纷开源出一些不错的工具,本篇文章主要介绍几款 MySQL 相关实用工具。提醒下,这里并不介绍 Navicat 等这类图形化操作工具哦。