Xtrabackup 对MYSQL进行备份还原

在操作MYSQL中注意两个概念:

干什么都记得 flush privileges;

grant all on *.* to [email protected]‘localhost‘ identified by ‘password‘  WITH GRANT OPTION 

记得要加WITH GRANT OPTION

=========================

2,RDS MySQL 使用开源软件 Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。

将下载好的文件*.tar.gz 放到linux服务上

mkdir /mysql2/ cd /mysql2/

tar -izxvf *.tar.gz

innobackupex --defaults-file=./backup-my.cnf --apply-log ./

rm -rf mysql    #这里删除mysql目录是为了以后连接数据库权限

3,关键在这里了,我们需要配置my.cnf ,如果说你之前linux服务器就已经有一个实例了,那么现在你还要创建一个实例(也就是一台多个mysql服务)

/usr/local/lnmp/mysql/bin/mysql_install_db --user=mysql --datadir=/mysql2/

vi /etc/my.cnf

[client] 
default-character-set = utf8

[mysqld_multi]
mysqld = /mysql/bin/mysqld_safe
mysqladmin = /mysql/bin/bin/mysqladmin
user = root

[mysqld1]
port = 3306
socket = /tmp/mysql.sock
datadir = /date/
pid-file = /date/mysql1.pid
log-error = /date/mysql_error.log
skip-locking
max_connections = 600
event_scheduler=ON
server-id = 1

[mysqld2]
port = 3307
socket = /tmp/mysql2.sock
datadir = /mysql2
pid-file = /mysql2/mysql.pid
log-error = /date/mysql_error2.log
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1048576000
      #这三行很重要,在/mysql2/mysql-my.cnf中有,复制过来就可以了,不然innodb表打不开

启动实例

/mysql/bin/mysqld_multi
--defaults-file=/etc/my.cnf start 1

/mysql/bin/mysqld_multi
--defaults-file=/etc/my.cnf start 2

停止实例方法

kill -9 `ps -ef | grep 3307 | grep -v
grep | awk ‘{print $2}‘ | xargs`

修改mysql数据库用户名

mysql -uroot -pxxxx -S /tmp/mysql2.sock

grant all on *.* to [email protected]‘localhost‘
identified by ‘xxxx‘  WITH GRANT OPTION

4,以上第3步是针对一台多个实例,如果就一个实例的话就不需要那么麻烦了,第3步就是如下了:

vi /etc/my.cnf

[mysqld]

********

innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1048576000
    #只要加这三行就可以了

********

~~~~~~~~~~~~

重置密码的方法:

方法一:
1.关闭mysql
   # service mysqld stop
2.屏蔽权限
   # mysqld_safe --skip-grant-table
   屏幕出现: Starting demo from .....
3.新开起一个终端输入
   # mysql -u root mysql
   mysql> UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> \q

~~~~~~~~~~~~~

还原时的注意事项:

MySQL报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决办法:

mysql> set global read_only=0;
(关掉新主库的只读属性)

flush privileges;

set global read_only=1;(读写属相)

flush privileges;

~~~~~~~~~~~~~~~~~

阿里的操作指南:

1. 概述

RDS MySQL 使用开源软件 Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。

1.1 需要安装的软件

目前RDS使用Xtrabackup的版本是2.0.6,点击下载地址 并选择与你操作系统版本对应的原件。

例如,我们这里下载RHEL6/x86_64版本。并使用rpm命令进行安装:

sudo rpm -ivh percona-xtrabackup-2.0.6-521.rhel6.x86_64.rpm

1.2 快速恢复手册

这是一个快速恢复说明,适用于了解Linux环境和RDS管理控制台的用户。详细说明参考本文后面"step by step说明"。这里假设从管理控制台下载的备份文件为backup-20130819.tar.gz,恢复过程在/SOME-USER-DIR下进行。

解压备份文件(*需要加-i参数*)

cp BAK.tar.gz /SOME-USER-DIR

cd /SOME-USER-DIR

tar -izxvf BAK.tar.gz

恢复数据到一致的状态

innobackupex --defaults-file=./backup-my.cnf --apply-log ./

这一步如果看到类似如下输出,表示执行成功:

111225 01:08:13  innobackupex: completed OK!

这时,当前目录下数据就是一个完整的可以使用的数据文件了,将该目录下的所有文件拷贝到数据库数据目录下,再开启数据库,即完成恢复。

2. step by step说明

2.1 管理控制台中下载备份文件

2.1.1 在RDS控制台中的备份与恢复->备份列表,选择一个备份文件进行下载,如下图

2.1.2 点击下载后,会弹出对话框,将备份文件下载到本机,如下图

2.1.3 下载文件成功后,将备份文件上传至linux系统,上传成功后在Linux系统上检测,如下图

2.2 解压备份文件

2.2.1 解压备份文件

执行命令: tar vizxf hins47160_xtra_20130819181504.tar.gz ,如下图

2.2.2 查询解压后生成的文件,其中蓝色字体的目录文件为备份生成时RDS存在的数据库

2.3 恢复数据文件

进入解压目录,执行如下命令:

