自己搭建服務器步驟「服務器熱備份怎麼做」

目錄

  • MySQL數據的備份和恢復
  • 1. 數據備份的重要性
  • 2. 數據庫備份的分類
  • 3. 常見的備份方法
  • 4. MySQL完全備份
    • (1) 物理冷備份與恢復
    • (2) mysqldump備份與恢復
    • (3) MySQL物理冷備份及恢復
  • 5. mysqldump備份數據庫
    • (1) mysqldump命令對單個庫進行完全備份
    • (2) 單庫備份的示例
    • (3) mysqldump命令對多個庫進行完全備份
    • (4) 對所有庫進行完全備份
    • (5) mysqldump可針對庫內特定的表進行備份
  • 6. 恢複數據庫
    • (1) 使用source恢複數據庫的步驟
    • (2) 使用mysql命令恢複數據
    • (3) 恢復表的操作

1. 數據備份的重要性

  1. 在生產環境中,數據的安全性至關重要
  2. 任何數據的丟失都可能產生嚴重的後果
  3. 造成數據丟失的原因
    程序錯誤人為操作錯誤運算錯誤磁盤故障災難(如火災、地震)和盜竊

2. 數據庫備份的分類

  • 物理備份:對數據庫操作系統的物理文件(如數據文件、日誌文件等)的備份
  • 物理備份方法
  • 冷備份(脫機備份):是在關閉數據庫的時候進行的
  • 熱備份(聯機備份):數據庫處於運行狀態,依賴於數據庫的日誌文件
  • 溫備份:數據庫鎖定表格(不可寫入但可讀)的狀態下進行備份操作
  • 邏輯備份:對數據庫邏輯組件(如:表等數據庫對象)的備份

從數據庫的備份策略角度,備份可分為

  • 完全備份:每次對數據庫進行完整的備份
  • 差異備份:備份自從上次完全備份之後被修改過的文件
  • 增量備份:只有在上次完全備份或者增量備份後被修改的文件才會被備份

3. 常見的備份方法

(1) 物理冷備

  • 備份時數據庫處於關閉狀態,直接打包數據庫文件
  • 備份速度快,恢復時也是最簡單的

(2) 專用備份工具mydump或mysqlhotcopy

  • mysqldump常用的邏輯備份工具
  • mysqlhotcopy僅擁有備份MyISAM和ARCHIVE表

(3) 啟用二進制日誌進行增量備份

  • 進行增量備份,需要刷新二進制日誌

(4) 第三方工具備份

  • 免費的MySQL熱備份軟件Percona XtraBackup

4. MySQL完全備份

  • 是對整個數據庫、數據庫結構和文件結構的備份
  • 保存的是備份完成時刻的數據庫
  • 是差異備份與增量備份的基礎

優點

  • 備份與恢復操作簡單方便

缺點

  • 數據存在大量的重複
  • 佔用大量的備份空間
  • 備份與恢復時間長

(1) 物理冷備份與恢復

  • 關閉MySQL數據庫
  • 使用tar命令直接打包數據庫文件夾
  • 直接替換現有MySQL目錄即可

(2) mysqldump備份與恢復

  • MySQL自帶的備份工具,可方便實現對MySQL的備份
  • 可以將指定的庫、表導出為SQL腳本
  • 使用命令mysql導入備份的數據

(3) MySQL物理冷備份及恢復

物理冷備份

[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# mkdir /backup
[root@localhost ~]# tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/

1234

恢複數據庫


[root@localhost ~]# mkdir bak
[root@localhost ~]# mv /usr/local/mysql/data/ /bak/
[root@localhost ~]# mkdir restore
[root@localhost ~]# tar zxf /backup/mysql_all-2020-01-02.tar.gz -C restore/
[root@localhost ~]# mv restore/usr/local/mysql/data/ /usr/local/mysql/
[root@localhost ~]# systemctl start mysqld

12345678

5. mysqldump備份數據庫

(1) mysqldump命令對單個庫進行完全備份

[root@localhost ~]#mysqldump -u 用戶名 -p [密碼] [選項] [數據庫名]  > /備份路徑/備份文件名
1

(2) 單庫備份的示例


[root@localhost ~]#mysqldump -u root –p auth > /backup/auth.sql
[root@localhost ~]#mysqldump -u root –p mysql > /bakcup/mysql.sql

1234

(3) mysqldump命令對多個庫進行完全備份

[root@localhost ~]#mysqldump -u 用戶名 -p [密碼] [選項]  --databases  庫名 1  [庫名2] …  >  /備份路徑/備份文件名

12

多庫備份的示例


[root@localhost ~]#mysqldump -u root –p  --databases  auth mysql > /backup/databases-auth-mysql.sql

123

(4) 對所有庫進行完全備份


[root@localhost ~]#mysqldump -u 用戶名 -p [密碼] [選項]  --all-databases  >  /備份路徑/備份文件名

123

所有庫備份的示例

[root@localhost ~]#mysqldump -u root -p --opt --all-databases > /backup/all-data.sql

12

(5) mysqldump可針對庫內特定的表進行備份

使用mysqldump備份表的操作

[root@localhost ~]#mysqldump -u 用戶名 -p [密碼] [選項] 數據庫名  表名 > /備份路徑/備份文件名 

12

備份表的示例

[root@localhost ~]#mysqldump -u root -p mysql user > /backup/mysql-user.sql

12

6. 恢複數據庫

  • 使用mysqldump導出的腳本,可使用導入的方法
  • source命令
  • mysql命令

(1) 使用source恢複數據庫的步驟

  • 登錄到MySQL數據庫
  • 執行source 備份sql腳本的路徑
  • source 恢復的示例
MySQL [(none)]> source /backup/all-data.sql

12

(2) 使用mysql命令恢複數據

[root@localhost ~]#mysql -u 用戶名 -p [密碼] < 庫備份腳本的路徑
1

mysql 命令恢復的示例


[root@localhost ~]#mysql -u root -p  < /backup/all-data.sql

123

(3) 恢復表的操作

  • 恢復表時同樣可以使用source或者mysql命令
  • source恢復表的操作與恢復庫的操作相同
  • 當備份文件中只包含表的備份,而不包括創建庫的語句時,必須指定庫名,且目標庫必須存在

[root@localhost ~]#mysql -u 用戶名 -p [密碼] < 表備份腳本的路徑

[root@localhost ~]#mysql -u root -p  mysql < /backup/mysql-user.sql


123456

在生產環境中,可以使用Shell腳本自動實現定時備份

案例


cd /opt
mkdir server 
cd /server
vim mysqld.sh    ##定時備份腳本
#!/bin/bash
filename=data'date +%y%m%d'.sql   # 防止每次備份的數據庫都把前面的一次備份給覆蓋了,所以每次備份的文件都要不一樣的命名
/usr/local/mysql/bin/mysqldump -u root -p123  【備份的數據庫名】 > /opt/server/data.sql

wq  ##保存退出

chmod 777 mysqld.sh   ##給腳本文件設置權限


##設置周期性任務進行每周5下午五點半備份

crontab -e 

30 5 * * 5 /opt/server/mysqld.sh

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253506.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-14 02:28
下一篇 2024-12-14 02:28

相關推薦

發表回復

登錄後才能評論