最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP程序員玩轉(zhuǎn)Linux系列 備份還原MySQL

 更新時間:2017年04月12日 15:55:35   作者:陶士涵  
這篇文章主要為大家詳細介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,MySQL備份還原教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下

PHP程序員玩轉(zhuǎn)Linux系列文章:

1.PHP程序員玩轉(zhuǎn)Linux系列-怎么安裝使用CentOS

2.PHP程序員玩轉(zhuǎn)Linux系列-lnmp環(huán)境的搭建

3.PHP程序員玩轉(zhuǎn)Linux系列-搭建FTP代碼開發(fā)環(huán)境

前幾天有個新聞,說是gitlab的工程師把數(shù)據(jù)文件給誤刪了,搞了個大事件,很多人都去圍觀了.備份工作應(yīng)該在最開始的時候就要做,否則就會失去最佳時機,為了保證我的數(shù)據(jù)是安全的,因此我要搞備份了.備份分為邏輯備份和物理備份,邏輯備份是導(dǎo)sql,物理備份是基于文件的,這兩種我都搞一下.

開啟binlog

首先第一件事是打開binlog日志,編輯mysql配置文件開啟一下,默認是關(guān)閉的.編輯 /etc/my.cnf ,log-bin=mysqlbinlog =號后面的是binlog日志的名字,默認生成在數(shù)據(jù)目錄里面,重啟一下mysql服務(wù) , service mysqld restart

查看mysql的數(shù)據(jù)目錄 , /var/lib/mysql ,mysqlbinlog.000001等文件就是binlog日志文件.

添加一些測試數(shù)據(jù)

建數(shù)據(jù)庫,建表和插入一些記錄,用于測試,表的存儲引擎選擇innodb,因為這個引擎容易測出來問題

#建庫
create database entmail charset=utf8; 
#建表,存儲引擎選用innodb
create table user( id int auto_increment primary key, name varchar(100) not null default '' ) engine=innodb;
#插記錄
insert into user values(null,'shihan');
insert into user values(null,'shihan1');
insert into user values(null,'shihan2');
insert into user values(null,'shihan3');

小數(shù)據(jù)量使用mysqldump邏輯備份

第一想到的備份方式是使用mysqldump,導(dǎo)出sql語句,恢復(fù)的時候就再次導(dǎo)入sql語句.

針對我的數(shù)據(jù)庫,用戶名root 密碼空,我放sql文件的位置是/home/shihan1/mysql/sqls/ ,備份所有數(shù)據(jù)庫,我的導(dǎo)出命令是下面這句

復(fù)制代碼 代碼如下:
mysqldump -uroot --all-databases > /home/shihan1/mysql/sqls/all.sql

此時,我誤刪了數(shù)據(jù)庫entmail , drop database entmail

不著急,馬上進行恢復(fù),執(zhí)行以下導(dǎo)入命令,數(shù)據(jù)庫立刻就回來了,注意一個是mysqldump命令,一個是mysql命令

復(fù)制代碼 代碼如下:
mysql -uroot < /home/shihan1/mysql/sqls/all.sql

為啥不能用拷貝數(shù)據(jù)目錄的方式備份

有的同學(xué)會使用直接拷貝數(shù)據(jù)目錄的方式備份,我也測試了一下,實際證明這種方式是不正確的.我用tar命令把數(shù)據(jù)目錄整個打包搬走,然后刪除整個數(shù)據(jù)目錄,再搬回來.

因為我把mysql的那幾張用戶表啥的都刪了,mysql會進行重新初始化

我把數(shù)據(jù)文件再搬回來,然后進mysql看看,結(jié)果是這樣的,告訴我user表不存在了,這張表是innodb引擎的,所以不能使用這種方式,幸虧我有前面的邏輯備份,從新導(dǎo)一下,數(shù)據(jù)又回來了.

復(fù)制代碼 代碼如下:
mysql -uroot < /home/shihan1/mysql/sqls/all.sql

使用第三方軟件percona-xtrabackup實現(xiàn)物理備份

可以實現(xiàn)物理備份的軟件與很多,mysql也有企業(yè)版?zhèn)浞莨ぞ?但是貌似是收費的,percona-xtrabackup這個開源軟件可以很好的實現(xiàn)全量備份和增量備份.

前往這個地址下載rpm包,里面可以選擇版本,我最開始選的最新版2.4.6,結(jié)果報這個錯誤:Error: Built-in InnoDB in MySQL 5.1 is not supported in this release. You can either use Percona XtraBackup 2.0, or upgrade to InnoDB plugin.然后從新下了個2.0.0版是可以的.

https://www.percona.com/downloads/XtraBackup/

#下載rpm
wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.0.0/RPM/rhel6/x86_64/percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm
#安裝rpm
rpm -i percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm
#安裝需要的依賴
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-MD5 rsync libev numactl

開始備份了

當(dāng)前數(shù)據(jù):

1. 我先把所有數(shù)據(jù)全量備份一次,后面那個目錄是備份保存的目錄,執(zhí)行完成后出現(xiàn)innobackupex: completed OK!代表成功,生成的備份文件2017-02-24_17-47-55

復(fù)制代碼 代碼如下:
innobackupex --user=root /home/shihan1/mysql/backups/

