iT邦幫忙

0

[已解決]MySQL Shell Dump & Load 替代 mysqldump 備份問題

  • 分享至 

  • xImage

已解決,改用 mydumper 替代 MySQL Shell Dump & Load 。

MySQL Shell Dump & Load 替代 mysqldump 備份問題
目前工作上需求,備份 CloudSQL MySQL 5.6 ~ 8.0
每隔幾個月需要備份5000萬筆資料,並清除超過指定日期舊資料。
在需要時,可以還原多份備份(可能會有重疊日期的資料)到地端或雲端開臨時 Instance
重疊資料指備份時:第一份 1/1~2/4、第二份 2/1~3/3。2/1~2/4 會重疊

目前用預設 util.dumpInstance 後使用 util.loadDump 還原到地端 Instance 進行第二份時會出現 already contains a table named xxx,接下來也沒法繼續還原。只能再開一個 Instance,但查找資料比較麻煩
想請問使用 MySQL Shell Dump 備份還原時,要如何達到

  1. 備份指定時間區間
  2. 還原第二份以上資料略過 Table 已存在,繼續執行還原
  3. 若不能備份指定區間,如何 Insert 時忽略已存在資料
    爬了一下官網,沒找到類似的語法。可能我英文比較差/images/emoticon/emoticon02.gif

找了下 mysqldump 可以調整

  1. insert ignore 已存在資料,避免重複無法 Insert
  2. 不 drop table,可以還原回同 DB 裡
  3. 不 create table,避免因有相同 table 而失敗
  4. where 指定備份區間,解決資料重疊問題

有符合需求,但可惜只有單執行續。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
wiseguy
iT邦超人 1 級 ‧ 2022-09-06 11:23:42

雖然不太明白你為何要

  1. 聽起來是把備份還原到原來的DB (一般除了要驗證備份是否可還原才需要做還原驗證,但不會是還原到原資料庫,而是另一個新的驗證用資料庫)
  2. 還原時,得還原好幾份備份

不過你可以考慮 MySQL 官方提供的備份工具:
MySQL Backup

vicentli iT邦研究生 4 級 ‧ 2022-09-06 11:31:27 檢舉

不好意思,我沒說清楚
我是備份雲端的CloudSQL,需要查找舊資料時,得還原到地端或雲端再開一個 Instance。已補充在問題描述裡

vicentli iT邦研究生 4 級 ‧ 2022-09-06 11:45:52 檢舉

CloudSQL 的 MySQL 是不是 Enterprise 版阿?
地端臨時搭建的不是,還能用 MySQL Backup 還原回去嗎?

我要發表回答

立即登入回答