一、使用每表單個(gè)表空間
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)南昌縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。這樣ibdata1文件不會(huì)過大。
xtrabackup可以使用部分備份了,需要在一個(gè)表一個(gè)文件的狀況下才能使用。
1.在使用xtrabackup之前,我們需要查看我們當(dāng)前mysql是否是使用每表單個(gè)表空間,如果不是則必須將其修改為每表單獨(dú)表空間:
1
mysql> show global variables like '%innodb_file_p%';2
+-----------------------+-------+3
| Variable_name | Value |4
+-----------------------+-------+5
| innodb_file_per_table | OFF |6
+-----------------------+-------+7
1 row in set (0.00 sec)這里是關(guān)閉狀態(tài),由此我們要啟動(dòng)這個(gè)功能,將來一旦要用到xtrabackup或各種高級(jí)功能的話建議剛安裝mysql的時(shí)候直接將默認(rèn)配置去寫進(jìn)配置文件,中途再更改的話會(huì)非常麻煩。
2.重新導(dǎo)出導(dǎo)入數(shù)據(jù),修改為每表一個(gè)文件:
1
[root@test2 ~]#mysqldump -uroot --lock-all-tables --all-databases --master-data=2 --events> ./1.sql2
關(guān)閉數(shù)據(jù)庫3
[root@test2 ~]#/etc/init.d/mysqld stop4
Shutting down MySQL.. SUCCESS!5
編輯配置文件加入以下參數(shù)6
[root@test2 ~]# vim/etc/my.cnf7
innodb_file_per_table= 18
而后刪除數(shù)據(jù)文件并重新初始化9
[root@test2 data]#pwd10
/mydata/data11
刪除所有數(shù)據(jù)文件12
[root@test2 data]# rm -fr *13
初始化mysql14
[root@test mysql]#pwd15
/usr/local/mysql16
[root@test mysql]# scripts/mysql_install_db --user=mysql--datadir=/mydata/data/ --basedir=/usr/local/mysql/17
[root@test mysql]#/etc/init.d/mysqld start18
再次查看是否是每表單獨(dú)表空間19
mysql> showglobal variables like '%innodb_file_per%';20
+-----------------------+-------+21
|Variable_name | Value |22
+-----------------------+-------+23
|innodb_file_per_table | ON |24
+-----------------------+-------+25
1 row in set (0.00sec)26
恢復(fù)數(shù)據(jù)27
mysql> source~/1.sql28
[root@test2 data]#ll wpdb/29
total 22030
-rw-r--r--. 1 mysqlmysql 61 Apr 6 11:05 db.opt31
-rw-r--r--.1 mysql mysql 8646 Apr 6 11:05 students.frm32
-rw-r--r--.1 mysql mysql 98304 Apr 6 11:05students.ibd33
-rw-r--r--. 1 mysql mysql 8556 Apr 6 11:05 tb4.frm34
-rw-r--r--. 1 mysql mysql 98304 Apr 6 11:05 tb4.ibd35
如上所示每個(gè)表都有單獨(dú)對(duì)應(yīng)的表空間了36
3.指定datadir:
1
vim /etc/my.cnf2
添加一行:3
datadir = /data/server/mysql/data二、安裝percona-xtrabackup
1
解決依賴關(guān)系2
[root@test ~]# yum-y install libaio perl-Time-HiRes perl-DBD-MySQL perl-IO-Socket-SSL安裝percona-xtrabackup:
1.rpm
[root@test2 tools]#rpm -ivh percona-xtrabackup-2.1.4-656.rhel6.x86_64.rpm
使用wget下載rpm包,然后通過rpm包安裝
參考:http://www.cnblogs.com/cosiray/archive/2012/03/02/2376595.html
參考:http://blog.163.com/ji_1006/blog/static/10612341201382355716623/
2.yum
1
自動(dòng)2
$ rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm3
然后會(huì)看到:4
Retrieving http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm5
Preparing... ########################################### [100%]6
1:percona-release ########################################### [100%]7
手動(dòng)8
[percona]9
name = CentOS $releasever - Percona10
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/11
enabled = 112
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona13
gpgcheck = 114
測試安裝庫15
使用yum list | grep percona來確保安裝16
yum list | grep percona三、使用percona-xtrabackup
innobackupex是perl腳本對(duì)xtrabackup的封裝,和功能擴(kuò)展。
1.配置權(quán)限
1
grant RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'back'@'localhost'identified by 'back';2.創(chuàng)建全備
1
innobackupex --user=back --password=back --no-timestamp /tmp/mysqlback/內(nèi)部機(jī)制:在備份的時(shí)候innobackupex會(huì)調(diào)用xtrabackup來備份innodb表,并復(fù)制所有的表定義,其他引擎的表(MyISAM,MERGE,CSV,ARCHIVE)
--no-timestamp,指定了這個(gè)選項(xiàng)備份會(huì)直接備份在BACKUP-DIR,不再創(chuàng)建時(shí)間戳文件夾。
--default-file,指定配置文件,用來配置innobackupex的選線。
3.使用innobackupex預(yù)備全備(備份好了,先不要做這個(gè),直接保存。只有需要直接用來還原時(shí)候做這個(gè))
1
innobackupex --apply-lop mysqlback/--user-memory:指定預(yù)備階段可使用的內(nèi)存,內(nèi)存多則速度快,默認(rèn)為10MB
1
innobackupex --apply-log --use-memory=4G /path/to/BACKUP-DIR4.全備還原
1)停止服務(wù):
service mysqld stop
2) 刪除datadir目錄數(shù)據(jù)
rm -rf data/*
3) 使用innobackupex --copy-back來還原備份,會(huì)根據(jù)my.cnf復(fù)制所有備份到datadir下:
1
innobackupex --copy-back mysqlback/注:datadir必須是為空的,innobackupex –copy-back不會(huì)覆蓋已存在的文件,還要注意,還原時(shí)需要先關(guān)閉服務(wù),如果服務(wù)是啟動(dòng)的,那么就不能還原到datadir。
4) 修改數(shù)據(jù)的所有者和權(quán)限
1
chown -R mysql:mysql data/5) 啟動(dòng)服務(wù)
service mysqld start
5.創(chuàng)建增量備份
在創(chuàng)建增量備份之前需要一個(gè)全備,不然增量備份是沒有意義的.
1
innobackupex /data/backups創(chuàng)建第一個(gè)增量備份
1
innobackupex --incremental /data/backups --incremental-basedir=BASEDIR6.還原增量備份
在全備上,使用—redo-only只做已提交事務(wù),不回滾未提交事務(wù)
1
innobackupex --apply-log --redo-only BASE-DIR應(yīng)用第一個(gè)增量備份
1
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1回滾未提交事務(wù)
1
innobackupex --apply-log BASE-DIR1
innobackupex --copy-back BASE-DIR6. 單表備份:
備份單表:
1
innobackupex --user=root --password=simlinux.com --defaults-file=/etc/my.cnf --include='se.searchaccount' --slave-info --safe-slave-backup --stream=tar /data/backup > /data/backup/searchaccount.tar.gz多個(gè)表: --include='test.*|pms.*'
復(fù)制到其他服務(wù)器后,解壓:
1
tar -ixf searchaccount.tar.gz -C /data/databak/innobackupex預(yù)備:
1
innobackupex --apply-log --export /data/databak7.單表還原:
定義表,先創(chuàng)建一個(gè)表,表結(jié)構(gòu)需要和被還原的一樣 (若是表已存在則不需要?jiǎng)?chuàng)建):
1
CREATE TABLE `searchaccount`...然后discard表空間 (discard完表空間后再復(fù)制文件過來,再import,這樣就不需要重啟)
1
mysql > ALTER TABLE se.searchaccount DISCARD TABLESPACE;文件復(fù)制到databdir相應(yīng)的目錄下(注意文件的所有者和文件權(quán)限),mysql需要.ibd和.cfg文件,mysql 5.6之后可以不使用cfg來進(jìn)行import,XtraDB需要.ibd和.exp,mariadb 10.0可以直接通過ibd和frm文件import
1
cp /data/databak/se/{searchaccount.ibd,searchaccount.cfg} /usr/local/mysql/data/se/1
chown mysql.mysql /usr/local/mysql/data/se/然后import表空間
1
mysql > ALTER TABLE se.searchaccount IMPORT TABLESPACE;8.使用xbstream流備份
1
innobackupex --stream=xbstream /root/backup/ > /root/backup/backup.xbstream9.使用tar備份
1
innobackupex --stream=tar ./ > /root/backup/out.tar10.使用tar流并備份到其他服務(wù)器
1
ssh-keygen2
ssh-copy-id -i mysql@127.0.0.11
innobackupex --stream=tar ./ | gzip | ssh user@destination "cat - > /data/backup.tar"加密碼
1
innobackupex --stream=tar ./ | gzip | sshpass -p 'root123' ssh user@destination "cat - > /data/backup.tar"11.壓縮流
1
innobackupex --stream=tar ./ | gzip - > backup.tar.gz12.提取tar流,需要加i參數(shù)
1
tar -xizf backup.tar.gz參考:
innobackupex --user=root --password=root --stream=tar ./ | gzip | sshpass -p 'root123' ssh root@10.6.32.28 "cat - > /usr/programs/xtraback/backup.tar.gz"
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123' --host=localhost --rsync --compress --compress-threads=5 --compress-chunk-size=64K --slave-info /root
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。