Mysql數據安全備份

數據安全備份的意義

  1. 在出現意外的時候(硬盤損壞、斷點、黑客攻擊),以便數據的恢復
  2. 導出生產的數據以便研發人員或者測試人員測試學習
  3. 高權限的人員那操做失誤致使數據丟失,以便恢復

備份類型

  • 徹底備份:對整個數據庫的備份
  • 部分備份:對數據進行部分備份(一張或多張表)
    • 增量備份:是以上一次備份爲基礎來備份變動數據
    • 差別備份:是以第一次徹底備份爲基礎來備份變動數據

備份方式

  • 邏輯備份:直接生成sql語句,在恢復數據的時候執行sql語句
  • 物理備份:複製相關庫文件,進行數據備份(my.cnf指向的數據存放目錄)

區別

  1. 邏輯備份效率低,恢復數據效率低,節約空間
  2. 物理備份浪費空間,備份數據效率快

備份場景

  • 熱備份:備份時,不影響數據庫的讀寫操做
  • 溫備份:備份時,能夠讀,不能寫
  • 冷備份:備份時,關閉mysql服務,不能進行任何讀寫操做

Mysqldump備份(跨機器)

單庫語法

備份基礎語法:
mysqldump -u用戶 -hip -p密碼 數據庫名 表名 | 壓縮方式 > 絕對路徑+文件名

跨機器備份

跨機器備份:

備份描述:mac本上安裝了mysql數據庫(172.20.10.2),使用自搭Linux(172.20.10.4)機器上的mysql備份mac本上的nba庫,並使用壓縮文件方式,備份至:/mysql_data_back下
來到linux的mysql安裝目錄(172.20.10.4):
建立目錄:mkdir /mysql_data_back
切換:cd /usr/local/mysql/bin
備份:./mysqldump -uroot -proot -h172.20.10.2 nba | gzip > /mysql_data_back/nba.sql.gz

本機備份

本機備份:

備份描述:linux(自搭),備份本就上的db1庫,並使用壓縮方式,備份至:/mysql_data_back下
備份:./mysqldump -uroot -proot db1 | gzip > /mysql_data_back/db1.sql.gz

備份庫中的某張表

語法:./mysqldump -uroot -proot -h172.20.10.2 nba | gzip > /mysql_data_back/nba.sql.gz

備份描述:在Linux(自搭,172.20.10.4)上,遠程備份mac本(172.20.10.2)nba(庫)的nba_player(表)
在原來的基礎上,nba(庫名) 在追加表名便可
./mysqldump -uroot -proot -h172.20.10.2 nba nba_player | gzip > /mysql_data_back/nba-nba_player.sql.gz

備份多庫

語法:./mysqldump -u用戶 -p密碼 --databases 庫1 庫2 | gzip > 絕對路徑+文件名
備份描述:備份本機的:db一、db2兩個庫
備份:./mysqldump -uroot -proot --databases db1 db2 | gzip > /mysql_data_back/db1-db2.sql.gz

注意

  只備份表結構,數據沒備份!mysql

備份全庫

  描述:若是遠程服務器上數據庫較多的話,能夠使用全庫備份linux

語法:
./mysqldump -uroot -proot -all --databases | gzip > /mysql_data_back/all.sql.gz

Mysql數據的恢復

  備份的數據,不加--databases是沒有建立庫語句的!sql

先備份數據:
./mysqldump -uroot -proot --databases db1 | gzip > /mysql_data_back/db1.sql.gz

刪除庫:
drop database db1;

還原數據:
二、解壓gz文件:gunzip -d db1.sql.gz
一、登陸數據庫:mysql -uroot -proot -h 127.0.0.1 < /mysql_data_back/db1.sql

也能夠指定數據庫後,在恢復數據數據庫

語法:
    mysql -u用戶 -p密碼 -h ip地址 數據庫 < 絕對路徑+文件名
示例:mysql -uroot -proot -h 127.0.0.1 issdb_1 < /mysql_data_back/issdb_1.sql

查看Mysql數據庫源文件

方式一

登陸mysql:mysql -uroot -proot
查看:show variables like 'datadir%';
===========================
mysql> show variables like 'datadir%';
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| datadir       | /usr/local/mysql/data/ |
+---------------+------------------------+
1 row in set (0.01 sec)

方式二

  直接查看my.cnf文件便可安全

 

相關文章
相關標籤/搜索