Baza wiedzy
ZSE Nr 2 > Help Desk > Baza wiedzy

Szukanie w pomocy:


SQL - przenoszenie bazy danych, ustawienie binlog, optymalizacja tabeli

Rozwiązanie
Wykonanie kopii jednej bazy danych:
mysqldump -u nazwa_użytkownika -p nazwa_bazy > backup.sql

Wykonanie kopii wszystkich baz danych:
mysqldump -u nazwa_użytkownika -p --all-databases > backup.sql

Przywrócenie bazy danych:
mysql -u nazwa_użytkownika -p nazwa_bazy < backup.sql

Przykład przywrócenia bazy w konsoli (Shell) XAMPP:
mysql -u traccar -p -v traccar_21-02-27 < c:\traccar\2021-02-27\traccar.sql
-u - użytkownik
-p - hasło
-v - wyświetlanie przebiegu przywracania (niekonieczne)

Uwaga: nie zapomnij wcześniej rozpakować traccar.sql.gz do traccar.sql

https://webinsider.pl/mysql-cmd-backup-restore/



Ustawienie czasu wygaśnięcia plików binlog (nie należy usuwać ich ręcznie):
mysql -u root -p
> SET GLOBAL binlog_expire_logs_seconds = 700000; lub
> SET GLOBAL
expire_logs_days = 3;
>
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds'; (sprawdzenie)
> quit;
na stałe ustawić jedną z powyższych stałych w pliku /etc/mysql/mysql.conf.d/mysqld.cnf i zrestartować serwer mysql:
service mysql restart
https://dba.stackexchange.com/questions/41050/is-it-safe-to-delete-mysql-bin-files/41054


Optymalizacja tabeli:

Best option is create new table with same properties

CREATE TABLE <NEW.NAME.TABLE> LIKE <TABLE.CRASHED>;
INSERT INTO <NEW.NAME.TABLE> SELECT * FROM <TABLE.CRASHED>;

Rename NEW.NAME.TABLE and TABLE.CRASH
RENAME TABLE <TABLE.CRASHED> TO <TABLE.CRASHED.BACKUP>;
RENAME TABLE <NEW.NAME.TABLE> TO <TABLE.CRASHED>;

After work well, delete

DROP TABLE <TABLE.CRASHED.BACKUP>;   - działało do 17GB, potem się zawiesiło. Szybsze i łatwiejsze jest opisane niżej ALTER TABLE tbl_name ENGINE=INNODB.

https://stackoverflow.com/questions/30635603/what-does-table-does-not-support-optimize-doing-recreate-analyze-instead-me

Defragmenting a Table:

One symptom of fragmentation is that a table takes more space than it should take.

To speed up index scans, you can periodically perform a null ALTER TABLE operation, which causes MySQL to rebuild the table:

    ALTER TABLE tbl_name ENGINE=INNODB  - działa! Baza danych zmniejszyła się z 32GB do 25 GB. Czas około 30 minut, potrzebne było tymczasowo 25 GB miejsca na dysku.

You can also use ALTER TABLE tbl_name FORCE to perform anull alter operation that rebuilds the table.

 Another way to perform a defragmentation operation is to use mysqldump to dump the table to a text file, drop the table, and reload it from the dump file.

If the insertions into an index are always ascending and records are deleted only from the end, the InnoDB filespace management algorithm guarantees that fragmentation in the index does not occur.

https://dev.mysql.com/doc/refman/5.7/en/innodb-file-defragmenting.html

 


 
Czy ten artykuł był pomocny? tak / nie
Szczegóły artykułu
Identyfikator artykułu: 89
Kategoria: Serwery i sieć
Data dodania: 2021-01-22 17:03:59
Wyświetleń: 416
Ocena (Głosy): Ocena artykułu 3.0/5.0 (2)

 
« Wstecz

 
Powered by Help Desk Software HESK, brought to you by SysAid