西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程數(shù)據(jù)庫教程 → MySQL/MariaDB數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)完整教程

MySQL/MariaDB數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)完整教程

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2014/5/5 8:36:59字體大。A-A+

作者:西西點(diǎn)擊:445次評(píng)論:0次標(biāo)簽: MySQL MariaDB

  • 類型:濾鏡插件大。7.6M語言:中文 評(píng)分:6.6
  • 標(biāo)簽:
立即下載

MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。開發(fā)這個(gè)分支的原因之一是:Oracle公司收購了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來避開這個(gè)風(fēng)險(xiǎn)。

數(shù)據(jù)對(duì)我們來說再重要不過了,那我們?nèi)绾巫龅綄?duì)數(shù)據(jù)盡可能的安全呢,當(dāng)我們的數(shù)據(jù)丟失了那又該怎么做呢,所以說數(shù)據(jù)備份對(duì)我們的數(shù)據(jù)安全性來說太重要了。  

數(shù)據(jù)對(duì)我們來說再熟悉不過了,也最平常不過了,我們每天都在接觸各色各樣的數(shù)據(jù),數(shù)據(jù)記錄了我們平常相關(guān)的業(yè)務(wù)信息,所以數(shù)據(jù)對(duì)于我們來說是很重要的, 這么重要的數(shù)據(jù)如果我們的數(shù)據(jù)丟失了那我們是不是相關(guān)的業(yè)務(wù)都沒法進(jìn)行了呢,這應(yīng)該是個(gè)很麻煩的問題,那我們?cè)趺幢Wo(hù)我們的數(shù)據(jù)的安全呢,這就要用到我們 的數(shù)據(jù)備份了。

如何執(zhí)行備份恢復(fù):備份與恢復(fù)在工作環(huán)境中是重中之重,為什么需要用到備份和恢復(fù)呢:
1、一般是做災(zāi)難恢復(fù)的,比如說自然災(zāi)害等。
2、可以做審計(jì)的,比如說某一數(shù)據(jù)在過去是什么樣的。
3、做測(cè)試的,比如說一個(gè)新的業(yè)務(wù)架構(gòu)數(shù)據(jù)存儲(chǔ)方式是否扛得著業(yè)務(wù)的訪問
備份的目的是用于恢復(fù)的,如果備份的數(shù)據(jù)用到時(shí)恢復(fù)不了數(shù)據(jù)怎么辦,所以對(duì)備份數(shù)據(jù)做恢復(fù)測(cè)試是很有必要的。而且還要定期性的去做測(cè)試。

備份類型:有很多種
根據(jù)備份時(shí),數(shù)據(jù)庫服務(wù)器是否在線
冷備份:cold backup,服務(wù)器要離線,意味著我們的讀寫操作都不可以進(jìn)行了,這是最安全的備份方式,也是最不靠譜的方式。
溫備份:warm backup,全局施加共享鎖,只可讀,不可寫的備份叫溫備份
熱備份:hot backup,數(shù)據(jù)庫不離線,讀寫操作都可以進(jìn)行

InnoDB記錄數(shù)據(jù)時(shí)都會(huì)給數(shù)據(jù)一個(gè)序列號(hào),所以在備份時(shí)基于MVCC(多版本并發(fā)控制)的機(jī)制自動(dòng)加快照,每啟動(dòng)一個(gè)事務(wù)都會(huì)創(chuàng)建當(dāng)前集的一個(gè)快 照,而后基于MVCC的機(jī)制把每一個(gè)序列號(hào)都給它記錄一份下來,備份時(shí)只備份序列號(hào)或序列號(hào)之前的數(shù)據(jù),往后發(fā)生的將不做備份,如果事務(wù)的隔離級(jí)別不是特 別高的話,它并不會(huì)影響事務(wù)的讀寫操作,而這樣備份出來的數(shù)據(jù)一定是時(shí)間點(diǎn)一致的數(shù)據(jù),所以要完成熱備份,通常是基于事務(wù)的存儲(chǔ)引擎才能夠完成的。

