久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

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

########################################################################################
增量備份與增量恢復

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

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

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

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

#systemctl restart mysqld

#ls /var/lib/mysql/

主機名-bin.000001 //默認的binlog日志文件名
主機名-bin.index //記錄當前已有的binlog日志文件名

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

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

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

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

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

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

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

格式:
mysqlbinlog 選項 binlog日志文件名 | mysql -uroot -p密碼

選項:
--》根據(jù)時間點恢復
--start-datatime="yyyy-mm-dd hh:mm:ss" --stop-datatime="yyyy-mm-dd hh:mm:ss"

--》根據(jù)偏移量恢復 --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 已經刪除,但是3以后的保留

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

7、舉例
啟用binlog日志
重啟服務
寫入數(shù)據(jù)
#mysql -uroot -p123456
show master status; //查看當前使用的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
//通過查詢日志,create database db1; 建表的偏移量at 296
//insert into table db1 values(200); 插入這條記錄的偏移量 at 1097

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

查看結果
mysql>show databases;
mysql>select * from db1.t1;

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

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

物理備份缺點:
備份時間長,冗余備份,浪費村數(shù)空間
跨平臺性差

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

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

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

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

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

2、innobackupex基本選項

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

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

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

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

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

完全恢復數(shù)據(jù)
#innobackup --user root --password 123456 --databases="系統(tǒng)庫 存儲庫" --apply-log 備份目錄名
//回滾日志
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫列表 存儲數(shù)據(jù)庫" --copy-back 備份目錄名
//恢復數(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)庫列表 存儲數(shù)據(jù)庫" --incremental 目錄名1 --incremental-basedir=完全備份名 --no-timestamp

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

//相當于你的下一次備份,參照的時上一次的備份文件。

5、刪除信息

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

6、增量恢復日志文件

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

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

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

8、重啟服務查看
#systemctl stop mysqld
#systemctl start mysqld

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

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

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

完全備份
#innobackupex --user root --password 123456 --databases="系統(tǒng)庫列表 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)庫列表 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)庫 gamedb" --incremental /new2
--incremental-basedir=/new1 --no-timestamp

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

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

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

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

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

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

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

查看
#systemctl stop mysqld
#systemctl start mysqld

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

10、恢復單個表:

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

10.2 刪除單個表
mysql> drop table gamedb.t1;

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

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

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

10.6 將導出的表信息,拷貝到對應的數(shù)據(jù)庫目錄下
#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 導入表空間
alter table t1 import tablespace;

10.7 驗證
select * from gamedb.t1;

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

4、

名稱欄目:Mysql(五)-數(shù)據(jù)恢復
當前網址:http://sd-ha.com/article28/jgipjp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站維護、定制網站網站建設、全網營銷推廣、企業(yè)建站微信小程序

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設