在Ubuntu上備份和恢復(fù)mariadb數(shù)據(jù)庫可以通過多種方法實現(xiàn),以下是一些常用的技巧和步驟:
備份技巧
- 使用 mysqldump 備份:
- 備份整個數(shù)據(jù)庫:
- 備份特定數(shù)據(jù)庫:
mysqldump -u [用戶名] -p[密碼] [數(shù)據(jù)庫名] > backup.sql
- 備份特定表:
mysqldump -u [用戶名] -p[密碼] [數(shù)據(jù)庫名] [表名] > backup.sql
- 使用 mysqlpump 備份(適用于大型數(shù)據(jù)庫,提高備份速度):
mysqlpump -u [用戶名] -p[密碼] --all-databases > backup.sql
- 使用圖形界面工具備份(如 MySQL Workbench):
- 自動化備份:
- 使用 cron 作業(yè)設(shè)置定時備份任務(wù)。例如,每天凌晨2點執(zhí)行備份:
0 2 * * * mysqldump -u [用戶名] -p[密碼] --all-databases > /path/to/backup/backup_$(date %F).sql.gz
- 壓縮備份文件(可選):
- 使用 gzip 壓縮備份文件以節(jié)省空間:
gzip backup.sql
恢復(fù)技巧
- 恢復(fù)整個數(shù)據(jù)庫:
mysql -u [用戶名] -p[密碼] < backup.sql
- 恢復(fù)特定表:
- 提取備份文件中的特定表數(shù)據(jù)。
- 使用 sed 和 grep 命令提取表數(shù)據(jù)并保存為新的SQL文件。
- 使用 mysql 命令恢復(fù)特定表:
mysql -u [用戶名] -p[密碼] [數(shù)據(jù)庫名] < extracted_table.sql
- 恢復(fù)單個數(shù)據(jù)庫:
- 停止mariadb服務(wù)。
- 刪除損壞的數(shù)據(jù)庫。
- 使用備份文件恢復(fù)數(shù)據(jù)庫:
mysql -u [用戶名] -p[密碼] [備份文件名].sql
- 使用 innobackupex 進(jìn)行物理備份和恢復(fù)(適用于InnoDB存儲引擎):
- 安裝 innobackupex:
sudo apt-get install percona-xtrabackup-24
- 全量備份:
innobackupex --defaults-file="/etc/mysql/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" /data/mysql/backup/
- 恢復(fù)數(shù)據(jù)庫:
innobackupex --defaults-file="/etc/mysql/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" --copy-back /data/mysql/backup/
- 使用 mariabackup 進(jìn)行備份和恢復(fù)(MariaDB官方提供的工具):
- 安裝 mariabackup:
wget https://downloads.mariadb.org/mariadb/mariadb-10.5.5/source/mariadb-10.5.5.tar.gz tar -zxvf mariadb-10.5.5.tar.gz cd mariadb-10.5.5 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb make -j4 sudo make install
- 備份數(shù)據(jù)庫:
mariabackup --user=root --password=password --backup --target-dir=/data/mysql/backup/
- 恢復(fù)數(shù)據(jù)庫:
mariabackup --copy-back --target-dir=/data/mysql/backup/