MySQL 常見資料拆分辦法_Mysql

來源:互聯網
上載者:User

在生產環境中,由於業務的增長或者業務的拆分,DBA經常需要拆庫操作。那麼我們常見的拆庫手段有哪些呢?

我這裡提供幾種解決辦法:

1. 使用mysqldump 把表邏輯倒出,然後再source 到其它地方
2. 使用xtrabackup 把表、或者庫邏輯備份出,然後再recovery出一個執行個體
3. 使用MySQL內建的資料表空間轉移(Transport)[這個需要MySQL 5.6.6 以上版本支援]

I: 先來看一下MySQL 的 Transport 資料表空間的特性吧

比如我們要把  tab_test1 從 db_A 移動到 db_B ,那麼我們需要做這麼一系列動作:

Step 1: use db_A; show create table tab_test1;(首先,拿到需要的表結構)
Step 2: use db_B; create table tab_test1; alter tale tab_test1 discard tablespace;(discard tablespace 就是把ibd檔案刪掉,只留下.frm檔案)(其次,到目標庫刪除掉idb檔案)
Step 4: use db_A; flush table test122 for export;(把相關表的記憶體資料寫入到資料庫)
Step 5: 拷貝 tab_test1.ibd 檔案到 db_B/   目錄下;(作業系統層執行拷貝ibd檔案操作)
Step 6: use db_A; unlock tables; (源庫上解鎖表)
Step 7: use db_B; alter table tab_test1 import tablespace;(目標庫執行資料表空間匯入)

執行完上邊幾個步驟,我們就完成了 在庫之間遷移 某些個表的操作了。


II: 再來看一下 xtrabackup 匯出部分表,以達到遷移目的

 Step 1: 我們需要使用xtrabackup 備份部分表

nohup perl /home/ddb/tmp/xtrabackup/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/xtrabackup/bin/xtrabackup_55 --user=root --password=123 --defaults-file=/home/my.cnf  --slave-info  --tables-file=/mnt/back_tables.txt /mnt/backup_1 
 
Step 2:  應用日誌,進行恢複操作

nohup perl /home/tmp/percona-xtrabackup-2.1.9-Linux-x86_64/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/percona-xtrabackup-2.1.9-Linux-x86_64/bin/xtrabackup_55 --export --apply-log --defaults-file=/home/node-1-1/backup-my.cnf /home/node-1-1/ > /tmp/r.log 2>&1 &
 
Step 3: 重新起執行個體,配置複製關係,只複製部分表

    my.cnf 檔案配置: Replicate_Wild_Do_Table/Replicate_Wild_Ignore_Table
 
執行完上邊幾個步驟,我們就完成了表的遷移操作,並且新起了個執行個體,達到了分庫的目的。
 

III:最後我們就看一下 mysqldump 的姿勢吧

    額, 這個就不多囉嗦了吧, mysqldump 做的事情就是 一些邏輯的匯出, 倒出來的資料我們是可以用人肉可見的。    這個需要注意的一點就是  --single-transcation 選項
 
關於以上幾種辦法,我們在實際工作中需要 考慮 伺服器的資源、記憶體容量等, 需要結合實際情況來使用 合適的辦法進行拆庫操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.