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

Replikacija MySQL baze kada je SLAVE na shared hostu

[es] :: MySQL :: Replikacija MySQL baze kada je SLAVE na shared hostu

[ Pregleda: 3023 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
*.dynamic.isp.telekom.rs.

Sajt: www.digitconsulting.rs


+20 Profil

icon Replikacija MySQL baze kada je SLAVE na shared hostu11.08.2011. u 00:08 - pre 154 meseci
Pozdrav,

Proban mi je predlog za što jednostavnije rešenje sinhronizacije dve baze:

MASTER: lokalni mysql server 5.1.51, Win Sever 2008, mogu da mu radim šta 'oću,

treba da sinhronizuje:

SLAVEa: hostovan kod Verata, MySql server 5.1.56, mogu da ga gledam i mrzim, mogu da se kačim klijentima od spolja.

Potreban dnevni nivo ažurnosti (ako ima i nešto što može da bude "near realtime" neće da škodi )

Za sada ide tako što na master serveru jednom dnevno skripta automatski dumpuje bazu i FTPne je
na hosta, a onda tamo malo posle cron potera php skriptu koja pregazi bazu sa svežim dumpom.

Za sada ovo vrši pos'o, ali kako podaci budu rasli postaće nategnuto ... a i nije elegantno ...

Master -> Slave replikacija bi bila super da može, ali Slave-a mogu samo da gledam i mrzim ....
(Možda i može, ja sam potrošio pristojno vreme gledajući ... i nisam našao)

Da site direktno snabdevam sa mastera malo mi je insecure, a i ne isplati mi se da pravim web servis i slične
kerefeke. Pored toga i Internet link u lokalu je preko ADSLa koji je na kilavoj parici tako da je downtime maltene redovan ....

Zna li neko neku alatku koja bi mogla to da završi, može freeware može i $$$, al da nije ...

Možda neki drugi predlog.

Pozdrav,
Bojan.











 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu11.08.2011. u 02:42 - pre 154 meseci
Citat:
vbbojan
SLAVEa: hostovan kod Verata, MySql server 5.1.56, mogu da ga gledam i mrzim, mogu da se kačim klijentima od spolja.


da li je to "tvoj" mysql server ili samo imas bazu na veratovom mysql serveru?
ako je to tvoj server mozes da mu menjas konfiguraciju i tako to onda mozes da ga podesis da bude slave, ako je to veratov mysql server mozes da pevas borbene.


Citat:
vbbojan:
Master -> Slave replikacija bi bila super da može, ali Slave-a mogu samo da gledam i mrzim ....
(Možda i može, ja sam potrošio pristojno vreme gledajući ... i nisam našao)


ti mozes rucno da parsiras binlog na masteru i da onda izvrsavas taj binlog na slave-u
dakle na tvom masteru upalis binlog, kada hoces da taj binlog posaljes na slave mozes da ga "rotiras" cisto da imas uvek "cist fajl".

sa mysqlbinlog mozes da vidis tekstualni binlog izlaz koji onda izvrsis rucno na slave-u.

 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
*.dynamic.isp.telekom.rs.

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu11.08.2011. u 12:39 - pre 154 meseci
Hvala ti na tipu.

Sad ću se bacim na razmatranje tvog predloga, pa ću da zakukam ako mi zapne.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu11.08.2011. u 13:21 - pre 154 meseci
samo kukaj ... prilicno je jednostavno za napraviti i radi lepo .. malo je smor ali radi .
 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
*.dynamic.isp.telekom.rs.

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu14.08.2011. u 00:36 - pre 154 meseci
Koji sam konj.

Potrosio sam citav dan i noć da napravim sve kako treba (error handling, automatizovano, email notifikaicije), a nisam probao osnovno:
Dal' će server sa hostinga da popuši poslat bin-log ... klasično opaljivanje k....m o tarabu.

Ok. Evo suštine cele priče (i nije neka komplikacije ko što reče Bogdan, samo da još proradi):

my.ini
Code:
log-bin=mojamasterbaza-bin
binlog-format=MIXED
binlog-do-db=mojamasterbaza

Odradi se export bin-loga u text i posalje na server:
Code:
mysqlbinlog.exe  mojamasterbaza-bin.00002 mojamasterbaza-bin.00003 mojamasterbaza-bin.00004 > mojabaza-log.txt
mysql.exe --host=hostingserver --user=hostinguser --password=hostingpassword --database=mojaslavebaza --compress < txt-log.txt

i Zveket!
Code:
ERROR 1227 (42000) at line 6: Access denied; you need the SUPER privilege for this operation

txt-log.txt koji se šalje na server je ovakav:
Code:
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#110814  0:19:21 server id 1  end_log_pos 106     Start: binlog v 4, server v 5.1.54-community-log created 110814  0:19:21
BINLOG '
afhGTg8BAAAAZgAAAGoAAAAAAAQANS4xLjU0LWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!*/;
# at 106
#110814  0:19:44 server id 1  end_log_pos 150     Rotate to mojamasterbaza-bin.000003  pos: 4
DELIMITER ;
DELIMITER /*!*/;
# at 4
#110814  0:19:44 server id 1  end_log_pos 106     Start: binlog v 4, server v 5.1.54-community-log created 110814  0:19:44
BINLOG '
gPhGTg8BAAAAZgAAAGoAAAAAAAQANS4xLjU0LWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!*/;
# at 106
#110814  0:22:39 server id 1  end_log_pos 150     Rotate to mojamasterbaza-bin.000004  pos: 4
DELIMITER ;
DELIMITER /*!*/;
# at 4
#110814  0:22:39 server id 1  end_log_pos 106     Start: binlog v 4, server v 5.1.54-community-log created 110814  0:22:39
BINLOG '
L/lGTg8BAAAAZgAAAGoAAAAAAAQANS4xLjU0LWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!*/;
# at 106
#110814  0:25:14 server id 1  end_log_pos 150     Rotate to mojamasterbaza-bin.000005  pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

Njuškao sam i gledao kojekuda al' slaba vajda.
Ima li leka? Ili da počnem sa pevanjem borbenih ...

Ovaj koncept je u osnovi najbolje od svega što mi je padalo na pamet.

Neki drugi pravac ...?

U svakom slučaju skupa škola.


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu14.08.2011. u 02:15 - pre 154 meseci
prva stvar

Citat:
vbbojan:
binlog-do-db=mojamasterbaza


ovo na mysql-u ne radi kako se obicno "misli" da radi.
dakle ako uradis:

Code:

use mojamasterbaza;
delete from nekadrugabaza.nekatabela;


ovo ce BITI LOGOVANO u binlog!!

a opet ako uradis
Code:

use nekadrugabaza;
delete from mojamasterbaza.nekatabela;


ovo NECE BITI LOGOVANO u binlog.

nije previse vezano za tvoj sadasnji problem ali kako se svakonedeljno srecem sa ljudima koji misle da ce ova dva primera raditi "obrnuto" od onoga kako rade, moram da iskoristim priliku da napomenem na to kako to stvarno radi. dakle "do-db" se odnosi na to da je klijent odabrao to kao default bazu, ne na to gde se podaci menjaju!!! (da glupo i nelogicno ali tako je)


Potrosio sam citav dan i noć da napravim sve kako treba (error handling, automatizovano, email notifikaicije), a nisam probao osnovno:
Dal' će server sa hostinga da popuši poslat bin-log ... klasično opaljivanje k....m o tarabu.

Ok. Evo suštine cele priče (i nije neka komplikacije ko što reče Bogdan, samo da još proradi):

Citat:
vbbojan:
Code:

binlog-format=MIXED



bojim se da MIXED neces moci tek tako da posaljes na onaj tamo server posto BINLOG entry (raw data) ne mozes da "izvrsis" kao user. Moraces da prebacis binlog format u STATEMENT.



Citat:
vbbojan:
Neki drugi pravac ...?


isto to sto si radio samo obrisi binlog promeni binlog format u statement i probaj opet. Moguce da ces i u ovom drugom morati malo da prodjes nekim skriptom kroz izlaz ali bi trebalo da je prilicno jednostavno.
 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
*.dynamic.isp.telekom.rs.

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu14.08.2011. u 11:35 - pre 154 meseci
Bogdane HVALA!

O binlog-do-db=mojanekabaza sam čitao i iskreno rečeno, morao sam više
puta da pročitam manual dok nisam skonto šta je.
Je's tupavo ali valjda ima neki logičan razlog zašto je tako. (Mada ga ja ne vidim)

Hteo sam nešto "simple and cheap" a završio sam čeprkajući po logovima ....

No, sad više nema nazad kad je već puno vremena uloženo.
Kad završim postaviću komplet rešenje pa ako nekom zatreba neka bude pri
ruci da se ljudi ne zlopate.

Elem, sad treba trebiti log od "Access denied" zlotvora pa se pitam sledeće:

Ne mogu nigde da nađem neko kratko štivo gde se može videti objašnjenje sadržaja bin-loga.
Dosta toga je jasno samo po sebi ili može lako da se iskopa , ipak imamo ovu BINLOG komadu
koja naravno ne prolazi na "slave", a nalazi se na početku svakog log fajla:
Code:
(Da, MASTER je prebačen u STATEMENT mode!)

DELIMITER /*!*/;
# at 4
#110814 10:08:33 server id 1  end_log_pos 106     Start: binlog v 4, server v 5.1.54-community-log created 110814 10:08:33 at startup
ROLLBACK/*!*/;
BINLOG '
gYJHTg8BAAAAZgAAAGoAAAAAAAQANS4xLjU0LWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACBgkdOEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!*/;

Lako ću ja tu BINLOG komandu da otfikarim i očigledno je da to neće škoditi u ovoj priči, ali mene baksuza strašno žulja što ne znam šta
"gYJHTg8BAAAAZgAAAGoAAAAAAAQANS4xLjU0LWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACBgkdOEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC" znači/radi. :-)

