最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL下200GB大表備份的操作(利用傳輸表空間解決停服發(fā)版表備份問題)

 更新時(shí)間:2025年04月15日 08:45:14   作者:GreatSQL  
這篇文章主要介紹了MySQL下200GB大表備份的操作(利用傳輸表空間解決停服發(fā)版表備份問題),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

問題背景

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

因?yàn)樵?jīng)出現(xiàn)過(guò)有開發(fā)寫的發(fā)版語(yǔ)句里,UPDATE語(yǔ)句的WHERE條件寫錯(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)問題,可以使用導(dǎo)出來(lái)的數(shù)據(jù)進(jìn)行快速恢復(fù),第三種方法估計(jì)比較少人用,下面是具體操作方法

  • 源表與備胎表結(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> INSERT INTO aa SELECT 1,"nihao";

2、備胎表卸載表空間:

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

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

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

4、拷貝表空間文件(ibd和cfg文件),然后重新賦予權(quán)限,確保導(dǎo)入表空間時(shí)候不會(huì)出現(xià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/*

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

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

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

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

查詢表數(shù)據(jù)正常,沒有任何問題

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ù)文件,沒什么問題

$ 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

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

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

8、如果發(fā)版有問題,直接交換表名,最快速度恢復(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)問題時(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í)間也能保證能夠完成。

關(guān)于 GreatSQL

GreatSQL是適用于金融級(jí)應(yīng)用的國(guó)內(nèi)自主開源數(shù)據(jù)庫(kù),具備高性能、高可靠、高易用性、高安全等多個(gè)核心特性,可以作為MySQL或Percona Server的可選替換,用于線上生產(chǎn)環(huán)境,且完全免費(fèi)并兼容MySQL或Percona Server。

到此這篇關(guān)于MySQL下200GB大表備份,利用傳輸表空間解決停服發(fā)版表備份問題的文章就介紹到這了,更多相關(guān)使用java代碼獲取JVM信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql當(dāng)中怎么執(zhí)行sql腳本文件

    mysql當(dāng)中怎么執(zhí)行sql腳本文件

    這篇文章主要給大家介紹了關(guān)于mysql當(dāng)中怎么執(zhí)行sql腳本文件的相關(guān)資料,需要的朋友可以參考下
    2023-08-08
  • 詳解MySQL中事務(wù)的持久性實(shí)現(xiàn)原理

    詳解MySQL中事務(wù)的持久性實(shí)現(xiàn)原理

    這篇文章主要介紹了詳解MySQL中事務(wù)的持久性實(shí)現(xiàn)原理,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-01-01
  • mysql中的服務(wù)器架構(gòu)詳解

    mysql中的服務(wù)器架構(gòu)詳解

    這篇文章主要介紹了mysql中的服務(wù)器架構(gòu),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Mysql將字符串按照指定字符分割的正確方法

    Mysql將字符串按照指定字符分割的正確方法

    字符串分割是我們開發(fā)中經(jīng)常會(huì)遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于Mysql將字符串按照指定字符分割的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • mysql安裝圖解 mysql圖文安裝教程(詳細(xì)說(shuō)明)

    mysql安裝圖解 mysql圖文安裝教程(詳細(xì)說(shuō)明)

    很多朋友剛開始接觸mysql數(shù)據(jù)庫(kù)服務(wù)器,下面是網(wǎng)友整理的一篇mysql的安裝教程,步驟明細(xì)也有詳細(xì)的說(shuō)明。
    2010-06-06
  • MySQL 基于時(shí)間點(diǎn)的快速恢復(fù)方案

    MySQL 基于時(shí)間點(diǎn)的快速恢復(fù)方案

    這篇文章主要介紹了MySQL 基于時(shí)間點(diǎn)的快速恢復(fù)方案,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-11-11
  • MySQL登錄、訪問及退出操作實(shí)戰(zhàn)指南

    MySQL登錄、訪問及退出操作實(shí)戰(zhàn)指南

    當(dāng)我們要使用mysql時(shí),一定要了解mysql的登錄、訪問及退出,下面這篇文章主要給大家介紹了關(guān)于MySQL登錄、訪問及退出操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • MySQL進(jìn)階之路索引失效的11種情況詳析

    MySQL進(jìn)階之路索引失效的11種情況詳析

    這篇文章主要介紹了MySQL查詢優(yōu)化中的11種常見情況,包括索引的使用和優(yōu)化策略,通過(guò)這些策略,開發(fā)者可以顯著提升查詢性能,需要的朋友可以參考下
    2025-03-03
  • Mysql事務(wù)特性和級(jí)別原理解析

    Mysql事務(wù)特性和級(jí)別原理解析

    這篇文章主要介紹了Mysql事務(wù)特性和級(jí)別原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • mysql服務(wù)器查詢慢原因分析與解決方法小結(jié)

    mysql服務(wù)器查詢慢原因分析與解決方法小結(jié)

    在開發(fā)的朋友特別是和mysql有接觸的朋友會(huì)碰到有時(shí)mysql查詢很慢,當(dāng)然我指的是大數(shù)據(jù)量百萬(wàn)千萬(wàn)級(jí)了,不是幾十條了,下面我們來(lái)看看解決查詢慢的辦法
    2012-04-04

最新評(píng)論

阿城市| 凤台县| 南澳县| 内江市| 绍兴县| 英德市| 金溪县| 桦南县| 文登市| 扎囊县| 龙岩市| 申扎县| 拜泉县| 襄城县| 嘉兴市| 白朗县| 宁安市| 佛山市| 温泉县| 漠河县| 四川省| 礼泉县| 龙江县| 壤塘县| 双江| 金阳县| 时尚| 雷州市| 木兰县| 武邑县| 苏尼特左旗| 汨罗市| 濮阳县| 南昌市| 贞丰县| 红安县| 沂南县| 潢川县| 呈贡县| 建昌县| 永城市|