Categories
Database Backup

** Discover why mysqldump fails large MySQL databases and learn how to implement enterprise-grade physical backups using Percona XtraBackup and CloudSave to drastically reduce your RTO.

Le blianta fada, is é mysqldump an uirlis is fearr le haghaidh cúltacaí bunachar sonraí MySQL. Tá sé i ngach áit, tá sé simplí, agus tagann sé réamhshuiteáilte le gach dáileadh MySQL agus MariaDB. Maidir le bunachair shonraí bheaga go meánmhéide, feidhmíonn sé go hiontach.

Mar sin féin, de réir mar a mhéadaíonn eagraíochtaí agus de réir mar a sháraíonn tacair sonraí tairseacha 100GB, 500GB, nó il-teraibheart, éiríonn brath ar mysqldump ó chleachtas is fearr go leochaileacht ailtireachta chriticiúil. Má tá tú i do DBA nó i d’innealtóir DevOps ag bainistiú bunachair shonraí táirgthe ar mhórscála, is dócha go bhfuil taithí agat ar na teipeanna ciúine, ar dhíghrádú táirgthe, agus ar na hOibiachtúla Ama Aisghabhála (RTO) do-ghlactha a bhaineann le dumpálacha loighciúla.

San alt seo, déanfaimid anailís ar theorainneacha ailtireachta mysqldump, déanfaimid iniúchadh ar an bhfáth go dteipeann air ar scála, agus déanfaimid mionsonrú ar conas straitéisí cúltaca fisiciúla de ghrád fiontair a chur i bhfeidhm chun do shonraí ríthábhachtacha a chosaint.

Teorainneacha Ailtireachta mysqldump

Chun a thuiscint cén fáth go dteipeann ar mysqldump ar scála, ní mór dúinn scrúdú a dhéanamh ar an gcaoi a n-oibríonn sé faoin gcochall. Déanann mysqldump cúltacaí loighciúla. Déanann sé ceistniú ar an inneall bunachar sonraí, léann sé na sonraí, agus aistríonn sé go sraith ráiteas SQL iad (go príomha CREATE TABLE agus INSERT INTO).

Cé go gcruthaíonn sé seo comhad an-iniompartha atá inléite ag an duine, tugann sé isteach bacainní tromchúiseacha i dtimpeallachtaí ard-thréchuir.

1. An Bacainn Snáithe Aonair

De réir dearaidh, is oibríocht aon-snáithe é mysqldump. Próiseálann sé tábla amháin ag an am, as a chéile. Cé go bhfuil na mórán croíthe LAP agus stóráil NVMe in ann gigibheart in aghaidh an tsoicind de thréchur a bhaint amach ag crua-earraí nua-aimseartha, úsáideann mysqldump codán de na hacmhainní seo.

Fiú nuair a úsáidtear na bratacha caighdeánacha do tháblaí InnoDB:

mysqldump -u root -p --single-transaction --routines --triggers --events --quick production_db > backup.sql

Cuireann an bhratach --quick iallach ar mysqldump sraitheanna a aisghabháil ceann ar cheann seachas an tábla iomlán a mhaolánú sa chuimhne, rud a choscann earráidí As Cuimhne (OOM) ar thaobh an chliaint. Mar sin féin, ciallaíonn an nádúr aon-snáithe go bhféadfadh 10 go 15 uair an chloig a bheith ag teastáil chun bunachar sonraí 500GB a dhumpáil, rud a chuireann isteach go mór ar do Chuspóir Pointe Aisghabhála (RPO).

2. Truailliú Linn Maolán InnoDB

Nuair a léann mysqldump gach sraith de gach tábla, cuireann sé iallach ar an inneall MySQL na sonraí sin a luchtú ón diosca isteach sa linn maolán InnoDB. I dtimpeallacht táirgthe, líontar do linn maolán go cúramach le do thacar sonraí oibre “te”.

Scuabfaidh dumpáil loighciúil ollmhór an linn maolán, ag díbirt innéacsanna agus leathanaigh sonraí a mbíonn rochtain orthu go minic chun spás a dhéanamh do shonraí fuara atá á gcúltacáil. Mar thoradh air seo tá borradh tobann, ollmhór i I/O diosca de réir mar a chuirtear iallach ar cheisteanna táirgthe léamh ón diosca, rud a fhágann moill thromchúiseach ar an bhfeidhmchlár.

