Python服務器運維筆記:第一章數據庫精講 - 1.1.11 數據庫管理

前言:本文是學習網易微專業的《python全棧工程師》 中的《服務器運維開發工程師》專題的課程筆記,歡迎學習交流。同時感謝老師們的精彩傳授!

一、課程目標

  • 服務器帳號管理
  • mysql日誌配置
  • 數據庫備份與恢復

二、詳情解讀

2.1.服務器帳號管理
2.1.1.用戶授權(DCL)

對已存在用戶授權:

mysql>>>grant privileges_type on dbname.tablename to username@host

創建新用戶並授權:

mysql>>>grant privileges_type on dbname.tablename to username@host identified by 'password'

privileges_type說明:

參數 說明
all privileges 所有權限
select 讀取權限
delete 刪除權限
update 更新權限
create 創建權限
drop 刪除數據庫、數據表權限
2.1.2.用戶管理

例子1:爲已存在的用戶創建可以操作mycms的所有權限

mysql>>>grant all privileges on mycms.* to lxp@localhost

例子2:創建新用戶wxp,只能本地localhost訪問,擁有對mycmsusers表查詢操作:

mysql>>>grant select on mycms.users to wxp@localhost identified by '123456'
2.2.日誌配置
2.2.1.日誌類型與配置

日誌類型:
1、錯誤日誌 - 記錄數據庫啓動與停止,以及運行過程中發生的錯誤。
2、二進制日誌 - 記錄了所有 ddldml的語句,不包括select語句,即數據發生變化的過程。
3、通用日誌 - 記錄了客戶端的所有語句,一般情況下不開啓。
4、慢查詢日誌 - 記錄了數據庫查詢超過一定時間的語句。

日誌配置:

# my.cnf
# 開啓通用日誌
general_log = 1
# 通用日誌地址
general_log_file = /usr/local/mysql/logs/general.log
# 開啓慢查詢日誌
slow_query_log = 1
# 慢查詢日誌地址
slow_query_log_file = /usr/local/mysql/logs/slow.log
# 慢查詢閥值
long_query_time = 5
log_output = FILE
# 二進制,二進制日誌是備份裏非常重要的日誌,需要配置好,防止數據庫崩潰,無法恢復數據。
--log-bin = "server_1_bin"
server_id = 1
2.3.數據庫備份

數據庫備份是日常運維的一部分,很多數據需要定期的備份,比如一天一備份,或者一週一備份,完全看數據庫更改的頻度。如果希望數據庫備份越接近越好,則需要頻繁地備份;如果數據庫沒有什麼訪問量,則可以一週備份一次。

通常是使用一個定時任務來完成備份。一般在做數據庫遷移或者升級時,都需要提前進行數據庫備份。防止數據庫遷移或升級失敗時無法恢復數據。

數據庫備份使用mysqldump命令:
1、備份database庫的tablename

shell>>> mysqldump -u account -p database tablename1 tablename2 > mycms.sql

示例:
1、備份mycms庫的users

shell>>> mysqldump -u root -p mycms users > mycms.sql

2、備份database庫中所有表

shell>>>mysqldump -u -root -p mycms > mycms.sql

說明:
1)、shell表示:上面所有的命令都是shell終端中執行的,而不是mysql客戶端中執行的。
2)、最後的>表示:將數據備份到當前目錄下的mycms.sql文件中,也可以備份到指定目錄下的文件中。

備份多個數據庫:
1、備份database庫的tablename

shell>>>mysqldump -u account -p --databases database1 dtabase2 > datafile.sql

示例:
1、備份mycms,test數據庫

shell>>>mysqldump -u root -p --databases mycms test > my.sql

2、備份database庫中所有庫

shell>>>mysqldump -u root -p --all-databases > mycms.sql
2.4.數據備份恢復
2.4.1.數據庫備份與恢復注意事項

備份時應當注意,備份期間,數據不應該發生變化,以保證數據一致性:

mysqldump -u -p -l -F

在參數上加上 -l,備份期間只能讀不能寫。
在參數上加上-F,生成新的日誌,這樣在恢復數據時,可以恢復備份之後的數據
在這裏插入圖片描述

2.4.2.完全恢復

完全恢復數據分爲兩步:
Step1 - 將備份文件中的數據導入數據庫:

mysql dbname < backupfile -u account -p

Step2 - 恢復備份之後到當前的數據(二進制日誌):

mysqlbinlog binlog文件| mysql dbname -u root -p
2.5.基於時間點恢復

如果二進制日誌中記錄了一些誤操作,那麼基於日誌恢復,也會執行這些誤操作,所以無法恢復誤操作。所以必須跳過誤操作:
1.mysqlbinlog --stop-datetime="......" logfile|mysql -u -p
2. mysqlbinlog --start-dastetime="......" logfile|mysql -u -p

三、課程小結

  • 01 用戶授權
  • 02 日誌配置
  • 03 數據備份
  • 04 日誌時間點恢復
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章