您好,登錄后才能下訂單哦!
新跳槽了一家公司,上來就是數(shù)據(jù)庫調(diào)優(yōu)和數(shù)據(jù)遷移。調(diào)優(yōu)那部分后面再補(bǔ)上來。公司目前用的是5.1的數(shù)據(jù)庫,很老了,而且隨著業(yè)務(wù)的發(fā)展需要做讀寫分離和主從復(fù)制。想把所有的數(shù)據(jù)都挪到新庫上去。但這個庫大概有60G的數(shù)據(jù)。
主要思路:
1.創(chuàng)建用戶,并授權(quán)
2.搭建主從,做到主從同步,數(shù)據(jù)目前先保持一致,在切換主從同步切換ip
Mysql5.1已有數(shù)據(jù)量了,為保證數(shù)據(jù)的一致性。故需要鎖庫,等數(shù)據(jù)導(dǎo)入后再解鎖
3.需要注意從庫和主庫的引擎,字符集
show variables like 'character_set%'; --查看當(dāng)前環(huán)境的character_set
show variables like 'collation%'; --查看當(dāng)前的collation
4.數(shù)據(jù)搬完后做數(shù)據(jù)校驗,校驗一致性
采用pt-table-checksum 進(jìn)行校驗用pt-table-sync恢復(fù)一致
Zabbix定時監(jiān)控mysql是否一致,如果不一致,調(diào)用腳本自動修復(fù)
統(tǒng)計了幾種方式:
一·版本相同的數(shù)據(jù)庫
1.如果版本相同的話,直接停庫,拷貝(cp、tar,gzip,cpio) 把mysql的整個目錄打包發(fā)送到新的主機(jī)上。
這個是最簡單粗暴的,也是最有效,而且數(shù)據(jù)也是很一致的
2。也可以采用percona-xtrabackup 物理備份 + binlog
借助第三方軟件備份,好處:它能對InnoDB和XtraDB存儲引擎的數(shù)據(jù)庫非阻塞地備份。它不暫停服務(wù)創(chuàng)建Innodb熱備份;
為mysql做增量備份;在mysql服務(wù)器之間做在線表遷移;使創(chuàng)建replication更加容易;備份mysql而不增加服務(wù)器的負(fù)載。
3.mysqldump備分
a.主機(jī)A備份成sql文件,在導(dǎo)入到主機(jī)B數(shù)據(jù)庫里,這種方式需要長時間鎖表,而且需要大量時間
mysqldump -uvnum -pvnum@123 --force data_base_name > /data/data_base_name.sql
或直接傳到對應(yīng)主機(jī)下的sql文件,60個G的話,導(dǎo)出導(dǎo)入時間差不多要五個小時左右,太慢了
b.tar備份
備份并壓縮
mysqldump -uusername -ppassword dbname | gzip > /data/wwwroot/www/dbname.sql.gz
解壓并還原
gunzip < /root/dbname.sql.gz | mysql -uusernameb -ppasswordb dbnamenew
時間相對減少點
最佳方式介紹
還有一種直接將數(shù)據(jù)庫A直接轉(zhuǎn)移到數(shù)據(jù)庫B的方式(在服務(wù)器A中執(zhí)行)但要求網(wǎng)速一定要好
mysqldump --default-character-set=utf8mb4 --host=127.0.0.1 -uusername -ppassword
1.必須保證服務(wù)器B的數(shù)據(jù)庫能夠服務(wù)器A訪問,且B服務(wù)器存在對應(yīng)的庫
2.--opt命令可選,建議加上。等同于指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以給出很快的轉(zhuǎn)儲操作并產(chǎn)生一個可以很快裝入MySQL服務(wù)器的轉(zhuǎn)儲文件。
3.--default-character-set=utf8mb4 指定該數(shù)據(jù)庫連接的字符類型。如果服務(wù)器默認(rèn)未utf8的話,導(dǎo)出的數(shù)據(jù)可能會丟失四字節(jié)的unicode信息(表情之類的)
4.-C 客戶端和服務(wù)器之間啟用壓縮傳遞所有信息。當(dāng)然得要有咯。
mysql通過命令行快速轉(zhuǎn)移數(shù)據(jù)庫,一個命令(mysqldump)完成數(shù)據(jù)備
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。