Onye na-ahụ maka MySQL: gịnị kpatara na ị gaghị arụ ọrụ na-anabata mmejọ na-enweghị ya

Nnukwu ọrụ ọ bụla malitere site na sava abụọ. Na mbụ, e nwere otu ihe nkesa DB, mgbe ahụ, a na-agbakwunye ndị ohu na ya iji mee ka ọgụgụ ahụ dịkwuo elu. Ma mgbe ahụ - kwụsị! E nwere otu onye-nwe, ma e nwere ọtụtụ ndị ohu; ọ bụrụ na otu n'ime ndị ohu ahụ pụọ, mgbe ahụ ihe niile ga-adị mma, ma ọ bụrụ na nna ukwu ahụ pụọ, ọ ga-adị njọ: oge ​​nkwụsịtụ, ndị admins na-agbalị ịkwalite ihe nkesa ahụ. Ihe a ga-eme? Debe onye ukwu. Onye ọrụ ibe m Pavel edeworị banyere nke a ederede, Agaghị m ekwugharị ya. Kama, m ga-agwa gị ihe kpatara na ị ga-achọ Orchestrator maka MySQL!

Ka anyị malite na ajụjụ bụ isi: "Olee otu anyị ga-esi gbanwee koodu ahụ gaa na igwe ọhụrụ mgbe nna ukwu ga-apụ?"

  • Enwere m mmasị na atụmatụ na VIP (Virtual IP) kachasị, anyị ga-ekwu maka ya n'okpuru. Ọ bụ ihe kachasị mfe na nke doro anya, ọ bụ ezie na ọ nwere njedebe doro anya: nna ukwu nke anyị ga-edobe ga-adị na mpaghara L2 na igwe ọhụrụ, ya bụ, anyị nwere ike ichefu DC nke abụọ. Na, n'ụzọ dị mma, ọ bụrụ na ị na-agbaso iwu na nnukwu L2 bụ ihe ọjọọ, n'ihi na L2 bụ nanị kwa rack, na L3 dị n'etiti racks, na atụmatụ dị otú ahụ nwere ọbụna ihe mgbochi.
  • Ị nwere ike dee aha DNS na koodu wee dozie ya site na /etc/hosts. N'ezie, a gaghị enwe mkpebi. Uru nke atụmatụ ahụ: enweghị njirimara njedebe nke usoro mbụ, ya bụ, ọ ga-ekwe omume ịhazi cross-DC. Mana ajụjụ doro anya na-ebilite: kedu ngwa ngwa anyị ga-esi nyefee mgbanwe na /etc/hosts site na Puppet-Ansible?
  • Ị nwere ike ịgbanwe usoro nke abụọ ntakịrị: wụnye caching DNS na sava weebụ niile, nke koodu ahụ ga-aga na nchekwa data nna ukwu. Ị nwere ike ịtọ TTL 60 maka ntinye a na DNS. O yiri ka ọ bụrụ na etinyere ya nke ọma, usoro ahụ dị mma.
  • Atụmatụ nwere nchọpụta ọrụ, na-egosi ojiji nke Consul na wdg.
  • Nhọrọ na-adọrọ mmasị na ProxySQL. Ịkwesịrị ịkwaga okporo ụzọ niile na MySQL site na ProxySQL; ProxySQL n'onwe ya nwere ike ikpebi onye bụ nna ukwu. Site n'ụzọ, ị nwere ike ịgụ maka otu nhọrọ maka iji ngwaahịa a na nke m ederede.

Onye edemede nke Orchestrator, na-arụ ọrụ na Github, buru ụzọ mejuputa atụmatụ mbụ na VIP, wee gbanwee ya na atụmatụ ya na consul.

Nhazi akụrụngwa a na-ahụkarị:

Onye na-ahụ maka MySQL: gịnị kpatara na ị gaghị arụ ọrụ na-anabata mmejọ na-enweghị ya
Aga m akọwa ozugbo ọnọdụ ndị doro anya kwesịrị iburu n'uche:

  • Agaghị edebanye adreesị VIP na nhazi na sava ọ bụla. Ka anyị were echiche otu ọnọdụ: nna ukwu rebooted, na mgbe ọ na-loading, Orchestrator wee banye failover mode ma mee otu n'ime ndị ohu nna ukwu; mgbe ahụ, nna ukwu ochie bilitere, ma ugbu a VIP nọ n'ụgbọ ala abụọ. Nke a dị njọ.
  • Maka onye na-agụ egwú, ị ga-achọ ide edemede maka ịkpọ nna ukwu ochie na nna ukwu ọhụrụ. Na nna ukwu ochie ịkwesịrị ịgba ọsọ ifdown, yana na nna ukwu ọhụrụ - ifup vip. Ọ ga-adị mma ịtinye na edemede a na ọ bụrụ na ọ dara, a na-agbanyụ ọdụ ụgbọ mmiri dị na mgba ọkụ ochie nke nna ukwu ka ọ ghara ịzere ụbụrụ ọ bụla.
  • Mgbe Orchestrator kpọchara edemede gị ka ọ buru ụzọ wepụ VIP na / ma ọ bụ gbanyụọ ọdụ ụgbọ mmiri na mgba ọkụ, wee kpọọ VIP ịzụlite script na nna ukwu ọhụrụ, echefula iji iwu arping gwa onye ọ bụla na VIP ọhụrụ dị ugbu a. Ebe a.
  • Ndị ohu niile kwesịrị ịgụ_only=1, ozugbo i kwalitere ohu ahụ n'aka nna ya ukwu, ọ ga-agụrịrị_only=0.
  • Echefula na ohu ọ bụla anyị họọrọ maka nke a nwere ike ịghọ nna ukwu (Orchestrator nwere usoro mmasị zuru oke maka nke ohu ga-atụle dị ka onye na-akwado onye nwe ọhụrụ na mbụ, nke na nke abụọ, na nke ohu kwesịrị ekwesị. a gaghị ahọpụta ma ọlị n'ọnọdụ ọ bụla nna ukwu). Ọ bụrụ na ohu ahụ aghọọ onye nwe ya, mgbe ahụ ibu ohu ahụ ga-adịgide n'elu ya, a ga-atụkwasịkwa ibu nke nna ya ukwu, a ghaghị iburu nke a n'uche.

Kedu ihe kpatara ị ga-eji chọọ Orchestrator ma ọ bụrụ na i nweghị?

  • Orchestrator nwere interface ihe osise enyi na enyi nke na-egosiputa topology dum (lee nseta ihuenyo n'okpuru).
  • Orchestrator nwere ike soro nke ndị ohu na-ada azụ, na ebe mmegharị na-emekarị mebiri emebi (anyị nwere scripts jikọtara na Orchestrator maka izipu SMS).
  • Onye nhazi na-agwa gị ndị ohu nwere njehie GTID.

Interface Onye Ọchịst:

Onye na-ahụ maka MySQL: gịnị kpatara na ị gaghị arụ ọrụ na-anabata mmejọ na-enweghị ya
Kedu ihe bụ njehie GTID?

Enwere isi ihe abụọ achọrọ maka Orchestrator ịrụ ọrụ:

  • Ọ dị mkpa ka agbanyere pseudo GTID na igwe niile dị na ụyọkọ MySQL; anyị nwere GTID.
  • Ọ dị mkpa na enwere otu ụdị binlogs ebe niile, ị nwere ike iji nkwupụta. Anyị nwere nhazi nke nna ukwu na ọtụtụ ndị ohu nwere Ahịrị, na akụkọ ihe mere eme abụọ nọgidere na ọnọdụ ngwakọta. N'ihi ya, Orchestrator achọghị ijikọta ndị ohu a na nna ukwu ọhụrụ ahụ.

Cheta na ihe kachasị mkpa na ohu mmepụta bụ nkwekọ ya na nna ukwu! Ọ bụrụ na ị nwere Global Transaction ID (GTID) gbanyere ma nna gị ukwu na ohu gị, ị nwere ike iji gtid_subset ọrụ iji chọpụta ma e mechaala otu arịrịọ maka mgbanwe data na igwe ndị a. Ị nwere ike ịgụkwu gbasara nke a ebe a.

Ya mere, Orchestrator na-egosi gị site na njehie GTID na e nwere azụmahịa na ohu na-adịghị na nna ukwu. Gịnị mere nke a ji eme?

  • Read_only=1 adịghị enyere na ohu ahụ, mmadụ jikọọ wee dechaa arịrịọ ịgbanwe data.
  • Super_read_only=1 adịghị enyere aka na ohu ahụ, mgbe ahụ onye nchịkwa, na-agbagwojuru ihe nkesa ahụ, banye wee mee arịrịọ ahụ.
  • Ọ bụrụ na i buru n'uche isi ihe abụọ gara aga, mgbe ahụ enwere otu aghụghọ ọzọ: na MySQL, arịrịọ maka ịgbanye binlogs na-agakwa na binlog, yabụ na mbido mbụ, njehie GTID ga-apụta na nna ukwu na ndị ohu niile. Kedu ka esi zere nke a? Perona-5.7.25-28 webatara binlog_skip_flush_commands=1 ntọala, nke machibidoro idetu mmiri na binlogs. Enwere onye guzobere na weebụsaịtị mysql.com ahụhụ.

Ka m chịkọta ihe niile dị n'elu. Ọ bụrụ na ịchọghị iji Orchestrator na ọnọdụ ọdịda, tinyezie ya na ọnọdụ nlele. Mgbe ahụ, ị ​​​​ga-enwe n'ihu gị maapụ mmekọrịta nke igwe MySQL na ozi anya gbasara ụdị mmegharị dị na igwe ọ bụla, ma ndị ohu na-ada azụ, na nke kachasị mkpa, otú ha si kwekọọ na nna ukwu!

Ajụjụ doro anya bụ: "Olee otu onye na-ahụ maka nhazi ga-esi arụ ọrụ?" Ọ ga-ahọrọ nna ukwu ọhụrụ site na ndị ohu ugbu a, wee jikọta ndị ohu niile na ya (nke a bụ ihe GTID dị mkpa maka ya; ọ bụrụ na ị na-eji usoro ochie na binlog_name na binlog_pos, gbanwee ohu site na nna ukwu ugbu a gaa na nke ọhụrụ). bụ nanị agaghị ekwe omume!). Tupu anyị enwee Orchestrator, enwere m otu oge iji aka mee ihe a niile. Nna-ukwu ochie ahụ nọ n'ụkwụ n'ihi onye na-ahụ maka mgbanaka Adaptec, ọ nwere ihe dị ka ndị ohu iri. Achọrọ m ịnyefe VIP site na nna ukwu na otu n'ime ndị ohu ahụ ma jikọọ ndị ohu ndị ọzọ niile na ya. Kedu consoles ka m ga-emeghe, ole iwu n'otu oge ka m banyere ... M ga-echere ruo elekere atọ nke ụtụtụ, wepụ ibu ahụ n'aka ndị ohu niile ma e wezụga abụọ, mee igwe mbụ n'ime nna ukwu abụọ, ozugbo tinye igwe nke abụọ. na ya, ya mere, tinye ndị ohu ndị ọzọ niile na onye nwe ọhụrụ ma nyeghachi ibu ahụ. N'ozuzu, egwu ...

Kedu ka Orchestrator si arụ ọrụ mgbe ọ na-abanye na ọnọdụ ọdịda? A na-egosipụta nke a n'ụzọ dị mfe site na ihe atụ nke ọnọdụ ebe anyị chọrọ ime ka onye nwe ya bụrụ igwe dị ike karị, nke ọgbara ọhụrụ karịa ka anyị nwere ugbu a.

Onye na-ahụ maka MySQL: gịnị kpatara na ị gaghị arụ ọrụ na-anabata mmejọ na-enweghị ya
Ọnụ ọgụgụ ahụ na-egosi n'etiti usoro ahụ. Gịnị ka emewororị ruo ugbu a? Anyị kwuru na anyị chọrọ ime ohu ka ọ bụrụ nna ukwu ọhụrụ, Orchestrator malitere ijikọ ndị ohu ndị ọzọ niile na ya, nna ukwu ọhụrụ ahụ na-arụkwa ọrụ dị ka igwe na-ebufe ihe. Site na atụmatụ a, ọ dịghị njehie na-eme, ndị ohu niile na-arụ ọrụ, Orchestrator na-ewepụ VIP na nna ochie ochie, na-ebufe ya na nke ọhụrụ, na-eme read_only = 0 ma chefuo nna ukwu ochie. All! Oge nkwụsị nke ọrụ anyị bụ oge nnyefe VIP, nke bụ 2-3 sekọnd.

Nke ahụ bụ maka taa, daalụ onye ọ bụla. A ga-enwe akụkọ nke abụọ gbasara Orchestrator n'oge adịghị anya. N'ihe nkiri Soviet a ma ama bụ "Garage," otu onye na-eme ihe nkiri kwuru, "Agaghị m aga n'ihu na ya!" Yabụ, onye nhazi, a ga m eso gị gaa nyocha!

isi: www.habr.com

Tinye a comment