Možda temu da prekrstimo u: "Replikacija MySql baze gde je slave na shared hostingu" ili možda neko smisli i bolji naziv.

Bogrdane, hvala još jednom.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu14.08.2011. u 11:58 - pre 154 meseci
ako se ja dobro secam u statement formatu to na pocetku je samo info o vremenu i imenu log fajla ..

da ne bi generisao svo to smece koje tebi ne treba pozovi mysqlbinlog sa --base64-output=decode-rows i on ti nece izbacivati to vise

--base64-output=decode-rows bi trebao da radi u teoriji cak i sa mixed formatom ali iskreno nisam nikad probao


 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
*.dynamic.isp.telekom.rs.

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu14.08.2011. u 21:53 - pre 154 meseci
Evo sređeno je i radi. Bogdane HVALA na dragocenim hintovima.

Da sublimiramo.

Zadatak je bio da se improvizuje replikacija baze na SLAVE koji se nalazi na shared hostu, jer zbog ograničenja shared hostinga nije
bilo mogućnosti da se napravi prava replikacija.

Bogdan je predložio da se iskoriste binary logovi koje MySql inače pravi za potrebe replikacije i point in time restore.

Binarne logove exportovati u text format pomocu mysqlbinlog alatke.
Prilikom exporta obavezno koristiti --base64-output=decode-rows opciju da ne bi đubrio po logu BINLOG komande koje ne mogu da prođu na SLAVE hostu.
Text logove očistiti od komandi koje se ne mogu izvršiti na shared hostu.
(za sada se samo jednu pojavila: SET @@session.pseudo_thread_id i nije bitna te je mogžemo slobodno skloniti)