innobackupex --defaults-file=./backup-my.cnf --apply-log ./

这一步如果看到类似如下输出,表示执行成功:

2.4 配置文件修改

由于存在的版本问题,请将解压文件backup-my.cnf中的innodb_fast_checksum,innodb_page_size ,innodb_log_block_size 注释掉并且添加datadir=/xxx/xxx/(备份文件解压路径),如下图:

2.5 重装mysql系统库以及修改文件属主

2.5.1 用户可以删除现有的mysql目录,重新生成mysql系统库从而拥有数据库的root权限

删除mysql库,命令:rm -rf mysql 并确认删除成功,如下图:

2.5.2 初始化mysql默认库

命令: mysql_install_db --user=mysql --datadir=/xxx/xxx/ (备份文件所属目录) 并确认操作成功,如下图:

2.5.3 修改文件属主

命令:chown -R mysql:mysql /xxx/xxx/  (备份文件所属目录)  并检查文件所属为mysql用户

2.6 启动mysqld进程并且登录验证

2.6.1 启动mysqld进程,并验证启动成功

命令:mysqld_safe --defaults-file=/xxx/xxx/backup-my.cnf &  (备份文件所属目录)

(点击查看全图)

2.6.2 客户端登录mysql验证

命令:mysql -u root -p ,如图:

3. 其他问题

因为软件限制,目前恢复只支持Linux下进行。Linux下恢复的数据文件,无论Windows、Linux下,MySQL都可以正常使用

时间: 2024-10-11 04:25:16

Xtrabackup 对MYSQL进行备份还原的相关文章

xtrabackup进行MySQL数据库备份/还原

http://hongge.blog.51cto.com/ 使用xtrabackup进行MySQL数据库备份 前面介绍mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了. 这时就需要一种好用又高效的工具,xtrabackup就是其中一款,号称免费版的InnoDB HotBackup. Xtrabackup实现是物理备份,而且是物理热备 目前主流的有两个工

MySQL的备份还原(xtrabackup)

MySQL的备份还原(xtrabackup) xtrabackup简介 xtrabackup是percona提供的MySQL数据库的备份工具,是唯一开源的能对innodb和xtradb数据库进行热备的工具 xtrabackup的特点 1.备份还原过程快.可靠 2.备份过程不会打断正在执行的事务 3.能够基于压缩等功能介于磁盘空间和流量 4.自动实现备份检验 5.开源免费 xtrabackup备份过程 xtrabackup安装 xtrabackup在centos的EPEL源中,可以在配置完EPEL

利用XtraBackup实现MySQL物理备份恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打断正在执行的事务: (3)能够基于压缩等功能节约磁盘空间和流量: (4)自动实现备份检验: (5)还原速度快: Xtrabackup中主要包含两个工具: xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构: in

使用xtrabackup进行MySQL数据库备份

使用xtrabackup进行MySQL数据库备份 一.简介 MySQL自带的mysqldump备份方式是采用逻辑备份,但是它最大的缺陷就是备份和恢复速度慢对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了. 目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup:ibbackup是商业软件,需要授权,非常昂贵.而xtrabackup功能比ibbackup还要强大,但却是开源的.号称免费版的InnoDB Hot

MySQL之备份还原,主从复制,主主复制。

数据库作为我们的日常工作中不可缺少的部分,那它内部数据的重要性显而易见,所以数据安全至关重要.确保数据的安全,我们就必须做好数据备份.简单说几个MySQL常用的备份工具以及如何利用这些工具实现数据的备份. 一:MySQL自带的工具---mysqldump,相信大家应该还有映像:# ls /usr/local/mysql/bi我们会看到此命令. 用法:mysqldump [options] [db_name [tbl_name ...]] 常用选项: --databases --备份数据库,后面可

MYSQL数据库备份还原

MYSQL数据库备份还原 一.  数据库备份 备份数据是数据库管理最常用的操作.为了保证数据库中数据的安全,数据管理员需要定期地进行数据备份.一旦数据库遭到破坏,即可通过备份的文件来还原.因此,数据备份是很重要的工作. 1.使用mysqldump 命令备份 mysqldump 命令可以将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中.mysqldump 命令的工作原理很简单: 它先查出需要备份的表的结构,再在文本文件中生成一个CREATE 语句,然后将表中的所有记

MySQL的备份还原(mysqldump)

MySQL的备份还原(mysqldump) MySQL的还原前提是要建立在,有完全备份和二进制日志开启的前提下,并且二进制日志文件和完全备份存放在与数据库文件不同的磁盘上,否则当磁盘发生损坏数据将无法进行恢复. 开启二进制日志 开启二进制日志需要将MySQL中的sql_log_bin和log_bin这两个选项1.开启sql_log_bin系统中默认开启sql_log_bin选项所以此处无需修改 MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_log_bin'

mysql innobackupex xtrabackup 大数据量 备份 还原(转)

原文:http://blog.51yip.com/mysql/1650.html 作者:海底苍鹰 大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1,Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtra

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写. 最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到). 对数据库备份的有效性校验的方法或样例选择,