== Backup === Logical Backup * '''mysqldump''' - Стандардна алатка за logical backups * '''Целосна резервна копија:''' `mysqldump -u root -p airportdb > airportdb_backup.sql` * '''Специфични табели:''' `mysqldump -u root -p airportdb flight flight_log > partial_backup.sql` * '''Компресија:''' `mysqldump -u root -p airportdb | xz > airportdb_backup.sql.xz` * '''JSON:''' `mysqldump -u root -p airportdb | mysql2json > airportdb_backup.json` (Можно и во XML & CSV) * '''Само структура (без податоци):''' `mysqldump -u root -p --no-data airportdb > schema_only.sql` === Physical Backup * '''Целосен physical backup:''' `mysqlbackup --backup-dir=/backup/full_backup backup` * '''XtraBackup (Инсталација треба првин):''' * Чекор 1: `xtrabackup --backup --target-dir=/backups/full_backup` * Чекор 2: `xtrabackup --prepare --target-dir=/backups/full_backup` * Чекор 3: restoration * '''Manual Backup:''' * Чекор 1: Stop MySQL - `net stop MySQL80 | sudo systemctl stop mysql` * Чекор 2: Копирање на MySQL data directory - C:\ProgramData\MySQL\MySQL Server 8.0\Data | /var/lib/mysql/ * Чекор 3: Start MySQL - `net start MySQL80 | sudo systemctl start mysql` == Restoration === Logical Restore * '''Враќање на целата база:''' `mysql -u root -p airportdb < airportdb_backup.sql` * За враќање на специфични табели од целосниот backup треба: * Метод 1: Extract со sed * Метод 2: Extract со grep * Метод 3: Со awk * `mysql -u root -p airportdb < extracted_table.sql` Од целосен SQL backup не може директно да се враќаат само одредени табели – мора прво да се издвојат со sed/grep/awk и да се внесе само тој дел во MySQL. === Physical Restore * '''Stop MySQL:''' `net stop MySQL80 | sudo systemctl stop mysql` * '''Избриши ја старата data directory (или rename):''' C:\ProgramData\MySQL\MySQL Server 8.0\Data | /var/lib/mysql/ * '''Копирање на backup-от назад во data directory''' * '''Start MySQL:''' net start MySQL80 | sudo systemctl stop mysql` == Point-in-Time Recovery (PITR) == Automation