午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

MySQL下200GB大表備份,利用傳輸表空間解決停服發(fā)版表備份問(wèn)題

freeflydom
2025年4月18日 10:49 本文熱度 336

問(wèn)題背景

在停服發(fā)版更新時(shí),需對(duì) 200GB 大表(約 200 億行數(shù)據(jù))進(jìn)行快速備份以預(yù)防操作失誤。

因?yàn)樵?jīng)出現(xiàn)過(guò)有開(kāi)發(fā)寫(xiě)的發(fā)版語(yǔ)句里,UPDATE語(yǔ)句的WHERE條件寫(xiě)錯(cuò)了,原本只需要更新幾行數(shù)據(jù),最終導(dǎo)致更新了半張表的數(shù)據(jù)。

MySQL版本是MySQL 8.0.X,為了預(yù)防這種情況,需要對(duì)某個(gè)重要的大表進(jìn)行預(yù)先備份,以便可以及時(shí)回滾,及時(shí)恢復(fù),及時(shí)回退,對(duì)于備份方法大概有下面幾種:

方案優(yōu)點(diǎn)缺點(diǎn)
mysqldump  導(dǎo)出簡(jiǎn)單易用大表導(dǎo)出耗時(shí)(200GB 可能需數(shù)小時(shí))
CREATE TABLE...SELECT直接 SQL 操作數(shù)據(jù)復(fù)制慢,鎖表風(fēng)險(xiǎn)高
表空間 傳輸秒級(jí)備份 ,零數(shù)據(jù)復(fù)制需操作系統(tǒng)權(quán)限,依賴文件拷貝
主從復(fù)制/延遲復(fù)制無(wú)需停服,恢復(fù)靈活需主從架構(gòu),維護(hù)成本高

這個(gè)場(chǎng)景的核心需求:停服更新的時(shí)間非常有限,比如1個(gè)小時(shí)之內(nèi)要完成更新。

操作流程

前面兩種都比較簡(jiǎn)單,通過(guò)導(dǎo)數(shù)據(jù)的方法來(lái)備份舊表,萬(wàn)一出現(xiàn)問(wèn)題,可以使用導(dǎo)出來(lái)的數(shù)據(jù)進(jìn)行快速恢復(fù),第三種方法估計(jì)比較少人用,下面是具體操作方法

  1. 源表與備胎表結(jié)構(gòu)

-- 源表(aa)
CREATE TABLE aa (
id int(11) DEFAULT NULL,
  sname VARCHAR(100)
) ENGINE=InnoDB;
-- 備胎表(bb)
CREATE TABLE bb (
id int(11) DEFAULT NULL,
  sname VARCHAR(100)
) ENGINE=InnoDB;
greatsql> INSERTINTO aa SELECT1,"nihao";

2、查看兩個(gè)表的表ID和表空間ID,可以看到aa表的表ID是1081 表空間ID是13,bb表的表ID是1082 表空間ID是14

greatsql> select * from information_schema.innodb_tables where name='school/aa'\G
*************************** 1. row ***************************
          TABLE_ID: 1081
              NAME: school/aa
              FLAG: 33
            N_COLS: 6
             SPACE: 13
        ROW_FORMAT: Dynamic
     ZIP_PAGE_SIZE: 0
        SPACE_TYPE: Single
      INSTANT_COLS: 0
TOTAL_ROW_VERSIONS: 0
1 row in set (0.01 sec)
greatsql> select * from information_schema.innodb_tables where name='school/bb'\G
*************************** 1. row ***************************
          TABLE_ID: 1082
              NAME: school/bb
              FLAG: 33
            N_COLS: 6
             SPACE: 14
        ROW_FORMAT: Dynamic
     ZIP_PAGE_SIZE: 0
        SPACE_TYPE: Single
      INSTANT_COLS: 0
TOTAL_ROW_VERSIONS: 0
1 row in set (0.00 sec)

3、備胎表卸載表空間:

greatsql> ALTER TABLE bb DISCARD TABLESPACE;  -- 加鎖并生成配置文件

4、源表執(zhí)行表空間導(dǎo)出:

greatsql> USE school;
greatsql> FLUSH TABLES aa FOR EXPORT;   

5、拷貝表空間文件(ibd和cfg文件),然后重新賦予權(quán)限,確保導(dǎo)入表空間時(shí)候不會(huì)出現(xiàn)問(wèn)題

