Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.181 pregleda

Najnovija ↓

Dali mysql podrzava dblink? 18.11.2008. u 11:17 · pre 218 meseci #1
recimo imamo bazu A i B na serveru 1
imamo bazu C na serveru 2
imamo bazu D na serveru 3

dali postoji dblink kao kod oracla, koji se može podesit tako da se sa ove 4 ili x baza radi kao sa jednom?
Re: Dali mysql podrzava dblink? 20.11.2008. u 08:33 · pre 218 meseci #3
Ko što kaže MySQL help, od 5.0.64 Federated nije uključen po defaultu. Ako imaš noviji MySQL, isključen Federated i ne možeš da ga uključiš (zbog Shared Hostinga recimo), onda ćeš morati posebne konekcije da praviš ka svim bazama.

U PHP bi ja to ovako radio:

$dblink_a = mysql_connect('server','user','password');
mysql_select_db('dbname',$dblink_a);
$dblink_b = mysql_connect('server','user','password',true); // četvrti parametar je potreban zašto su A i B baze na istom serveru
mysql_select_db('dbname',$dblink_b);
$dblink_c = mysql_connect('server','user','password');
mysql_select_db('dbname',$dblink_c);
$dblink_d = mysql_connect('server','user','password');
mysql_select_db('dbname',$dblink_d);

I posle u kodu radim uvek prosleđujem dblink kao drugi parametar query funkcije.
mysql_query('SELECT ... ',$dblink_b);

Ili, ako se koriste klase, svaka baza dobije posebnu klasu i onda radim
$dba->query('SELECT ...');
$dbc->query('SELECT ...');

E sad, ti mislim da radiš sa .NET. Ne znam kako se tamo prave konekcije i da li je potreban specijalan parametar za otvaranje duple konekcije ka istom serveru. Tebi će verovatno biti jednostavnije da enabluješ FEDERATED storage engine.
Potpis
"Common sense is not so common." - Voltaire
Re: Dali mysql podrzava dblink? 20.11.2008. u 11:06 · pre 218 meseci #4
Citat:
Shinhan: Ko što kaže MySQL help, od 5.0.64 Federated nije uključen po defaultu. Ako imaš noviji MySQL, isključen Federated i ne možeš da ga uključiš (zbog Shared Hostinga recimo), onda ćeš morati posebne konekcije da praviš ka svim bazama.

U PHP bi ja to ovako radio:

$dblink_a = mysql_connect('server','user','password');
mysql_select_db('dbname',$dblink_a);
$dblink_b = mysql_connect('server','user','password',true); // četvrti parametar je potreban zašto su A i B baze na istom serveru
mysql_select_db('dbname',$dblink_b);
$dblink_c = mysql_connect('server','user','password');
mysql_select_db('dbname',$dblink_c);
$dblink_d = mysql_connect('server','user','password');
mysql_select_db('dbname',$dblink_d);

I posle u kodu radim uvek prosleđujem dblink kao drugi parametar query funkcije.
mysql_query('SELECT ... ',$dblink_b);

Ili, ako se koriste klase, svaka baza dobije posebnu klasu i onda radim
$dba->query('SELECT ...');
$dbc->query('SELECT ...');

E sad, ti mislim da radiš sa .NET. Ne znam kako se tamo prave konekcije i da li je potreban specijalan parametar za otvaranje duple konekcije ka istom serveru. Tebi će verovatno biti jednostavnije da enabluješ FEDERATED storage engine.


stavi se jedan remote server, na koji se spajaju ostali serveri.
to se kreira na prvom serveru referenca ostalih i spaja se na taj server koji sve vidi kao jednu bazu.
ispravite me ako griješim.
Re: Dali mysql podrzava dblink? 20.11.2008. u 11:11 · pre 218 meseci #5
ako mozes da koristis vise konekcija na razlicite servere, to je uvek bolje resenje nego da koristis federated...

problem je sto sa vise konekcija ne mozes da izvedes (select * from db1.t1, db2.t2) ako su db1 i db2 na razlicitim serverima .... ako ti to treba, onda ces morati da koristis federated
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Dali mysql podrzava dblink? 20.11.2008. u 22:13 · pre 218 meseci #6
Citat:
bogdan.kecman: ako mozes da koristis vise konekcija na razlicite servere, to je uvek bolje resenje nego da koristis federated...

problem je sto sa vise konekcija ne mozes da izvedes (select * from db1.t1, db2.t2) ako su db1 i db2 na razlicitim serverima .... ako ti to treba, onda ces morati da koristis federated