根據(jù)備份時(shí)的數(shù)據(jù)集進(jìn)行分類:
完全備份:full backup:指?jìng)浞菡麄(gè)庫,當(dāng)下數(shù)據(jù)集的整個(gè)庫的數(shù)據(jù)
部分備份:partial backup:只備份某張表或某張表的一部份數(shù)據(jù),有時(shí)備份單張表是有必要的。

根據(jù)備份時(shí)的接口(直接備份數(shù)據(jù)文件還是通過mysql服務(wù)器導(dǎo)出數(shù)據(jù))
物理備份:直接復(fù)制(歸檔)數(shù)據(jù)文件的備份方式;跨平臺(tái)能力沒有邏輯備份好,physucal backup。大數(shù)據(jù)集用這個(gè)比較好。
邏輯備份:把數(shù)據(jù)庫中提出來保存為文本文件;通常使用的工具是mysqldump,logical backup,對(duì)于大容量數(shù)據(jù)不適用。恢復(fù)速度很慢,占據(jù)空間很大

根據(jù)備份時(shí)是否備份整個(gè)數(shù)據(jù)還是僅備份變化的數(shù)據(jù)
完全備份:full backup,跟備份數(shù)據(jù)集中的完全備份概念是相同的,也是備份整個(gè)庫
增量備份:incremental backup,上一次完全備份之后所改變的數(shù)據(jù)做備份的為增量備份,比如說周一做一次備份,周二做一次備份,周三又做一次,這樣一天天累加上去的叫增量備份。比較節(jié)約空間。
差異備份:differential backup,比如說周一做一次備份,到周二了就把周一和周二這兩天的做一次備份,到周三就把周一周二周三的做一次備份,這就叫差異備份。比較容易恢復(fù)。

備份策略:需要考慮到的問題
1、選擇備份方式,選擇哪種方式根據(jù)我們的生產(chǎn)環(huán)境所需要來定;
2、執(zhí)行備份時(shí)間,選項(xiàng)一個(gè)訪問最少的時(shí)間做備份是比較合理的;
3、考慮到恢復(fù)成本:恢復(fù)時(shí)長;
4、備份成本:考慮到鎖時(shí)間、備份時(shí)長、備份負(fù)載;

備份對(duì)象:我們備份需要備份什么呢
1、備份數(shù)據(jù)庫中的數(shù)據(jù)是最重要的;
2、MySQL的配置文件,這個(gè)也是我們備份的對(duì)象
3、MySQL的代碼也是需要備份的:存儲(chǔ)過程,存儲(chǔ)函數(shù),觸發(fā)器
4、OS相關(guān)的配置文件,如crontab配置計(jì)劃及相關(guān)的腳本
5、如果是在主從復(fù)制的場(chǎng)景中,跟復(fù)制相關(guān)的信息也要備份
6、為了保證數(shù)據(jù)足夠可靠,二進(jìn)制日志文件也需要備份

常用的備份工具:
mysqldump:邏輯備份工具,是單線程備份工具,所以在某個(gè)服務(wù)器上做備份時(shí)它只能啟動(dòng)一個(gè)CPU啟動(dòng)一個(gè)線程進(jìn)行備份,性能比較差。
對(duì)InnoDB熱備、對(duì)MyISAM只能做到溫備、對(duì)Aria溫備,備份和恢復(fù)過程較慢;
mysqldumper:多線程的mysqldump,對(duì)多個(gè)庫或多張表可以同時(shí)進(jìn)行,提高性能;
mysqldump、mysqldumper,這兩個(gè)都是邏輯備份工具,通常情況也很難實(shí)現(xiàn)差異或增量備份,只能做完全備份,但可以做部分備份,比如只備份一張表是可以實(shí)現(xiàn)的;

