ďťż
 
[pgsql] szybkie podmienienie bazy danych ďťż
 
[pgsql] szybkie podmienienie bazy danych
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[pgsql] szybkie podmienienie bazy danych



ethanak - 14-11-2006 00:11
[pgsql] szybkie podmienienie bazy danych
  Witam.

Mam sytuację taką:

Maszyna pierwsza - wyszukiwarka. Baza danych tylko do odczytu. Pracuje
jak sama nazwa wskazuje jako serwer dla wyszukiwarki.

Maszyna druga - robot. Robot rozpoczyna pracę po południu, indeksuje
strony przez całą noc, rano robi sobie swoje magiczne przeliczenia.
Wyniki pcha do swojej prywatnej bazy jako że w czasie pracy indeksera
wyszukiwarka podłączona do jego bazy potrafi wygenerować bardzo dziwne
rezultaty.

Po wykonaniu niezbędnych czynności powinien wykonać się jakiś skrypt,
który przerzuci bazę z robota do wyszukiwarki. Problem jest taki, że
baza jest dość pokaźna, przerzucenie (pg_restore) trochę trwa, a zależy
mi na tym aby czas gdy wyszukiwarka nie działa był jak najkrótszy.

Wymyśliłem sobie coś takiego:

a) na wyszukiwarce tworzę nową bazę danych o innej nazwie i wrzucam do
niej świeżego dumpa z robota
b) usuwam bazę wyszukiwarki (w tej chwili wyszukiwarka przez chwilę nie
działa, ale jest to chwila)
c) zmieniam nazwę nowej bazy na wyszukiwarce na właściwą.

Teoretycznie powinno działać gdyby nie fakt, że w chwili gdy chcę usunąć
starą bazę mogą być otwarte połączenia i cały misternie uknuty plan
pójdzie w diabły, bo baza się nie usunie.

Pytanie więc - jak to zrobić najprościej i najbezpieczniej?

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
/* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
S. Friedmann/J. Kofta */





herakles - 14-11-2006 00:11

  ethanak wrote:

> Witam.
>
> Mam sytuację taką:
>
> Maszyna pierwsza - wyszukiwarka. Baza danych tylko do odczytu. Pracuje
> jak sama nazwa wskazuje jako serwer dla wyszukiwarki.
>
> Maszyna druga - robot. Robot rozpoczyna pracę po południu, indeksuje
> strony przez całą noc, rano robi sobie swoje magiczne przeliczenia.
> Wyniki pcha do swojej prywatnej bazy jako że w czasie pracy indeksera
> wyszukiwarka podłączona do jego bazy potrafi wygenerować bardzo dziwne
> rezultaty.
>
> Po wykonaniu niezbędnych czynności powinien wykonać się jakiś skrypt,
> który przerzuci bazę z robota do wyszukiwarki. Problem jest taki, że
> baza jest dość pokaźna, przerzucenie (pg_restore) trochę trwa, a zależy
> mi na tym aby czas gdy wyszukiwarka nie działa był jak najkrótszy.
>
> Wymyśliłem sobie coś takiego:
>
> a) na wyszukiwarce tworzę nową bazę danych o innej nazwie i wrzucam do
> niej świeżego dumpa z robota
> b) usuwam bazę wyszukiwarki (w tej chwili wyszukiwarka przez chwilę nie
> działa, ale jest to chwila)
> c) zmieniam nazwę nowej bazy na wyszukiwarce na właściwą.
>
> Teoretycznie powinno działać gdyby nie fakt, że w chwili gdy chcę usunąć
> starą bazę mogą być otwarte połączenia i cały misternie uknuty plan
> pójdzie w diabły, bo baza się nie usunie.
>
> Pytanie więc - jak to zrobić najprościej i najbezpieczniej?
>
> ethanak

Te chasła powinny ci pomóc:
1) Odłączony na chwilę klaster
2) Zmiana definicji viewsa.
3) Przełączenie wyszukiwarki na inne tabele/inną bazę.

Wybór rozwiązania zależy od tego jak bardzo modyfikowana jest baza
wyszukiwarki.




WoWaW - 14-11-2006 00:11

  A moze tak:

a) tworzysz nowa baze - wrzucasz dumpa
b) nie ususuwasz "starej" bazy
c) zmieniasz nazwe ale nie bazy - tylko nazwe bazy, do ktorej sie
laczysz w wyszukiwarce (config). Mozesz to zautomatyzowac - jakas data w
czesci nazwy bazy - albo cos takiego
d) po pewnym czasie, gdy klienci lacza sie juz z nowa baza - - wywalasz
stara

> Wymyśliłem sobie coś takiego:
>
> a) na wyszukiwarce tworzę nową bazę danych o innej nazwie i wrzucam do
> niej świeżego dumpa z robota
> b) usuwam bazę wyszukiwarki (w tej chwili wyszukiwarka przez chwilę nie
> działa, ale jest to chwila)
> c) zmieniam nazwę nowej bazy na wyszukiwarce na właściwą.
>
> Teoretycznie powinno działać gdyby nie fakt, że w chwili gdy chcę usunąć
> starą bazę mogą być otwarte połączenia i cały misternie uknuty plan
> pójdzie w diabły, bo baza się nie usunie.
>
> Pytanie więc - jak to zrobić najprościej i najbezpieczniej?
>
> ethanak




ethanak - 14-11-2006 00:56

  WoWaW wrote:
[...]
> c) zmieniasz nazwe ale nie bazy - tylko nazwe bazy, do ktorej sie
> laczysz w wyszukiwarce (config). Mozesz to zautomatyzowac - jakas data w
> czesci nazwy bazy - albo cos takiego

Myślałem że da się bez operacji na trzeciej maszynie (Apache) - ale ZTCW
chyba nie.

I tak zrobię - bez kombinowania.

Dzięki!

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
/* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
S. Friedmann/J. Kofta */





Mikolaj Rydzewski - 14-11-2006 00:56

  ethanak <sweethanak@buziaczek.pl> wrote:

> Myślałem że da się bez operacji na trzeciej maszynie (Apache) - ale ZTCW
> chyba nie.

Poczytaj jeszcze o http://pgpool.projects.postgresql.org/

--
Mikolaj Rydzewski <miki@ceti.pl> http://ceti.pl/~miki/
PGP KeyID: 8b12ab02
There are three kinds of people: men, women, and unix.




ethanak - 14-11-2006 00:56

  Mikolaj Rydzewski wrote:
[...]
> Poczytaj jeszcze o http://pgpool.projects.postgresql.org/
>
O, mniam! Co prawda nie do tego mojego projektu (bo już napisałem kod do
zmiany konfiga) ale do następnego jest po prostu IDEALNY!

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
/* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
S. Friedmann/J. Kofta */
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [laik]Jak =?ISO-8859-2?Q?stworzy=E6/zaczac_tworzyc__ma=B3=B1?==?ISO-8859-2?Q?__baz=EA_danych_na_potrzeby_www=3F?= [mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?= Ksiazka - "Podstawowy =?ISO-8859-2?Q?wyk=B3ad_z_system=F3w_?==?ISO-8859-2?Q?baz_danych=22?= Zrywanie =?ISO-8859-2?Q?po=B3aczen_z_baza_danych_-_pos?==?ISO-8859-2?Q?tgresql_=3C-=3E_odbc?= =?iso-8859-2?Q?=5BSQL_Server_2000=5D_uprawnienienia_do_u=BFyw ania_widoku_?==?iso-8859-2?Q?opartego_na_tabeli_z_innej_bazy?= Dwie bazy czy dwie tabele? [PHP i MySQL] Wstawianie =?ISO-8859-2?Q?rekord=F3w_do_bazy_?==?ISO-8859-2?Q?a_z=B3e_kodowanie?= [mssql] insert do tabeli na podstawie danych z innej tabeli =?ISO-8859-2?Q?=5Bmysql=5D_synchronizacja_struktury_bazy_?==? ISO-8859-2?Q?lokalnej_ze_zdaln=B1?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • fantazia.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com