$ cd /data/mysql/mysql3306/data/school
$ cp aa.ibd  bb.ibd  
$ cp aa.cfg  bb.cfg
$ chown -R mysql:mysql /data/mysql/mysql3306/data/*

6、在相同數(shù)據(jù)庫(kù)下,備胎表導(dǎo)入表空間

greatsql> USE school;
greatsql> UNLOCK TABLES;  
greatsql> ALTER TABLE bb IMPORT TABLESPACE;

7、查詢表數(shù)據(jù),驗(yàn)證數(shù)據(jù)一致性

greatsql> USE school;
greatsql> SELECT * FROM bb;
greatsql> SELECT * FROM aa;

查詢表數(shù)據(jù)正常,沒(méi)有任何問(wèn)題

greatsql> SELECT * FROM aa;
+------+-------+
| id   | sname |
+------+-------+
|    1 | nihao |
+------+-------+
1 row in set (0.01 sec)
greatsql> SELECT * FROM bb;
+------+-------+
| id   | sname |
+------+-------+
|    1 | nihao |
+------+-------+
1 row in set (0.00 sec)

查看表的數(shù)據(jù)文件,沒(méi)什么問(wèn)題

$ ll
total 228
-rw-r----- 1 mysql mysql 114688 Mar  4 16:51 aa.ibd
-rw-r----- 1 mysql mysql    781 Mar  4 16:52 bb.cfg
-rw-r----- 1 mysql mysql 114688 Mar  4 16:52 bb.ibd

 

8、再次查看兩個(gè)表的表ID和表空間ID,可以看到aa表的表ID是1081 表空間ID是13(沒(méi)有變化),bb表的表ID是1083 表空間ID是14(表空間ID已經(jīng)變了),bb表的表ID變了是防止與現(xiàn)有表沖突


mysql> select * from information_schema.innodb_tables where name='school/aa'\G
*************************** 1. row ***************************
          TABLE_ID: 1081
              NAME: school/aa
              FLAG: 33
            N_COLS: 6
             SPACE: 13
        ROW_FORMAT: Dynamic
     ZIP_PAGE_SIZE: 0
        SPACE_TYPE: Single
      INSTANT_COLS: 0
TOTAL_ROW_VERSIONS: 0
1 row in set (0.00 sec)
mysql> select * from information_schema.innodb_tables where name='school/bb'\G
*************************** 1. row ***************************
          TABLE_ID: 1083
              NAME: school/bb
              FLAG: 33
            N_COLS: 6
             SPACE: 14
        ROW_FORMAT: Dynamic
     ZIP_PAGE_SIZE: 0
        SPACE_TYPE: Single
      INSTANT_COLS: 0
TOTAL_ROW_VERSIONS: 0
1 row in set (0.00 sec)

9、發(fā)版更新與回滾

-- 發(fā)版操作(示例)
greatsql> UPDATE aa SET sname = 'new_value' WHERE id > 1;

10、如果發(fā)版有問(wèn)題,直接交換表名,最快速度恢復(fù)整個(gè)表的數(shù)據(jù)

-- 回滾操作(交換表名)
greatsql> ALTER TABLE aa RENAME TO aa_temp; 
greatsql> ALTER TABLE bb RENAME TO aa; 

總結(jié)

整個(gè)操作最重要的是第4步,操作系統(tǒng)級(jí)別的拷貝就完成了整個(gè)表的備份,相比于數(shù)據(jù)倒來(lái)倒去在速度上要快不少。另外,第5步的備胎表也可以不用導(dǎo)入,只有當(dāng)發(fā)現(xiàn)發(fā)版出現(xiàn)問(wèn)題時(shí)候,再導(dǎo)入也可以。

這種方法的關(guān)鍵優(yōu)勢(shì)如下

  • 直接拷貝 .ibd 文件,無(wú)需逐行復(fù)制數(shù)據(jù)。
  • 零鎖表時(shí)間:FLUSH TABLES tablename FOR EXPORT 僅短暫加鎖(秒級(jí))。
  • 快速恢復(fù):通過(guò)表名交換實(shí)現(xiàn)秒級(jí)回滾。

特別適合于這幾種場(chǎng)景:無(wú)主從架構(gòu)的單實(shí)例環(huán)境、大表快速備份、停服時(shí)間敏感。

當(dāng)然,如果有主從架構(gòu)的話,則更加推薦使用第四種方法,在操作上也更加可控,短時(shí)間也能保證能夠完成。

轉(zhuǎn)自https://www.cnblogs.com/lyhabc/p/18816226/ 


該文章在 2025/4/18 10:49:52 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产成人精品影视在线观看 | 国产国产久热这里只有精品 | 国产稀缺精品盗摄盗拍 | 国产成人无码精品 | 丰满人妻熟妇乱又伦精品 | 国产成人精品电影在线观看 | 国产a爽一区二区久久久 | 国产一精品一av一免费爽爽 | 国产蜜桃色欲91精品一区二区 | 国产精品无码网 | 韩国精品欧美一区二区三区 | av午夜片在线观看 | av免费黄色网址 | 国产亚洲欧美专区精品 | 国产精品美女免费视频观看 | 国产精品毛片一区二区 | 国产a一级毛片精品高清乱码 | 国产av无码专区亚洲av琪琪 | 韩国美女丝袜一区二区 | 成年女人毛片免费视频播放器 | 国产在线精品午夜肉伦伦影院 | www.夜片内射视频日韩精品成人 | 成人亚洲精品另类动态 | 国产精品羞羞无码久久久 | 成年女人毛片免费观看com | av收藏夹| 国产精品一区福利 | 国产精品国产高清国产专区720p | 国产丝袜美腿一区二区三区 | 国产精品免费福利久久 | 国产无套内射又大又猛又粗又爽 | 国产盗撮| 丰满肥女巨肥bw | 国产成年女人特黄特色毛片免 | 国产精品青青青高清在线观看 | 国产成人无码影视 | 国产成人女人视频在线观看 | 韩国福利影视一区二区三区 | 国产在线一区二区三区旡码 | 18禁成人黄网站免费视频 | 精品美内射 |