使用xtrabackup备份恢复Mariadb数据库

使用xtrabackup进行备份

Xtrabackup简介

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:

(1)备份过程快速、可靠;

(2)备份过程不会打断正在执行的事务;

(3)能够基于压缩等功能节约磁盘空间和流量;

(4)自动实现备份检验;

(5)还原速度快;

官方介绍和下载地址:https://www.percona.com/software/percona-xtrabackup

xtrabackup安装

官方有系统rpm包版的软件,可以下载rpm包版的软件直接安装,由于xtrabackup是使用perl脚本编写的所以需要安装perl-DBD-MySQL否则会报依赖。

[[email protected]~]# yum -y install perl-DBD-MySQL
[[email protected]~]# rpm -ivh percona-xtrabackup-2.2.3-4982.el6.x86_64.rpm

innobackupex: 客户端工具, 以mysql协议连入mysqld,不支持离线备份,但是支持离线恢复

一次完全备份和恢复

1、完全备份

使用innobakupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件。这些文件会被保存至一个以时间命令的目录中。

在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

示例:

[[email protected]~]# innobackupex --user=root --password=centos /backup/
[[email protected]~]# ll /backup/
total4
drwxr-xr-x2 root root 4096 Jun 16 02:28 2015-06-16_02-28-54

备份时报了一个错

innobackupex:Error: The xtrabackup child process has died at /usr/bin/innobackupex line2672.

解决方法:修改innodb日志文件大小为5M,修改完成重启服务生效

[[email protected]~]# vim /etc/my.cnf
innodb_log_file_size= 5M

备份完成之后在/backup目录下就有了如下内容

[[email protected] ~]# ll /backup/2015-06-15_23-49-43/
total 18468
-rw-r--r-- 1 root root      356 Jun 15 23:49 backup-my.cnf
drwxr-xr-x 2 root root     4096 Jun 15 23:49 hellodb
-rw-r----- 1 root root 18874368 Jun 15 23:49ibdata1
drwxr-xr-x 2 root root     4096 Jun 15 23:49 mysql
drwxr-xr-x 2 root root     4096 Jun 15 23:49 performance_schema
drwxr-xr-x 2 root root     4096 Jun 15 23:49 test
-rw-r--r-- 1 root root       23 Jun 15 23:49 xtrabackup_binlog_info
-rw-r----- 1 root root       89 Jun 15 23:49 xtrabackup_checkpoints
-rw-r--r-- 1 root root      559 Jun 15 23:49 xtrabackup_info
-rw-r----- 1 root root     2560 Jun 15 23:49 xtrabackup_logfile

文件说明:

(1)xtrabackup_checkpoints—— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。

[[email protected] 2015-06-15_23-49-43]# catxtrabackup_checkpoints
backup_type = full-backuped   #备份类型,full-backuped表示完全备份
from_lsn = 0                     #日志序列开始
to_lsn = 1597945                #最大日志序列号
last_lsn = 1597945              #当前日志序列号
compact = 0                      #表示没有打包

(2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

[[email protected] 2015-06-15_23-49-43]# catxtrabackup_binlog_info
mysql-bin.000005  245

(3)backup-my.cnf —— 备份命令用到的配置选项信息和备份无关的不会记录,备份配置文件的话需要单独备份

[[email protected] 2015-06-15_23-49-43]# catbackup-my.cnf
# This MySQL options file was generated byinnobackupex.
 
# The MySQL server
[mysqld]
innodb_checksum_algorithm=innodb
innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=5242880
innodb_fast_checksum=0
innodb_page_size=16384
innodb_log_block_size=512
innodb_undo_tablespaces=0

(4)xtrabackup_info —— 记录了mariadb的版本信息和一些属性信息,还原是检测版本匹配度时用到

[[email protected] 2015-06-15_23-49-43]# catxtrabackup_info
uuid = 25b79086-1376-11e5-980a-000c29bad792
name =
tool_name = innobackupex
tool_command = --user=root --password=... /backup/
tool_version = 1.5.1-xtrabackup
ibbackup_version = xtrabackup version 2.2.3 basedon MySQL server 5.6.17 Linux (x86_64) (revision id: )
server_version = 5.5.43-MariaDB-log
start_time = 2015-06-15 23:49:43
end_time = 2015-06-15 23:49:46
lock_time = 1
binlog_pos = filename ‘mysql-bin.000005‘, position245
innodb_from_lsn = 0
innodb_to_lsn = 1597945
partial = N
incremental = N
format = file
compact = N
compressed = N
encrypted = N

2、准备一个完全备份

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处于不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobakupex命令的--apply-log选项可用于实现上述功能。如下面的命令:

[[email protected] 2015-06-15_23-49-43]# innobackupex--apply-log /backup/2015-06-15_23-49-43/

如果执行正确,其最后输出的一行信息通常如下:

150615 23:58:59 innobackupex: completed OK!

在实现“准备”的过程中,innobackupex通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度。

3、从一个完全备份中恢复数据

innobackupex命令的--copy-back选项用于执行恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。

语法:

# innobackupex --copy-back  /path/to/BACKUP-DIR

当数据恢复至DATADIR目录以后,还需要确保所有数据文件的属主和属组均为正确的用户,如mysql,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。

模拟数据库损坏

删除mariadb数据目录中的所有内容,模拟数据库损坏

[[email protected]~]# rm -rf /mydata/data/*
[[email protected]~]# ll /mydata/data/
total0

恢复数据

[[email protected]~]# innobackupex --copy-back /backup/2015-06-15_23-49-43/
[[email protected] ~]# chown -R  mysql:mysql /mydata/data/
[[email protected]~]# ll /mydata/data/
total 28692
drwxr-xr-x2 mysql mysql     4096 Jun 16 00:01hellodb
-rw-r--r--1 mysql mysql 18874368 Jun 16 00:01 ibdata1
-rw-r--r--1 mysql mysql  5242880 Jun 16 00:01ib_logfile0
-rw-r--r--1 mysql mysql  5242880 Jun 16 00:01ib_logfile1
drwxr-xr-x2 mysql mysql     4096 Jun 16 00:01 mysql
drwxr-xr-x2 mysql mysql     4096 Jun 16 00:01performance_schema
drwxr-xr-x2 mysql mysql     4096 Jun 16 00:01 test
-rw-r--r--1 mysql mysql      559 Jun 16 00:01xtrabackup_info

恢复完成之后,还需要启动一下Mysql服务,否则Mariadb是是不会记录二进制日志的,这个时候启动起来是重新记录二进制日志的。

[[email protected] ~]# service mysqld start

提示:在恢复完成之后应该再次做一次完全备份,后期的增量备份都依照这次的完全备份来做。

[[email protected] ~]# innobackupex --user root --password centos/backup

使用innobackupex进行增量备份

每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这正是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。

要实现第一次增量备份,可以使用下面的命令进行:

# innobackupex --incremental /backup--incremental-basedir=BASEDIR

其中,BASEDIR指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。另外,在执行过增量备份之后再一次进行增量备份时,其--incremental-basedir应该指向上一次的增量备份所在的目录。

需要注意的是,增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份。

“准备”(prepare)增量备份与整理完全备份有着一些不同,尤其要注意的是:

(1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。

(2)基于所有的备份将未提交的事务进行“回滚”。

于是,操作就变成了:

# innobackupex --apply-log --redo-onlyBASE-DIR

接着执行:

# innobackupex --apply-log --redo-onlyBASE-DIR --incremental-dir=INCREMENTAL-DIR-1

而后是第二个增量:

# innobackupex --apply-log --redo-only BASE-DIR--incremental-dir=INCREMENTAL-DIR-2

其中BASE-DIR指的是完全备份所在的目录,而INCREMENTAL-DIR-1指的是第一次增量备份的目录,INCREMENTAL-DIR-2指的是第二次增量备份的目录,其它依次类推,即如果有多次增量备份,每一次都要执行如上操作;

备份过程

由于上面的完全备份恢复之后又进行了一次完全备份,这里不再进行完全备份,增量备份直接根据上面的完全备份进行。

查看lsn日志的起始和结束位置,第一次增量备份的LSN起始位置就是完全备份LSN的结束位置

[[email protected] ~]# cat/backup/2015-06-15_23-45-01/xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 1602246
last_lsn = 1602246
compact = 0

修改数据库内容

MariaDB[hellodb]> select * from tb1;
+------+
|id   |
+------+
|    1 |
|    2 |
|    3 |
|   21 |
|   22 |
|   23 |
+------+
MariaDB[hellodb]> delete from tb1 where id=21;
MariaDB[hellodb]> delete from tb1 where id=22;
MariaDB[hellodb]> select * from tb1;
+------+
|id   |
+------+
|    1 |
|    2 |
|    3 |
|   23 |
+------+

第一次增量备份

只需要指向上一次完全备份的位置和这一次增量备份的存储位置即可

[[email protected] ~]# innobackupex --user root--password centos --incremental /backup/ --incremental-basedir=/backup/2015-06-15_23-45-01/

备份完成之后查看checkpoints信息

[[email protected] ~]# cat/backup/2015-06-15_23-47-02/xtrabackup_checkpoints
backup_type = incremental   #备份类型表示为增量
from_lsn = 1602246           #表示备份的起始位置
to_lsn = 1604539
last_lsn = 1604539
compact = 0

再次修改一些数据

MariaDB[hellodb]> insert into tb1 values (1000),(9000);
MariaDB[hellodb]> select * from tb1;
+------+
|id   |
+------+
|    1 |
|    2 |
|    3 |
|   23 |
|1000 |
|9000 |
+------+

第二次做增量备份

这是备份是基于第一次增量备份进行

[[email protected] ~]# innobackupex --user root--password centos --incremental /backup--incremental-basedir=/backup/2015-06-15_23-47-02/
[[email protected] ~]# cat/backup/2015-06-15_23-51-55/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 1604539 #备份起始位置是第一次增量备份的结束位置
to_lsn = 1604539
last_lsn = 1605623
compact = 0

再次修改一次数据,这次修改没有做备份

MariaDB[hellodb]> insert into tb1 values (88888);
MariaDB[hellodb]> select * from tb1;
+-------+
|id    |
+-------+
|     1 |
|     2 |
|     3 |
|    23 |
|  1000 |
|  9000 |
|88888 |
+-------+

说明:由于没有实现将bin-log文件和数据目录分开,所以我先导入二进制日志文件中的修改内容。

查看binlog_info日志位置记录位置为1621,那么只需要把1621之后的修改导出为sql文件即可。

[[email protected]~]# cat /backup/2015-06-15_23-51-55/xtrabackup_binlog_info 
mysql-bin.000005    979  
[[email protected] ~]# mysqlbinlog --start-position=979/mydata/data/mysql-bin.000005 > /backup/timepoint.sql

模拟损坏

停止mysqld服务,然后删除数据目录下的所有数据,模拟硬盘损坏

[[email protected]~]# service mysqld stop
[[email protected]~]# rm -rf /mydata/data/*

数据恢复

恢复过程:合并完全备份

[[email protected] ~]# innobackupex --apply-log-redo-only /backup/2015-06-15_23-45-01/

合并第一个增量备份

[[email protected] ~]# innobackupex --apply-log-redo-only /backup/2015-06-15_23-45-01/--incremental-dir=/backup/2015-06-15_23-47-02/

合并第二个增量备份

[[email protected] ~]# innobackupex --apply-log-redo-only /backup/2015-06-15_23-45-01/--incremental-dir=/backup/2015-06-15_23-51-55/

使用合并后的命令进行恢复

[[email protected] ~]# innobackupex --copy-back/backup/2015-06-15_23-45-01/

设置完成之后修改数据目录的属主属组

[[email protected] data]# chown -R mysql.mysql ./*
[[email protected] data]# ll
total 18452
drwxr-xr-x 2 mysql mysql     4096 Jun 16 00:01 hellodb
-rw-r--r-- 1 mysql mysql 18874368 Jun 16 00:01ibdata1
drwxr-xr-x 2 mysql mysql     4096 Jun 16 00:01 mysql
drwxr-xr-x 2 mysql mysql     4096 Jun 16 00:01 performance_schema
drwxr-xr-x 2 mysql mysql     4096 Jun 16 00:01 test
-rw-r--r-- 1 mysql mysql      632 Jun 16 00:01 xtrabackup_info

设置完成之后启动Mysql服务器

[[email protected]]# service mysqld start

查看数据库这个时候还没有第二次增量备份之后修改的数据

MariaDB[hellodb]> select * from tb1;
+------+
|id   |
+------+
|    1 |
|    2 |
|    3 |
|   23 |
|1000 |
|9000 |
+------+

将从二进制导出的sql文件,导入到数据库

[[email protected] ~]# mysql -u root -p < /backup/timepoint.sql

查看数据就已经恢复了

MariaDB[hellodb]> select * from tb1;
+-------+
|id    |
+-------+
|     1 |
|     2 |
|     3 |
|    23 |
|  1000 |
|  9000 |
|88888 |
+-------+

导入或导出单张表

默认情况下,InnoDB表不能通过直接复制表文件的方式在mysql服务器之间进行移植,即便使用了innodb_file_per_table选项。而使用Xtrabackup工具可以实现此种功能,不过,此时需要“导出”表的mysql服务器启用了innodb_file_per_table选项(严格来说,是要“导出”的表在其创建之前,mysql服务器就启用了innodb_file_per_table选项),并且“导入”表的服务器同时启用了innodb_file_per_table和innodb_expand_import选项。

(1)“导出”表

导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在prepare过程中通过--export选项将某表导出了:

# innobackupex --apply-log --export/path/to/backup

此命令会为每个innodb表的表空间创建一个以.exp结尾的文件,这些以.exp结尾的文件则可以用于导入至其它服务器。

(2)“导入”表

要在mysql服务器上导入来自于其它服务器的某innodb表,需要先在当前服务器上创建一个跟原表表结构一致的表,而后才能实现将表导入:

mysql> CREATE TABLE mytable (...)  ENGINE=InnoDB;

然后将此表的表空间删除:

mysql> ALTER TABLEmydatabase.mytable  DISCARD TABLESPACE;

接下来,将来自于“导出”表的服务器的mytable表的mytable.ibd和mytable.exp文件复制到当前服务器的数据目录,然后使用如下命令将其“导入”:

mysql> ALTER TABLEmydatabase.mytable  IMPORT TABLESPACE;

为了方便称呼,将导出表的服务器称为“源服务器”,导入表的服务器称为目标服务器。

操作:将源服务器hellodb数据库中的tb1表,导出到目标服务器的mydb数据库。

源服务器导出表

设置之前先做一次全库备份,因为导出表是根据备份进行导出的

[[email protected]~]# innobackupex --user root --password centos /backup/

源服务器导出所有innodb存储引擎的表

[[email protected]~]# innobackupex --apply-log --export /backup/2015-06-16_00-14-21/

查看hellodb导出的表文件

[[email protected] ~]# ls/backup/2015-06-16_00-14-21/hellodb/
classes.frm coc.MYD      courses.MYI  scores.MYI   tb1.cfg  teachers.frm  toc.MYD
classes.MYD coc.MYI      db.opt       students.frm  tb1.exp teachers.MYD  toc.MYI
classes.MYI courses.frm  scores.frm   students.MYD tb1.frm  teachers.MYI
coc.frm     courses.MYD  scores.MYD   students.MYI tb1.ibd  toc.frm

目标服务器导入表准备

目标服务器创建数据库和准备导入的表

创建的表需要和源服务器上面的创建表的时候使用一模一样的命令;源服务器查看创建表的方法如下

MariaDB[hellodb]> show create table tb1;
+-------+---------------------------------------------------------------------------------------+
|Table | Create Table                                                                         |
+-------+---------------------------------------------------------------------------------------+
|tb1   | CREATE TABLE `tb1` (
  `id` int(11) DEFAULT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------+

获取到源服务器创建表的命令后,目标服务器就可以直接复制用来创建表

MariaDB[(none)]> create database mydb;
MariaDB[(none)]> use mydb;
MariaDB[mydb]> CREATE TABLE `tb1` (
    ->  `id` int(11) DEFAULT NULL
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MariaDB[mydb]> show tables;
+----------------+
|Tables_in_mydb |
+----------------+
|tb1            |
+----------------+

目标服务器需要启用每表一个表空间的选项,此选项我在安装Mariadb时已经开启。

MariaDB[mydb]> show global variables like ‘innodb_file%‘;
+--------------------------+----------+
|Variable_name            | Value    |
+--------------------------+----------+
|innodb_file_format       | Antelope |
|innodb_file_format_check | ON       |
|innodb_file_format_max   | Antelope |
|innodb_file_per_table    | ON       |   #此处为ON表示启用
+--------------------------+----------+
4rows in set (0.00 sec)

目标服务器删除创建表的表空间

MariaDB[mydb]> ALTER TABLE tb1 DISCARD TABLESPACE;

复制表空间文件到远程服务器

[[email protected]]# scp tb1.frm tb1.ibd 172.16.4.10:/mydata/data/mydb

修改属组和属主为Mysql

[[email protected]~]# cd /mydata/data/mydb/
[[email protected]]# ll
total112
-rw-rw----1 mysql mysql    65 May 27 22:45 db.opt
-rw-rw----1 mysql mysql  8556 May 27 22:53 tb1.frm
-rw-r-----1 root  root  98304 May 27 22:53 tb1.ibd
[[email protected]]# chown -R mysql:mysql tb1.ibd 
[[email protected]]# ll
total112
-rw-rw----1 mysql mysql    65 May 27 22:45 db.opt
-rw-rw----1 mysql mysql  8556 May 27 22:53 tb1.frm
-rw-r-----1 mysql mysql 98304 May 27 22:53 tb1.ibd

重新导入表空间

MariaDB[mydb]> ALTER TABLE tb1 IMPORT TABLESPACE;

查看数据库状态

MariaDB[mydb]> show table status like ‘tb1‘\G;
ERROR2006 (HY000): MySQL server has gone away
Noconnection. Trying to reconnect...
Connectionid:    1
Currentdatabase: mydb
 
***************************1. row ***************************
           Name: tb1
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 8
 Avg_row_length: 2048
    Data_length: 16384
Max_data_length:0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2015-05-27 22:53:24
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1row in set (0.01 sec)
 
ERROR:No query specified

查看表已经有了数据

MariaDB[mydb]> select * from tb1;
+------+
|id   |
+------+
|    1 |
|    2 |
|    3 |
|   23 |
|1000 |
|9000 |
+------+
6rows in set (0.01 sec)

补充:如果对于MyISAM存储引擎来说,直接复制三个文件(.frm: 表结构 .MYD:表数据.MYI:表索引)到表目录下即可,MyISAM会自动识别的。

时间: 2024-10-05 17:21:20

使用xtrabackup备份恢复Mariadb数据库的相关文章

xtrabackup备份还原mariadb数据库

一.xtrabackup 简介 xtrabackup 是由percona公司开源免费的数据库热备软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份,对于myisam的备份同样需要加表锁.mysqldump备份方式是通过用户名密码连接到数据库,将其要备份的数据库用SQL语句的形式输出到标准输出,这种逻辑备份的方式最大的缺点是备份和恢复的速度较慢,如果数据库过大,mysqldump备份就显得力不从心了.这时选择用xtrabackup来备份就能很好解决数据库过大而导致备份过慢的问

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 innobackupex使用方法 完整备份及还原 增量备份及还原 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona

xtrabackup备份恢复测试 -转

Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册 博文      博主 王恒-Henryhengwang.blog.chinaunix.net 我的项目:https://github.com/HengWang/ ChinaUnix博客技术文章推荐标准和规范 有奖征集:文集--博客系列博文管理 CU博客频道6月技术图书有奖试读活动 首页 | 博文目录 | 关于我 king_wangheng 博客访问: 486455 博文数量: 117 博客积分: 1715 博客等级: 上尉

xtrabackup备份还原MySQL数据库

原文:xtrabackup备份还原MySQL数据库 mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况Xtrabackup可以解决mysqldump存在的上述的一些问题,生产环境应用的也会更多一些.本文简单测试一下Xtrabackup对MySQL数据库的备份还原操作. 本着先把功能先撸起来再深入细节的原则,粗略地实现了一个备份还原,并未深入细节. 网上有不少xtrabackup的文章,因为环境不一样,有些

xtrabackup 备份恢复测试过程

参考: http://blog.csdn.net/justdb/article/details/17054579# MySQL备份与恢复之percona-xtrabackup软件的使用 http://blog.csdn.net/justdb/article/details/17054667# MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复 http://devliangel.blog.51cto.com/469347/1374232# 使用innobackupex在

手工备份恢复oracle数据库

 手工备份恢复oracle数据库: 虽然已经有了rman工具 但是手工恢复oracle能够让你对oracle数据库有更加深入的了解 数据库一致性开机条件: 数据文件 scn,控制文件 scn,redo scn一致 控制文件记录: 数据文件应该到达的scn 当前redo 数据的物理结构信息 归档信息 前提条件: 归档日志开启 数据文件有备份 控制文件有备份 备份数据: 数据文件备份: 数据文件进入备份模式: select 'alter tablespace '|| tablespace_name|

备份恢复MySQL数据库的命令

备份恢复MySQL数据库的命令 备份:mysqldump -hhostname -P 3306 -uusername -ppassword databasename > D:/backupfile.sql 恢复:mysqldump -hhostname -P 3306 -uusername -ppassword databasename < D:/backupfile.sql

MySQL之Xtrabackup备份恢复数据库-简介

一.Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup 是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup 有两个主要的工具:xtrabackup.innobackupex xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表. innobackupex是参考了InnoDB Hotbackup的innoback脚

mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库

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