基于冷備份時(shí):cp, 要基于lvm-snapshot邏輯卷快照進(jìn)行備份的,接近于熱備工具,因?yàn)橐日?qǐng)求全局鎖,而后創(chuàng)建快照,并在創(chuàng)建快照完成后釋放全局鎖;而后使用 cp、tar等工具進(jìn)行物理備份(因?yàn)閺?fù)制的源數(shù)據(jù)文件),所以備份和恢復(fù)數(shù)據(jù)速度較快,缺點(diǎn)很難實(shí)現(xiàn)增量備份,并且請(qǐng)求全局鎖需要等待一段時(shí)間,在繁忙 的服務(wù)器上尤其如此。

SELECT clause INTO OUTFILE ‘/path/to/somefile’;把挑選出來的子句保存到某一個(gè)文件中,是個(gè)部分備份工具,不會(huì)備份關(guān)系定義,僅備份表中的數(shù)據(jù),但這也是個(gè)邏輯 備份工具,在速度上也快于mysqldump,也沒法實(shí)現(xiàn)增量備份。
LOAD ADTA INFILE ‘/path/from/somefile’;表示從哪里讀數(shù)據(jù)來恢復(fù)的; 

Innobase:提供了商業(yè)備份工具為Innobackup,可以實(shí)現(xiàn)InnoDB的熱備支持增量備份;但是對(duì)于MyISAM不支持增量備份,只能實(shí)現(xiàn)完全備份,屬于物理備份,速度比較快。
Xtrabackup:由Percona組織提供的開源備份工具,物理備份,速度快;
Mysqlhostcopy:幾乎冷備,吹牛工具,不適用;

mysqldump:常用的備份工具,也是個(gè)邏輯備份工具,用于小數(shù)據(jù)備份,一般都是在5G以下的小數(shù)據(jù)進(jìn)行備份;可以使用文本進(jìn)行二次處理;相當(dāng)于MySQL的客戶端工具
使用格式:mysqldump [options] [db_name [tbl_name ...]]
備份單個(gè)庫時(shí)用這個(gè)工具:mysqldump[option] db_name
恢復(fù)時(shí),如果目標(biāo)庫不存在,需要事先手動(dòng)創(chuàng)建

--all-databases:備份所有的數(shù)據(jù)庫--databases db1 db2:備份指定的多個(gè)數(shù)據(jù)庫,用空格隔開--lock-all-tables:請(qǐng)求鎖定所有表之后再備份,一般只對(duì)MyISAM做溫備,不過也可以對(duì)InnoDB和Aria做溫備。--events:備份事件調(diào)度器代碼--routines:備份存儲(chǔ)過程和存儲(chǔ)函數(shù)--triggers:備份觸發(fā)器--flush-logs:備份前、請(qǐng)求到鎖以后滾動(dòng)日志,備份時(shí)滾動(dòng)日志,手動(dòng)滾動(dòng)就要手動(dòng)施加鎖--master-data=[0|1|2]復(fù)制時(shí)的同步位置標(biāo)記,0表示不記錄,1記錄carnge master語句,2記錄為注釋為change master語句--single-transaction:能夠?qū)nnoDB存儲(chǔ)引擎實(shí)現(xiàn)熱備份,啟動(dòng)一個(gè)單一的大事物,基于MVCC(多版本并發(fā)控制)實(shí)現(xiàn)對(duì)InnoDB存儲(chǔ)引擎的熱備,它會(huì)自動(dòng)加鎖的,不要跟--lock-all-tables同時(shí)使用;
# mysqldump --databases hellodb --lock-all-tables > /tmp/hellodb.sql :備份數(shù)據(jù)庫,并且請(qǐng)求表鎖,這里備份的所有寫操作都會(huì)被阻塞,這種方式也不太理想。
# mysqldump --databases hellodb --lock-all-tables --flush-logs > /tmp/hellodb.sql
# mysqldump --databases hellodb --single-transaction --flush-logs > /tmp/hellodb.sql:保證這個(gè)庫下所有的表的存儲(chǔ)引擎都是InnoDB的前提下使用--single-transaction進(jìn)行熱備。
分時(shí)間段查看二進(jìn)制日志后重定向到某個(gè)文件中去:
# mysqlbinlog --start-porition=367 --stop-position=669 master-bin.000005 > /tmp/hellodb.inc.sql
定義一個(gè)開始點(diǎn)和一個(gè)結(jié)束點(diǎn)就可以把二進(jìn)制文件重定向到某個(gè)文件中再進(jìn)行恢復(fù)了;


使用mysqldump備份時(shí):
請(qǐng)求鎖:--lock-all-tables使用--single-transaction進(jìn)行innodb熱備;
滾動(dòng)日志:--flush-logs
選定要備份的庫:--databases
指定二進(jìn)制日志文件及位置:--master-data=2
注意:備份前需要加鎖,恢復(fù)時(shí),建議關(guān)閉二進(jìn)制日志,關(guān)閉其它用戶連接
備份策略:mysqldump+二進(jìn)制日志文件:

恢復(fù):完全備份+各二進(jìn)制日志文件中至此刻的事件,恢復(fù)過程發(fā)生的事件沒必要也寫到二進(jìn)制日志文件中去;所以在恢復(fù)時(shí)要臨時(shí)性的關(guān)閉二進(jìn)制日志文件:


MariaDB [(hellodb)] > set session sql_log_bin=0:臨時(shí)關(guān)閉二進(jìn)制日志文件
MariaDB [(hellodb)] > source /tmp/hellodb.sql;在數(shù)據(jù)庫命令行直接讀取備份文件


對(duì)MySQL配置文件,以及與MySQL相關(guān)的OS配置文件在每次修改后都應(yīng)該直接進(jìn)行備份


lvm-snapshot:基于LVM快照的備份
1、基于快照做備份有個(gè)提前,事物日志跟數(shù)據(jù)文件必須在同一個(gè)卷上;
2、創(chuàng)建快照卷之前,要請(qǐng)求MySQL的全局鎖,在快照創(chuàng)建完成之后釋放鎖;
3、請(qǐng)求全局鎖完成這后做一次日志滾動(dòng);做標(biāo)記,時(shí)間記錄,做二進(jìn)制日志文件及位置標(biāo)記(需要手動(dòng)進(jìn)行);

注意:
1、將數(shù)據(jù)和備份放在不同的磁盤設(shè)備上,異機(jī)或異地的備份存儲(chǔ)為理想;
2、備份的數(shù)據(jù)應(yīng)該周期性的進(jìn)行還原測(cè)試;
3、每次災(zāi)難恢復(fù)后都應(yīng)該立即做一次完全備份
4、針對(duì)不同規(guī);蚣(jí)別的數(shù)據(jù)量,要定制好備份策略;
5、二進(jìn)制日志應(yīng)該跟數(shù)據(jù)文件在不同的磁盤上,并周期性的備份好二進(jìn)制日志文件;

從備份中恢復(fù)應(yīng)該遵循的步驟:
1、停止MySQL服務(wù)器;
2、記錄服務(wù)器的配置和文件權(quán)限;
3、將數(shù)據(jù)從備份移到MySQL數(shù)據(jù)目錄,其執(zhí)行方式依賴于工具;
4、改變配置和文件權(quán)限;
5、以限制訪問模塊重啟服務(wù)器,mysqld的--skip-network選項(xiàng)可跳過網(wǎng)絡(luò)功能;
方法:編輯my.cnf配置文件,添加如下項(xiàng)
skip-networking
socket=/tmp/mysql-recovery.sock
6、載入邏輯備份(如果有),而后檢查和重放二進(jìn)制日志
7、檢查已經(jīng)還原的數(shù)據(jù);
8、重新以完全訪問模式重啟服務(wù)器;

使用mysqldump實(shí)現(xiàn)備份,用二進(jìn)制日志恢復(fù)數(shù)據(jù),這里我們以當(dāng)前系統(tǒng)上的數(shù)據(jù)庫hellodb為例:

第一步:先把hellodb這個(gè)數(shù)據(jù)庫做一次完全備份,當(dāng)然,如果數(shù)據(jù)庫的數(shù)據(jù)很大,比如說大于10G的話不建議使用mysqldump這個(gè)工具做備份,這里我們只為了說明問題:


