真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mysql(五)-數(shù)據(jù)恢復(fù)

########################################################################################
增量備份與增量恢復(fù)

王益ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

一、啟用binlog日志實(shí)現(xiàn)增量備份
1、binlog日志介紹:
又被稱為二進(jìn)制日志,是MySQL數(shù)據(jù)庫(kù)服務(wù)日志文件的一種。

好處:
記錄 除查詢以外的所有SQL命令
可用于數(shù)據(jù)恢復(fù)
配置mysql主從同步的必要條件

############################################################
2、啟用binlog日志
#vim /etc/my.cnf
[mysql]
server_id=id號(hào) //數(shù)值范圍1-255,不能重復(fù)
log-bin[=dir/name]
//日志存放默認(rèn)位置為/var/lib/mysql/,如果需要自己指定日志文件的名稱以及存放位置,需要寫(xiě)成中括號(hào)內(nèi)的格式。
注意:自己指定存放的位置的目錄需要修改文件屬主及屬組。chown -R mysql:mysql 存放路徑。
binlog_format="mixed" //日志格式

#systemctl restart mysqld

#ls /var/lib/mysql/

主機(jī)名-bin.000001 //默認(rèn)的binlog日志文件名
主機(jī)名-bin.index //記錄當(dāng)前已有的binlog日志文件名

日志格式:
statement:每一條修改數(shù)據(jù)的命令都會(huì)記錄在binlog日志中。
row:不記錄sql命令的上下文信息,僅保存哪條記錄被修改。
mixed:前兩種的綜合。

#############################################################

3、查看binlog日志:
#mysqlbinlog binlog日志文件名

#############################################################

4、binlog日志文件記錄sql命令的方式:
時(shí)間點(diǎn) //根據(jù)修改的時(shí)間記錄
pos點(diǎn) //根據(jù)數(shù)據(jù)偏移量記錄

#############################################################

5、恢復(fù)數(shù)據(jù)

格式:
mysqlbinlog 選項(xiàng) binlog日志文件名 | mysql -uroot -p密碼

選項(xiàng):
--》根據(jù)時(shí)間點(diǎn)恢復(fù)
--start-datatime="yyyy-mm-dd hh:mm:ss" --stop-datatime="yyyy-mm-dd hh:mm:ss"

--》根據(jù)偏移量恢復(fù) --start-position=數(shù)字 --stop-position=數(shù)字

##############################################################

6、生成日志與刪除日志
--》生成日志
mysql> flush logs;
#mysql -uroot -p123456 -e "flush logs"
#systemctl restart mysqld

--》刪除日志
mysql>reset master; //刪除所有
mysql>purge master logsto "日志文件名" //刪除指定日志之前的所有日志
mysql>purge master logs to "mysql11-bin.000003" //1和2 已經(jīng)刪除,但是3以后的保留

##################################################################

7、舉例
啟用binlog日志
重啟服務(wù)
寫(xiě)入數(shù)據(jù)
#mysql -uroot -p123456
show master status; //查看當(dāng)前使用的binlog日志
create database db1;
create table db1.t1(id int);
insert into table db1 values(100);
insert into table db1 values(200);
select * from db1.t1; //查看數(shù)據(jù)是否插入成功
刪除數(shù)據(jù)
drop databases db1;
查看日志
mysqlbinlog /var/lib/mysql/mysql11-bin.000001
//通過(guò)查詢?nèi)罩?,create database db1; 建表的偏移量at 296
//insert into table db1 values(200); 插入這條記錄的偏移量 at 1097

恢復(fù)數(shù)據(jù)(通過(guò)偏移量)
mysql>show databases; //確認(rèn)庫(kù)已經(jīng)刪除
mysql>quit
#mysqlbinlog --start-position=296 --stop-position=1097 \
/var/lib/mysql/mysql11-bin.000001 | mysql -uroot -p123456

