Kasutajate juhend andmebaaside varukoopiate tegemiseks

– O, ĂŒkski varjupaik ei suuda meteoriidihitti taluda. Kuid teil, nagu kĂ”igil, on varu, nii et vĂ”ite muretseda.

Stanislav Lem, „IjĂłna TihhĂ” TĂ€htede pĂ€evikud“

Varundamine tÀhendab andmete koopia salvestamist kusagil vÀljaspool nende peamist salvestuskohta.

Kasutajate juhend andmebaaside varukoopiate tegemiseks

Varundamise peamine eesmĂ€rk on andmete taastamine nende kadumise korral. SeetĂ”ttu kuuleme sageli, et kui andmebaasil on koopia, saab sellelt alati andmeid taastada ja varundamine pole vajalik. Tegelikult aitab varundamine lahendada vĂ€hemalt kolme ĂŒlesannet, mida ei saa lahendada koopia abil, ning varukoopiat ilma varunduseta ei saa algatada.

Esiteks vÔimaldab varukoopia taastada andmeid pÀrast loogilist viga. NÀiteks kustutab raamatupidaja seeria kannetest vÔi andmebaasi administraator hÀvitab tabeliruumi. MÔlemad toimingud on andmebaasi seisukohalt tÀiesti legitimne ja replikatsiooniprotsess kordab neid koopiakandjas.

Teiseks, tĂ€napĂ€evased andmebaasisĂŒsteemid on ĂŒsna usaldusvÀÀrsed tarkvarakompleksid, kuid aeg-ajalt juhtub siiski andmebaasi sisemiste struktuuride riknemist, mille jĂ€rel andmetele ligipÀÀs kaob. Mis on eriti kurb, toimub taoline rike tavaliselt siis, kui koormus on suur vĂ”i kui paigaldatakse mĂ”ni uuendus. Kuid nii kĂ”rge koormus kui ka regulaarne uuendamine viitavad sellele, et andmebaas pole just katsetuslik ja selles hoitavad andmed on vÀÀrtuslikud.

LĂ”puks on kolmas ĂŒlesanne, mille lahendamine nĂ”uab varukoopia olemasolu, andmebaasi kloonimine, nĂ€iteks testimiseesmĂ€rkidel.

Andmebaasi varundamine pĂ”hineb ĂŒhel kahest pĂ”himĂ”ttest:

  • Andmete tĂ”stmine ja seejĂ€rel salvestamine vabatahtlikus formaadis;
  • Andmebaasi failide oleku jÀÀdvustamine ja ajakirjade salvestamine.

Vaadakem neid pÔhimÔtteid ja neid rakendavaid tööriistu lÀhemalt.

Andmete vÀljatoomine

Iga andmebaasisĂŒsteemiga kaasnevate tööriistade komplektis on kindlasti tööriistad andmete vĂ€ljatoomiseks ja laadimiseks. Andmed salvestatakse kas tekstivormingus vĂ”i konkreetse andmebaasi erivormingus. Allpool on toodud selliste tööriistade loetelu:

Binaarne vorming
Tekstivorming

Oracle
DataPump Export/DataPump Import
Ekspordi / Importi
SQL*Plus / SQL*Loader

PostgreSQL
pg_dump, pg_dumpall / pg_restore
pg_dump, pg_dumpall / psql

Microsoft SQL Server
bcp
bcp

DB2
vÀljatÔmbamine / laadimine
vÀljatÔmbamine / laadimine

MySQL

mysqldump, mysqlpump / mysql, mysqlimport

MongoDB
mongodump / mongorestore
mongoexport / mongoimport

Cassandra
nodetool snapshot / sstableloader
cqlsh

Tekstilisel formaadil on eelis, et seda saab redigeerida vÔi isegi luua vÀliste programmide kaudu, samas kui binaarne formaat on hea, kuna see vÔimaldab andmete kiiret ekspordi ja impordi protsessi, sÀÀstes ressursse vormingute konverteerimise pealt.

