日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

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

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

2024-09-07 22:13:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  系統(tǒng)版本表是SQL:2011標(biāo)準(zhǔn)中首次引入的功能。系統(tǒng)版本表存儲(chǔ)所有更改的歷史數(shù)據(jù),而不僅僅是當(dāng)前時(shí)刻有效的數(shù)據(jù)。舉個(gè)例子,同一行數(shù)據(jù)一秒內(nèi)被更改了10次,那么就會(huì)保存10份不同時(shí)間的版本數(shù)據(jù)。就像《源代碼》電影里的平行世界理論一樣,你可以退回任意時(shí)間里。從而有效保障你的數(shù)據(jù)是安全的,DBA手抖或程序BUG引起的數(shù)據(jù)丟失,在MariaDB10.3里已成為過(guò)去。
 
  一、創(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;
  注意看紅色字體,這就是新增加的語(yǔ)法,字段ts和te是數(shù)據(jù)變化的起止時(shí)間和結(jié)束時(shí)間。
 
  另外用ALTER TABLE更改表結(jié)構(gòu),語(yǔ)法如下:
 
  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;
  二、查詢(xún)歷史數(shù)據(jù)
  這里我們做一個(gè)實(shí)驗(yàn),首先要插入1條數(shù)據(jù), 
 
  接著把姓名為“張三”,改成“李四”(誤更改數(shù)據(jù))
 
  現(xiàn)在數(shù)據(jù)已經(jīng)成功變更,那么我想查看歷史數(shù)據(jù)怎么辦呢?非常簡(jiǎn)單,一條命令搞定。
 
  語(yǔ)法一:查詢(xún)一小時(shí)內(nèi)的歷史數(shù)據(jù)。
  SELECT * FROM t FOR SYSTEM_TIME BETWEEN (NOW() - INTERVAL 1 HOUR) AND NOW();
  HOUR:小時(shí)
  MINUTE:分鐘
  DAY:天
  MONTH:月
  YEAR:年
 
  語(yǔ)法二:查詢(xún)一段時(shí)間內(nèi)的歷史數(shù)據(jù)
  SELECT * FROM t1 FOR SYSTEM_TIME FROM '2018-05-15 00:00:00' TO '2018-05-15 14:00:00';
 
  語(yǔ)法三:查詢(xún)所有歷史數(shù)據(jù)
  SELECT * FROM t1 FOR SYSTEM_TIME ALL;
 
  三、恢復(fù)歷史數(shù)據(jù)
  現(xiàn)在我們已經(jīng)找到了歷史數(shù)據(jù)“張三”,只需把它導(dǎo)出來(lái)做恢復(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 '"' --- 字符串帶雙引號(hào)
 
  導(dǎo)入恢復(fù)
 
  load data infile '/tmp/t1.sql' replace into table t1 /
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' /
  (id,name);
 
  非常簡(jiǎn)單的恢復(fù)完數(shù)據(jù),此方法比之前用mysqlbinlog或自研腳本等工具做閃回效率高得多。
 
  四、單獨(dú)存儲(chǔ)歷史數(shù)據(jù)
  當(dāng)歷史數(shù)據(jù)與當(dāng)前數(shù)據(jù)一起存儲(chǔ)時(shí),勢(shì)必會(huì)增加表的大小,且當(dāng)前的數(shù)據(jù)查詢(xún):表掃描和索引搜索,將會(huì)花費(fèi)更多的時(shí)間,因?yàn)樾枰^(guò)歷史數(shù)據(jù)。那么我們可以將通過(guò)表分區(qū)將其分開(kāi)、單獨(dú)存儲(chǔ),以減少版本控制的開(kāi)銷(xiāo)。
  接上面的例子,執(zhí)行下面的語(yǔ)句:
 
  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ù),今天至一個(gè)月后(2018年6月15日)的歷史數(shù)據(jù)放入p0分區(qū),次月的歷史數(shù)據(jù)放入p1分區(qū),依次類(lèi)推至(2018年12月15日)存p6分區(qū)。當(dāng)前數(shù)據(jù)存儲(chǔ)在pcur分區(qū)里。
 
  可以通過(guò)數(shù)據(jù)字典表,來(lái)查看每個(gè)分區(qū)表的數(shù)據(jù)輪詢(xún)時(shí)間狀態(tài)信息。
 
  SELECT PARTITION_DESCRIPTION,TABLE_ROWS FROM
  `information_schema`.`PARTITIONS` WHERE table_schema='hcy' AND
  table_name='t1';
 
  五、刪除舊的歷史數(shù)據(jù)
  系統(tǒng)版本表存儲(chǔ)了所有的歷史數(shù)據(jù),隨著時(shí)間的推移,歷史版本數(shù)據(jù)會(huì)變得越來(lái)越大,那么我們就可以將其最老的歷史數(shù)據(jù)刪除。
  例:將p0分區(qū)刪除
  ALTER TABLE t1 DROP PARTITION p0;
 
  六、正確使用姿勢(shì)
  通過(guò)上述介紹,我們了解了系統(tǒng)版本表的原理。在高并發(fā)寫(xiě)入場(chǎng)景下,勢(shì)必會(huì)帶來(lái)性能上的損失,所以要用正確的姿勢(shì)開(kāi)啟該功能。
 
  例:主庫(kù)是MySQL 5.6或者M(jìn)ariaDB 10.0/1/2版本,搭建一個(gè)新從庫(kù)MariaDB 10.3,在該從庫(kù)上轉(zhuǎn)換為系統(tǒng)版本控制表。這樣主庫(kù)上誤刪或誤篡改數(shù)據(jù),可以在從庫(kù)上通過(guò)版本控制找回。
 
  注:主庫(kù)是低版本,從庫(kù)是高版本,是可以向前兼容binlog格式的。
 
  七、注意事項(xiàng)
  1、參數(shù)system_versioning_alter_history要設(shè)置為KEEP(在my.cnf配置文件里寫(xiě)死),否則默認(rèn)不能執(zhí)行DDL修改表結(jié)構(gòu)操作。
  set global system_versioning_alter_history = 'KEEP';
 
  注:增加字段時(shí),要加上after關(guān)鍵字,否則會(huì)在te字段后面,造成同步失敗。例:
  alter table t1 add column address varchar(500) after name;
 
  2、mysqldump工具不會(huì)導(dǎo)出歷史數(shù)據(jù),所以在做備份時(shí),可以通過(guò)Percona XtraBackup熱備份工具來(lái)備份物理文件。
 
  3、搭建從庫(kù)時(shí),如果你用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)版本表,腳本如下(附件里點(diǎn)擊下載):
 
  # 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 表正在進(jìn)行轉(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ū)動(dòng)
  #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ā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产三级精品网站| 日韩欧美久久| 日韩国产成人| 国产69精品久久app免费版| 中文字幕日韩精品在线| 一区二区三区精品99久久| 亚洲欧美久久久| 欧美大片在线观看一区| 久久夜色精品国产欧美乱极品| 久久久99免费| 日本精品福利视频| 亚洲视频电影在线| 亚洲三级中文字幕| 中文字幕中文字幕精品| 欧美日韩亚洲综合| 日韩中文字幕在线一区| 日韩三级一区| 刘玥91精选国产在线观看| 成人精品国产福利| 国产亚洲欧美色| 一区二区国产在线| 一区二区三区在线播放视频| 影音先锋一区二区资源站| 中文字幕人成乱码在线观看| 天堂精品高清1区2区3区| 蜜桃久久久久| 国自产拍在线网站网址视频| 麻豆精品视频入口| 国产欧美日韩精品在线| 欧美三级网址| 日本不卡一区在线| 精品国产乱码久久久久久牛牛| 国产一区在线观看视频| 中文字幕亚洲在| 日本亚洲视频在线| 国产啊啊啊视频在线观看| 欧美国产小视频| 欧美日韩国产中文精品字幕自在自线| 一区二区三区精品99久久| 久久久99精品久久| 日韩欧美国产高清91| 国产日韩精品在线观看| 精品国产乱码久久久久久蜜臀 | 日韩欧美99| 日韩欧美视频一区二区三区四区| 午夜一区二区三区免费| 中文字幕日韩高清| www.老鸭窝.com| 日本a级黄色| 999精品网| av中文在线资源| 91精品国产手机| 亚洲欧美中文字幕在线一区| 99国产成 人 综合 亚洲欧美| www日韩在线观看| 国产欧美日韩综合精品| 日韩视频在线一区二区| 中文字幕欧美日韩精品| 国产欧美日韩91| 中文字幕精品国产| 亚洲一区在线视频观看| 韩国av一区二区| 一区二区日韩视频| 中文亚洲免费| 日韩不卡在线观看| 91精品在线观看国产| 中文字幕欧美日韩在线不卡| 中文字幕日韩欧美在线| 欧美激情一区二区在线| 亚洲三级网站| 一区二区欧美国产| 精产国产伦理一二三区| 先锋男人资源站| 欧美在线亚洲一区| 最新中文字幕在线播放 | 日韩欧美国产免费| wwww亚洲| 91日韩中文字幕| 精品久久香蕉国产线看观看gif| 91精品国产91久久久久久久久 | 欧美日韩不卡在线视频| 亚洲乱码中文字幕综合| 日韩精品视频在线观看免费| 91精品视频播放| 国产最顶级的黄色片在线免费观看| 亚洲一区中文| 区日韩二区欧美三区| 欧美日韩成人一区二区| 91精品国产经典在线观看| 日韩中文字幕精品视频| 欧美日韩中文国产| 一区二区在线高清视频| 欧美日韩精品久久久| 欧美日中文字幕| 亚州黄色一级| 亚洲欧洲在线观看av| 一区二区三区在线|网站| 日韩精品在线网站| 视频一区二区精品的福利| 国产成人精品三级| 欧美在线观看视频一区| 中文字幕久久精品| 一级日本免费的| 中文字幕无线码一区| 精品久久久视频| 日韩欧美在线精品| 国产日韩精品在线看| 国产日产一区二区三区 | 亚洲欧美中文字幕在线一区| 在线免费播放av| 国产绿帽一区二区三区| 国产成人日日夜夜| 久久精品网站免费观看| 黄色一区二区视频| 国产成人精品免费久久久久| 日韩高清不卡一区| 欧美日韩中文字幕在线视频| 日韩中文在线视频| 日韩亚洲一区中文字幕| 欧美日韩在线精品成人综合网| 日韩在线视频观看正片免费网站| 自拍日韩亚洲一区在线| 久久福利视频一区二区| 日韩不卡在线观看| 一本一道综合狠狠老| 日韩欧美亚洲日产国| 日韩不卡一二区| 日本精品在线播放| 久久视频免费看| 国产乱码在线观看| 91精品婷婷国产综合久久| 国产欧美日韩在线| 中文字幕国产欧美| 在线精品视频免费播放| 亚洲羞羞网站| 中文欧美日韩| 91午夜在线| 久久99精品久久久久婷婷| 在线视频亚洲| 中文字幕在线中文字幕二区| 国产真实乱子伦精品视频| 国产久卡久卡久卡久卡视频精品| 久久精品一级爱片| 日韩欧美一二三四区| 99久久精品国产成人一区二区| 欧美黄页在线免费观看| 综合激情国产一区| 日本亚洲欧美三级| 91久久久精品| 欧美日韩国产综合久久| √新版天堂资源在线资源| 一本一道综合狠狠老| 欧美日韩国产成人| 国产在线看一区| 精品网站999www| 91精品高清| 91精品国产丝袜白色高跟鞋| 樱花草www在线观看| 精品久久久91| 99国产成 人 综合 亚洲欧美 | 久久精品免费在线观看| 精品三级av| 亚洲国产午夜精品| 久久久精品午夜少妇| 日本精品二区| aa国产成人| 欧美日韩视频免费| 日韩欧美一二三区| 久久99蜜桃精品久久久久小说| 日韩欧美在线看| 久久视频在线免费观看| 国产一区高清视频| 欧美日韩在线视频免费观看| 韩国av一区二区| 91精品视频在线| 亚洲免费在线观看av| 欧美亚洲免费高清在线观看| 中文字幕日韩第一页| 日韩影院二区| 99在线国产| 精品国内自产拍在线视频| 香蕉人人精品| 亚洲精品欧美二区三区中文字幕| 国产日韩精品久久久| 精品一区二区在线观看视频| 日韩中文字幕视频在线观看| 国产成免费视频| 日韩欧美国产一二三区| 1区不卡电影| 国产乱国产乱300精品| 中文字幕在线看视频国产欧美| 欧美日韩亚洲国内综合网俺| 国产高清不卡av| 区日韩二区欧美三区| 亚洲免费在线视频一区 二区 | 日韩中文在线字幕| 亚洲三级网站| 在线视频色在线| 欧美日韩国产一中文字不卡| 国产资源在线观看入口av| 日韩专区中文字幕| 久久精品人妻一区二区三区| 亚洲伊人婷婷| 亚洲综合日韩中文字幕v在线| 久久riav| 亚洲 欧美 精品| 中文亚洲欧美| 亚洲专区一二三| 中文字幕亚洲欧美| 亚洲第一视频| 婷婷中文字幕一区三区| 一区二区三区视频网站| 精品一二线国产| 国产高清精品二区| 亚洲福利在线视频| 91精品国产色综合久久不卡蜜臀| www高清在线视频日韩欧美| 日韩一级二级三级精品视频| 91久久视频| 亚洲热线99精品视频| 国产一级久久久| 国产欧美日韩三级| 大香一本蕉伊线亚洲网| 精品亚洲国内自在自线福利| 91精品国产综合久久蜜臀| 国产高清精品二区| 午夜伊人狠狠久久| av免费观看国产| 中文在线一区二区| 日韩在线精品| 日韩精品中文在线观看| 亚洲乱码一区av黑人高潮| 中文字幕 亚洲一区| 国产一级网站视频在线| 久久久精品日韩欧美| 精品国产免费观看一区| 91精品免费观看| 一区二区视频在线观看免费的| 一区二区三区中文字幕在线观看| 国产高清视频一区二区| 一区二区三区久久| 精品999视频| 91xxx在线观看| 黄色在线播放网站| 91精品观看| 91蜜桃在线视频| 国产91欧美| 黄色欧美日韩| 欧美日韩国产黄色| 国产成人日日夜夜| 欧美日韩午夜在线视频| 中文字幕在线精品| 精品国产乱码久久久久久蜜臀| 日韩午夜一区| 久久欧美中文字幕| 日本一欧美一欧美一亚洲视频| 91精品国产自产在线观看永久∴| 欧美 日韩 中文字幕| 国产乱码在线| 亚洲第一精品在线| 亚洲 欧美综合在线网络| 国产在线拍揄自揄拍| 日韩欧美一级视频| 日韩av二区| 日韩精品综合在线| 欧美日本精品在线| 精品无人国产偷自产在线| 亚洲精品中文字幕乱码三区不卡| 中文字幕亚洲字幕| 国产在线欧美| 成人无遮挡免费网站视频在线观看| 欧美黄页在线免费观看| 欧美日韩第一| 国产在线视频一区二区| 精品国内自产拍在线视频| 成人久久久久| 亚洲欧美中文字幕在线一区| 国产激情在线| 国产手机视频一区二区| 日韩欧美在线综合网| 日韩三级高清在线| 国产欧美日韩中文字幕在线| 亚洲免费观看在线观看| 51精品免费网站| 欧美日韩国产中文| 中文字幕精品一区二| 日韩欧美中文在线视频| 亚洲福利在线观看| 亚洲校园欧美国产另类| 国产一二三精品| 亚洲素人一区二区| 欧美另类专区| 欧美日韩高清| 国产欧美日韩中文字幕| 久久精品在线观看| 欧美日韩尤物久久| 久久99久久久欧美国产| 日韩精品视频网| 亚州黄色一级| 中文字幕第一页在线播放| 精品一二三区视频| 国产不卡一区二区在线观看| 日韩精品在线看| 日韩精品视频在线观看免费| 一级免费a一片| 日韩在线高清视频| 999精品视频在线观看播放| 欧美日韩国产在线播放| 日韩欧美国产成人精品免费| 欧美日韩国产不卡| 999精品网| 精品日韩在线播放| 一区二区在线看| 日韩不卡在线播放| 日韩国产在线观看一区| 欧美另类久久久品| 久久91精品视频| 国产一级在线| 91av久久久| 日韩.欧美.亚洲| 日韩精品视频免费看| 一区二区在线高清视频| 一区在线播放视频| 国产主播中文字幕| 欧美日韩乱国产| 日韩国产一区| 免费看黄资源大全高清| 91久久在线| 亚洲免费视频一区| 一区二区91| 国产欧美日韩中文久久| 一区二区三区免费看视频| 亚洲一区不卡在线| 欧美专区中文字幕| 亚洲日本欧美日韩高观看| 中文字幕线观看| 婷婷精品视频| 蜜臀国产一区| 黄色一区二区在线| 中文在线一区二区| 日韩欧美亚洲日产国| 国产在线观看a| 天天综合天天做| 国产乱码午夜在线视频| 欧美亚洲另类制服自拍| 欧美日韩久久不卡| 日韩a一区二区| 精品中文字幕视频| 欧美日韩91| 亚洲三级免费看| 国产高潮久久久| 欧美1234区| 国产高清在线视频| 亚洲欧美中文在线视频| 国产成人中文字幕| 日韩在线观看视频一区| 国产日韩av高清| 精品福利二区三区| 欧美日韩国产一区在线| 国产欧美日韩不卡免费| 国产视频一区三区| 国产一区在线不卡| 亚洲中午字幕| 国产在线欧美日韩| www.三级.com| 国产视频一二区| 99视频一区| 在线中文字幕视频观看| 久久99久久99精品中文字幕| 亚洲欧美中文字幕| 中文字幕日韩免费视频| 国产亚洲欧美中文| 中文av字幕一区| av免费在线不卡| 精品国产乱码久久久久久牛牛| 国产成人精品999| 国产一级在线免费观看| 国产欧美日韩在线| 日韩欧美在线网址| 亚洲视频日韩| 中文字幕欧美日韩精品| 国产一级在线| 日韩精品在线播放| 欧美亚洲免费高清在线观看| 日韩在线观看视频一区二区| 在线观看国产一级片| 美女黄a一级视频| 成年人黄国产| 在线欧美日韩精品| 欧美高清一级片在线| 日韩免费视频一区二区| 成人xxxx| 日韩午夜黄色| 日韩视频 中文字幕| 亚洲第一页中文字幕| 免费中文字幕日韩欧美| 婷婷久久综合网| 最近中文字幕第一页| 91精品婷婷国产综合久久| 欧美国产综合视频|