Ова страница је машински преведена. Прочитајте енглески оригинал. English

IBSurgeon библиотека

Како имплементирати резервне копије помоћу InterBase XE7 online dump-а

Дмитриј Кузменко, 08-СЕП-2016

InterBase од верзије 2007 подржава онлајн дамп - онлајн копирање датотеке базе података. Уместо gbak -b/-c, ово вам омогућава да добијете спремну за употребу базу података након копирања, и не морате да је „враћате“ из резервне копије (нешто што није база података). Онлајн дамп је веома брз, скоро као копирање датотеке од стране оперативног система.

Користите следећу команду за прављење онлајн дампа базе података

gbak -d [опције] база_података циљ

(Комплетан опис дампа можете пронаћи у документацији, Doc\OpGuide.pdf, или овде)

Као и за датотеку базе података, циљ може имати било које име и екстензију које желите. Резултат команде биће дамп датотека која је еквивалентна оригиналној бази података, али у режиму само за читање.

Време првог покретања ове команде је време скенирања (читања) изворне базе података и време писања циљне датотеке.

Док је циљ у режиму само за читање, повезан је са датотеком базе података. При првом дампу, цела датотека базе података ће бити прочитана и копирана у циљ. При другом и следећим - само измењене странице ће бити уписане у циљ. Ово се назива „инкрементални дамп“.

Важно! InterBase XE7 при свакој поновљеној команди дампа (са истим именима датотека, наравно) чита само измењене странице базе података и уписује их у циљ. Друге верзије пре XE7 читају целу изворну базу података. Дакле, перформансе су различите, и XE7 је много бржи. Ако ниједна страница није измењена у изворној бази података, инкрементални дамп у XE7 ће трајати ~1 секунду, док ће InterBase2007-XE3 потрошити време потребно за читање целе датотеке базе података. Време зависи од величине изворне базе података и брзине складишта. На пример, ако је брзина складишта око 400мб/сек, онда ће база од 100гб бити скенирана за 250 секунди (4 мин 10 сек).

Напомена. InterBase XE7 подржава формате датотека база података XE7 (ODS 16), XE/XE3 (ODS 15) и 2009 (ODS 13). Функција паметног скенирања, поменута горе, радиће само са форматом базе података XE7 (ODS 16).

Ако треба да претворите циљ у режим читања-писања (нормални режим), користите команду

gfix циљ -mode read_write

Али након тога циљ губи везу са базом података, и даље покретање gbak -d база_података циљ више није могуће јер се циљ сматра „другом“ базом података.

Ако желите потпуно да препишете циљ, уместо инкременталног дампа, користите опцију -ov

gbak -d -ov база_података циљ

Дамп дампа

Први дамп дампа ће радити, али каснији инкременти неће. На пример, прво

gbak -d база_података циљ1

овде добијамо циљ1 као потпуно дамповану базу података у режиму само за читање

Затим,

gbak -d циљ1 циљ2

Као што видите, правимо дамп дампа. И да, ова команда ће копирати циљ1 у циљ2. Оба циља ће бити у режиму само за читање. Али ако поновимо ове две команде поново, промене које су отишле из базе података у циљ1 неће бити копиране у циљ2. Дакле, циљ2 остаје у стању након прве, почетне копије. И нема никаквих порука о грешци или упозорења.

Дакле, ако икада желите да направите дамп дампа, требало би да користите само потпуни дамп

gbak -d -ov циљ1 циљ2

Опција -ov је обавезна, да би се осигурало да ће циљ2 бити уписан (и преписан) са извором циљ1.

Шема резервне копије 1

Пример дампова у различитим временским интервалима

gbak -d база_података циљ

Покреће се, на пример, сваких 1 сат. Овде имамо производну изворну базу података и „резервну“ копију циљ, са заостатком од један сат.

Такође, додатно, сваких 24 сата можемо покренути

gbak -d база_података циљ2

Овде имамо производну базу података, циљну копију са заостатком од 1 сат, и циљ2 копију са заостатком од 24 сата.

Можете направити било који број дампова из једне базе података.

Непотребно је рећи да се циљни дампови могу користити као базе података само за читање у било коју сврху - извештавање, аналитика, итд., за задатке који не морају да гледају у стварну базу података.

Предност: Сваки дамп може бити независно заказан.

Недостатак: Заостаци између најновијег и најстаријег дампа.

Шема резервне копије 2

Секвенцијални дамп на различите циљеве. У овом случају, потребно је подесити неки планирач (ОС или прилагођени) да покреће следеће команде једну по једну у одређеном временском интервалу

gbak -d база_података циљ1

gbak -d база_података циљ2

gbak -d база_података циљ3

Ако користите интервал од 1 сат између ових команди, имаћете дампове (резервне копије) овако:

циљ1 у 12:00, циљ2 у 13:00, циљ3 у 14:00. Следеће покретање дампа циљ1 ће бити ажурирано у 15:00, и тако даље. Као резултат, имаћемо копије база података за последња 3 сата.

Предност: имамо дампове за неколико сати који су блиски оригиналној бази података

Недостатак: мало је теже заказати ове команде. Тј. у овом примеру команде дампа треба заказати по тачном времену:

Дамп у циљ1 у 00:00, 03:00, 06:00…

Дамп у циљ2 у 01:00, 04:00, 07:00…

Дамп у циљ3 у 02:00, 05:00, 08:00…

Резиме

Gbak -d се може користити за дамп на локално складиште и за дамп преко мреже - пошто инкрементални дамп шаље у циљ само измењене странице. Дакле, циљ може бити постављен на удаљено мрежно складиште. Али, наравно, мрежа мора имати добар пропусни опсег да би била компатибилна са локалним складиштем. У супротном, упис у циљ ће бити спор.

Онлајн дамп се може користити не само као алат за прављење онлајн резервне копије базе података, већ и као алат за „хоризонтално скалирање“ система, за балансирање оптерећења производних, извештајних и аналитичких апликација.

Иако видите да је онлајн дамп најбржи начин да добијете онлајн копију базе података (уместо gbak -b/-c), пошто дамп ради са страницама, може прескочити нека оштећења на страницама, ако је база података оштећена. Дакле, и даље морате проверавати конзистентност базе података старим добрим gbak -b/-c, али то можете чинити ређе него раније.