mysql 自定义序列号_在mysql中怎样设置,才能自动添加序列号
事件發(fā)生的線程ID(THREAD_ID)
活動(dòng)名稱(chēng)(EVENT_NAME)
起止時(shí)間戳以及事件的總持續(xù)時(shí)間(TIMER_START,TIMER_END 和 TIMER_WAIT)
在事件停止之前完成的工作單位和預(yù)估工作單位(WORK_COMPLETED,WORK_ESTIMATED)
因此,當(dāng)自動(dòng)重新加入過(guò)程開(kāi)始時(shí),它將在performance schema中注冊(cè)一個(gè)名為“stage / grouprpl / Undergoing auto-rejoinprocedure”的事件。使用表performance_schema.events_stage_current,??performance_schema.events_stages_summary_global_by_event_name和performance_schema.events_stages_history_long我們可以觀察到以下內(nèi)容:
是否正在進(jìn)行自動(dòng)重新加入程序
到目前為止,已經(jīng)減少重試的次數(shù)
直到下一次重試的估計(jì)剩余時(shí)間
自動(dòng)重新加入過(guò)程狀態(tài)
可以通過(guò)過(guò)濾包含“auto-rejoin”字符串的活動(dòng)事件來(lái)查找自動(dòng)重新加入過(guò)程狀態(tài)(即,是否正在進(jìn)行):
SELECT COUNT(*) FROM performance_schema.events_stages_current
WHERE EVENT_NAME LIKE '%auto-rejoin%';
COUNT(*)
1
查詢結(jié)果存在,證明服務(wù)器上運(yùn)行了自動(dòng)重新加入過(guò)程。
到目前為止的重試次數(shù)
如果正在進(jìn)行自動(dòng)重新加入程序,我們可以通過(guò)選擇階段事件上的工作單元數(shù)來(lái)檢查到目前為止嘗試的重試次數(shù):
SELECT WORK_COMPLETED FROM performance_schema.events_stages_current WHERE
EVENT_NAME LIKE '%auto-rejoin%';
WORK_COMPLETED
1
在這個(gè)例子中,到目前為止只有一次嘗試。
預(yù)計(jì)到下次重試的剩余時(shí)間
在每次重新加入嘗試之間,服務(wù)器將處于 5 分鐘的可中斷睡眠中。 重新加入嘗試直到成功或失敗之間的時(shí)間是無(wú)法估計(jì)的。 因此,為了粗略估計(jì)剩余時(shí)間,我們可以將到目前為止嘗試的重試次數(shù)乘以 5 分鐘,并減去到目前為止的階段事件所花費(fèi)的時(shí)間,以估計(jì)我們還需要多長(zhǎng)時(shí)間:
SELECT (300.0 - ((TIMER_WAIT*10e-12) - 300.0 * num_retries)) AS time_remaining FROM
(SELECT COUNT(*) - 1 AS num_retries FROM
performance_schema.events_stages_current WHERE EVENT_NAME LIKE '%auto-rejoin%') AS T,
performance_schema.events_stages_current WHERE EVENT_NAME LIKE '%auto-rejoin%';
time_remaining
30.0
所以在這個(gè)例子中,在下一次重新加入之前還有 30 秒。注意性能模式表中的所有時(shí)間記帳都以微秒精度保持,因此我們將 TIMER_WAIT 縮放為秒。
使用自動(dòng)重新加入與驅(qū)逐超時(shí)的權(quán)衡
到目前為止,在這篇文章中我們只關(guān)注自動(dòng)重新加入。實(shí)際上,有兩種不同的方法可以實(shí)現(xiàn)離開(kāi)組的成員的重新加入:
設(shè)置自動(dòng)重新加入嘗試次數(shù)來(lái)實(shí)現(xiàn)自動(dòng)重新加入
設(shè)置該成員的驅(qū)逐超時(shí)時(shí)間然后配合手動(dòng)干預(yù)
能有延緩刪除組內(nèi)可疑成員,并且如果配置為足夠長(zhǎng)的驅(qū)逐超時(shí)時(shí)間,則增加了重新建立連接的機(jī)會(huì),再次與組進(jìn)行交互。
雖然這兩個(gè)功能實(shí)現(xiàn)了相同的目標(biāo),但它們的工作方式是不同的,并且需要權(quán)衡。通過(guò)使用驅(qū)逐超時(shí),您可以維護(hù)組中可疑的成員,其缺點(diǎn)是您無(wú)法添加或刪除成員或選擇新的主機(jī)。如果通過(guò)使用自動(dòng)重新加入,該成員將不再是該組的正常組員,將保持在 superreadonly 模式,直到重新加入該組。但在此期間,重新加入成員的同步舊數(shù)據(jù)的可能性將增加。自動(dòng)重新加入過(guò)程可監(jiān)控,而驅(qū)逐超時(shí)不是真正可監(jiān)控的。
所以,總結(jié)一下:
驅(qū)逐超時(shí)的優(yōu)點(diǎn)
- 該成員一直在該組內(nèi)
- 可能更適合足夠小的網(wǎng)絡(luò)故障
驅(qū)逐超時(shí)的缺點(diǎn)
- 在懷疑某個(gè)成員時(shí),無(wú)法在該組上添加/刪除成員
- 在懷疑某個(gè)成員時(shí),無(wú)法選擇新的主機(jī)
- 您無(wú)法監(jiān)控此過(guò)程
自動(dòng)重新加入的優(yōu)點(diǎn)
- 該組將在沒(méi)有重新加入成員的情況下運(yùn)行,您可以添加/刪除成員并選擇新的主機(jī)
- 您可以監(jiān)控該過(guò)程
自動(dòng)重新加入的缺點(diǎn)
- 您增加了重新加入成員上過(guò)時(shí)讀取的可能性
- 可能不適合足夠小的網(wǎng)絡(luò)故障
總而言之,我從啟用自動(dòng)重新加入中獲得了什么?
通過(guò)啟用自動(dòng)重新加入,您可以減少對(duì)MySQL實(shí)例的手動(dòng)干預(yù)的需要。您的系統(tǒng)
更加適應(yīng)瞬間網(wǎng)絡(luò)故障,同時(shí)滿足對(duì)容錯(cuò)性和高可用的保證。
摘要
我們引入了一個(gè)名為group_replication_autorejoin_tries的新系統(tǒng)變量,允許用戶設(shè)置 MGR 成員在被驅(qū)逐或與組的大多數(shù)人失去聯(lián)系后嘗試重新加入組的次數(shù)。
默認(rèn)情況下,此自動(dòng)重新加入過(guò)程處于關(guān)閉狀態(tài)。它能幫助用戶在面對(duì)瞬間網(wǎng)絡(luò)故障時(shí)避免對(duì) MGR 成員進(jìn)行手動(dòng)干預(yù)。
總結(jié)
以上是生活随笔為你收集整理的mysql 自定义序列号_在mysql中怎样设置,才能自动添加序列号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 进程崩溃_java程序崩溃自启
- 下一篇: linux cmake编译源码,linu