2. 添加幾條新數(shù)據(jù)進去,現(xiàn)在的數(shù)據(jù)情況

insert into user values(null,'shihan4');
insert into user values(null,'shihan5');

3. 增量備份一次,就多了一個參數(shù)--incremental , 增量備份生成的文件是 2017-02-24_17-51-32 , 數(shù)據(jù)的大小也是不一樣的

復(fù)制代碼 代碼如下:
innobackupex --user=root --incremental /home/shihan1/mysql/backups/

4. 此時發(fā)生災(zāi)變,我把數(shù)據(jù)目錄給刪了!rm -rf /var/lib/mysql/* ,mysql已經(jīng)連不上了

5. 抓緊恢復(fù)數(shù)據(jù) , 準(zhǔn)備全量備份文件 , 合并增量備份文件 , 執(zhí)行恢復(fù)

#準(zhǔn)備全量備份文件
innobackupex --apply-log --redo-only /home/shihan1/mysql/backups/2017-02-24_17-47-55/
#合并增量備份文件,注意看目錄名
#如果有多次增量備份,就多次執(zhí)行 innobackupex --apply-log --redo-only 增量目錄 --incremental-dir 增量目錄
innobackupex --apply-log --redo-only /home/shihan1/mysql/backups/2017-02-24_17-47-55/ --incremental-dir /home/shihan1/
mysql/backups/2017-02-24_17-51-32/
#執(zhí)行恢復(fù)
innobackupex --copy-back /home/shihan1/mysql/backups/2017-02-24_17-47-55

6. 數(shù)據(jù)已經(jīng)回來了,重新修改一下數(shù)據(jù)文件的屬組和屬主chown mysql:mysql -R /var/lib/mysql/* , 重啟一下mysql ,數(shù)據(jù)全部恢復(fù)

下一篇定時執(zhí)行備份腳本

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Linux系統(tǒng)開機從BIOS到登錄環(huán)境過程

    Linux系統(tǒng)開機從BIOS到登錄環(huán)境過程

    這篇文章主要介紹了Linux系統(tǒng)開機從BIOS到登錄環(huán)境過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Linux file命令的使用

    Linux file命令的使用

    這篇文章主要介紹了Linux file命令的使用,幫助大家更好的理解和學(xué)習(xí)Linux,感興趣的朋友可以了解下
    2020-08-08
  • 詳解xshell遠程連接自動斷開的問題解決辦法

    詳解xshell遠程連接自動斷開的問題解決辦法

    這篇文章主要介紹了詳解xshell遠程連接自動斷開的問題解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • linux清空文件等有用的指令總結(jié)

    linux清空文件等有用的指令總結(jié)

    下面小編就為大家?guī)硪黄猯inux清空文件等有用的指令總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解在Linux下9個有用的touch命令示例

    詳解在Linux下9個有用的touch命令示例

    本篇文章主要介紹了詳解在Linux下9個有用的touch命令示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Linux下php連接SQLServer 2000數(shù)據(jù)庫的配置方法

    Linux下php連接SQLServer 2000數(shù)據(jù)庫的配置方法

    Linux服務(wù)器中的php程序能夠連接到Windows服務(wù)器中的SQL Server 2000數(shù)據(jù)庫,這里分享下配置方法,需要的朋友可以參考下
    2013-06-06
  • Linux流媒體服務(wù)器部署流程

    Linux流媒體服務(wù)器部署流程

    文章詳細介紹了流媒體服務(wù)器的部署步驟,包括更新系統(tǒng)、安裝依賴組件、編譯安裝Nginx和RTMP模塊、配置Nginx和FFmpeg,以及測試流媒體服務(wù)器的搭建
    2025-02-02
  • Ubuntu安裝Matlab2020b詳細教程和資源

    Ubuntu安裝Matlab2020b詳細教程和資源

    大家好,本篇文章主要講的是Ubuntu安裝Matlab2020詳細教程和資源,感興趣的同學(xué)趕快來看一看吧,希望對你有幫助
    2021-11-11
  • CentOS7將Nginx添加系統(tǒng)服務(wù)的方法步驟

    CentOS7將Nginx添加系統(tǒng)服務(wù)的方法步驟

    這篇文章主要介紹了CentOS7將Nginx添加系統(tǒng)服務(wù)的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Linux新建虛擬機Ubuntu的圖文教程

    Linux新建虛擬機Ubuntu的圖文教程

    這篇文章主要詳細介紹了Linux新建虛擬機Ubuntu的教程,文章通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-09-09

最新評論

鄂尔多斯市| 余姚市| 建水县| 泾川县| 彭泽县| 德江县| 平南县| 汪清县| 眉山市| 方正县| 陈巴尔虎旗| 闵行区| 于田县| 衡东县| 大城县| 婺源县| 新源县| 辽阳市| 南康市| 长沙市| 和平县| 收藏| 区。| 广丰县| 南昌市| 扶风县| 惠安县| 饶河县| 鄂伦春自治旗| 叶城县| 河北省| 昌乐县| 漳州市| 肥城市| 龙游县| 嘉兴市| 霞浦县| 青海省| 邵阳县| 盐城市| 自贡市|