精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MariaDB 10.3首推系統版本表,誤刪數據不用跑路了!

數據庫 其他數據庫 MariaDB
同一行數據一秒內被更改了10次,那么系統版本表就會保存10份不同時間的版本數據。就像電影《源代碼》里的平行世界理論一樣,你可以退回任意時間里,從而有效保障你的數據是安全的。也就是說,DBA手抖或是程序BUG引起的數據丟失,在MariaDB 10.3里已然成為過去。

MariaDB 10.3首推系統版本表,誤刪數據不用跑路了!

系統版本表是SQL:2011標準中***引入的功能,它存儲所有更改的歷史數據,而不僅僅是當前時刻有效的數據。

舉個例子,同一行數據一秒內被更改了10次,那么系統版本表就會保存10份不同時間的版本數據。就像電影《源代碼》里的平行世界理論一樣,你可以退回任意時間里,從而有效保障你的數據是安全的。也就是說,DBA手抖或是程序BUG引起的數據丟失,在MariaDB 10.3里已然成為過去。

一、創建系統版本表

例子: 

  1. CREATE TABLE `t1` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `namevarchar(100) DEFAULT NULL 
  4.   `ts` timestamp(6) GENERATED ALWAYS AS ROW START,  
  5.   `te` timestamp(6) GENERATED ALWAYS AS ROW END 
  6.   PRIMARY KEY (`id`,`te`),  
  7.   PERIOD FOR SYSTEM_TIME (`ts`, `te`)  
  8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 WITH SYSTEM VERSIONING; 

注意看紅色字體,這就是新增加的語法,字段ts和te是數據變化的起止時間和結束時間。

另外用ALTER TABLE更改表結構,語法如下: 

  1. ALTER TABLE t1 ADD COLUMN ts TIMESTAMP(6) GENERATED ALWAYS AS ROW START,  
  2.                            ADD COLUMN te TIMESTAMP(6) GENERATED ALWAYS AS ROW END 
  3.                            ADD PERIOD FOR SYSTEM_TIME(ts, te),  
  4.                            ADD SYSTEM VERSIONING; 

二、查詢歷史數據

這里我們做一個實驗,首先要插入一條數據,如下圖所示:

接著把姓名為“張三”,改成“李四”(誤更改數據):

現在數據已經成功變更,那么我想查看歷史數據怎么辦呢?非常簡單,一條命令搞定。

語法一:查詢一小時內的歷史數據。 

  1. SELECT * FROM t FOR SYSTEM_TIME BETWEEN (NOW() - INTERVAL 1 HOURAND NOW(); 

HOUR:小時

MINUTE:分鐘

DAY:天

MONTH:月

YEAR:年

語法二:查詢一段時間內的歷史數據。 

  1. SELECT * FROM t1 FOR SYSTEM_TIME FROM '2018-05-15 00:00:00' TO '2018-05-15 14:00:00'

語法三:查詢所有歷史數據。 

  1. SELECT * FROM t1 FOR SYSTEM_TIME ALL

三、恢復歷史數據

現在我們已經找到了歷史數據“張三”,只需把它導出來做恢復即可。 

  1. SELECT id,name FROM t1 FOR SYSTEM_TIME ALL where id = 1 AND name =   
  2. '張三' into outfile '/tmp/t1.sql' \  
  3. FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

FIELDS TERMINATED BY ',' —— 字段的分隔符

OPTIONALLY ENCLOSED BY '"' —— 字符串帶雙引號 

導入恢復。 

  1. load data infile '/tmp/t1.sql' replace into table t1 \ 
  2.  
  3. FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' \ 
  4.  
  5. (id,name); 

非常簡單地恢復完數據,此方法比之前用mysqlbinlog或自研腳本等工具做閃回效率高得多。

四、單獨存儲歷史數據

當歷史數據與當前數據一起存儲時,勢必會增加表的大小,且當前的數據查詢:表掃描和索引搜索,將會花費更多時間,因為需要跳過歷史數據。那么我們可以通過表分區將其分開、單獨存儲,以減少版本控制的開銷。 

接上面的例子,執行下面的語句: 

  1. alter table t1   
  2.   PARTITION BY SYSTEM_TIME INTERVAL 1 MONTH (  
  3.     PARTITION p0 HISTORY,  
  4.     PARTITION p1 HISTORY,  
  5.     PARTITION p2 HISTORY,  
  6.     PARTITION p3 HISTORY,  
  7.     PARTITION p4 HISTORY,  
  8.     PARTITION p5 HISTORY,  
  9.     PARTITION p6 HISTORY,  
  10.     PARTITION pcur CURRENT  
  11.   ); 

意思是:按照月份分割歷史數據,今天至一個月后(2018年6月15日)的歷史數據放入p0分區,次月的歷史數據放入p1分區,依次類推至(2018年12月15日)存p6分區。當前數據存儲在pcur分區里。

可以通過數據字典表,來查看每個分區表的數據輪詢時間狀態信息。 

  1. SELECT PARTITION_DESCRIPTION,TABLE_ROWS FROM  
  2. `information_schema`.`PARTITIONS` WHERE table_schema='hcy' AND  
  3. table_name='t1'

五、刪除舊的歷史數據

系統版本表存儲了所有的歷史數據,隨著時間的推移,歷史版本數據會變得越來越大,那么我們就可以將其最老的歷史數據刪除。

例:將p0分區刪除 

  1. ALTER TABLE t1 DROP PARTITION p0; 

六、正確使用姿勢

通過上述介紹,我們了解了系統版本表的原理。但在高并發寫入場景下,勢必會帶來性能上的損失,所以要用正確的姿勢開啟該功能。

例:主庫是MySQL 5.6或者MariaDB 10.0/1/2版本,搭建一個新從庫MariaDB 10.3,在該從庫上轉換為系統版本控制表。這樣主庫上誤刪或誤篡改數據,可以在從庫上通過版本控制找回。 

注:主庫是低版本,從庫是高版本,是可以向前兼容binlog格式的。

七、注意事項

1、參數system_versioning_alter_history要設置為KEEP(在my.cnf配置文件里寫死),否則默認不能執行DDL修改表結構操作。 

  1. set global system_versioning_alter_history = 'KEEP'

注:增加字段時,要加上after關鍵字,否則會在te字段后面,造成同步失敗。例: 

  1. alter table t1 add column address varchar(500) after name

2、mysqldump工具不會導出歷史數據,所以在做備份時,可以通過Percona XtraBackup熱備份工具來備份物理文件。

3、搭建從庫時,如果你用mysqldump工具,要先導出表結構文件,再導出數據。

1)只導出表結構: 

  1. # mysqldump -S /tmp/mysql3306.sock -uroot -p123456 --single-transaction --compact -c -d -q -B test > ./test_schema.sql 

導入完表結構后,批量執行DDL轉換系統版本表,腳本如下(點擊文末【閱讀原文】可下載腳本): 

  1. # cat convert.php  
  2.  
  3. <?php    
  4.  
  5. $conn=mysqli_connect("10.10.100.11","admin","123456","test","3306"or die("error connecting");  
  6. mysqli_query($conn,"SET NAMES utf8");  
  7.  
  8. $table = "show tables" 
  9. $result1 = mysqli_query($conn,$table);  
  10. while($row = mysqli_fetch_array($result1)){  
  11.     $table_name=$row[0];  
  12.     echo "$table_name 表正在進行轉換系統版本表。。。".PHP_EOL;  
  13.     $convert_table="  
  14. ALTER TABLE {$table_name} ADD COLUMN ts TIMESTAMP(6) GENERATED ALWAYS AS ROW START,  
  15.               ADD COLUMN te TIMESTAMP(6) GENERATED ALWAYS AS ROW END 
  16.               ADD PERIOD FOR SYSTEM_TIME(ts, te),  
  17.               ADD SYSTEM VERSIONING";  
  18.     $result2=mysqli_query($conn,$convert_table);  
  19.     if($result2){  
  20.             echo '更改表結構成功.'.PHP_EOL;  
  21.         echo ''.PHP_EOL;  
  22.     }  
  23.     else 
  24.             echo '更改表結構失敗.'.PHP_EOL;  
  25.         echo ''.PHP_EOL;  
  26.     }  
  27.  
  28.  
  29. mysqli_close($conn);  
  30.  
  31. ?> 

注:先安裝php-mysql驅動 

  1. # yum install php php-mysql -y  
  2. # php convert.php  

2) 只導出數據: 

  1. # mysqldump -S /tmp/mysql3306.sock -uroot -p123456 --single-transaction   
  2. --master-data=2 --compact -c -q -t -B test > test_data.sql 

4、對于DROP DATABASE和DROP TABLE,以及TRUNCATE TABLE等操作是無法通過上述方法閃回恢復數據的,切記!

請務必在生產環境,搭建延遲復制從庫,命令如下: 

  1. shell > perl /usr/local/bin/pt-slave-delay -S /tmp/mysql.sock --user root --password 123456  \  
  2. --delay 43200 --log /root/delay.log --daemonize 

注:單位秒,43200秒等于12小時。

參考文檔:

https://mariadb.com/kb/en/library/system-versioned-tables/ 

責任編輯:龐桂玉 來源: DBAplus社群
相關推薦

2009-12-17 16:38:20

正版免費詞典

2018-09-21 11:17:54

數據庫

2010-10-14 16:41:45

2015-05-29 09:01:48

2017-07-14 15:49:05

MongoDB誤刪表恢復步驟

2010-08-23 09:20:57

2024-03-25 00:03:00

生成式 AIAI

2011-06-17 09:20:35

MariaDB

2022-03-22 18:28:04

網絡大學跑路

2023-07-26 13:17:04

數據表誤刪流程

2021-12-22 10:29:23

Prometheus elasticsear運維

2022-03-08 13:14:32

數據湖大數據

2019-01-02 10:32:56

Linux系統文件運維

2020-08-05 11:50:47

刪庫MySQL數據庫

2018-12-11 11:13:25

Linux系統恢復

2011-09-22 09:15:49

MariaDB數據庫

2014-03-10 17:56:33

浪潮大數據定制機

2020-04-13 08:33:39

高并發秒殺系統

2016-10-31 14:09:38

戴爾DIY服務器

2015-06-23 11:34:39

點贊
收藏

51CTO技術棧公眾號

神马影院午夜我不卡| 欧美自拍大量在线观看| 白丝校花扒腿让我c| 182在线播放| 久久综合久久99| 国产精品一区二区久久久| 国产精品三区在线观看| 欧美爱爱网站| 欧美精品丝袜中出| 日本a在线免费观看| 成av人电影在线观看| 国产一区二区伦理| 日韩免费观看在线观看| 午夜国产福利一区二区| 牛牛精品成人免费视频| 欧美色欧美亚洲另类二区| 国产美女在线一区| 日本中文字幕在线2020| 成人亚洲一区二区一| 国产精品久久久久福利| 久草视频精品在线| 日韩免费视频| 日韩电影免费观看中文字幕| 午夜福利123| 在线观看欧美日韩电影| 亚洲夂夂婷婷色拍ww47| 亚洲日本精品国产第一区| 少妇精品高潮欲妇又嫩中文字幕 | 日韩一区二区精品视频| 少妇被狂c下部羞羞漫画| 亚洲ww精品| 色哟哟在线观看一区二区三区| 久久亚洲a v| 97电影在线| 久久一二三国产| 国产精品三区在线| 国产黄a三级三级看三级| 日韩高清不卡在线| 26uuu另类亚洲欧美日本老年| 美国黄色小视频| 98精品久久久久久久| 亚洲天堂成人在线| 好吊日免费视频| 草草视频在线一区二区| 日韩欧美在线综合网| 色一情一区二区三区| 日韩精选视频| 在线一区二区三区| 动漫av网站免费观看| 色在线视频观看| 午夜久久久久久| 久久久久久人妻一区二区三区| 18+激情视频在线| 最新国产の精品合集bt伙计| 亚洲电影免费| av国产在线观看| 国产精品久久久久久久久久免费看| 欧美午夜视频在线| 亚洲欧美日韩综合在线| 91蜜桃婷婷狠狠久久综合9色| 国产精品一区二| 午夜激情在线视频| 91蜜桃传媒精品久久久一区二区| 蜜桃av久久久亚洲精品| 日本亚洲一区| 国产亚洲欧美一区在线观看| 区一区二区三区中文字幕| 牛牛澡牛牛爽一区二区| 国产无遮挡一区二区三区毛片日本| 欧美日本韩国在线| 成人动漫在线播放| 亚洲欧洲av在线| 51xx午夜影福利| 久久久久黄久久免费漫画| 亚洲成人精品一区二区| 亚洲熟女乱色一区二区三区| 欧美色999| 欧美系列日韩一区| 青青草原播放器| 久久97久久97精品免视看秋霞| 日韩精品极品视频| 国产18无套直看片| 一区二区免费不卡在线| 性色av一区二区三区免费| 国产日产精品一区二区三区| 男女男精品视频| 99re视频在线播放| 手机看片福利在线观看| 日本一区二区三区在线不卡 | 日本一区二区免费视频| 亚洲精品亚洲人成在线| 色狠狠久久aa北条麻妃 | 午夜精品一区二区三区电影天堂 | 丝袜 亚洲 另类 欧美 重口| 国产在线日韩| 国产成人精品在线| 国产普通话bbwbbwbbw| av亚洲精华国产精华精| 日日夜夜精品网站| 国产三级伦理在线| 欧美网站一区二区| 人妻换人妻a片爽麻豆| 精品欧美久久| 久久久女人电视剧免费播放下载| 一级做a爰片久久毛片| 激情av综合网| 欧美一区二区综合| 中文字幕伦理免费在线视频 | 久久精品一区二| 99精品国产九九国产精品| 日韩电影中文 亚洲精品乱码| 亚洲图片第一页| 亚洲激情视频| 91影视免费在线观看| 九色网友自拍视频手机在线| 一区二区三区国产精品| 天天干天天爽天天射| 米奇精品关键词| 久久精品亚洲一区| 免费精品一区二区| av电影天堂一区二区在线| 亚洲av综合色区| 影音成人av| 国产视频欧美视频| 国产精品16p| 国产一区二区三区四区在线观看| 日韩精品av一区二区三区| 99在线视频影院| 欧美不卡在线视频| 91插插插插插插| 蓝色福利精品导航| 日韩欧美亚洲精品| 国产夫妻在线播放| 亚洲丁香久久久| 曰本女人与公拘交酡| 蜜乳av一区二区| 视频在线99| 天天综合网站| 国产亚洲日本欧美韩国| 日韩电影在线观看一区二区| 91小视频在线观看| 国产亚洲综合视频| 日韩欧美美女在线观看| 777777777亚洲妇女| 好吊视频一二三区| 午夜精品在线视频一区| 日韩aaaaa| 国产精品美女久久久| 精品一区二区视频| 国产免费拔擦拔擦8x在线播放| 精品福利一区二区三区免费视频| 国产精品老熟女一区二区| 国产一区二区三区观看| 伊人网在线免费| av在线亚洲色图| 欧美精品成人在线| 色一情一乱一区二区三区| 天天综合网天天综合色| 一级性生活毛片| 午夜亚洲视频| 日韩精品一区二区三区色偷偷| 小黄鸭精品aⅴ导航网站入口| 亚洲欧洲在线看| 波多野结衣电影在线播放| 国产精品妹子av| 91精品国产三级| 激情久久久久久| 久久人人九九| 亚洲爱爱视频| 美女999久久久精品视频| www久久久久久| 午夜激情一区二区三区| 免费看黄色的视频| 久久国产精品色婷婷| 亚洲中文字幕无码一区二区三区| 88久久精品| 日韩av片免费在线观看| 日本在线视频站| 精品久久久久久久一区二区蜜臀| 国产成人亚洲精品自产在线| 国产无人区一区二区三区| 国产探花在线看| 亚洲国产精品一区制服丝袜| 欧美激情第六页| 国产精品视频一区二区三区综合| 欧美—级高清免费播放| 精品亚洲综合| 日韩女优电影在线观看| 九九热在线免费观看| 中文字幕精品一区| 亚洲无人区码一码二码三码| 久久精品观看| 国产精品无码电影在线观看| 免费av一区二区三区四区| 91精品在线观看视频| 免费v片在线观看| 久久韩剧网电视剧| 亚洲日本中文字幕在线| 7777精品伊人久久久大香线蕉完整版| 国产精品30p| 国产精品久久久久久久岛一牛影视| 日批免费观看视频| 麻豆一区二区三| 亚洲熟妇国产熟妇肥婆| 天天综合网网欲色| 日本电影一区二区三区| 一区二区中文字幕在线观看| 国产成人福利视频| 91九色在线播放| 日韩有码视频在线| 久草视频视频在线播放| 亚洲成av人片在线观看香蕉| 6—12呦国产精品| 欧美午夜激情在线| 国产亚洲精品女人久久久久久| 中文字幕成人av| 亚洲永久无码7777kkk| 国产精品69久久久久水密桃 | 国产馆精品极品| www.日日操| 日韩视频在线一区二区三区 | 岛国一区二区三区高清视频| 成人在线免费| 日本精品性网站在线观看| 伦理av在线| 欧美大片免费看| 黄在线免费观看| 最近2019年手机中文字幕| 青春草在线观看| 亚洲电影免费观看| 亚洲免费视频网| 91精品国产高清一区二区三区蜜臀| 成人黄色激情视频| 日本道精品一区二区三区| 人人干人人干人人干| 亚洲国产成人porn| 精品99在线观看| 伊人一区二区三区| 欧美激情图片小说| 亚洲欧美激情视频在线观看一区二区三区 | 国产一区二区三区蝌蚪| 91插插插插插插插插| 视频一区二区三区在线| 中文字幕乱码人妻综合二区三区 | 成人亚洲视频在线观看| 亚洲一区二区三区高清不卡| 欧美日韩性生活片| 亚洲久久一区二区| 国产av麻豆mag剧集| 亚洲一级影院| 你懂的av在线| 麻豆久久婷婷| 免费观看成人在线视频| 日韩成人av影视| 孩娇小videos精品| 激情综合色丁香一区二区| 在线观看日本www| 国产一区二区电影| 中文字幕人妻无码系列第三区| 国产精品白丝jk黑袜喷水| 久久综合桃花网| 成人免费毛片嘿嘿连载视频| 美女黄色一级视频| 99久久免费视频.com| 黄色国产在线观看| 国产日本一区二区| a一级免费视频| 亚洲伊人伊色伊影伊综合网| 日韩精品一区二区三| 色哟哟日韩精品| 中文字幕日本人妻久久久免费| 欧美精品日韩一区| 开心激情综合网| 日韩精品小视频| 91在线直播| 欧美日本啪啪无遮挡网站| 超碰资源在线| 国产精品久久网| 91精品一久久香蕉国产线看观看| 91视频国产一区| 97se亚洲| 久久精品国产第一区二区三区最新章节 | 麻豆mv在线观看| 国产激情999| 精品国模一区二区三区欧美| 狠狠久久综合婷婷不卡| 欧美老女人另类| 老司机激情视频| 日韩中文字幕麻豆| 337p日本欧洲亚洲大胆张筱雨 | 视频一区视频二区在线观看| 51自拍视频在线观看| 久久综合久久鬼色中文字| 男人的午夜天堂| 欧美日韩免费一区| 国产精品久久久久久久久毛片| 亚洲成人精品久久| 香蕉视频国产在线观看| 国自产精品手机在线观看视频| 国产91在线精品| 国产一区在线免费观看| 久久精品国产99久久| 国产av国片精品| 精品一区二区三区香蕉蜜桃| 少妇户外露出[11p]| 亚洲色欲色欲www| 狠狠人妻久久久久久| 日韩西西人体444www| av大片在线播放| 91精品国产91久久久久久久久 | 欧美一区二区三区性视频| 天堂av在线资源| 欧美激情18p| 中文字幕日本一区| 欧美日韩在线不卡一区| 黄页网站一区| 91性高潮久久久久久久| 国产精品日韩成人| www.国产一区二区| 亚洲第一精品夜夜躁人人爽| 九义人在线观看完整免费版电视剧| 456亚洲影院| 国产一区二区三区亚洲| 欧美精品一区二区性色a+v| 蜜臀久久99精品久久久久宅男 | 青青草久久爱| 阿v天堂2018| 国产精品系列在线播放| 老熟妇高潮一区二区三区| 欧美午夜寂寞影院| 国产高清视频免费最新在线| 欧美一级淫片播放口| 日本成人中文| av免费看网址| 懂色一区二区三区免费观看 | 亚洲影视一区二区三区| 中文字幕国产免费| 国产欧美综合在线观看第十页| 国产美女激情视频| 亚洲精品中文字幕有码专区| 国产美女高潮在线| 久久精品一区二区三区不卡免费视频| 亚洲二区精品| 性高潮免费视频| 亚欧色一区w666天堂| 色窝窝无码一区二区三区成人网站| 欧美激情18p| 动漫视频在线一区| www.av毛片| av电影在线观看不卡| 在线观看日本视频| 夜夜嗨av一区二区三区四区| 国产精品久久亚洲不卡| 亚洲ai欧洲av| 久久成人免费网| 加勒比婷婷色综合久久| 日韩久久精品一区| aa国产成人| 久久综合九九| 日韩经典一区二区| 亚洲欧洲综合网| 日韩一区二区三区电影在线观看| 91精选在线| 精品国产91亚洲一区二区三区www| 99精品国产在热久久婷婷| 久久精品国产亚洲AV熟女| 欧美私模裸体表演在线观看| 日本免费中文字幕在线| 51国偷自产一区二区三区的来源| 欧美成人一区二免费视频软件| 韩国三级在线播放| 欧美日韩国产在线看| 91精品国产91久久久久游泳池 | 国产精品妹子av| 99精品人妻无码专区在线视频区| 欧美激情免费在线| 一道本一区二区三区| 日韩欧美国产片| 一区二区三区四区激情 | 少妇高潮 亚洲精品| 香蕉成人app| 国产欧美在线一区| 亚洲欧美一区二区三区极速播放| 国产成人手机在线| 国产成人综合av| 欧美成人嫩草网站| 国产交换配乱淫视频免费| 欧美精品乱码久久久久久| 97人人在线视频| 日韩妆和欧美的一区二区| 国产精品99久久久久久似苏梦涵| 色屁屁影院www国产高清麻豆| 精品久久国产精品| 欧美有码在线| 国产精品久久久久久久av福利| 亚洲高清不卡在线| 在线国产91| 乱一区二区三区在线播放| 国产一区二区成人久久免费影院| 五月婷婷色丁香|