炒雞簡單的MySQL備份與恢復

2021-10-25 18:39:50 字數 4235 閱讀 5148

二: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 命令會使資料檔案進行統一,達到資料...