查看結(jié)果
mysql>show databases;
mysql>select * from db1.t1;

###################################################################

二、使用第三方軟件percona提供的命令innobackupex做增量備份

物理備份缺點(diǎn):
備份時(shí)間長(zhǎng),冗余備份,浪費(fèi)村數(shù)空間
跨平臺(tái)性差

mysqldump備份缺點(diǎn):
效率低,備份和還原時(shí)間慢
備份過(guò)程中,數(shù)據(jù)插入與更新會(huì)被掛起

percona優(yōu)點(diǎn):
備份過(guò)程不鎖表,適合生產(chǎn)環(huán)境
支持InnoDB/XtraDB
以Perl腳本封裝Xtrabackup還支持MyISAM

##########################################################

1、安裝軟件包(網(wǎng)上下載)
libev-4.15-1.el6.rf.x86_64.rpm
percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

###########################################################

2、innobackupex基本選項(xiàng)

--host //主機(jī)名
--user //用戶名
--password //登陸密碼
--databases //數(shù)據(jù)庫(kù)名
--no-timestamp //備份文件不用日期命名

--apply-log //回滾日志(準(zhǔn)備還原)
--redo-only //日志回滾合并(最后一次的回滾合并不需要添加此選項(xiàng))
--incremental 目錄名 //增量備份
--incremental-basedir=目錄名 //增量備份時(shí)指定上一次備份數(shù)據(jù)村存儲(chǔ)的文件名
--export //導(dǎo)出表信息
import //導(dǎo)入表空間

##############################################################

3、完全備份
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù) 存儲(chǔ)庫(kù)" 備份目錄名 --no-timestamp

#rm -rf /var/lib/mysql
#mkdir /var/lib/mysql

完全恢復(fù)數(shù)據(jù)
#innobackup --user root --password 123456 --databases="系統(tǒng)庫(kù) 存儲(chǔ)庫(kù)" --apply-log 備份目錄名
//回滾日志
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù)列表 存儲(chǔ)數(shù)據(jù)庫(kù)" --copy-back 備份目錄名
//恢復(fù)數(shù)據(jù)

#ls /var/lib/mysql/
#chown -R mysql:mysql /var/lib/mysql
#systemctl stop mysqld
#systemctl start mysqld
#mysql -uroot -pabc123
mysql>show databases;

###############################################################

4、增量備份

增量備份之前,通常先作一次完全備份

增量備份第一次:
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù)列表 存儲(chǔ)數(shù)據(jù)庫(kù)" --incremental 目錄名1 --incremental-basedir=完全備份名 --no-timestamp

增量備份第二次:
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù)列表 存儲(chǔ)數(shù)據(jù)庫(kù)" --incremental 目錄名2 --incremental-basedir=目錄名1 --no-timestamp

//相當(dāng)于你的下一次備份,參照的時(shí)上一次的備份文件。

5、刪除信息

rm -rf /var/lib/mysql
mkdir /var/lib/mysql

6、增量恢復(fù)日志文件

#innobackupex --user root --password 123456 --databases=“系統(tǒng)庫(kù) 存儲(chǔ)庫(kù)” --apply-log --redo-only 完全備份目錄名
#innobackupex --user root --password 123456 --databases=“系統(tǒng)庫(kù) 存儲(chǔ)庫(kù)” --apply-log --redo-only 完全備份目錄名
--incremental-dir=目錄名1
#innobackupex --user root --password 123456 --databases=“系統(tǒng)庫(kù) 存儲(chǔ)庫(kù)” --apply-log --redo-only 完全備份目錄名
--incremental-dir=目錄名2
#cat 備份目錄/xtraback_checkpositions //文件可以查看日志序列號(hào)

7、恢復(fù)數(shù)據(jù)
#innobackupex --user root --password abc123 --databases="系統(tǒng)庫(kù)列表 存儲(chǔ)數(shù)據(jù)庫(kù)" --copy-back 完全備份目錄名