3. Glasanna Meiteashonraí agus Coimhlintí DDL

Chun comhsheasmhacht a chothabháil, braitheann DBAanna ar an mbratach --single-transaction, a shocraíonn an leibhéal leithlisithe idirbhirt go REPEATABLE READ agus a thosaíonn idirbheart sula ndéantar sonraí a dhumpáil.

Cé go seachnaíonn sé seo glasanna léitheoireachta ar leibhéal an tábla (FLUSH TABLES WITH READ LOCK), ní chosnaíonn sé i gcoinne athruithe ar Theanga Sainmhínithe Sonraí (DDL). Má dhéantar ordú ALTER TABLE, DROP TABLE, nó TRUNCATE TABLE ar thábla agus mysqldump ag rith, tuairteoidh an cúltaca le hearráid table definition has changed, please retry transaction. I dtimpeallachtaí CI/CD le himirce scéime go minic, is cúis le teipeanna leanúnacha cúltaca é seo.

4. An Tromluí RTO: Amanna Athchóirithe

Ní le linn an chúltaca a bhaintear amach teip is tubaistí mysqldump, ach le linn an athchóirithe.

Teastaíonn ón inneall MySQL na milliúin ráiteas INSERT a pharsáil agus a fhorghníomhú chun dumpáil loighciúil a athchóiriú. Do gach sraith a chuirtear isteach, ní mór do MySQL:
* Srianta a sheiceáil (Eochracha Eachtracha, Eochracha Uathúla).
* Innéacsanna tánaisteacha a atógáil ar an eitilt.
* Scríobh chuig an loga redo InnoDB.
* Sruthlú chuig an binlog (má tá sé cumasaithe).

Is féidir go dtógfaidh sé roinnt laethanta bunachar sonraí 1TB a athchóiriú ó dhumpáil loighciúil. Má tá RTO de 4 uair an chloig ag do ghnó, ráthaíonn mysqldump go dteipfidh ort do Chomhaontú Leibhéal Seirbhíse (SLA) a chomhlíonadh.

Roghanna Eile de Ghrád Fiontair: Ag Bogadh go Cúltacaí Fisiciúla

Chun cúltacaí agus athchóirithe tapa a bhaint amach do thacair sonraí móra, ní mór duit cúltacaí loighciúla a thréigean i bhfabhar cúltacaí fisiciúla.

Seachnaíonn cúltacaí fisiciúla inneall forghníomhaithe SQL MySQL go hiomlán. Ina áit sin, cóipeálann siad na comhaid sonraí dénártha bunúsacha (na comhaid .ibd, logaí redo, agus logaí undo) go díreach ón gcóras comhad. Toisc nach bhfuil siad ach ag cóipeáil comhad, is féidir leo oibriú ag an luas léitheoireachta/scríofa seicheamhach uasta de do chrua-earraí stórála agus is féidir iad a chomhthreomharú go mór.

Percona XtraBackup: Caighdeán an Tionscail

Maidir le hinnill InnoDB agus XtraDB, is é Percona XtraBackup an príomhuirlis cúltaca fisiciúil foinse oscailte. Déanann sé cúltacaí te, neamh-bhacacha de bhunachair shonraí MySQL.

Conas a Oibríonn XtraBackup

  1. Sonraí a Chóipeáil: Tosaíonn XtraBackup ag cóipeáil na gcomhad sonraí InnoDB (.ibd).
  2. Rianú Loga: Toisc go bhfuil an bunachar sonraí beo, athróidh sonraí agus na comhaid á gcóipeáil. Gineann XtraBackup snáithe cúlra a dhéanann monatóireacht agus cóipeáil ar an loga redo InnoDB (ib_logfile0, srl.) d’aon idirbhearta a tharlaíonn le linn na fuinneoige cúltaca.
  3. Ullmhú (Aisghabháil Tuairte): Tar éis an chúltaca, tá na comhaid sonraí cóipeáilte i riocht neamhréireach. Cuireann XtraBackup na logaí redo cóipeáilte i bhfeidhm ar na comhaid sonraí (cosúil leis an gcaoi a ndéanann MySQL aisghabháil tuairte ag tosú), rud a fhágann go bhfuil spléachadh comhsheasmhach foirfe den bhunachar sonraí ag an nóiméad cruinn a chríochnaigh an cúltaca.

