Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dali mysql podrzava dblink?

[es] :: MySQL :: Dali mysql podrzava dblink?

[ Pregleda: 2218 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.ipc.hr.



+19 Profil

icon Dali mysql podrzava dblink?18.11.2008. u 10:17 - pre 187 meseci
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?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Dali mysql podrzava dblink?19.11.2008. u 08:31 - pre 187 meseci
To se zove "FEDERATED" na MySQL-u


http://dev.mysql.com/doc/refma.../federated-storage-engine.html
http://dev.mysql.com/doc/refma.../federated-storage-engine.html
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
91.150.127.*

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Dali mysql podrzava dblink?20.11.2008. u 07:33 - pre 187 meseci
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.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.ipc.hr.



+19 Profil

icon Re: Dali mysql podrzava dblink?20.11.2008. u 10:06 - pre 187 meseci
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.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Dali mysql podrzava dblink?20.11.2008. u 10:11 - pre 187 meseci
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
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
..137.205-dsl.net.metronet.hr.



+19 Profil

icon Re: Dali mysql podrzava dblink?20.11.2008. u 21:13 - pre 187 meseci
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.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.sme.bredbandsbolaget.se.

Sajt: mysql.rs


+2377 Profil

icon Re: Dali mysql podrzava dblink?20.11.2008. u 22:12 - pre 187 meseci
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
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.ipc.hr.



+19 Profil

icon Re: Dali mysql podrzava dblink?21.11.2008. u 06:00 - pre 187 meseci
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........?

 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
91.150.127.*

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Dali mysql podrzava dblink?21.11.2008. u 07:39 - pre 187 meseci
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.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Dali mysql podrzava dblink?21.11.2008. u 08:21 - pre 187 meseci
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
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Dali mysql podrzava dblink?21.11.2008. u 14:25 - pre 187 meseci
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.
 
Odgovor na temu

[es] :: MySQL :: Dali mysql podrzava dblink?

[ Pregleda: 2218 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.