Portál AbcLinuxu, 12. května 2025 19:32
Zdravim vsechny pritomne,
potreboval bych radu od nejakeho zkuseneho db odbornika. Co potrebuji:
Na jednom db stroji mam dve db. Potrebuji pri zmene jedne tabulky v jedne db promitnou urcite sloupce do tabulky druhe v jine db. Puvodne jsem predpokladal ze to pujde udelat pomoci triggeru (ten bude hlidat zmeny v tabulce) a ulozene procedury (ktera zajisti kopiji potrebnych sloupcu). Nejsem si vask jist zda je mozne operovat s procedurami nad vice db.
Druha moznost je udelat si nejaky jednoduchy skript treba v pythonu ktery toto bude resit vne db.
Dekuji za rady.
Tohle se resi bud pres databazovy link. Ten umoznuje pristupovat z databaze A k datum db B, ale ne obracene. Dalsi moznost je pouzit v OCI pri vytvareni kontextu nejaky extended atribut, zarigestrovat si par callback funkci a pak se tvoje aplikace stane "koordinatorem distribuovane transakce" a ty callbacky budou potvrzovat trifazovy commit.
Vzhledem k tomu, ze jsi nenapsal o kterou DB se jedna, tak ani ja nenapisu na ktery DB to jde takhle resit.
Ved si to uz napisal, nie?Dalsi moznost je pouzit v OCI ...
Vzhledem k tomu, ze jsi nenapsal o kterou DB se jedna, tak ani ja nenapisu na ktery DB to jde takhle resit.
Ano na dulezitou informaci se zapomnel, omlouvam se, jde o MySQL.
Nemá ta aplikace která primárně zapisuje do tabulky nějakou ORM vrstvu, do které by jste mohl vložit snadno vlastní háček (kus kódu), který by zajistil příslušný update v druhé databázi? Mimochodem máte promyšlený scénář pokud zápis do jedné DB projde a zápis do druhé DB selže? Až si to trošku promyslíte, tak se podívejte na třífázový commit, o němž už někdo psal výše.
Dik za ten odkaz na wikipedii. Snad mu pomuze tohle dev.mysql.com/doc/refman/5.0/en/xa.html
No jde me o migraci, preklopeni uctu v drupalu na ucty pro ftp (ucty jsou v MySQL). Drupal ORM vrstvu urcite ma, ale netusim jake zasahy udelat.
V prve rade musim rict, ze mit jednu app rozdelenou do dvou db je pomerne dost peklo. Proc nepouzivat treba separaci pres schemata, nebo pres nejaky jiny system co nabizi dany databazovy stroj? Worst-case scenario snad i ty prefixy tabulek...
Opet v zavislosti na databazovym stroji je i reseni. Postgres i Oracle umi propojeni krz dblink:
http://www.acs.ilstu.edu/docs/Oracle/server.101/b10759/statements_5005.htm
http://www.postgresql.org/docs/current/static/dblink.html
A proboha, "kopiji"?:))
Stejne jako to "krz"
Ona to ale neni jedna app. Je proste jen drupal, kde maji uzivatele ucty a dal existuje ftp (pure+mysql) a ja jen chci aby uzivatele meli stejna hesla u uziv. jmena. Ale jinak je ftp nezavysle.
Takže Váš problém není "jak udělat proceduru na více DB", ale jak udělat společnou authentizaci pro Drupal a Pure FTP. Takže bych použil tohoto návodu a napsal krátký skript (v Perlu to bude maximálně 30 řádek) pro authentizaci FTP proti MySQL databázi s Drupalem.
Možná si budete muset založit pomocnou tabulku s UID, GID, a HOME, nebo vytvoříte šikovnou funkci, která vám tyto hodnoty vyrobí z user_id a user_name z Drupalu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.