# -u指定用戶,-p指用戶密碼,--databases指定備份哪個(gè)數(shù)據(jù)庫,--lock-all-tables指?jìng)浞輹r(shí)請(qǐng)求表鎖,--flush-logs滾動(dòng)日志
[root@node0 ~]# mysqldump -uroot -plinux --databases hellodb --lock-all-tables --flush-logs --master-data=2 > /root/hellodb.sql
[root@node0 ~]# ll -h hellodb.sql-rw-r--r-- 1 root root 7.8K May  2 14:26 hellodb.sql
[root@node0 ~]#


第二步:在數(shù)據(jù)庫hellodb中修改或創(chuàng)建一些表或數(shù)據(jù),使得之前備份的數(shù)據(jù)跟現(xiàn)有的數(shù)據(jù)庫中的數(shù)據(jù)存在差別,以完后后面的通過二進(jìn)制日志進(jìn)行數(shù)據(jù)恢復(fù):


MariaDB [hellodb]> CREATE TABLE newtable;
ERROR 1113 (42000): A table must have at least 1 column
MariaDB [hellodb]> CREATE TABLE newtable(Name CHAR(20));
Query OK, 0 rows affected (1.11 sec)
MariaDB [hellodb]> INSERT INTO newtable values ('Tom'),('Jerry'),('Lucy');
Query OK, 3 rows affected (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 0


第三步:把這個(gè)hellodb這個(gè)數(shù)據(jù)庫給刪除了去:


MariaDB [hellodb]> CREATE TABLE newtable;
ERROR 1113 (42000): A table must have at least 1 column
MariaDB [hellodb]> CREATE TABLE newtable(Name CHAR(20));
Query OK, 0 rows affected (1.11 sec)
MariaDB [hellodb]> INSERT INTO newtable values ('Tom'),('Jerry'),('Lucy');
Query OK, 3 rows affected (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 0


第四步:查看我們的二進(jìn)制日志文件,把后來改修改和創(chuàng)建的記錄二進(jìn)制日志的信息保存出來,以便我們恢復(fù)新增的數(shù)據(jù)內(nèi)容,我們備份時(shí)做了日志滾動(dòng),所以查看最后一個(gè)日志信息就可以了;


[root@node0 ~]# cd /mydata/data/[root@node0 data]# mysqlbinlog --start-position=403 --stop-position=663 mysql-bin.000004 > /tmp/hellodb.binlog.sql


第五步:恢復(fù)數(shù)據(jù),進(jìn)入到mysql的命令行模式下,把二進(jìn)制日志關(guān)掉,恢復(fù)數(shù)據(jù)時(shí)不需要把恢復(fù)信息記錄到二進(jìn)制日志中去;


# 關(guān)閉當(dāng)前全話的二進(jìn)制日志文件
MariaDB [(none)]> SET session sql_log_bin=0;
MariaDB [(none)]> source /root/hellodb.sql
MariaDB [hellodb]> SHOW MASTER STATUS; 查看兩次二進(jìn)制文件有沒有改動(dòng);+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 |      815 |              |                  |
+------------------+----------+--------------+------------------+MariaDB [hellodb]> SHOW TABLES;
MariaDB [hellodb]> source /tmp/hellodb.binlog.sql
MariaDB [hellodb]> SELECT * FROM newtable;+-------+
| Name  |
+-------+
| Tom   |
| Jerry |
| Lucy  |
+-------+3 rows in set (0.00 sec)
MariaDB [hellodb]> SET session sql_log_bin=1; 讓二進(jìn)制上線


OK,這種就是基于mysqldump+二進(jìn)制日志完成數(shù)據(jù)完全恢復(fù)過來了,通過二進(jìn)制日志可以很好的幫助我們恢復(fù)那些可能沒有來得急備份的數(shù)據(jù),對(duì)我們的數(shù)據(jù)安全有很重要。

lvm-snapshot:基于邏輯卷快照做備份,這里要注意的是,快照并不是備份,最多也只是說借助于快照來做數(shù)據(jù)備份,快照本身不是備份;

做了快照之后,一旦源卷的數(shù)據(jù)需要修改,就要把源卷上的數(shù)據(jù)復(fù)制一份到快照卷上,以后再通過快照卷訪問時(shí),那些修改了的數(shù)據(jù)都通過快照存儲(chǔ)來訪問,沒修改的還通過源卷訪問,快照只存儲(chǔ)變化的數(shù)據(jù);
1、它僅僅是作為源卷的一個(gè)訪問路徑;
2、剛創(chuàng)建好的快照卷時(shí),快照卷中是沒有任何數(shù)據(jù)的,它僅是所有數(shù)據(jù)指向了源卷的數(shù)據(jù),所以訪問的數(shù)據(jù)都是來自源卷;
3、一旦源卷中的數(shù)據(jù)需要修改了,某一數(shù)據(jù)在改之前需要將數(shù)據(jù)復(fù)制一份到快照卷中,所以以后再通過快照卷訪問的數(shù)據(jù)都是一部分來自快照卷,一部份來自源 卷;那些修改的數(shù)據(jù)來自快照卷,沒修改的數(shù)據(jù)來自源卷;快照卷僅是能夠給我們提供了一個(gè)時(shí)間一致性文件的訪問通路;

做快照卷要注意的幾點(diǎn):
1、基于快照備份時(shí),事務(wù)日志必須跟數(shù)據(jù)文件在同一個(gè)卷上;
2、創(chuàng)建快照卷之前,要請(qǐng)求mysql的全局鎖,在快照創(chuàng)建完成之后釋放鎖;
3、請(qǐng)求全局鎖完成之后做一次日志滾動(dòng),以便記錄時(shí)間點(diǎn)的;做二進(jìn)制日志文件及位置標(biāo)記,就是master-data;

第一步:首先先看一下你的數(shù)據(jù)目錄的是不是邏輯卷,mount看一下,如果不是邏輯卷的話就別這樣玩;


[root@node0 ~]# mount/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)/dev/sda1 on /boot type ext4 (rw)/dev/mapper/vg0-usr on /usr type ext4 (rw)/dev/mapper/vg0-var on /var type ext4 (rw)/dev/mapper/mydata-mysqldata on /mydata/data type ext4 (rw,noatime)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
[root@node0 ~]# lvs
 LV        VG     Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
mysqldata mydata -wi-ao----  8.00g
 root      vg0    -wi-ao---- 20.00g                                             
 swap      vg0    -wi-ao----  2.00g                                             
 usr       vg0    -wi-ao---- 10.00g                                             
 var       vg0    -wi-ao---- 20.00g                                             
[root@node0 ~]# vgs
 VG     #PV #LV #SN Attr   VSize  VFree
mydata   1   1   0 wz--n- 10.00g 2.00g
 vg0      1   4   0 wz--n- 59.99g 7.99g
[root@node0 ~]#


第二步:請(qǐng)求鎖,這個(gè)如果是在生產(chǎn)環(huán)境中我們可以用腳本來完成,因?yàn)檫@樣請(qǐng)求到釋放鎖的時(shí)間就可以比較快;


MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;  # 請(qǐng)求鎖
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> FLUSH LOGS;    # 滾動(dòng)一下日志
Query OK, 0 rows affected (0.02 sec)

MariaDB [(none)]> SHOW MASTER STATUS;   # 查看一下日志position信息+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      365 |              |                  |
+------------------+----------+--------------+------------------+1 row in set (0.04 sec)

MariaDB [(none)]>


第三步:創(chuàng)建快照卷,要在你的邏輯卷的有效空間大小范圍內(nèi)創(chuàng)建,不能超過邏輯卷的大。 


[root@node0 ~]# mkdir backup
[root@node0 ~]# mysql -e 'show master status'+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      365 |              |                  |
+------------------+----------+--------------+------------------+[root@node0 ~]# mysql -e 'show master status' > /root/backup/binlog.pos
[root@node0 ~]# lvcreate -L 100M -s -n mydata-snap -p r /dev/mydata/mysqldata
 Logical volume "mydata-snap" created
[root@node0 ~]# lvs
 LV          VG     Attr       LSize   Pool Origin    Data%  Move Log Cpy%Sync Convert
mydata-snap mydata sri-a-s--- 100.00m      mysqldata   0.01
 mysqldata   mydata owi-aos---   8.00g                                                
 root        vg0    -wi-ao----  20.00g                                                
 swap        vg0    -wi-ao----   2.00g                                                
 usr         vg0    -wi-ao----  10.00g                                                
 var         vg0    -wi-ao----  20.00g                                                
[root@node0 ~]#


第四步:然后再到mysql命令行中釋放鎖: 


MariaDB [(none)]> UNLOCK TABLES;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]>