Izvršiti logove na SLAVE

Počistiti ili skloniti poslate logove i spremiti se za sledeći ciklus.

Prvo je potrebno konfigurisati MASTER server i restartovati ga:
Code:
my.ini:

log-bin=mojabaza-bin
binlog-format=STATEMENT
binlog-do-db=mojabaza

Na SLAVE poslati MASTER bazu bitno je samo da se odradi FLUSH LOG prilikom dumpa MASTERA kako bi smo imali tačan presek stanja.
Periodično pokretati skriptu koja će žonglirati sa logovima i upucavati ih na SLAVE

Implementacija nije bog zna koliko teška. Ja sam se odlučio za win powershell, jer mi je "dot-baš-hoću" blizak :-)
Odrađena je za Win sistem, mada bi na linuxu išlo i još jendostavnije ....

Preduslovi su:
.NET 2+
MySQL .NET Connector v 6.4.3.0
Powershell 2.0
Win XP SP3 i noviji

Za inicijalno upucavanje baze na SLAVE odnosno hvatanje koraka sa MASTER bazom ide ova skripta:
(može se koristiti za bilo kakvo prebacivanje mysql baze sa servera na server):
Code:

####################################################################################################
##
## Mysql: Windows PowerShell skripta za kopiranje baze sa servera na server
##
####################################################################################################
[string]$masterhost = "host"
[string]$masteruser = "user"
[string]$masterpassword = "password"
[string]$masterdatabase = "database"

