1 找個(gè)別的機(jī)器安裝個(gè)同版本的mysql或從已安裝同版本的其他機(jī)器上(非同版本的也可以試下): 拷貝 mysql/data/mysql 目錄到你的mysql/data/ 下吧 2 試著啟動(dòng)mysql服務(wù),如果能啟動(dòng)了,理論上應(yīng)該丟失的只有用戶(hù)、授權(quán)等一些系統(tǒng)信息
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),民豐企業(yè)網(wǎng)站建設(shè),民豐品牌網(wǎng)站建設(shè),網(wǎng)站定制,民豐網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,民豐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
mysqldump -u -p --tables
--tables 后面?zhèn)€表名稱(chēng)就是要單獨(dú)備份
恢復(fù)就是和正?;謴?fù)一樣就行了
假設(shè)兩個(gè)表結(jié)構(gòu)完全相同。不同的話就需要指明所有的列。
Replace table2 Select * From table1
假設(shè)表名叫t1, 有id, name兩個(gè)字段,其中id是主鍵,或者是唯一的字段
REPLACE t1 (id, name) VALUES(1, 'alan')
多條情況:
REPLACE t1 (id, name) VALUES(1, 'alan'), (2, 'lstt'), (3, 'ssnl')
原理是:id不存在是就插入一條,存在是就自動(dòng)刪除原來(lái)的,再插入新的
所以,REPLACE不能只修改其中的一個(gè)
如果是后者情況,只能先判斷是否存在,再UPDATE了
Asynchronous?Replication?Automatic failover
其原理是在一條異步復(fù)制通道上配置多個(gè)可用復(fù)制源,當(dāng)某個(gè)復(fù)制源不可用時(shí)(宕機(jī)、復(fù)制鏈路中斷),且 slave 的 IO 線程嘗試重連無(wú)效,自動(dòng)根據(jù)權(quán)重選擇新的源繼續(xù)同步。
準(zhǔn)備一個(gè) MGR 集群和單實(shí)例,模擬復(fù)制鏈路切換,當(dāng) primary 故障,slave 自動(dòng)切換到其他節(jié)點(diǎn)。dbdeployer?deploy?replication?--topology=group?8.0.22?--single-primarydbdeployer deploy single 8.0.22
2. 在從機(jī)上建立指向 MGR 主節(jié)點(diǎn)的復(fù)制通道,
change master to master_user='msandbox',master_password='msandbox', master_host='127.0.0.1',master_auto_position=1,source_connection_auto_failover=1,master_port=23223,master_retry_count=6,master_connect_retry=10 for channel 'mgr-single';
在 master_retry_count 和 master_connect_retry 的設(shè)置上要考慮嘗試重連多久才切換復(fù)制源。
3. 在從機(jī)上配置 asynchronous connection auto failover
配置 asynchronous connection auto failover 的兩個(gè)函數(shù):
asynchronous_connection_failover_add_source(channel-name,host,port,network-namespace,weight)
asynchronous_connection_failover_delete_source(channel-name,host,port,network-namespace)
權(quán)重值大的被優(yōu)先級(jí)選擇,可以配合MGR的選舉權(quán)重配置 asynchronous_connection_failover 的權(quán)重。當(dāng) MGR 節(jié)點(diǎn)切換,異步復(fù)制也能切換到新的主節(jié)點(diǎn)。
SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23223,null,100); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23224,null,80); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23225,null,50);start?slave?for?channel?'mgr-single';
4. 檢查異步復(fù)制通道是否啟用 failover。
mysql SELECT CHANNEL_NAME, SOURCE_CONNECTION_AUTO_FAILOVER FROM performance_schema.replication_connection_configuration; +--------------+---------------------------------+| CHANNEL_NAME | SOURCE_CONNECTION_AUTO_FAILOVER |+--------------+---------------------------------+|?mgr-single?? |??1??????????????????????????????|+--------------+---------------------------------+1 row in set (0.01 sec
5. 把 MGR 的 primary 節(jié)點(diǎn) kill 掉,這個(gè)從節(jié)點(diǎn)會(huì)在嘗試幾輪重連失敗后自動(dòng)切換到次權(quán)重的復(fù)制源,其日志中會(huì)輸出切換信息。
注意:當(dāng)主節(jié)點(diǎn)故障,一旦復(fù)制鏈路成功 failover 后,在新的復(fù)制鏈路沒(méi)有故障時(shí),如果原主節(jié)點(diǎn)恢復(fù),是不會(huì)回切的。如果當(dāng)前復(fù)制鏈路發(fā)生故障,會(huì)再次選擇權(quán)重高的進(jìn)行切換