Straitéis Cúltaca Fisiciúil a Chur i bhFeidhm

Seo siúlóid theicniúil ar straitéis cúltaca fisiciúil a chur i bhfeidhm ag baint úsáide as Percona XtraBackup.

Céim 1: Sruthú an Chúltaca

Is minic a bhíonn fadhbanna acmhainne mar thoradh ar chúltaca ollmhór a scríobh chuig an diosca áitiúil. Éilíonn an cleachtas is fearr an cúltaca a shruthú go díreach chuig formáid cartlainne, é a chomhbhrú, agus é a sheoladh chuig limistéar stáitse nó go díreach chuig ardán cúltaca.

Ag baint úsáide as xbstream, is féidir linn an cúltaca a chomhthreomharú agus é a chomhbhrú ar an eitilt:

xtrabackup --backup 
  --user=backup_user 
  --password=SecurePassword! 
  --parallel=4 
  --stream=xbstream | lz4 > /mnt/backups/mysql_prod_backup.xbstream.lz4
  • --parallel=4: Úsáideann 4 snáithe chun comhaid sonraí a léamh go comhuaineach.
  • --stream=xbstream: Aschuireann an cúltaca i bhformáid sruthaithe saincheaptha Percona.
  • lz4: Soláthraíonn sé comhbhrú an-tapa, íseal-LAP.

Céim 2: An Cúltaca a Ullmhú le haghaidh Athchóirithe

Sula bhféadfar cúltaca fisiciúil a athchóiriú, ní mór é a “ullmhú” (na logaí redo a chur i bhfeidhm). Ar dtús, bain amach agus dí-chomhbhrúigh an sruth:

mkdir -p /data/restore
lz4 -d /mnt/backups/mysql_prod_backup.xbstream.lz4 | xbstream -x -C /data/restore

Ar aghaidh, rith an chéim ullmhúcháin. Éilíonn an chéim seo cuimhne, mar sin cinntigh go bhfuil go leor RAM leithdháilte ag an bhfreastalaí:

xtrabackup --prepare --use-memory=4G --target-dir=/data/restore

Céim 3: An Bunachar Sonraí a Athchóiriú

Chun athchóiriú a dhéanamh, ní mór eolaire sonraí MySQL an sprioc a bheith go hiomlán folamh. Stop an tseirbhís MySQL, glan an t-eolaire, agus cóipeáil na comhaid ar ais:

systemctl stop mysql
rm -rf /var/lib/mysql/*

xtrabackup --copy-back --target-dir=/data/restore

Ar deireadh, socraigh ceadanna an chórais comhad sula dtosaíonn tú ar an tseirbhís:

chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

Toisc go bhfuil na comhaid sonraí tógtha cheana féin agus na hinnéacsanna tiomsaithe cheana féin, tosaíonn an bunachar sonraí láithreach. Athchóiriú a thóg 48 uair an chloig le mysqldump, ní thógann sé anois ach an t-am a thógann sé na comhaid a chóipeáil thar do líonra nó diosca—rud a laghdaíonn RTO go nóiméid go minic.

Athchóirithe Loighciúla a Optamú (Nuair is gá duit iad a úsáid)

Má tá iallach ort dumpáil loighciúil mhór a athchóiriú (m.sh., imirce idir leaganacha móra éagsúla MySQL nó ailtireachtaí LAP éagsúla nach bhfuil comhaid fhisiciúla comhoiriúnach leo), ní mór duit do chumraíocht MySQL a thiúnadh go sealadach chun tréchur scríofa ollmhór a bharrfheabhsú.

Cuir na socruithe seo i bhfeidhm ar do my.cnf sula dtosaíonn tú ar an athchóiriú loighciúil:

[mysqld]
# Díchumasaigh binlogging go sealadach más athchóiriú neamhspleách é seo
disable_log_bin

# Moilligh sruthlú chuig an diosca chun luas scríofa a uasmhéadú
innodb_flush_log_at_trx_commit = 2

# Méadaigh an linn maolán chun an oiread den tacar oibre agus is féidir a fheistiú
innodb_buffer_pool_size = <Socraigh go 70% den RAM iomlán>

# Méadaigh méid an chomhaid loga chun seiceáilphointí ionsaitheacha a chosc
innodb_log_file_size = 2G

# Díchumasaigh maolán doublewrite (riosca do prod, sábháilte do luchtú tosaigh)
innodb_doublewrite = 0

Nóta: Fill na socruithe seo i gcónaí ar a réamhshocruithe comhlíontacha ACID (innodb_flush_log_at_trx_commit = 1, innodb_doublewrite = 1) agus atosaigh an tseirbhís MySQL sula gceadaítear trácht táirgthe.

Cúltacaí a Uathoibriú agus a Dhaingniú le CloudSave

Cé go réitíonn uirlisí cosúil le Percona XtraBackup meicnic na sonraí a bhaint amach go héifeachtach, éilíonn straitéis fíor-aisghabhála tubaiste fiontair ceolfhoireann, stóráil sheachtrach shlán, agus bainistíocht saolré. Má bhraitheann tú ar scripteanna bash saincheaptha agus poist cron chun cúltacaí fisiciúla a bhainistiú, tugtar isteach riosca ard teipeanna ciúine agus sáruithe comhlíonta.

Seo an áit a n-éiríonn comhtháthú do chiseal bunachar sonraí le hardán fiontair cosúil le CloudSave ríthábhachtach.

Déanann CloudSave an bhearna idir fóntais bhunachar sonraí amh agus comhlíonadh fiontair a líonadh. Trí úsáid a bhaint as cumais réamh- agus iar-scriptithe CloudSave, is féidir le foirne DevOps XtraBackup a spreagadh chun spléachadh fisiciúil comhsheasmhach a ghiniúint. Ansin, ionghabhann CloudSave an sruth cúltaca gan uaim, cuireann sé criptiú AES-256 i bhfeidhm, agus déanann sé na sonraí a dhúbláil sula ndéantar iad a mhacasamhlú chuig stóráil scamall do-athraithe.

Cinntíonn an ailtireacht seo go bhfuil:
1. Feidhmíocht Táirgthe á Chothabháil: Ritheann cúltacaí ag luasanna stórála gan an linn maolán InnoDB a thruailliú.
2. Cosaint Ransomware: Cuireann polasaithe stórála do-athraithe laistigh de CloudSave cosc ar ghníomhaithe mailíseacha do chartlanna bunachar sonraí a scriosadh nó a chriptiú.
3. Coinneáil Uathoibrithe: Láimhseáiltear polasaithe coinneála Grandfather-Father-Son (GFS) go huathoibríoch, ag cinntiú comhlíonadh le ceannasacht sonraí agus riachtanais iniúchóireachta.
4. RTO Inthuartha: Toisc go mbainistíonn CloudSave na cartlanna comhad fisiciúil, is féidir athchóiriú bunachar sonraí il-teraibheart chuig institiúid nua a eagrú go tapa, ag bualadh spriocanna RTO dian.

Conclúid

Is geall le ham ar bith é leanúint ar aghaidh ag úsáid mysqldump le haghaidh bunachair shonraí ar mhórscála le ham oibríochta agus sláine sonraí d’eagraíochta. Mar gheall ar an nádúr aon-snáithe, truailliú linn maolán, agus amanna athchóirithe tubaisteacha, níl sé oiriúnach go bunúsach do thimpeallachtaí nua-aimseartha ard-thréchuir.

Trí aistriú go cúltacaí fisiciúla ag baint úsáide as uirlisí cosúil le Percona XtraBackup, agus an saolré, an criptiú, agus an macasamhlú seachtrach a eagrú trí ardán láidir cosúil le CloudSave, athraíonn tú do straitéis cúltaca bunachar sonraí ó dhliteanas leochaileach go sócmhainn athléimneach de ghrád fiontair. Déan measúnú ar do mhéadracht RTO agus RPO inniu—má thógann athchóiriú níos faide ná mar is féidir le do ghnó a bheith as líne, tá sé in am mysqldump a fhágáil taobh thiar de.