[string]$slavehost = "host"
[string]$slaveuser = "user"
[string]$slavepassword = "password"
[string]$slavedatabase = "database"

[string]$dumpfile = "dumpbaze"
[string]$mysqldatapath = "C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data"
set-alias mysqlexe 'C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe'
set-alias mysqldumpexe 'C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe'
[string]$dumptmp = $dumpfile + ".tmp"
[string]$dumpsql = $dumpfile + ".sql"
###################################################################################################################

# Dump baze, obrati pažnju na --flush-logs koji pravi presek stanja u logovima!
# Izvršiti: mysqldump --host=masterhost --user=masteruser --password=masterpassword --result-file=dumpfile.tmp --no-create-db --flush-logs masterdatabase 
Set-Location $mysqldatapath
$arguments = '"--host=' + $masterhost + '" ' + '"--user=' + $masteruser + '" ' + '"--password=' + $masterpassword + '" ' + '"--result-file=' + $dumptmp + '" ' + '"--no-create-db" ' + '"--flush-logs" "' + $masterdatabase + '"'
mysqldumpexe $arguments

# Vidi da li je sve proslo OK?
if(!$?)
{
    Write-Host "Master MySQL server error! "
    Remove-Item $dumptmp
    exit 1
}
else
{
    Write-Host "MASTER dump OK!"
}

# Izbaci iz dumpa sve sto ima DEFINER=.....
# U pitanju je zvrčka sa mysqldumpom, ako imamo view, trigger ili stored proc u bazi, a ne poklapaju se useri na masteru i slave
Get-Content $dumptmp | Where-Object {$_ -notmatch 'DEFINER'} | Out-File -Encoding default $dumpsql

# Pošalji bazu na SLAVE server
# Izvršiti: mysql --host=slavehost --user=slaveuser --password=slavepassword --database=slavedatabase --compress < dumpfile.sql
$arguments = '"--host=' + $slavehost + '" "--user=' + $slaveuser + '" "--password=' + $slavepassword + '" "--database=' + $slavedatabase + '" "--compress"'
$stderr = Get-Content $dumpsql -Encoding Ascii | mysqlexe $arguments 2>&1

# Vidi da li je sve proslo OK?
if ($LASTEXITCODE -eq 1)
{
    $Greska = 'Greska: SLAVE server nije dostupan, nije u funkciji ili nije mogao da izvrši poslatu komandu' + [Environment]::NewLine + [Environment]::NewLine + $stderr
    Write-Host $Greska
    exit 1
}

#Počisti za sobom
Remove-Item $dumptmp
Remove-Item $dumpsql
Write-Host "SLAVE dump import OK!"


Za periodično upucavanje logova u SLAVE bazu ide ova:
Code:

# Ucitaj .NET MySQL Konektor Assembly
Add-Type -AssemblyName ('MySql.Data, Version=6.4.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d')

#Parametri za MASTER server
[string]$masterhost = "host"
[string]$masteruser = "user"
[string]$masterpassword = "password"
[string]$masterdatabase = "database"

#Parametri za SLAVE server
[string]$slavehost = "host"
[string]$slaveuser = "user"
[string]$slavepassword = "password"
[string]$slavedatabase = "slave"

#Pomoćne stvarčice
[string]$mysqldatapath = 'C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data'
set-alias mysqlbinlogexe 'C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlbinlog.exe'
set-alias mysqlexe 'C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe'
[string]$txtlogfile = "txt-log.log"
[string]$txttmpfile = "txt-log.tmp"
[string]$stderr = ""
[string]$greska = ""

#Email infrastruktura
[bool]$SendEmail = $True # (Email Isključ/Uključ - $True / $False)
[string]$EmailFrom = "from"
[string]$EmailTo = "to" 
[string]$SMTPServer = "host"
[string]$SMTPUser = "user"
[string]$SMTPPassword = "password"
[string]$ReplicationFailed = "Replikacija baze nije uspela!"
[string]$ReplicationOk = "Replikacija baze uspešna!"
[int]$SMTPort = 25

function SendEmail

{param ($Subject, $Body)

if ($SendEmail)
    {
        $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPort)
        $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPUser, $SMTPPassword); 
        $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
    }
}

############################################################################################################
## Ovde počinjemo
############################################################################################################
# Okači se na MASTER server, koristi se .NET connector
[string]$connectionstring = "SERVER=" + $masterhost + ";DATABASE=" + $masterdatabase + ";UID=" + $masteruser + ";PWD=" + $masterpassword
$cn = New-Object -TypeName MySql.Data.MySqlClient.MySqlConnection
$cn.ConnectionString = $connectionstring
try
{
$cn.Open()
}
catch
{
Write-Host Write-Host 'Greska: MASTER server nije dostupan ili ne radi'
SendEmail $ReplicationFailed 'MASTER server nije dostupan ili ne radi'
exit 1
}

# Flushuj bin-log - pravimo presek stanja pred slanje
$cm = New-Object -TypeName MySql.Data.MySqlClient.MySqlCommand
$cm.Connection = $cn
$cm.CommandText = "FLUSH LOGS;"
$cm.ExecuteNonQuery() > $null

# Pokupi naziv tekućeg bin-log fajla, on se NE šalje sada
$cm.CommandText = "SHOW MASTER STATUS;"
$dr = $cm.ExecuteReader()
if ($dr.Read())
{
$currentbinlog = $dr.GetString(0)
$dr.Close()

else
{
Write-Host 'Greska: Na MASTER serveru nije podešen bin-log!'
SendEmail $ReplicationFailed 'Na MASTER serveru nije podešen bin-log!'
exit 1
}

# Pokupi nazive svih bin-log fajlova, može da ih bude i nekoliko komada
# Svaki restart servera pravi novi bin-log ... a ima i još načina da se nakote ...
$cm.CommandText = "SHOW BINARY LOGS;"
$dr = $cm.ExecuteReader()
# Od naziva bin-log fajlova napravi kobasicu koja će reći mysqlbinlog utilu koje sve logove da prebaci u tekst format
# Naravno, izuzima se tekući bin-log
[string]$binlogs = ''
while($dr.read())
    {
        $binlog = $dr.GetString(0)
        if (!($binlog -eq $currentbinlog))
        {
            $binlogs += '"' + $dr.GetString(0) + '" '
        }
        
    }
$dr.Close()

# Export bin-logova u tekst format
# Izvršava se nešto slično: mysqlbinlog.exe mojabaza-bin.000020 mojabaza-bin.000021 --base64-output=decode-rows --result-file=mojabaza-txt.tmp 
Set-Location $mysqldatapath
$arguments = $binlogs + '"--base64-output=decode-rows" ' + '"--result-file=' + $txttmpfile + '"'
mysqlbinlogexe $arguments

# Čišćenje loga od komandi koje ne mogu da prođu, za sada se pojavljuje samo ova SET @@sesssion.pseudo_thread_id .... i nije problematična da se otfikari.
Get-Content $txttmpfile | Where-Object {$_ -notmatch 'SET @@session.pseudo_thread_id'} | Out-File -Encoding default $txtlogfile

# Pošalji logove na SLAVE
# Izvršava se: mysql --host=slavehost --user=slaveuser --password=slavepassword --database=slavedatabase --compress < mojabaza-txt.sql
$arguments = '"--host=' + $slavehost + '" "--user=' + $slaveuser + '" "--password=' + $slavepassword + '" "--database=' + $slavedatabase + '" "--compress"'
$stderr = Get-Content $txtlogfile -Encoding Ascii | mysqlexe $arguments 2>&1

if ($LASTEXITCODE -eq 1)
{
    $Greska = 'Greska: SLAVE server nije dostupan, nije u funkciji ili nije mogao da izvrši poslatu komandu' + [Environment]::NewLine + [Environment]::NewLine + $stderr
    Write-Host $Greska
    SendEmail $ReplicationFailed $Greska
    exit 1
}

# Ako je sve proslo kako treba, obriši poslate logove i obavesti da smo OK
$cm.CommandText = "PURGE BINARY LOGS TO '" + $currentbinlog + "'"
$cm.ExecuteNonQuery() > $null
$cn.Close()
# Remove-Item $txtlogfile
# Remove-Item $txttmpfile
Write-Host $ReplicationOk
SendEmail $ReplicationOk $ok 'Replikacija uspešno završena'







[Ovu poruku je menjao vbbojan dana 15.08.2011. u 09:05 GMT+1]

[Ovu poruku je menjao vbbojan dana 15.08.2011. u 09:06 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu15.08.2011. u 08:28 - pre 154 meseci
mogao si da attachnes skripte za poruku :D ... no i ovo je ok, valjda ce jos nekome da koristi :) ... bitno da sljaka :)
 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
*.dynamic.isp.telekom.rs.

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu15.08.2011. u 08:54 - pre 154 meseci
E samo da zamolim nekoga ko može da prekrsti temu u:

"Replikacija MySQL baze kada je SLAVE na shared hostu"

Mislim da je ovaj naziv relevantniji.

Hvala.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu15.08.2011. u 09:01 - pre 154 meseci
Mozes ti da probas da promenis naziv prvog posta, no i ovo originalno ime nije uopste lose ...
 
Odgovor na temu

after
Ajvanho, ING

Član broj: 276962
Poruke: 97
*.dynamic.sbb.rs.



+6 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu17.08.2011. u 21:02 - pre 154 meseci
Code:
Citat:
vbbojan:
binlog-do-db=mojamasterbaza


ovo na mysql-u ne radi kako se obicno "misli" da radi.



Hvala za ovaj info! Nisam ranije obracao na ovo i nisam imao pojma o tome. Par puta mi je mozda bas zbog toga slave server imao drugaciju strukturu nego master.

Znam da nije forum za to, ali da li je neko imao iskustva sa PostgreSQL replikacijom (pgpool-II).

Pozdrav.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu18.08.2011. u 19:56 - pre 154 meseci
Citat:
Hvala za ovaj info! Nisam ranije obracao na ovo i nisam imao pojma o tome. Par puta mi je mozda bas zbog toga slave server imao drugaciju strukturu nego master.

vrlo cest problem zato sto je normalnom korisniku logicnije ponasanje suprotno od onoga sto se stvarno desava.
to je razlog sto se ja trudim da spomenem to gde god imam priliku :D

Citat:
Znam da nije forum za to, ali da li je neko imao iskustva sa PostgreSQL replikacijom (pgpool-II).

mnogo vise iskustva sa pgsql-om imas na http://www.elitesecurity.org/f13-Baze-podataka tamo imas brdo pgsql usera.

ja sam imao prilike da probam to i meni nije radilo stabilno, a od drugara koji rade kao pgsql konsultanti sam cuo da pgsql nema jos uvek kvalitetnu replikaciju. E sad, ceo tim koji je bio kod nas koji je radio pgsql je "oteran" kada je oracle kupio sun tako da sada kada se sretnemo (irc, skype ili uzivo) ne pricamo o poslu vec o privatnim stvarima, tako da nemam pojma sta se zadnjih 10tak meseci desavalo na tom pitanju, mozda je postalo stabilnije.. verzije sa kraja prosle godine nisu bile upotrebljive - no, proveri to opet na http://www.elitesecurity.org/f13-Baze-podataka - imas ljude koji to koriste u produkciji pa mogu da ti kazu koliko je upotrebljivo ili ne
 
Odgovor na temu

after
Ajvanho, ING

Član broj: 276962
Poruke: 97
*.dynamic.sbb.rs.



+6 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu05.09.2011. u 09:17 - pre 153 meseci
Nadam se da cemo i mi ostali ukljucujuci i mene doprinositi uskoro kvalitetu ovog foruma barem delic kao sto ti cinis :)

Puno pozdrava!
 
Odgovor na temu

farmaceut
Apoteka
Banja Luka

Član broj: 182739
Poruke: 55
188.124.208.*



+30 Profil

icon Re: Replikacija MySQL baze kada je SLAVE na shared hostu06.09.2011. u 18:56 - pre 153 meseci
Za sve "near real time primjene" i primjene gdje replikacija iz nekih razlika nije izvodiva, preporucujem SQLyog Job Agent (SJA) for Linux - 9.2 (potrazite na code.google)

U sustini, programcic radi "sinhronizaciju" dvije baze tako sto poredi podatke (md5 sume), te salje samo nove/izmjenjene/obrisane redove.
Sva konfiguracija je kroz xml fajl (primjeri su ukljuceni sa sprogramom), te se jednostavno skriptuje/integrise.

Imamo odlicno iskustvo sa maloprodajnim objektima, gdje sinhronizacija tabela reda 100k - 2M redova.
 
Odgovor na temu

[es] :: MySQL :: Replikacija MySQL baze kada je SLAVE na shared hostu

[ Pregleda: 3023 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

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