#chown -R mysql:mysql /var/lib/mysql

8、重啟服務(wù)查看
#systemctl stop mysqld
#systemctl start mysqld

###############################################################################
9、增量舉例

/allbak //自定義完全備份的目錄名
/new1 //自定義第一次增量備份目錄名
/new2 //自定義第二次增量備份目錄名

//無(wú)需自己創(chuàng)建

完全備份
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù)列表 gamedb" /allbak
--no-timestamp

增量第一次:
mysql>create table gamedb.t2(id int);
mysql>insert into gamedb.t2 values(200);

#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù)列表 gamedb" --incremental /new1 --incremental-basedir=/allbak --no-timestamp

增量第二次:
mysql>create table gamedb.t3(id int);
mysql>insert into gamedb.t3 values(300);

#innobackupex --user root --password 123456 --databases="系統(tǒng)庫(kù) gamedb" --incremental /new2
--incremental-basedir=/new1 --no-timestamp

刪除數(shù)據(jù)
rm -rf /var/lib/mysql
mkdir /var/lib/mysql

恢復(fù)日志文件
#innobackupex --user root --password abc123 --databases="系統(tǒng)庫(kù)列表 gamedb" --apply-log --redo-only
/allbak
//回滾日志
#cat /allbak/xtraback_checkpositions //文件可以查看日志序列號(hào)

#innobackupex --user root --password abc123 --databases="系統(tǒng)庫(kù)列表 gamedb" --apply-log --redo-only
/allbak --incremental-dir=/new1
//增量回滾/new1

#cat /new1/xtraback_checkpositions //文件可以查看日志序列號(hào)
#cat /allbak/xtraback_checkpositions //文件可以查看日志序列號(hào)
//對(duì)比可以發(fā)現(xiàn),回滾成功,它們的序列號(hào)是首尾相接的

#innobackupex --user root --password abc123 --databases="系統(tǒng)庫(kù)列表 gamedb" --apply-log --redo-only
/allbak --increment-dir=/new2
//增量回滾/new2

#cat /new2/xtraback_checkpositions //文件可以查看日志序列號(hào)
#cat /allbak/xtraback_checkpositions //文件可以查看日志序列號(hào)
//對(duì)比可以發(fā)現(xiàn),回滾成功,它們的序列號(hào)是首尾相接的

恢復(fù)數(shù)據(jù)
#innobackupex --user root --password abc123 --databases="系統(tǒng)庫(kù)列表 gamedb" --copy-back /allbak

查看
#systemctl stop mysqld
#systemctl start mysqld

##############################################################################################

10、恢復(fù)單個(gè)表:

10.1 備份庫(kù)
#innobackup --user root --password 123456 --databases="gamedb" /gamedbbak

10.2 刪除單個(gè)表
mysql> drop table gamedb.t1;

10.3 按照原表結(jié)構(gòu)創(chuàng)建表
mysql> create table gamedb.t1(id int);

10.4 導(dǎo)出表信息
#innobackup --user root --password abc123 --databases=“gamedb.t1” --apply-log --export /gamedbbak

10.5 刪除表空間
mysql>alter table gamedb.t1 discart tablespace;

10.6 將導(dǎo)出的表信息,拷貝到對(duì)應(yīng)的數(shù)據(jù)庫(kù)目錄下
#cd /gamedbbak/gamedb
#cp t1.{exp,ibd,cfg} /var/lib/mysql/gamedb/
#ls /var/lib/mysql/gamedb/t1.
#chown mysql:myql /var/lib/mysql/gamedb/t1.

10.6 導(dǎo)入表空間
alter table t1 import tablespace;

10.7 驗(yàn)證
select * from gamedb.t1;

###########################################################################################################

4、


網(wǎng)站名稱:Mysql(五)-數(shù)據(jù)恢復(fù)
分享鏈接:http://weahome.cn/article/jgipjp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部