亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

開(kāi)啟binlog

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

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

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

建數(shù)據(jù)庫(kù),建表和插入一些記錄,用于測(cè)試,表的存儲(chǔ)引擎選擇innodb,因?yàn)檫@個(gè)引擎容易測(cè)出來(lái)問(wèn)題

#建庫(kù)
create database entmail charset=utf8; 
#建表,存儲(chǔ)引擎選用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語(yǔ)句,恢復(fù)的時(shí)候就再次導(dǎo)入sql語(yǔ)句.

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

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

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

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

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

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

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

因?yàn)槲野裮ysql的那幾張用戶表啥的都刪了,mysql會(huì)進(jìn)行重新初始化

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

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

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

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

前往這個(gè)地址下載rpm包,里面可以選擇版本,我最開(kāi)始選的最新版2.4.6,結(jié)果報(bào)這個(gè)錯(cuò)誤: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.然后從新下了個(gè)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

開(kāi)始備份了

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

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

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

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

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

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

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

4. 此時(shí)發(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)回來(lái)了,重新修改一下數(shù)據(jù)文件的屬組和屬主chown mysql:mysql -R /var/lib/mysql/* , 重啟一下mysql ,數(shù)據(jù)全部恢復(fù)

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

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

相關(guān)文章

  • Linux硬鏈接與軟鏈接原理及用法解析

    Linux硬鏈接與軟鏈接原理及用法解析

    這篇文章主要介紹了Linux硬鏈接與軟鏈接原理及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 一篇文章弄懂Linux磁盤和磁盤分區(qū)

    一篇文章弄懂Linux磁盤和磁盤分區(qū)

    分區(qū)是將一個(gè)硬盤驅(qū)動(dòng)器分成若干個(gè)邏輯驅(qū)動(dòng)器,分區(qū)是把硬盤連續(xù)的區(qū)塊當(dāng)做一個(gè)獨(dú)立的磁硬使用。下面這篇文章主要給大家介紹了關(guān)于Linux磁盤和磁盤分區(qū)的相關(guān)資料,需要的朋友可以參考下
    2018-12-12
  • linux不支持所有命令的解決辦法

    linux不支持所有命令的解決辦法

    在本篇文章里小編給大家整理了關(guān)于linux不支持所有命令的解決辦法,需要的朋友們可以參考下。
    2020-02-02
  • linux如何安裝python3

    linux如何安裝python3

    在Linux系統(tǒng)中安裝Python3需要先安裝依賴,然后下載安裝包進(jìn)行編譯安裝,具體步驟包括安裝依賴、下載Python3安裝包、解壓、配置安裝目錄、編譯安裝,以及添加軟連接,安裝成功后,通過(guò)驗(yàn)證python3和pip3的版本來(lái)確認(rèn)安裝是否成功,本教程基于個(gè)人經(jīng)驗(yàn),旨在提供一個(gè)參考
    2024-10-10
  • LINUX查看端口是否被占用過(guò)程解析

    LINUX查看端口是否被占用過(guò)程解析

    這篇文章主要介紹了LINUX查看端口是否被占用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 使用FileZilla從Linux系統(tǒng)下載文件的方法

    使用FileZilla從Linux系統(tǒng)下載文件的方法

    最近做項(xiàng)目,遇到這樣的需求,要求將Linux系統(tǒng)的的某個(gè)文件夾下載到我Windows系統(tǒng)某個(gè)文件夾里,怎么實(shí)現(xiàn)這個(gè)功能呢?下面腳本之家小編給大家?guī)?lái)了使用FileZilla從Linux系統(tǒng)下載文件的方法,感興趣的朋友一起看看吧
    2018-07-07
  • 戴爾Dell?R630配置raid?安裝centos系統(tǒng)

    戴爾Dell?R630配置raid?安裝centos系統(tǒng)

    這篇文章主要介紹了戴爾R630服務(wù)器配置raid后安裝centos7.9的方法,需要的朋友可以參考下
    2024-03-03
  • CentOs下安裝gcc/g++/gdb的方法

    CentOs下安裝gcc/g++/gdb的方法

    這篇文章主要介紹了CentOs下安裝gcc/g++/gdb的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • linux服務(wù)器校對(duì)時(shí)間方法命令詳解

    linux服務(wù)器校對(duì)時(shí)間方法命令詳解

    Linux中有個(gè)ntp包可以自動(dòng)校準(zhǔn)時(shí)間,并且非常好用,這篇文章主要介紹了linux服務(wù)器校對(duì)時(shí)間方法,需要的朋友可以參考下
    2022-08-08
  • linux系統(tǒng)下部署項(xiàng)目訪問(wèn)報(bào)404錯(cuò)誤的解決方法

    linux系統(tǒng)下部署項(xiàng)目訪問(wèn)報(bào)404錯(cuò)誤的解決方法

    這篇文章主要為大家詳細(xì)介紹了linux系統(tǒng)下部署項(xiàng)目訪問(wèn)報(bào)404錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評(píng)論