FAQ |
Kalender |
|
![]() |
#1 | |||
|
||||
Medlem
|
Här kommer ett verkligt fall.
Lösningen är så intressant tycker jag själv att jag hoppas att detta inlägg inte tas bort bara därför att jag och mitt webbhotell är inblandat. Siten boatlife.se (BF) ligger på Fastpark (kallar det USA i fortsättningen). Webbarean är drygt 9 GB, mySQLdatabasen är drygt 600 MB. BF:s folk tycker att siten är seg men anser att den för stor för att flytta. Jag erbjuder mig att göra ett test med att flytta hela siten och ge dem möjlighet att prova innan de bestämmer sig för flytta, Siten är är forum som är ganska aktivt och kravet är att forumet ska vara stängt så kort tid som möjligt. På forumet kan man även posta filer oftast bilder, så man måste synkronisera både webbarea och mySQL. Ett nytt konto på svenska Webbotellet (SVE) läggs det upp ett vanligt webhotellkonto inkl mySQLkonto. Små tester görs först så att BF:s administratör ser att det finns ett konto och att man kan surfa dit. Eftersom man inte inte pekat om nåogt i DNSer så löser man det genom att i filen C:\Windows\System32\drivers\etc\hosts på sin egen dator skriva in raden 87.96.215.5 www.boatlife.se Så får man inte glömma att kommentera bort denna rad när man vill komma åt den verkliga boatlife.se i USA. Server SVE konfigurerar man rsync /etc/rsync.conf Kod:
log file=/var/log/rsync.log uid=0 gid=0 [boatlife_webb] path = /home.... ; här anges sökvägen dit www.boatlife.se pekar i SVE (naturligtvis) comment = Sync av BoatLife webb max verbosity = 2 read only = false list = false hosts allow = 64.13.232.48,64.13.232.49 hosts deny = * [boatlife_mySQL] path = /home/mySQLdump ; en sökväg där man kan där mysql-dump-filer ska hamna comment = Sync av BoatLife mySQL max verbosity = 2 read only = false list = false hosts allow = 64.13.232.48,64.13.232.49 hosts deny = * En katalog skapas i USA. Låt kalla den 'rSyncScript' och i denna en katalog med namnet 'dbDumpFiles' i 'rSyncScript' finns en fil 'xThis.txt' med bl a detta innehåll, dvs filer som inte får syncas. I detta fall så innehåller cinfig.php inställningar för mySQL i SVE. Kod:
forum/config.php myadmin/* scriptfil i USA som läggs i katalogen rSyncScript Detta script syncar webbarea och 159 dumpdade mySQLtabeller i USA med motsvarande i Sverige Kod:
#!/bin/sh myDb=<databasens namn i USA> dbUser=<databasanvändare> dbPass=<databaslösenord> dbHost=<databasens hostnamn> dumpDir=dbDumpFiles RSYNC=/usr/bin/rsync #---------------------------------------------------- # här syncar vi mySQLdatabasen #---------------------------------------------------- cd cd rSyncScript Tables=`mysql -e "show tables" -h $dbHost -u $dbUser $myDb --password=$dbPass` SaveIFS=$IFS IFS=$'\n' declare -a Table=($Tables) for (( i=1; i<${#Table[@]}; i++ )); do Tabell=${Table[$i]} echo "dumpar -- $Tabell"; mysqldump -h $dbHost -u $dbUser -c --quote-names --add-drop-table --default-character-set=latin1 --extended-insert=TRUE --complete-insert=TRUE $myDb ${Table[$i]} --password=$dbPass > $dumpDir/${Table[$i]}.SQL done IFS=$SaveIFS # ____ rsync på mySQL _________ mOPT="-aR --delete --timeout=600 --verbose --progress --stats" mDEST="rut.elit.net::boatlife_mySQL" cd cd rSyncScript $RSYNC $mOPT $dumpDir $mDEST echo -e "\n\n\n\n------------------ databasen KLAR ------------------------\n\n" #---------------------------------------------------- # här syncar vi webarean #---------------------------------------------------- wOPT="-aR --delete --timeout=600 --verbose --progress --stats --exclude-from=xThis.txt" wDEST="rut.elit.net::boatlife_webb" cd ../domains/boatlife.se/html #-- flytta in dit apache pekat www.boatlife.se $RSYNC $wOPT * $wDEST så kör man ./synca.sh i USA. scriptet Slut.sh på server i SVE Kod:
#!/bin/sh myDb=<databasnamn> dbUser=<databasuser> dbPass=<databaslösenord> dbHost=<databashost> dumpDir=dbDumpFiles Tables=`ls $dumpDir/* | sed -r "s/[^\/]*\/(.*)\.SQL/\1/"` SaveIFS=$IFS IFS=$'\n' declare -a Table=($Tables) IFS=$SaveIFS for (( i=0; i<${#Table[@]}; i++ )); do Tabell=${Table[$i]} echo "läser ... $Tabell"; mysql -h $dbHost -u $dbUser $myDb --password=$dbPass < $dumpDir/$Tabell.SQL done # sqlkommandona nedan är avkortade. # De ändar vissa sökarvägar som står i databasen och som inte är lika i USA och SVE # 2011-01-29 01:44:08 sql=( "update ibf_conf_setti ..." "update ibf_conf_setti ..." "update ibf_core_sys_c ..." "update ibf_core_sys_c ..." "update ibf_members se ..." ) echo -e "\n\n ------ Ändrar lite sökvägar i mySQLdatabasen ------" for (( i=0; i<${#sql[@]}; i++ )); do test=`mysql -e "${sql[$i]}" -h $dbHost -u $dbUser $myDb --password=$dbPass` echo "$test"; done # ---- härefter följer några kommandon för att ställa rättigheter och chmod på server SVE # alla filer chmod 600 # alla kataloger chmod 700 # ägare på hela webarean sätts till ftpanvändaren #kört och klart 2010-12-10 Man kan köra scripten om coh om igen. Först scriptet ./synca.sh i USA när det är klart så kör man ./Slut.sh i SVE. BF:s folk fick testa genom att konfigurera sin C:\Windows\System32\drivers\etc\hosts med raden 87.96.215.5 www.boatlife.se Slutade med att de bestämde sig för att effektuera flytten. Genomfördes så här: -- 1 -- Byt DNSer på boatlife.se till DNSer som jag hade kontroll över. Ställ in DNSerna exakt som de Fastpark DNSer med undantag att man ställer ner TTLen till 5 min och vänta ca två dygn. -- 2 -- Tekniker från BF ringer mig. Jag ställer ner TTLen ytteligare, nu till 30sek och väntar ca 5 min. -- 3 -- BFtekniker stänger forumet i USA. Nu tickar klockan !!!! -- 4 -- Jag kör ./synca.sh i USA Jag kör ./Slut.sh i Sverige. Jag pekar om boatlife.se i DNSen. -- 5 -- BFtekniker tömmer sin cache och konstatera att han surfar till SVE. BF tekniker öppnar forumet. Forumet var stängt ca 7 min !! . |
|||
![]() |
![]() |
Svara |
|
|