Hoolimata andmete vĂ€ljaviimise lihtsusest ja ilmsusest, kasutatakse seda meetodit harva koormatud tööstuslike andmebaaside рДзДрĐČimiseks. Siin on pĂ”hjused, miks andmete vĂ€ljavĂ”tmine ei sobi tĂ€ieĂ”iguslikuks varundamiseks:

  • vĂ€ljaviimise protsess tekitab mĂ€rkimisvÀÀrset koormust allika sĂŒsteemile;
  • vĂ€ljaviimine vĂ”tab kaua aega – vĂ€ljaviimise lĂ”puks on see juba ebaoluline;
  • kĂ”ikide andmebaasi andmete kooskĂ”laliselt vĂ€ljaviimine kĂ”rge koormuse ajal on peaaegu vĂ”imatu, kuna andmehalduse sĂŒsteem peab salvestama oma seisundi pildi selle vĂ€ljaviimise algusaegadel. Mida rohkem tehinguid on toimunud alates vĂ€ljaviimise algusest, seda suurem on pildi maht (mitteaktuaalsed andmekoopiad PostgreSQL-is, undo-ruum Oracle'is, tempdb Microsoft SQL Serveris jne);
  • vĂ€ljaviimine sĂ€ilitab andmete loogilise struktuuri, kuid ei sĂ€ilita nende fĂŒĂŒsilist struktuuri – tabelite fĂŒĂŒsilise salvestamise parameetrid, indeksid jms.

Sellegipoolest on vÀljaviimisel ka eeliseid:

  • kĂ”rge valikulisus: saab vĂ€ljaviia eraldi tabeleid, eraldi vĂ€lju ja isegi eraldi ridasid;
  • VĂ€ljaviidud andmeid saab laadida teise versiooniga andmebaasi ning kui vĂ€ljaviimine on tehtud tekstiformaadis, siis ka teise andmebaasi.

Seega kasutatakse vĂ€ljaviimist peamiselt selliste ĂŒlesannete tĂ€itmiseks nagu vĂ€ikeste tabelite (nĂ€iteks viidete) varundamine vĂ”i andmete komplektide levitamine rakenduse jĂ€rgmise vĂ€ljaandmisega.

AinuĂŒksi andmebaaside varundamise kĂ”ige levinum meetod on andmebaasi failide kopeerimine.

"KĂŒlm" andmebaasi failide sĂ€ilitamine

Ilmselge idee on andmebaasi peatamine ja kĂ”ikide selle failide kopeerimine. Sellist varukoopiat nimetatakse "kĂŒlmaks". Meetod on ÀÀrmiselt usaldusvÀÀrne ja lihtne, kuid sellel on kaks ilmselget puudust:

  • «KĂŒlmalt» varukoopiast saab taastada vaid andmebaasi selle hetke seisundi, mil see peatati; pĂ€rast andmebaasi taaskĂ€ivitamist tehtud tehingud ei jĂ”ua «kĂŒlma» varukoopia sisse;
  • Kaugelt ei ole igal andmebaasil tehnoloogilist akent, millal andmebaasi peatada saab.

Kui «kĂŒlm» varundamine sobib, siis tuleb meeles pidada, et

  • «KĂŒlm» koopia peab mĂ”nikord sisaldama ka ajalugu. Meetodid, kuidas mÀÀrata, millised ajakirjad peavad «kĂŒlma» koopia sisse minema, on iga DBMS-i jaoks individuaalsed. NĂ€iteks Oracle'is tuleb kopeerida nn online redo, mis on teatud hulk ajakirja faile spetsiaalses kataloogis, isegi siis, kui andmebaas on korrektselt peatatud. PostgreSQL-is tuleb salvestada kĂ”ik ajakirjad alates ajakirjast, mis sisaldab viimast kontrollpunkti, mille teave on juhtfailis.
  • Andmebaasi kataloog vĂ”ib sisaldada piisavalt suuri ajutiste tabeliruumi faile, mida ei ole tingimata vaja varukoopiasse kaasata. Üldiselt kehtib see mĂ€rkuse ka «kuuma» varundamise kohta.

«Kuum» failide salvestamine

Enamik kaasaegsete andmebaaside varukoopiaid tehakse andmebaasi failide kopeerimise teel ilma andmebaasi peatamata. Siin on mitmeid probleeme:

  • Kopeerimise hetkel ei pruugi andmebaasi sisu vastata failide sisule, kuna osa teabest on vahemĂ€lus ja pole veel kettale kirjutatud.
  • Kopeerimise ajal vĂ”ib andmebaasi sisu muutuda. Kui kasutatakse muudetavaid and strukture, muutub failide sisu, ja kui kasutatakse muutumatuid strukture, siis muutub failide komplekt: uued failid ilmuvad, samas kui vanad eemaldatakse.
  • Kuna andmete kirjutamine andmebaasi ja DB failide lugemine ei ole kuidagi sĂŒnkroonitud, vĂ”ib varundusprogramm lugeda vale lehe, millel pool on vana versioon lehelt ja teine pool – uus.

Kuna varukoopia peaks olema jĂ€rjepidev, on igal DBMS-il kĂ€su, mis teatab, et varundusprotsess on alanud. SĂŒntaktiliselt vĂ”ib see kĂ€sk vĂ€lja nĂ€ha erinev:

  • Oracle'is on see eraldi kĂ€sk ALTER DATABASE/TABLESPACE BEGIN BACKUP;
  • PostgreSQL-is – funktsioon pg_start_backup();
  • Microsoft SQL Serveris ja DB2-s toimub varundamise valmistamine automaatselt BACKUP DATABASE kĂ€su kĂ€ivitamise protsessi kĂ€igus;
  • MySQL Enterprise'is, Cassandra's ja MongoDB-s toimub valmistamine automaatselt vĂ€line utiliit – mysqlbackup, OpsCenter ja Ops Manager vastavalt.

Hoolimata sĂŒntaktilistest erinevustest nĂ€eb varundamise ettevalmistamise protsess vĂ€lja samasugune.

Nii nĂ€eb vĂ€lja varundamise ettevalmistamine andmebaasihaldussĂŒsteemides, millel on muudetavad ketastruktuurid, st kĂ”ikides traditsioonilistes kettal pĂ”hinevates relatsioonilistes sĂŒsteemides:

  1. Salvestatakse varundamise algushetk; varukoopia peab sisaldama andmebaasi ĆŸurnaleid alates sellest hetkest.
  2. Teostatakse kontrollpunkt, see tĂ€hendab, et kĂ”ik andmefailide lehtedel toimunud muudatused salvestatakse enne salvestatud hetke kettale. See tagab, et ĆŸurnaalid varundamise algushetke enne taastamist ei ole vajalikud.
  3. LĂŒlitatakse sisse eriline ĆŸurnaliseerimisreĆŸiim: kui andmeleht on esmakordselt pĂ€rast kettale laadimist muudetud, salvestab andmebaas muutuse ĆŸurnali asemel lehe tervikuna. Valmistamisprotsessi kĂ€igus sunnitakse kĂ”ik lehed kettale, mistĂ”ttu esmakordne muutus toimub alati kui kĂ€sk lehe tervikuna kaustas toimetatakse. Kui varundamise kĂ€igus leht uuesti kettale sunnitakse, toob jĂ€rgmine selle muudatus samuti kaasa lehe tĂ€ieliku koopia ilmumise ĆŸurnalis. See tagab, et kui andmefaili kopeerimisel leht muutub vigaseks, muudab ĆŸurnali kasutamine selle taas Ă”igeks.
  4. Ainult andmefaili pĂ€ise muutmine on blokeeritud, st selle osa muutused, mida ĆŸurnaalides ei peegeldata. See tagab, et pĂ€is kopeeritakse Ă”igesti ja seejĂ€rel rakendatakse andmefailile Ă”igesti ĆŸurnaalid.

PĂ€rast kĂ”igi eespool nimetatud protseduuride lĂ”petamist on vĂ”imalik kopeerida andmefailid operaatori sĂŒsteemi vahenditega – cp, rsync ja teistega. VarundusreĆŸiimi sisselĂŒlitamine vĂ€hendab andmebaasi jĂ”udlust: esiteks suureneb logide maht ja teiseks, kui varundusreĆŸiimi ajal peaks tekkima tĂ”rge, muutub taastamine pikemaks, kuna andmefailide pĂ€ised ei uuendata. Mida kiiremini varundamine lĂ”peb, seda parem andmebaasi jaoks, seega on asjakohane kasutada selliseid vahendeid nagu failisĂŒsteemi hetkeseis (snapshot) vĂ”i peegeldise katkemine (BCV) kettamassiivis. MĂ”ned andmebaasisĂŒsteemid (Oracle, PostgreSQL) jĂ€tavad administraatorile vĂ”imaluse ise valitud kopeerimismeetodi kasutamiseks, teised (Microsoft SQL Server) pakuvad liidest oma varundusutiliitide integreerimiseks failisĂŒsteemide vĂ”i andmemassiivide mehhanismidega.

Kuna varundamine on lÔpule viidud, tuleb andmebaas viia tagasi tavapÀrasesse olekusse. Oracle'is tehakse seda kÀsuga ALTER DATABASE/TABLESPACE END BACKUP, PostgreSQL-is funktsiooni pg_stop_backup() kutsumisega ning teistes andmebaasides vastavate kÀskude vÔi vÀliste teenuste sisemiste alprogrammidena.

Nii nÀeb vÀlja ajadiagramm varundamisprotsessi kohta:

Kasutajate juhend andmebaaside varukoopiate tegemiseks

  • Varundamiseks ettevalmistamine (begin backup) vĂ”tab aega, mĂ”nikord mĂ€rkimisvÀÀrselt. Isegi kui kasutatakse peegeldavaid mahte vĂ”i failisĂŒsteeme, mis vĂ”imaldavad hetkeseisude loomist, ei ole varundamisprotsess kohe kĂ€ivituv.
  • Koos andmefailidega on vajalik salvestada logid alates varundamise ettevalmistamise algusest kuni hetkeni, mil andmebaas naaseb normaalsesse olekusse.
  • Selle varukoopia pĂ”hjal on vĂ”imalik taastuda andmebaasi normaalsesse olekusse tagasiviimise hetkel. Varundamine varasemasse hetke ei ole vĂ”imalik.

Andmebaasidega, mis kasutavad muutumatuid andmestruktuure (mÀluseisud, LSM-puud), on olukord lihtsam. Varundamiseks ettevalmistamine koosneb jÀrgmistest sammudest:

  1. MĂ€lu andmed kirjutatakse kettale.
  2. Fikseeritakse failide nimekiri, mis kuuluvad varukoopiasse. Kuni varundamisprotsess ei ole lÔpetatud, on andmebaasil keelatud need failid kustutada, isegi kui need muutuvad ebavajalikuks.

Kopeerimise lÔpumÀngu signaaliga vÔib andmebaas, mille struktuurid on muutumatud, taas kustutada mitte vajalikud failid.

Taastamine ajas

Kopeerimine vĂ”imaldab taastada andmebaasi olek, milles see oli, kui taastus kĂ€sk tagas sisse kodulampi kopeerimise. Siiski vĂ”ib Ă”nnetus, mille jĂ€rel taastamine on vajalik, juhtuda igal ajal. Andmebaasi oleku taastamise ĂŒlesanne mingis punktis ajas on seotud "taastamine ajas" (point-in-time recovery).

Selle vĂ”imaluse tagamiseks on vaja sĂ€ilitada andmebaasi ĆŸurnaalid alates kopeerimise lĂ”pust ja taastamise kĂ€igus jĂ€tkata ĆŸurnalide rakendamist taastatud kopeerimisse. PĂ€rast seda, kui andmebaas on taastatud kopeerimisest kopeerimise hetkel, on andmebaasi (failide ja vahemĂ€lulehtede) olek tagatud ning seetĂ”ttu ei ole erilist ĆŸurnaliseerimist vaja. Rakendades ĆŸurnaleid kuni soovitud hetkeni, on vĂ”imalik saada andmebaasi olek igas ajas.

Kui kopeerimise taastamise kiirus on piiratud ainult ketta lĂ€bilaskevĂ”imega, siis ĆŸurnalide rakendamise kiirus on tavaliselt piiratud protsessori jĂ”udlusega. Kui peamises andmebaasis toimuvad muudatused paralleelselt, siis taastamise kĂ€igus viiakse kĂ”ik muudatused ellu jĂ€rjestikku - vastavalt ĆŸurnalist lugemisele. Seega on taastamise aeg lineaarne, sĂ”ltudes sellest, kui kaugel taastamispunkt on kopeerimise lĂ”pp-punktist. SeetĂ”ttu tuleb sageli teha tĂ€ielikke kopeerimisi – vĂ€hemalt kord nĂ€dalas vĂ€henenud tehingukoormusega andmebaaside jaoks ja kuni iga pĂ€ev kĂ”rge koormusega andmebaaside jaoks.

Inkrementaalne kopeerimine

Kuna soovitatakse kiirendada ajas taastamist, soovitakse, et oleks vĂ”imalik kopeerimist teha nii sageli kui vĂ”imalik, kuid samas mitte kasutada liigselt ketta ruumi ega ĂŒle koormata andmebaasi kopeerimise ĂŒlesannetega.

Probleemi lahendus on inkrementaalne kopeerimine, see tÀhendab ainult nende andmelehtede kopeerimine, mis on muutunud alates eelmisest kopeerimisest.
Inkrementaalne varukoopia on mÔttekas ainult muudetud andmestruktuure kasutavate andmebaaside jaoks.

Inkrementi saab arvestada kas tÀisvarukoopia (kumulatiivne koopia) vÔi mÔne varasema koopia (diferentsiaalne koopia) alusel.

Kasutajate juhend andmebaaside varukoopiate tegemiseks

Kahjuks ei ole ĂŒhtset terminoloogiat ning erinevad tootjad kasutavad erinevaid termineid:

Diferentsiaalne
Kumulatiivne

Oracle
Diferentsiaalne
Kumulatiivne

PostgresPro
Incrementaalne
—

Microsoft SQL Server
—
Diferentsiaalne

IBM DB2
Delta
Incrementaalne

Kui olemas on inkrementaalsed koopiad, nÀeb taastamisprotsess punktist vÀlja jÀrgnev:

  • taastatakse viimane tĂ€isvarukoopia, mis tehti enne taastamise hetke;
  • tĂ€iskoopiale taastatakse inkrementaalsed koopiad;
  • rakendatakse logisid varukoopia alguspunktist taastamispunktini.

Kumulatiivne koopia kiirendab taastamisprotsessi. NĂ€iteks, et taastada andmebaasi seisund punktis T3 ja T4 vahel, tuleb taastada kaks inkrementaalset koopiat, kuid T4 jĂ€rel taastamiseks piisab ainult ĂŒhest.
On ilmne, et ĂŒhe kumulatiivse koopia maht on vĂ€iksem kui mitme diferentsiaalse koopia maht, kuna mĂ”ned lehed on muutunud mitu korda ja iga inkrementaalne koopia sisaldab oma lehe versiooni.

Inkrementaalse koopia tegemiseks on kolm vÔimalust:

  1. tÀiskoopiate loomine ja erinevuste arvutamine eelmise tÀiskoopiaga;
  2. logide analĂŒĂŒs, muudetud lehtede loendi koostamine ja loendis sisalduvate lehtede varundamine;
  3. muudetud lehtede pÀrimine andmebaasist.

Esimene meetod sÀÀstab ketta ruumi, kuid ei lahenda andmebaasi koormuse vĂ€hendamise probleemi. Veelgi enam, kui meil on tĂ€isvarukoopia, siis ei ole mĂ”ttekas seda inkrementaalseks muuta, kuna tĂ€iskoopiate taastamine on kiirem kui eelmise tĂ€iskoopia ja inkrementa taastamine. Ketta ruumi kĂŒsimuse lahendamise tuleks jĂ€tta spetsiaalsetele komponentidele, millel on sisseehitatud deduplikatsiooni mehhanismid. Need vĂ”ivad olla nii spetsiaalsed andmemagamise seadmed (EMC DataDomain, HPE StorageWorks VLS, kogu NetApp'i tootesari) kui ka tarkvaratooted (ZFS, Veritas NetBackup PureFile, Windows Server Data Deduplication).

Teised ja kolmandad meetodid erinevad muudetud lehtede loendi mÀÀramise mehhanismi poolest. Logide analĂŒĂŒs on ressursinĂ”udlikum ning selle rakendamiseks tuleb teada logifailide struktuuri. KĂŒsida andmebaasilt, millised tĂ€pselt lehed on muutunud, on kĂ”ige lihtsam, kuid selleks peab andmebaasi juhtfunktsioon olema muudetud blokkide jĂ€lgimise funktsionaalsus (block change tracking).

Esmakordselt loodi inkrementaalse varundamise funktsionaalsus Oracle Recovery Manager (RMAN) tarkvaras, mis ilmus Oracle 8i versioonis. Oracle rakendas kohe muudetud blokkide jĂ€lgimist, seega pole logide analĂŒĂŒsi vajadust.

PostgreSQL ei jĂ€lgi muudetud bloke, mistĂ”ttu Venemaa ettevĂ”tte Postgres Professional vĂ€lja töötatud tööriist pg_probackup mÀÀrab muudetud lehed logi analĂŒĂŒsi teel. Siiski on ettevĂ”te vĂ€lja andnud ka andmebaasi PostgresPro, mis sisaldab laiendust ptrack, mis jĂ€lgib lehtede muutusi. Kui kasutada pg_probackup'i koos PostgresPro andmebaasiga, kĂŒsib tööriist muudetud lehti andmebaasilt - samuti nagu RMAN.

Microsoft SQL Server jÀlgib muudetud lehti sama nagu Oracle, kuid BACKUP kÀsk vÔimaldab teha ainult tÀis- ja kumulatiivseid varukoopiaid.

DB2-l on vĂ”imalus jĂ€lgida muudetud lehti, kuid see on vaikimisi vĂ€lja lĂŒlitatud. PĂ€rast lubamist vĂ”imaldab DB2 teha tĂ€is-, diferentseeritud ja kumulatiivseid varukoopiaid.

Oluline erinevus selles jaotises kirjeldatud tööriistade (vĂ€lja arvatud pg_probackup) ja failipĂ”histe varundustööriistade vahel on see, et nad kĂŒsivad andmebaasilt lehtede pilte, mitte ei loe andmeid ise kĂ”vakettalt. Selle lĂ€henemise puuduseks on vĂ€ike lisakoormus andmebaasile. Kuid see puudus kompenseeritakse tĂ€ielikult, kuna loetud leht on alati korrektne, mis tĂ€hendab, et varundamise ajal ei ole vaja erilise logimistari aktiveerimist.

Veel kord mĂ€rkige, et inkrementaalsete koopiate olemasolu ei tĂŒhista nĂ”udeid logide olemasolu suhtes, et taastada andmeid suvalisse ajahetke. SeetĂ”ttu salvestatakse tööstuslikes andmebaasides logid pidevalt vĂ€lisele kandjale ning tĂ€is- ja/vĂ”i inkrementaalsed varukoopiad luuakse ajakava jĂ€rgi.

TĂ€napĂ€eva parim rakendus inkrementaalse varundamise ideele on riist- ja tarkvarakompleks (Oracle'i terminoloogias - engineered system) Zero Data Loss Recovery Appliance - Oracle'i spetsialiseeritud lahendus oma andmebaaside varundamiseks. Kompleks on klaster serverid suure ketta mahuga, millele on installitud muudetud Recovery Manager tarkvara versioon ja mis suudab töötada nii teiste Oracle'i riist- ja tarkvarakompleksidega (Database Appliance, Exadata, SPARC Supercluster) kui ka Oracle'i andmebaasidega traditsioonilisel infrastruktuuril. Erinevalt 'tavalisest' RMAN-ist rakendab ZDLRA 'igavese inkrementi' (incremental forever) kontseptsiooni. SĂŒsteem loob ĂŒhe korra tĂ€iskope andmebaasist ning seejĂ€rel teeb ainult inkrementaalsed koopiad. Lisa RMAN moodulid vĂ”imaldavad koopiaid kombineerida, luues uusi tĂ€iskoopiaid inkrementaalsetest.

Eesti arendajate auks tuleb mĂ€rkida, et ka pg_probackup oskab inkrementaalseid koopiaid ĂŒhendada.

Kasutajate juhend andmebaaside varukoopiate tegemiseks

Erinevalt paljusid sarnaseid kĂŒsimusi, kĂŒsimusel 'milline varundamismeetod on parem' on selge vastus - parim on kasutatavale andmebaasisĂŒsteemile omane utiliit, mis vĂ”imaldab inkrementaalset varundamist.

Andmebaasi administraatori jaoks on palju olulisemad kĂŒsimused varundamisstrateegia valik ja andmebaaside varundamisvahendite integreerimine ettevĂ”tte infrastruktuuri. Kuid need kĂŒsimused jÀÀvad vĂ€ljapoole selle artikli ulatust.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster