Töredezettségmentesítésével és összenyomjuk a InnoDB, odminsky blog

Sajnos InnoDB adatbázis elvén működik a csap, azaz fújni, van ... magyarázva elérhetővé yazykom- táblaterülethez egyaránt bővíteni, és összezsugorodik, de a fizikai adatbázis mérete a változások csak abba az irányba növekszik. Egyszerűen fogalmazva, ha bázis volt a legnagyobb 20gigov, és akkor azt tisztítani megjelent 90% -a tér belsejében a bázis akkor ingyenes lesz 90% (lásd a tér lehet egy csapatot a Server Management Console: mysql> mutasd a táblázatot állapotát;) de azon kívül, és megteszi a lemezen 20 Gig fizikai lemezterület. Tehát én, az egyik a szerverek, hogy sikerült növekedni, míg én Prochukhan az a tény, hogy ő elfelejtette beállítani a tisztító skriptik, 250 koncert, ami természetesen működik, mint egy óra, de a legtöbb akciófigura az idegeimre. Ebben a tekintetben meg kell tenni valamit. De csak egy módja, nevezetesen, hogy előzni bázis sql dump és húzza vissza, már meglévő dropnuv szörnyeteg. Ebben az összefüggésben, ahogy töredezettségmentesítéséről egy asztal helyet, a legjobb barát az mysqldump közüzemi rendszer, egy részét a standard csomag szállítási MySQL szerveren.

*** töredezettségmentesítéséhez InnoDB is használhatja az eljárás kétszeres lepárlással bázis segítségével az ALTER parancs alakítani egyfajta `MyISAM”, majd vissza a InnoDB típusát.
Ez a segédprogram lehetővé teszi, hogy egy pillanat benyomása az adatbázishoz (pillanatnyiságával persze csak szép slovtsa- fél koncert ment 7 perc, 250 tartottak 2,5 óra), amely egy szöveges fájlt egy sor SQL parancsok létrehozni és feltölteni táblázatokat.
Tulajdonképpen Első lépések:

# Mysqldump -uSQL_USER_EXIM -p EXIM_DATABASE> /tmp/exim.sql

-u vagy -user = - felhasználónév
-p -password - jelszó kérése
exim_database - az adatbázis neve
exim.sql - memóriaképfájlt kimeneti

egy időben lehet zagnatv billenő több adatbázist elnevezni őket egyesével, miután a -B opciójának vagy -databases:

# Mysqldump -uSQL_USER_EXIM -p adatbázis1 -B database2 database3> /tmp/database.sql

Azt is vegye ki a lerakó az összes asztal, ha a -A nyilatkozat vagy -teljes-adatbázisok:

# Mysqldump -uSQL_USER_EXIM -p -A> /tmp/database.sql

Ez a művelet némi időt vesz igénybe és lemezterület, attól függően, hogy az SQL adatbázis hangerőt.

Ezt követően megállás MySQL kiszolgálót

*****
A 6.x elérhető úgynevezett on-line biztonsági mentést minden adatbázis típus. Jellegzetes tulajdonsága, hogy nem blokkolja végrehajtását INSERT / UPDATE / DELETE és végre egyszerű parancsokat:
BACKUP DATABASE hogy
RESTORE [FELÜLÍRÁS]
*****

Készítsen biztonsági másolatot az adatbázisról, amely azt várjuk, hogy exportálni a mappát% mysql% / data átírni az adatbázis fájlt, és InnoDB napló és a megfelelő mappát * .frm a leginkább félreeső helyen a csavart.

Ezután távolítsa el az asztalról, és a megfelelő fájlokat, és indítsa el a kiszolgáló:

Server egy kis gondolkodás és visszaállítani egy üres InnoDB adatbázist, majd ráöntjük azt a mi biztonsági mentés. Ezt meg lehet tenni két módon, akár a parancssorból:

# Mysql -uSQL_USER_EXIM -p EXIM_DATABASE

akár a szerver konzolon:

mysql> használja EXIM_DATABASE;
mysql> forrás exim.sql

Akkor nézd meg a teljesítmény és a lemez mérete elfoglalt bázis.
******
Egy pár tipp:

A korlátozott erőforrások, a nagy memória vagy adatbázis, akkor használja a lehetőséget -Gyors vagy -opt, akkor elindul, hogy a közüzemi mysqldump adatbázis dump nélkül előre betöltődik a memóriába.

Az is lehet, meg kell határozni, a kódolás, amely szeretné, hogy egy szeméttelep az adatbázis, használjuk ezt az opciót -default karakteres-set =

Az -f opció lehetővé teszi, hogy továbbra is a biztonsági mentést is, ha egy hiba a az eljárás során.

A praktikus parancsot az automatikus biztonsági mentés kompressziós:
mysqldump -uROOT -pPASSWD DBNAME | gzip -c> `date "+% Y% m -."` .gz

Az is lehetséges, rezervirovatna távoli host:
mysqldump -uROOT -PNUMBER_PORT -hHOST -pPASSWD DBNAME

Kapcsolódó cikkek