第五步:掛載快照卷,然后需要備份什么只需要復(fù)制一份數(shù)據(jù)目錄就可以了,其實(shí)的按需要做備份就可以了,如果不確定也可以全都復(fù)制好了,安全起見: 


[root@node0 ~]# mount /dev/mydata/mydata-snap /data -o ro
[root@node0 ~]# cd /data/[root@node0 data]# ls aria_log.00000001  ibdata1      multi-master.info  mysql-bin.000002     node0.tanxw.com.pid
aria_log_control   ib_logfile0  mysql              mysql-bin.index      test
hellodb            ib_logfile1  mysql-bin.000001   node0.tanxw.com.err
[root@node0 data]#


第六步:這里才是做真正的備份,只要直接復(fù)制數(shù)據(jù)就可以了,備份完之后就可以卸載快照卷了,如果不需要就可以把快照卷刪除就可以了:


[root@node0 data]# cp -a /data/ /root/backup/data-2014-05-02  # -a歸檔復(fù)制數(shù)據(jù)
[root@node0 data]# cd /root/backup/data-2014-05-02[root@node0 data-2014-05-02]# ls aria_log.00000001  ibdata1      multi-master.info  mysql-bin.000002     node1.tanxw.com.pid
aria_log_control   ib_logfile0  mysql              mysql-bin.index      test
hellodb            ib_logfile1  mysql-bin.000001   node1.tanxw.com.err
[root@node0 data-2014-05-02]# pwd/root/backup/data-2014-05-02[root@node0 data-2014-05-02]# umount /data/[root@node0 ~]# lvremove /dev/mydata/mydata-snap  # 刪除快照
Do you really want to remove active logical volume mydata-snap? [y/n]: y
 Logical volume "mydata-snap" successfully removed
