《MYSQL教程MySQL 常見數(shù)據(jù)拆分辦法》要點(diǎn):
本文介紹了MYSQL教程MySQL 常見數(shù)據(jù)拆分辦法,希望對您有用。如果有疑問,可以聯(lián)系我們。
在生產(chǎn)環(huán)境中,由于業(yè)務(wù)的增長或者業(yè)務(wù)的拆分,DBA經(jīng)常需要拆庫操作.那么我們常見的拆庫手段有哪些呢?MYSQL學(xué)習(xí)
我這里提供幾種解決辦法:MYSQL學(xué)習(xí)
1. 使用mysqldump 把表邏輯倒出,然后再source 到其它地方
2. 使用xtrabackup 把表、或者庫邏輯備份出,然后再recovery出一個實(shí)例
3. 使用MySQL自帶的表空間轉(zhuǎn)移(Transport)[這個需要MySQL 5.6.6 以上版本支持]MYSQL學(xué)習(xí)
I: 先來看一下MySQL 的 Transport 表空間的特性吧MYSQL學(xué)習(xí)
比如我們要把? tab_test1 從 db_A 移動到 db_B ,那么我們需要做這么一系列動作:MYSQL學(xué)習(xí)
Step 1: use db_A; show create table tab_test1;(首先,拿到需要的表結(jié)構(gòu))
Step 2: use db_B; create table tab_test1; alter tale tab_test1 discard tablespace;(discard tablespace 就是把ibd文件刪掉,只留下.frm文件)(其次,到目標(biāo)庫刪除掉idb文件)
Step 4: use db_A; flush table test122 for export;(把相關(guān)表的內(nèi)存數(shù)據(jù)寫入到數(shù)據(jù)庫)
Step 5: 拷貝 tab_test1.ibd 文件到 db_B/?? 目錄下;(操作系統(tǒng)層執(zhí)行拷貝ibd文件操作)
Step 6: use db_A; unlock tables; (源庫上解鎖表)
Step 7: use db_B; alter table tab_test1 import tablespace;(目標(biāo)庫執(zhí)行表空間導(dǎo)入)MYSQL學(xué)習(xí)
執(zhí)行完上邊幾個步驟,我們就完成了 在庫之間遷移 某些個表的操作了.MYSQL學(xué)習(xí)
II: 再來看一下 xtrabackup 導(dǎo)出部分表,以達(dá)到遷移目的MYSQL學(xué)習(xí)
?Step 1: 我們需要使用xtrabackup 備份部分表MYSQL學(xué)習(xí)
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:? 應(yīng)用日志,進(jìn)行恢復(fù)操作MYSQL學(xué)習(xí)
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: 重新起實(shí)例,配置復(fù)制關(guān)系,只復(fù)制部分表MYSQL學(xué)習(xí)
??? my.cnf 文件配置: Replicate_Wild_Do_Table/Replicate_Wild_Ignore_Table
?
執(zhí)行完上邊幾個步驟,我們就完成了表的遷移操作,并且新起了個實(shí)例,達(dá)到了分庫的目的.
?MYSQL學(xué)習(xí)
III:最后我們就看一下 mysqldump 的姿勢吧MYSQL學(xué)習(xí)
??? 額, 這個就不多鋁稅桑 mysqldump 做的事情就是 一些邏輯的導(dǎo)出, 倒出來的數(shù)據(jù)我們是可以用人肉可見的.??? 這個需要注意的一點(diǎn)就是? --single-transcation 選項(xiàng)
?
關(guān)于以上幾種辦法,我們在實(shí)際工作中需要 考慮 服務(wù)器的資源、內(nèi)存容量等, 需要結(jié)合實(shí)際情況來使用 合適的辦法進(jìn)行拆庫操作.MYSQL學(xué)習(xí)
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/5491.html