二:mysql的完全備份
三:如何恢復資料庫和表
四:mysql的增量備份
五:如何增量恢復mysql資料庫
在企業中資料的價值至關重要,資料保障了企業業務的正常執行。因此,資料的安全性及資料
的可靠性是運維的重中之重,任何資料的丟失都可能對企業產生嚴重的後果。
程式錯誤
人為原因(大部分原因)
運算錯誤
磁碟故障
災難(如火災、**)和盜竊
物理備份:對資料庫作業系統的物理檔案(如資料檔案、日誌檔案等)的備份
邏輯備份:對資料庫邏輯元件(如:表等資料路物件)的備份
完全備份:每次對資料庫進行完整的備份
差異備份:備份自從上次完全備份之後被修改過的檔案
增量備份:只有在上次完全備份或者增量備份後被修改的檔案才會被備份
完全備份是對整個資料庫的備份、資料庫結構和檔案結構的備份
完全備份儲存的是備份完成時刻的資料庫
完全備份是增量備份的基礎
優點:安全性高、備份與恢復操作簡單方便
缺點:資料存在大量重複、占用大量的備份空間、空間利用率低、備份與恢復時間長
直接打包資料庫資料夾,如/usr/local/mysql/data
如:tar jcvf /opt/mysql-$(data+%f).tar.gz /usr/local/mysql/data
使用專用備份工具mysqldump
mysqldump命令是mysql自帶的備份工具,相當方便對mysql進行備份
通過該命令工具可以將指定的庫、表或者全部的庫匯出為sql指令碼,在需要恢復時可以進行資料恢復
備份單個庫
語法:
mysqldump -u 使用者名稱 -p [密碼]
[選項]
[庫名]
> /備份路徑/備份檔案名
例如:mysqldump -u root -p sjk > /backup/sjk.sql
備份多個庫
語法:
mysqldump -u 使用者名稱 -p [密碼]
[選項] --databases 庫名1 [庫名2]
... > /備份路徑/備份檔案名(多個庫之間用空格隔開)
例如:mysqldump -u root -p --databases mysql test
> /backup/my_tt.sql
對所有的庫完全備份
語法:
mysqldump -u 使用者名稱 -p [密碼]
[選項] --all-databases > /備份路徑/備份檔案名
例如:mysqldump -u root -p --opt --all-databases > /backup/all_data.sql
使用mysqldump備份表的操作
語法
mysqldump -u 使用者名稱 -p [密碼]
[選項] 資料庫名 表名 > /備份路徑/備份檔案名
例如mysqldump -u root -p sjk info > /backup/sjk_info.sql
使用mysqldump備份表的結構
mysqldump -u 使用者名稱 -p [密碼]
[選項] -d 資料庫名 表名 > /備份路徑/備份檔案名
例如mysqldump -u root -p -d sjk info > /backup/sjk_info.sql
source命令
mysql >
source /backup/all-data.sql
'//source命令在mysql庫中使用'
mysql命令
語法:
mysql -u 使用者名稱 -p [密碼]
< 庫備份指令碼的路徑
'//此處用了匯入《符號,而不是匯出》符號'
例如mysql -u root -p < /backup/all-data.sql
恢復表時同樣可以使用source或者mysql命令
source恢復表的操作與恢復庫的操作相同
當備份檔案中只包含表的備份,而不包括建立庫的語句時,必須指定庫名,且目標庫必須存在
語法
mysql -u 使用者名稱 -p [密碼]
< 表備份指令碼的路徑
例如mysql -u root -p mysql < /backup/mysql_info.sql
優點:沒有資料重複、效率高、空間利用率最大化;備份量不大、時間段
缺點:恢復麻煩(需要上次完全備份及完全備份之後所有的增量備份才能恢復,而且要對所有增量備份進行逐個反覆恢復);安全性低
mysql的配置檔案的[mysqld]項中加入log-bin=filepath項(filepath是二進位制檔案的路徑),如log-bin=mysql-bin,然後重啟mysqld服務。
二進位制日誌檔案的預設路徑為/usr/local/mysql/data
[root@localhost ~]
# vim /etc/my.cnf
'//在[mysqld]項中加入配置 log-bin=mysql-bin'
...省略內容
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
log-bin=mysql-bin '//新增此句'
...省略內容
[root@localhost ~]
# systemctl restart mysqld '//重啟服務'
[root@localhost ~]
# ls /usr/local/mysql/data/
...省略內容
mysql-bin.000001 '//發現已經生成了二進位制檔案,設定成功'
...省略內容
語法
mysqladmin -u 使用者名稱 -p [密碼] flush-logs
mysqlbinlog --no-defaults --base64-output=decode-rows -v 日誌檔名稱 /opt/1.txt '//使用64位解碼器按行輸出日誌檔案放到/opt/1.txt中'
cat /opt/1.txt '//檢視日誌檔案的詳細資訊'
語法
mysqlbinlog [--no-defaults] 增量備份檔案 | mysql -u 使用者名稱 -p
基於位置恢復
恢復資料到指定位置
mysqlbinlog --stop-position=
'操作id' 二進位制日誌 |mysql -u 使用者名稱 -p 密碼
從指定的位置開始恢復資料
mysqlbinlog --start-position=
'操作id' 二進位制日誌 |mysql -u 使用者名稱 -p 密碼
基於時間點的恢復
從日誌開頭截止到某個時間點的恢復
mysqlbinlog [--no-defaults] --stop-datetime=
'年-月-日 小時:分鐘:秒' 二進位制日誌 |mysql -u 使用者名稱 -p 密碼
從某個時間點到日誌結尾的恢復
mysqlbinlog [--no-defaults] --start-datetime=
'年-月-日 小時:分鐘:秒' 二進位制日誌 |mysql -u 使用者名稱 -p 密碼
從某個時間點到某個時間點的恢復
mysqlbinlog [--no-defaults] --start-datetime=
'年-月-日 小時:分鐘:秒' --stop-datetime=
'年-月-日 小時:分鐘:秒' 二進位制日誌 |mysql -u 使用者名稱 -p 密碼
炒雞簡單的canvas粒子
要說canvas中最精妙的地方,那應該就是對畫素操作的能力了,可能這也就是為什麼作為點陣圖的canvas一直不會被svg比下去的原因了。俗話說,須彌芥子,是大小之說,也有以小見大之說,顆顆粒子,足以構建巨集大效果。這是一篇炒雞簡單的canvas粒子教程,主要是講如何粒子特效的原理,一點運動中的公式。...
mysql 備份與恢復 MySQL 備份與恢復
1 檢視資料庫的資料儲存在哪個目錄下 shiyanlou mysql uroot e show variables like datadir variable name value datadir var lib mysql 2 備份資料的方法 select into outfile 檔名 或者 s...
mysql 備份與恢復 Mysql 備份與恢復
資料檔案一致性處理 在完全備份的情況下,檔案不是時間點一致的,因為進行快照的時間點不一樣。如果嘗 試在未prepare資料的情況下還原資料庫,雖然操作上支援恢復,但是在啟動的時候仍會 進行資料recovery。執行帶 prepare 選項的 mariabackup 命令會使資料檔案進行統一,達到資料...