下文給大家?guī)碛嘘P(guān)MySQL中如何分區(qū)已經(jīng)存在大量數(shù)據(jù)的表內(nèi)容,相信大家一定看過類似的文章。我們給大家?guī)淼挠泻尾煌??一起來看看正文部分吧,相信看完MySQL中如何分區(qū)已經(jīng)存在大量數(shù)據(jù)的表你一定會(huì)有所收獲。
創(chuàng)新互聯(lián)公司主營(yíng)企業(yè)營(yíng)銷型網(wǎng)站建設(shè),為眾多企業(yè)提供了品牌網(wǎng)站建設(shè)服務(wù),建網(wǎng)站哪家好?擁有多年的全網(wǎng)整合營(yíng)銷推廣流程,能夠?yàn)槠髽I(yè)定制化制作網(wǎng)站服務(wù),在公司網(wǎng)站建設(shè)維護(hù)方面成績(jī)突出。
環(huán)境:
數(shù)據(jù)庫版本:5.6
系統(tǒng)環(huán)境:CentOS 6.8
復(fù)制架構(gòu):
需求:
需要將實(shí)例C上面一個(gè)2500萬行數(shù)據(jù)的Innodb引擎的表table進(jìn)行分區(qū),但是在實(shí)例A上面表table不做任何的修改。
思考的問題:
在實(shí)例C上面的表table做分區(qū),分區(qū)之后會(huì)不會(huì)影響實(shí)例A和實(shí)例C之間表table的傳輸,會(huì)不會(huì)造成數(shù)據(jù)不一致或者插入失敗,或者分區(qū)之后插入的數(shù)據(jù)會(huì)比較慢。
實(shí)際操作:都是在實(shí)例C上面的操作
1. stop slave IO_THREAD 停掉IO_THREAD并且等待實(shí)例C重放relay log完畢。
Master_Log_File == Relay_Master_Log_File and Read_Master_Log_Pos == Exec_Master_Log_Pos 當(dāng)這倆個(gè)表達(dá)式成立的時(shí)候表明本地的relay log已經(jīng)重做完畢。
2.邏輯備份表table的數(shù)據(jù):
mysqldump -S /var/lib/mysql/mysql.sock -uroot -p --single-transaction --master-data=2 -t --skip-add-drop-table sbtest sbtest1 > sbtest1.sql 參數(shù)解釋: -t:不創(chuàng)建table --skip-add-drop-table:不做drop table操作
在備份的時(shí)候不需要drop table 和 create table操作寫入備份的SQL語句中
3.更改表名
更改舊表的表名 rename table sbtest1 to sbtest2; 這樣做的目的是為了在做備份導(dǎo)入的時(shí)候不需要更改備份SQL語句,并且萬一分區(qū)失敗或者其他的原因至少也有表的備份存在。
4.創(chuàng)建空表并且進(jìn)行分區(qū):
CREATE TABLE `sbtest1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `k` bigint(20) NOT NULL, `c` varchar(20) NOT NULL, `pad` varchar(50) COLLATE utf8mb4_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin PARTITION BY KEY (id) PARTITIONS 64
新表的表結(jié)構(gòu)要和舊表的表結(jié)構(gòu)一致,唯一不同就是提前分好區(qū)。
5.導(dǎo)入邏輯備份語句
mysql -uroot -p sbtest < sbtest1.sql
6.導(dǎo)入完畢之后開啟slave并且觀察一段時(shí)間
start slave IO_THREAD
7.pt-table-checksum數(shù)據(jù)一致性檢測(cè)(可做可不做)
http://seanlook.com/2015/12/29/mysql_replica_pt-table-checksum/
8.建議:
因?yàn)?500萬行的數(shù)據(jù)的備份會(huì)花費(fèi)比較長(zhǎng)的時(shí)間,所以在備份的時(shí)候建議使用screen,那怕在你遠(yuǎn)程回話斷開之后進(jìn)程還是存在的。
對(duì)于上文關(guān)于MySQL中如何分區(qū)已經(jīng)存在大量數(shù)據(jù)的表,大家覺得是自己想要的嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
本文標(biāo)題:MySQL中如何分區(qū)已經(jīng)存在大量數(shù)據(jù)的表
瀏覽地址:http://jinyejixie.com/article20/ghopco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)建站、服務(wù)器托管、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)