MySQL中備份的幾種方式

前言:mysql

並非每家公司都高大上,並非每家公司都會用一些很前沿的技術來作備份這一塊,有些企業或者有些行業或者團隊自己因爲各方面的緣由使用簡單或者複雜的方式來作備份這塊,此次這個文檔算是對之前工做的總結,看一下各類備份方式中的優缺點sql

 

1 mysqldump數據庫

經常使用的備份參數app

-R --events --triggers=true  --single-transaction --master-data=2ide

-R(--routines): 導出存儲過程以及自定義函數函數

--events: 導出事件spa

--triggers=true:導出觸發器.默認開啓,用--skip-triggers禁用事件

--single-transaction:該選項在導出數據以前提交一個BEGIN SQL 語句,BEGIN不會阻塞任何應用程序且能保證處處時數據庫的一致性狀態,跟--lock-tables是互斥的.由於lock tables會使任何掛起的事務隱含提交事務

--master-data=2: 該選項將binlog的位置和文件名追加到輸出文件中,若是是1 將會輸出CHANGE MASTER命令,若是爲2,輸出的CHANGE MASTER 命令錢添加註釋信息。該選項將打開--lock-all-tables選,除非--single-transaction也被指定(在這種狀況下,全局讀鎖在開始導出時得到很短的時間),該選項自動關閉--lock-tables選項ip

# /opt/app/mysql/bin/mysqldump -uroot -p -R --events --triggers=true  --single-transaction --master-data=2 sakila > sakila.sql

 

2 數據目錄拷貝----此略

3 基於xtarbackup的備份

rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

yum -y install percona-xtrabackup

安裝後的軟件包有

[root@MASTER_03 bin]# rpm -ql percona-xtrabackup

/usr/bin/innobackupex

/usr/bin/xbcloud

/usr/bin/xbcloud_osenv

/usr/bin/xbcrypt

/usr/bin/xbstream

/usr/bin/xtrabackup

/usr/share/doc/percona-xtrabackup-2.3.3

/usr/share/doc/percona-xtrabackup-2.3.3/COPYING

/usr/share/man/man1/innobackupex.1.gz

/usr/share/man/man1/xbcrypt.1.gz

/usr/share/man/man1/xbstream.1.gz

/usr/share/man/man1/xtrabackup.1.gz

 

具體用法

1 建立備份用戶

mysql> grant reload,lock tables,replication client on *.* to 'dbbak'@'localhost' identified by 'bk2016' ;
mysql> flush privileges;
進行數據庫全備

mkdir -pv /data/dbbak

cd /data/dbbak

使用如下參數進行全庫備份

[root@MASTER_03 dbbak]# innobackupex --user=dbbak --password=bk2016 /data/dbbak/

會在dbbak目錄下生成一個以時間戳爲準的目錄

2016-02-03_15-48-02

在這個目錄下有一個文件

[root@MASTER_03 dbbak]# cat 2016-02-03_15-48-02/xtrabackup_checkpoints

backup_type = full-backuped

from_lsn = 0

to_lsn = 1095181486

last_lsn = 1095181486

compact = 0

recover_binlog_info = 0

增量備份 建立一個庫中創建一個表(建表纔會致使LSN號變化)

[root@MASTER_03 dbbak]# innobackupex --user=dbbak --password=bk2016 --incremental /data/dbbak/ --incremental-basedir=/data/dbbak/2016-02-03_15-48-02/

 

生成一個新目錄

2016-02-03_16-01-28

對比這個checkpoint

[root@MASTER_03 dbbak]# cat 2016-02-03_16-01-28/xtrabackup_checkpoints

backup_type = incremental

from_lsn = 1095181486

to_lsn = 1095181486

last_lsn = 1095181486

compact = 0

recover_binlog_info = 0

 

 

 

4  MySQL企業級的備份mysqlbakcup

mysqlbackup --user=dba --password --port=3306  --with-timestamp --backup-dir=/export/backups   backup

 

5基於LVM的快照備份---略

相關文章
相關標籤/搜索