može se koristiti u .net-u, a i u drugim jezicima, koliko hočeš konekcija.
ali u čemu je problem.

pošaljem upit na prvi server, pošaljem drugi upit na drugi server.
i sad u kodu se može sa dvije for petlje to spojiti, ako je u pitanju jedna relacija.
ako treba međusobno nekoliko tablica povezati između dviju baza, onda teško, a i to nije za code jer nakon toga cijela aplikacija se zamrzne i sve zablokira.govorim iz iskustva, gdje sam iz baze selektirao iz dvije obične tablice + iz dva txt file.
u kodu sam spajao 2 x sa dvije for petlje i traje koju sekundu, ali nije ni približno brzo kako bi bilo na serveru.
koliko znam, svi upiti bi morali biti na serveru.
bez obzira dali se radi o insertu, selectu, update-u ili nekakvom računanju.
Re: Dali mysql podrzava dblink? 20.11.2008. u 23:12 · pre 218 meseci #7
kao sto sam vec napisao *ako mozes* da koristis vise konekcija to je bolje ... e sada, ako ne mozes (zato sto ne umes, zato sto pises u programskom jeziku / skriptu koji to ne ume, zasto sto ti to ne radi posao posto oces da uradis select * from db1.t1, db2.t1 where db1.t1.id = db2.t1.id and db2.t1.sickdays > 30; a db1 i db2 su baze na 2 razlicita servera) onda mozes da koristis federated. obrati paznju da federated:
- nije dovoljno testiran (zato je po defaultu ugasen)
- nije preterano brz
- ima neke limite (pogledaj dokumentaciju, svi limiti su dokumentovani, imas link u nekom od prethodnih postova u ovoj temi)

nadam se da je sada jasnije
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Dali mysql podrzava dblink? 21.11.2008. u 07:00 · pre 218 meseci #8
Citat:
bogdan.kecman: 
obrati paznju da federated:
- nije dovoljno testiran (zato je po defaultu ugasen)
- nije preterano brz
- ima neke limite (pogledaj dokumentaciju, svi limiti su dokumentovani, imas link u nekom od prethodnih postova u ovoj temi)

nadam se da je sada jasnije



kad bi trebao biti full gotov i testiran ili s kojom verzijom 7.0,8.0........?

Re: Dali mysql podrzava dblink? 21.11.2008. u 08:39 · pre 218 meseci #9
Ne znam baš dobro replikaciju. El bi bilo moguće postaviti novi server da on bude slave od dva različita mastera? Naravno, samo za različite baze, baš za gornji problem gde ti je potrebno da JOIN-uješ dve različite baze.
Ili druga varijanta, napravi na jednom serveru TEMPORARY MEMORY tabelu u kojoj staviš podatke iz drugog servera, pa onda JOIN-uj.
Potpis
"Common sense is not so common." - Voltaire
Re: Dali mysql podrzava dblink? 21.11.2008. u 09:21 · pre 218 meseci #10
Citat:
Shinhan: Ne znam baš dobro replikaciju. El bi bilo moguće postaviti novi server da on bude slave od dva različita mastera? Naravno, samo za različite baze, baš za gornji problem gde ti je potrebno da JOIN-uješ dve različite baze.
Ili druga varijanta, napravi na jednom serveru TEMPORARY MEMORY tabelu u kojoj staviš podatke iz drugog servera, pa onda JOIN-uj.


1. MySQL ne podrzava takvu replikaciju, dakle, ne mozes slave-u da kazes da ima 2 mastera sa kojih vuce razlicite podatke
2. temp tabelu bi morao da pravi tako sto povuce tabelu svojom aplikacijom sa servera A, i insertira je na server B - vrlo neprakticno
3. federated engine resava sve te probleme
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Dali mysql podrzava dblink? 21.11.2008. u 15:25 · pre 218 meseci #11
markobalkan, to je dobro pitanje (kada ce biti testiran i "stabilan" federated engine) .. generalno, imamo klijente koji to koriste u production-u i ne zale se .. ali mi nismo zadovoljni koliko to dobro radi. da bi ti znao da li ti radi dovoljno dobro, moraces da probas sam...

sto se tice kada .. sto vise ljudi koristi, prijavi probleme na bugs.mysql.com, pre ce biti "bolji" .. ali nije "prioritetna" stvar na listi za "popraviti/dopraviti/poboljsati", cak stavise, prilicno je nisko na prioritetu

najbolje resenje je da probas, imamo klijente koji to teraju i u 5.0 i u 5.1 .. namestis pa probas da li ti radi zadovoljavajuce dobro.
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme