基于Xtrabackup备份mysql(MairaDB)
一、Xtrabackup1、Xtrabackup介绍PerconaXtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份,据官方介绍,这也
一、Xtrabackup
1、Xtrabackup介绍
Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具
2、Xtrabackup的特点
(1)在线热备整个库的InnoDB、XtraDB表
(2)备份过程不会打断正在执行的事务;
(3)在xtrabackup的上一次整库备份基础上做增量备份(innodb only)
(4)自动实现备份检验;
(5)以流的形式产生备份,可以直接保存到远程主机上
3、Xtrabackup有两个主要的工具
(1)xtrabackup
xtrabackup的增量备份只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
(2)innobackupex
innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。
4、增量备份的过程
(1)首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number)。
(2)在进程增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。
首先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷贝InnoDB的logfile到xtrabackup_logfile;接着,开始拷贝全部的数据文件.ibd;在拷贝全部数据文件结束之后,才停止拷贝logfile。
因为logfile里面记录全部的数据修改情况,所以,即使在备份过程中数据文件被修改过了,恢复时仍然能够通过解析xtrabackup_logfile保持数据的一致。
5、Xtrabackup备份原理
(1)XtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-recovery,使得数据恢复一致。
(2)InnoDB维护了一个redo log,又称为transaction log,事务日志,它包含了innodb数据的所有改动情况。当InnoDB启动的时候,它会先去检查data file和transaction log,并且会做二步操作:
①、XtraBackup在备份的时候, 一页一页地复制innodb的数据,而且不锁定表,与此同时,XtraBackup还有另外一个线程监视着transactions log,一旦log发生变化,就把变化过的log pages复制走。为什么要急着复制走呢? 因为transactions log文件大小有限,写满之后,就会从头再开始写,所以新数据可能会覆盖到旧的数据。
②、在prepare过程中,XtraBackup使用复制到的transactions log对备份出来的innodb data file进行crash recovery。
6、实现细节
XtraBackup以read-write模式打开innodb的数据文件,然后对其进行复制。其实它不会修改此文件。也就是说,运行XtraBackup的用户,必须对innodb的数据文件具有读写权限。之所以采用read-write模式是因为XtraBackup采用了其内置的innodb库来打开文件,而innodb库打开文件的时候就是rw的。
7、Xtrabackup的安装
(1)所需软件,直接到percona官网下载即可
percona-toolkit-2.2.4-1.noarch.rpm percona-xtrabackup-2.1.8-733.rhel6.x86_64.rpm因为percona-toolkit是perl组件,所以会依赖很多perl库,所以选择yum方式安装
二、Xtrabackup完全备份的实现
1、前提准备
(1)创建数据备份目录
[root@shuishui ~]# mkdir /backups/(2)修改二进制日志文件存储路径
[root@shuishui ~]# vim /etc/my.cnf log-bin=/mydata/binlogs/master-bin(3)授权一个最小权限的用户进行复制
MariaDB [(none)]> grant reload,lock tables,replication client on *.* to 'backup'@'localhost' identified by 'backup'; MariaDB [(none)]> flush privileges;2、完整备份的实现
(1)导入一个数据库,就不自己建库了
MariaDB [hellodb]> set sql_log_bin=0; #导入数据库过程无需记录二进制日志,把以先暂时关闭 MariaDB [hellodb]> source hellodb.sql; MariaDB [hellodb]> show databases; +--------------------+ | Database | +--------------------+ | hellodb | | information_schema | | makingware | | mysql | | performance_schema | | test | | ultrax | +--------------------+ MariaDB [hellodb]> set sql_log_bin=1; #开启二进制日志(2)做完整备份
[root@shuishui ~]# innobackupex --user=backup --password=backup --host=localhost /backups/ #做完备 …… …… innobackupex: Backup created in directory '/backups/2014-04-21_11-28-06' #备份存储路径 innobackupex: MySQL binlog position: filename 'master-bin.000013', position 105544 #二进制日志及位置信息 140421 11:28:15 innobackupex: Connection to database server closed 140421 11:28:15 innobackupex: completed OK! #只有到了这里才说明备份成功看一下备份目录中生成的一些文件
[root@shuishui ~]# cd /backups/2014-04-21_11-28-06/ [root@shuishui 2014-04-21_11-28-06]# ll total 12388 -rw-r--r--. 1 root root 357 Apr 21 11:28 backup-my.cnf drwxr-xr-x. 2 root root 4096 Apr 21 11:28 hellodb -rw-r-----. 1 root root 12582912 Apr 21 11:28 ibdata1 drwxr-xr-x. 2 root root 4096 Apr 21 11:28 makingware drwx------. 2 root root 4096 Apr 21 11:28 mysql drwxr-xr-x. 2 root root 4096 Apr 21 11:28 performance_schema drwxr-xr-x. 2 root root 4096 Apr 21 11:28 test drwxr-xr-x. 2 root root 61440 Apr 21 11:28 ultrax -rw-r--r--. 1 root root 13 Apr 21 11:28 xtrabackup_binary -rw-r--r--. 1 root root 27 Apr 21 11:28 xtrabackup_binlog_info -rw-r-----. 1 root root 89 Apr 21 11:28 xtrabackup_checkpoints -rw-r-----. 1 root root 2560 Apr 21 11:28 xtrabackup_logfile [root@shuishui 2014-04-21_11-28-06]#
핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

기사는 MySQL에서 파티셔닝, 샤딩, 인덱싱 및 쿼리 최적화를 포함하여 대규모 데이터 세트를 처리하기위한 전략에 대해 설명합니다.

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

이 기사에서는 Drop Table 문을 사용하여 MySQL에서 테이블을 떨어 뜨리는 것에 대해 설명하여 예방 조치와 위험을 강조합니다. 백업 없이는 행동이 돌이킬 수 없으며 복구 방법 및 잠재적 생산 환경 위험을 상세하게합니다.

이 기사에서는 PostgreSQL, MySQL 및 MongoDB와 같은 다양한 데이터베이스에서 JSON 열에서 인덱스를 작성하여 쿼리 성능을 향상시킵니다. 특정 JSON 경로를 인덱싱하는 구문 및 이점을 설명하고 지원되는 데이터베이스 시스템을 나열합니다.

기사는 외국 열쇠를 사용하여 데이터베이스의 관계를 나타내고 모범 사례, 데이터 무결성 및 피할 수있는 일반적인 함정에 중점을 둡니다.

기사는 준비된 명령문, 입력 검증 및 강력한 암호 정책을 사용하여 SQL 주입 및 무차별 적 공격에 대한 MySQL 보안에 대해 논의합니다 (159 자)