[root@node0 ~]#


在這里需要注意的是:如果備份這一刻有數(shù)據(jù)修改了,那我們備份下來的數(shù)據(jù)是不會(huì)保存快照后修改的數(shù)據(jù)的;

結(jié)束:

數(shù)據(jù)備份與恢復(fù)的重要性大家都知道,當(dāng)然備份也是其中一個(gè)而且是歸重要的一個(gè)保護(hù)數(shù)據(jù)安全性的重要手段之一,所以能熟練掌握數(shù)據(jù)的備份與恢復(fù)對(duì)我們工作來說也是至關(guān)重要的,有什么不對(duì)希望大神多多指點(diǎn)。

    3d模型
    (13)3d模型
    如今電子商務(wù)發(fā)展勢(shì)頭迅猛,各種商品廣告在網(wǎng)絡(luò)上鋪天蓋地,怎樣讓自己的商品能更全面更顯眼的展現(xiàn)給消費(fèi)者成了所有商家宣傳展示自己商品的重中之重。傳統(tǒng)的二維照片顯然已經(jīng)無法滿足這一要求,于是商品展示技術(shù)便開始步入人們的視野。模型的展示,用戶不僅僅可以更為清晰直觀地瀏覽廣告內(nèi)容,其互動(dòng)性以用戶為核心,任意視角全方位瀏覽欣賞,同時(shí)根據(jù)要求制作用戶可直觀地參與內(nèi)容,其廣告效果可想而知。這里給大家收集整理了很多...更多>>
    • 人體穴位3D模型軟件V2011 中文版

      07-05 / 8.0M

      推薦理由: 一款人|體穴位3D模型軟件,這是一款顯示三維人|體的穴位軟件,其中包括12正經(jīng)全部309個(gè)穴位,傻瓜操作
    • (常春藤模型生成插件)Guruware Ivy

      10-19 / 7.6M

      推薦理由:常春藤生成插件,3ds max 藤類植物模型生成插件,非常棒的插件。 結(jié)合 MAX 的動(dòng)畫工具可以制作藤條生長動(dòng)畫
    • pcb 3D電子元件模型庫

      04-24 / 12.5M

      推薦理由:網(wǎng)上收集的模型庫,很多哦~希望多童鞋們有幫助!
    • 3d max游戲人物模型

      03-25 / 412KB

      推薦理由:3d max游戲人物模型 包含一個(gè)人物模型。用于幫助初學(xué)者自學(xué)。 要從最基本建模開始學(xué),建議大家去看網(wǎng)絡(luò)教程
    • 3D人體模型(EasyAnatomy3D)V4.0 已

      10-26 / 20.5M

      推薦理由:如果有學(xué)3D人體建模的可能會(huì)有點(diǎn)用,親,你學(xué)了沒,啥,沒有?沒有還不趕緊去學(xué)— —!額,這個(gè)這個(gè)嘛,自己
    • 3d人物模型合集包西西整理

      01-25 / 92.9M

      推薦理由:西西小編整理的一些3D人物模型的素材包,如果大家有興趣的話可以下載來看看,都是一些美女帥哥的模型哦~ 女
    3dmax插件大全
    (19)3dmax插件大全
    除了能夠制作出精細(xì)的模型外,其中最大的一個(gè)亮點(diǎn)就是它的插件功能強(qiáng)大,只要你能夠想到的效果,都有相應(yīng)的插件可以替你實(shí)現(xiàn)。這里西西給大家收集了很多非常實(shí)用的插件。插件后綴名介紹.位于建立命令面板中,可創(chuàng)建包括建模增加輔助物等的新對(duì)象。.位于變動(dòng)命令面板中,增加新的修改命令,可在中找到。.屬于大氣效果燈或渲染類插件,位于的環(huán)境編輯器中,也可在菜單的面板中找到。.屬于特殊用途的插件,位于程序命令面板。.屬于后期...更多>>
    • 3dmax2010中文路徑貼圖補(bǔ)丁

      10-20 / 85.5M

      推薦理由:3dmax2010是我目前用的3dmax軟件中比較好的版本了,剛開始用這個(gè)軟件的童鞋,就會(huì)發(fā)現(xiàn)不能貼圖,你們想想國
    • 3dsmax森林插件 Forest Pack Pro3.

      04-02 / 30M

      推薦理由:Forest Pack Pro(森林插件)為3ds max提供了創(chuàng)建大面積森林及植被的完整解決方案,使用此插件你能夠創(chuàng)建數(shù)百
    • 幻景大師DreamScape for 3dsmax 20

      05-15 / 47.0M

      推薦理由: 由Ma5漢化。智能安裝,不需原版,內(nèi)附示例、教程、授權(quán)程序及安裝說明。 DreamScape又稱幻景大師,是
    • V-Ray for 3ds max 20112.00.02 中

      03-01 / 26.8M

      推薦理由: V-Ray 頂渲中英文雙語切換版,是學(xué)習(xí)及掌握V-Ray的最佳選擇,在使用時(shí),可進(jìn)行中英文自由切換,從而對(duì)
    • 3dmax模型三角面轉(zhuǎn)四邊面插件

      08-03 / 14KB

      推薦理由: 1 解壓 2打開(4polybomb mutimse)文件會(huì)看見 文件夾(scripts)和文件夾(ui)3 將scripts完全打開(
    • 3dmax森林制作插件(Forest Pack Pr

      10-19 / 25.9M

      推薦理由:Forest Pack Pro (專業(yè)森林制作)是 Itoo 出品的一款可以讓你在短時(shí)間內(nèi)做出專業(yè)的大面積樹林,草叢,人群等

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)