亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

MariaDB10.3 系統(tǒng)版本表 有效預(yù)防數(shù)據(jù)丟失

2024-09-07 22:13:01
字體:
供稿:網(wǎng)友
  系統(tǒng)版本表是SQL:2011標準中首次引入的功能。系統(tǒng)版本表存儲所有更改的歷史數(shù)據(jù),而不僅僅是當前時刻有效的數(shù)據(jù)。舉個例子,同一行數(shù)據(jù)一秒內(nèi)被更改了10次,那么就會保存10份不同時間的版本數(shù)據(jù)。就像《源代碼》電影里的平行世界理論一樣,你可以退回任意時間里。從而有效保障你的數(shù)據(jù)是安全的,DBA手抖或程序BUG引起的數(shù)據(jù)丟失,在MariaDB10.3里已成為過去。
 
  一、創(chuàng)建系統(tǒng)版本表
  例子:
 
  CREATE TABLE `t1` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(100) DEFAULT NULL,
    `ts` timestamp(6) GENERATED ALWAYS AS ROW START,
    `te` timestamp(6) GENERATED ALWAYS AS ROW END,
    PRIMARY KEY (`id`,`te`),
    PERIOD FOR SYSTEM_TIME (`ts`, `te`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 WITH SYSTEM VERSIONING;
  注意看紅色字體,這就是新增加的語法,字段ts和te是數(shù)據(jù)變化的起止時間和結(jié)束時間。
 
  另外用ALTER TABLE更改表結(jié)構(gòu),語法如下:
 
  ALTER TABLE t1 ADD COLUMN ts TIMESTAMP(6) GENERATED ALWAYS AS ROW START,
                ADD COLUMN te TIMESTAMP(6) GENERATED ALWAYS AS ROW END,
                ADD PERIOD FOR SYSTEM_TIME(ts, te),
                ADD SYSTEM VERSIONING;
  二、查詢歷史數(shù)據(jù)
  這里我們做一個實驗,首先要插入1條數(shù)據(jù), 
 
  接著把姓名為“張三”,改成“李四”(誤更改數(shù)據(jù))
 
  現(xiàn)在數(shù)據(jù)已經(jīng)成功變更,那么我想查看歷史數(shù)據(jù)怎么辦呢?非常簡單,一條命令搞定。
 
  語法一:查詢一小時內(nèi)的歷史數(shù)據(jù)。
  SELECT * FROM t FOR SYSTEM_TIME BETWEEN (NOW() - INTERVAL 1 HOUR) AND NOW();
  HOUR:小時
  MINUTE:分鐘
  DAY:天
  MONTH:月
  YEAR:年
 
  語法二:查詢一段時間內(nèi)的歷史數(shù)據(jù)
  SELECT * FROM t1 FOR SYSTEM_TIME FROM '2018-05-15 00:00:00' TO '2018-05-15 14:00:00';
 
  語法三:查詢所有歷史數(shù)據(jù)
  SELECT * FROM t1 FOR SYSTEM_TIME ALL;
 
  三、恢復(fù)歷史數(shù)據(jù)
  現(xiàn)在我們已經(jīng)找到了歷史數(shù)據(jù)“張三”,只需把它導(dǎo)出來做恢復(fù)即可。
 
  SELECT id,name FROM t1 FOR SYSTEM_TIME ALL where id = 1 AND name =
  '張三' into outfile '/tmp/t1.sql' /
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
  FIELDS TERMINATED BY ',' --- 字段的分隔符
  OPTIONALLY ENCLOSED BY '"' --- 字符串帶雙引號
 
  導(dǎo)入恢復(fù)
 
  load data infile '/tmp/t1.sql' replace into table t1 /
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' /
  (id,name);
 
  非常簡單的恢復(fù)完數(shù)據(jù),此方法比之前用mysqlbinlog或自研腳本等工具做閃回效率高得多。
 
  四、單獨存儲歷史數(shù)據(jù)
  當歷史數(shù)據(jù)與當前數(shù)據(jù)一起存儲時,勢必會增加表的大小,且當前的數(shù)據(jù)查詢:表掃描和索引搜索,將會花費更多的時間,因為需要跳過歷史數(shù)據(jù)。那么我們可以將通過表分區(qū)將其分開、單獨存儲,以減少版本控制的開銷。
  接上面的例子,執(zhí)行下面的語句:
 
  alter table t1
    PARTITION BY SYSTEM_TIME INTERVAL 1 MONTH (
      PARTITION p0 HISTORY,
      PARTITION p1 HISTORY,
      PARTITION p2 HISTORY,
      PARTITION p3 HISTORY,
      PARTITION p4 HISTORY,
      PARTITION p5 HISTORY,
      PARTITION p6 HISTORY,
      PARTITION pcur CURRENT
    );
  意思為:按照月份分割歷史數(shù)據(jù),今天至一個月后(2018年6月15日)的歷史數(shù)據(jù)放入p0分區(qū),次月的歷史數(shù)據(jù)放入p1分區(qū),依次類推至(2018年12月15日)存p6分區(qū)。當前數(shù)據(jù)存儲在pcur分區(qū)里。
 
  可以通過數(shù)據(jù)字典表,來查看每個分區(qū)表的數(shù)據(jù)輪詢時間狀態(tài)信息。
 
  SELECT PARTITION_DESCRIPTION,TABLE_ROWS FROM
  `information_schema`.`PARTITIONS` WHERE table_schema='hcy' AND
  table_name='t1';
 
  五、刪除舊的歷史數(shù)據(jù)
  系統(tǒng)版本表存儲了所有的歷史數(shù)據(jù),隨著時間的推移,歷史版本數(shù)據(jù)會變得越來越大,那么我們就可以將其最老的歷史數(shù)據(jù)刪除。
  例:將p0分區(qū)刪除
  ALTER TABLE t1 DROP PARTITION p0;
 
  六、正確使用姿勢
  通過上述介紹,我們了解了系統(tǒng)版本表的原理。在高并發(fā)寫入場景下,勢必會帶來性能上的損失,所以要用正確的姿勢開啟該功能。
 
  例:主庫是MySQL 5.6或者MariaDB 10.0/1/2版本,搭建一個新從庫MariaDB 10.3,在該從庫上轉(zhuǎn)換為系統(tǒng)版本控制表。這樣主庫上誤刪或誤篡改數(shù)據(jù),可以在從庫上通過版本控制找回。
 
  注:主庫是低版本,從庫是高版本,是可以向前兼容binlog格式的。
 
  七、注意事項
  1、參數(shù)system_versioning_alter_history要設(shè)置為KEEP(在my.cnf配置文件里寫死),否則默認不能執(zhí)行DDL修改表結(jié)構(gòu)操作。
  set global system_versioning_alter_history = 'KEEP';
 
  注:增加字段時,要加上after關(guān)鍵字,否則會在te字段后面,造成同步失敗。例:
  alter table t1 add column address varchar(500) after name;
 
  2、mysqldump工具不會導(dǎo)出歷史數(shù)據(jù),所以在做備份時,可以通過Percona XtraBackup熱備份工具來備份物理文件。
 
  3、搭建從庫時,如果你用mysqldump工具,要先導(dǎo)出表結(jié)構(gòu)文件,再導(dǎo)出數(shù)據(jù)。
  1)只導(dǎo)出表結(jié)構(gòu):
  # mysqldump -S /tmp/mysql3306.sock -uroot -p123456 --single-transaction --compact -c -d -q -B test > ./test_schema.sql
 
  導(dǎo)入完表結(jié)構(gòu)后,批量執(zhí)行DDL轉(zhuǎn)換系統(tǒng)版本表,腳本如下(附件里點擊下載):
 
  # cat convert.php
  <?php
 
  $conn=mysqli_connect("10.10.100.11","admin","123456","test","3306") or die("error connecting");
  mysqli_query($conn,"SET NAMES utf8");
 
  $table = "show tables";
  $result1 = mysqli_query($conn,$table);
  while($row = mysqli_fetch_array($result1)){
      $table_name=$row[0];
      echo "$table_name 表正在進行轉(zhuǎn)換系統(tǒng)版本表。。。".PHP_EOL;
      $convert_table="
  ALTER TABLE {$table_name} ADD COLUMN ts TIMESTAMP(6) GENERATED ALWAYS AS ROW START,
                ADD COLUMN te TIMESTAMP(6) GENERATED ALWAYS AS ROW END,
                ADD PERIOD FOR SYSTEM_TIME(ts, te),
                ADD SYSTEM VERSIONING";
      $result2=mysqli_query($conn,$convert_table);
      if($result2){
              echo '更改表結(jié)構(gòu)成功.'.PHP_EOL;
             echo ''.PHP_EOL;
      }
      else{
              echo '更改表結(jié)構(gòu)失敗.'.PHP_EOL;
             echo ''.PHP_EOL;
      }
  }
 
  mysqli_close($conn);
 
  ?>
  注:先安裝php-mysql驅(qū)動
  #yum install php php-mysql -y
  #php convert.php
 
  2)只導(dǎo)出數(shù)據(jù):
 
  # mysqldump -S /tmp/mysql3306.sock -uroot -p123456 --single-transaction
  --master-data=2 --compact -c -q -t -B test > test_data.sql

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
免费看成人av| av网站大全在线观看| 领导边摸边吃奶边做爽在线观看| 欧美极品jizzhd欧美| 白丝女仆被免费网站| 1插菊花综合| 欧美高清69hd| 狠狠躁狠狠躁视频专区| 欧美xxxx中国| 性高潮视频在线观看| 国产欧美一区二区精品仙草咪| 人人人妻人人澡人人爽欧美一区| 国产福利在线观看| 国产人妻黑人一区二区三区| 欧美一区二区三区视频| av一级在线| 天堂在线免费视频| av毛片在线| 亚洲欧美一区二区精品久久久| 国产99久久九九精品无码| 国产资源在线视频| 国产经典欧美精品| 都市激情亚洲| 一本一道久久a久久精品| 在线免费观看的av| 女人18毛片一区二区三区| 成人av综合在线| 91看片在线| 综合伊思人在钱三区| 另类av一区二区| 日韩欧美一区二区三区四区| 一区二区三区视频在线观看免费| 不卡亚洲精品| 色免费在线观看| 亚洲精品一区二区三区影院忠贞| 私拍精品福利视频在线一区| 中文字幕人成乱码在线观看| 欧美日韩一区三区| 巨胸大乳www视频免费观看| 久久免费精品视频| 夜色资源网av在先锋网站观看| 偷拍自拍在线视频| 日韩欧美aⅴ综合网站发布| 影音先锋久久资源网| 一本一道dvd在线观看免费视频| 国产一区二区色| 国产精品大片免费观看| 亚洲女人****多毛耸耸8| 少妇性l交大片| 一级在线观看视频| 一本久道久久综合多人| 亚洲国产图片| 国产精品网站视频| 国产1区2区3区4区| 天天爽天天爽夜夜爽| 波兰性xxxxx极品hd| 欧美日韩欧美一区二区| 国产日产高清欧美一区二区三区| 开心九九激情九九欧美日韩精美视频电影| 欧美另类极品videosbestfree| 亚洲精品一区二区三区区别| 人妻少妇精品久久| 猛性xxxxx| 老司机午夜在线视频| 一本色道久久亚洲综合精品蜜桃| 一本一道波多野结衣一区二区| 亚洲日本在线天堂| 欧美日韩国产一区二区三区| aaaaa黄色片| 久久久久99精品成人片| 国产亚洲综合av| 制服.丝袜.亚洲.中文.综合懂色| 国产美女网站视频| 精品视频1区2区3区| 亚洲欧美国产高清| 欧美另类在线观看| 国产成人精品片| 不卡一二三区| 天天爱天天做色综合| 国产精品美女久久久久久久久久久| a√在线视频| 丁香五月网久久综合| 亚洲成人激情视频| 丰满人妻老熟妇伦人精品| 最近中文字幕mv在线一区二区三区四区| 欧美日韩中文国产| 国产专区精品视频| 久久精品国产69国产精品亚洲| 亚洲男人天堂一区| 粉嫩一区二区| 91大神在线资源观看无广告| 亚洲精品少妇网址| 午夜视频在线观看一区| 国产精品白丝喷水在线观看| 亚洲欧美日韩国产综合在线| 超碰男人的天堂| 午夜国产精品理论片久久影院| 中文字幕1区2区| 欧美成人做性视频在线播放| 91精品国产自产精品男人的天堂| 美女久久精品| 国产日韩欧美一区二区三区四区| 欧美日韩在线国产| 91精品国产精品| 日本孕妇大胆孕交无码| 无码国产69精品久久久久同性| 久久精品国产96久久久香蕉| 99热国内精品永久免费观看| 爱爱爱视频网站| 99久久精品国产麻豆演员表| 要久久爱电视剧全集完整观看| h视频在线观看免费| 欧美另类videos粗暴黑人| 国产免费福利网站| 播金莲一级淫片aaaaaaa| 91精品婷婷国产综合久久竹菊| 国产精品免费av一区二区| 五月婷婷激情视频| 亚洲欧美综合区自拍另类| 美女黄毛**国产精品啪啪| 久久久精品国产免大香伊| 成年人视频免费在线播放| 免费观看特级毛片| 麻豆传媒在线免费| 日韩经典中文字幕一区| 台湾佬美性中文| 欧美精品一区二区三区在线播放| 神马影院午夜我不卡影院| 亚洲黄色av女优在线观看| 成人在线免费观看视频网站| 国产专区精品视频| 亚洲xxxx做受欧美| 日韩激情在线观看| 一区二区三区欧美精品| 国产又黄又猛又爽| 黑人极品videos精品欧美裸| 少女频道在线观看免费播放电视剧| 欧美精品videosex极品1| 国产高清久久| 毛片av免费观看| 亚洲欧美欧美一区二区三区| 性欧美办公室18xxxxhd| 日韩av黄色网址| 中日韩在线视频| 成人影院免费观看| 国产精品久久久久久麻豆一区软件| 色av成人天堂桃色av| 日韩精品一区二区三区四| 国产日本精品| 久久黄色网页| 国产日韩精品推荐| 亚洲精品视频在线看| 日本一区二区三区四区| 高潮久久久久久久久久久久久久| 亚洲精品第一区二区三区| a一区二区三区| 亚洲一级黄色片| 国产欧美一区二区白浆黑人| 日本欧美一区二区三区不卡视频| 少妇免费视频| 精品久久中文字幕| 国产精品178页| 亚洲精品在线a| 福利在线网站| 中文字幕网av| 中文字幕日韩欧美精品在线观看| 亚洲成a人片77777在线播放| 图片区日韩欧美亚洲| 97精品人妻一区二区三区在线| 国产午夜精品全部视频在线播放| 日韩精品无码一区二区| 久久久蜜桃一区二区人| 在线视频 日韩| 欧美一级理论片| 国产视频精品视频| 欧美日韩精品久久久| 亚洲自拍都市欧美小说| 色婷婷综合久久久久中文一区二区| 欧美亚男人的天堂| 亚洲精品久久7777| 林心如三级全黄裸体| 欧美一级在线播放| 久久精品视频6| 丰满诱人av在线播放| 波多野结衣一区二区在线| 国产欧美日韩不卡免费| 日韩美女啊v在线免费观看| 欧美日韩破处视频| 国产一区二区三区黄网站| 欧美亚洲韩国| 清纯唯美亚洲激情| 成人日韩在线电影| 欧美 日韩 人妻 高清 中文| 日韩黄色在线免费观看| 国产精品毛片一区二区三区| 国产免费一区二区三区四区| 亚洲免费专区| 黄色在线网站噜噜噜| 精品国产123区| japan高清日本乱xxxxx| 91精品久久久久久久91蜜桃| 免费成人在线观看视频| 久久精品亚洲一区二区| 俺去啦最新地址| 亚洲第一在线播放| 亚洲综合网站| 欧美黄免费看| 日本成片免费高清| 亚洲成人高清在线| 亚洲欧美中文日韩在线v日本| 成人情趣片在线观看免费| 成a人片在线观看| 亚洲成a人片77777kkkk| 色视频www在线播放国产人成| 亚洲综合123| 围产精品久久久久久久| 欧美日韩激情一区二区三区| 精品国产av色一区二区深夜久久| 国产一区国产精品| 欧美人一级淫片a免费播放| 成人免费一级视频| 97影视大全免费追剧大全在线观看| 国内av在线播放| 日韩一区二区精品| japan乱配videos老少配| 视频在线观看你懂的| 亚洲 欧美 激情 小说 另类| 麻豆九一精品爱看视频在线观看免费| 男女男精品视频网站| 国产精品成人无码| 国产成人自拍高清视频在线免费播放| 九九热在线精品视频| 日韩伦理精品| 日本黄xxxxxxxxx100| 欧美天堂亚洲电影院在线观看| 中文字幕校园春色| 91色琪琪电影亚洲精品久久| 日韩成人久久| 亚洲综合激情六月婷婷在线观看| 香蕉网在线视频| 欧美中文字幕视频在线观看| 欧美日韩123区| 香蕉视频网页版| 蜜桃伊人久久| 国产va免费精品高清在线| 99视频国产精品免费观看| 成人性生交大片免费看96| 96精品视频| 日韩av电影网址| 蜜臀91精品国产高清在线观看| 国产亚洲精品久久| 久久久91精品国产一区二区精品| 波多野结衣亚洲一二三| 国产在线拍偷自揄拍精品| 成人资源在线播放| 最近的2019中文字幕免费一页| 国产一区二区三区在线观看免费| 亚洲人午夜精品天堂一二香蕉| 69视频在线免费观看| 精品裸体舞一区二区三区| 欧美成人亚洲成人| 亚洲欧美日韩成人网| 中文字幕 日本| 国产精品高潮久久| 在线看视频你懂得| 日韩在线一二三| 免费一级黄色大片| 亚洲精品第一区二区三区| 午夜精品99久久免费| 亚洲a级在线观看| 免费成人黄色网| 国产youjizz在线| 91av毛片| 天天做天天干天天操| 五月婷婷激情综合| jiyouzz国产精品久久| 国产精品三p一区二区| 欧美乱妇高清无乱码| 国产一区二区视频在线看| 91tv亚洲精品香蕉国产一区7ujn| 精品人妻一区二区三区视频| 亚洲三级电影| 国产乱淫av麻豆国产免费| 国产精品久久三区| 日本黄色免费| 国产精品欧美久久久久天天影视| 日韩欧美在线123| 欧美日韩一区在线观看视频| 欧美激情精品久久久久久黑人| 99色在线播放| 欧美色图另类图片| 成年人免费在线播放| 在线观看免费视频污| www.激情网| 成人污视频在线观看| 日韩美女主播在线视频一区二区三区| 久久精品视频免费播放| 蜜桃999成人看片在线观看| julia一区二区三区中文字幕| 国产福利免费视频| 久久久久久欧美精品se一二三四| 91在线色戒在线| 日韩激情中文字幕| 欧美日韩国产综合一区二区| 黄色网在线视频| 久久先锋影音av| 欧洲亚洲精品在线| 99re亚洲国产精品| 亚洲国产aⅴ精品一区二区三区| 手机在线看片日韩| 91精品观看| www日韩大片| 在线播放国产一区中文字幕剧情欧美| 日韩免费av一区二区| 亚洲图片小说综合| 国产午夜精品久久久久久免费视| 4kfree性满足欧美hd18| 91久久久久久久久久久久久| 日韩电影一区二区三区| 国产aⅴ激情无码久久久无码| 国产成人精品亚洲日本在线观看| 999在线观看免费大全电视剧| 中文字幕无线码| 亚洲精品午夜国产va久久成人| 欧美日韩高清一区二区不卡| 国产精品巨作av| 免费电影网站在线视频观看福利| 四虎永久在线精品免费网址|