【MySQL數據庫】mysql日志管理、備份與恢復

mysql日志管理、備份與恢復

  • MySQL數據庫備份及日志
    • 一、數據庫備份分類:
      • 如何選擇邏輯備份策略 (頻率)
      • 完全備份與恢復
        • 備份
        • 恢復
      • 增量備份與恢復
        • 實現增量備份
      • 基于時間點與位置恢復
    • 二.MySQL日志管理


MySQL數據庫備份及日志

在生產環境中,數據的安全性是至關重要的,任何數據的丟失都可能產生嚴重的后果。造成數據丟失的原因

程序錯誤
人為操作錯誤
運算錯誤
磁盤故障
災難(如火災、地震) 和盜竊

所以數據庫需要備份。這里以mysql5.7為例。

一、數據庫備份分類:

從物理與邏輯的角度,備份可分為物理備份和邏輯備份。
(1)物理備份:對數據庫操作系統的物理文件(如數據文件、日志文件等)的備份。又可以分為冷備份和熱備份。

  • 冷備份:關閉數據庫時進行的備份操作

  • 熱備份:在數據庫運行狀態中進行備份操作,這種備份方法依賴于數據庫的日志文件。

  • 溫備份
    數據庫鎖定表格(不可寫入但可讀)的狀態下進行備份操作 (mysgldump)

(2)邏輯備份:對數據庫邏輯組件(如表等數據庫對象)的備份。

從數據庫的備份策略角度,備份可分為完全備份、差異備份、增量備份

(1)完全備份:每次對數據庫進行完整的備份。可以備份單個數據庫,多個數據庫,所有數據庫,也可以備份數據
庫中的單個表,多個表。

(2)差異備份:備份那些自從上次完全備份之后被修改過的文件,只備份數據庫部分內容,但是存儲和恢復速度快

(3)增量備份:只有那些在上次完全備份或者增量備份后被修改的文件才會被備份。

在這里插入圖片描述

如何選擇邏輯備份策略 (頻率)

合理值區間
一周一次的全備,全備的時間需要在不提供業務的時間區間進行 晚上2-4點之間進行全備
增量:3天/2天/1天一次增量備份
差異:選擇特定的場景進行備份
一個處理(NFS) 提供額外空間給與mysql 服務器用

完全備份與恢復

備份

使用mysqldump工具可以靈活的控制備份的內容,比如某幾個表或庫都可以單獨備份。

對單個庫進行完全備份。命令格式如下:

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

對多個庫進行完全備份。命令格式如下:

mysqldump -u用戶名 -p[密碼] [選項] --databases 庫名1 庫名2 ... > /備份路徑/備份文件名

對所有庫進行完全備份。命令格式如下:

mysqldump -u用戶名 -p[密碼] --opt --all-databases > /備份路徑/備份文件名

對表結構進行完全備份。命令格式如下:

mysqldump -u用戶名 -p[密碼] -d 數據庫名 表名 > /備份路徑/備份文件名

對表進行完全備份。命令格式如下:

mysqldump -u用戶名 -p[密碼] 數據庫名 表名 > /備份路徑/備份文件名
恢復

登錄mysql,使用source命令恢復庫。命令格式如下:

source 庫備份腳本的路徑

在不登錄MySQL的情況下,使用mysql命令直接恢復整庫。命令格式如下:

mysql -u用戶名 -p[密碼] < 庫備份腳本的路徑

增量備份與恢復

MySQL沒有提供直接的增量辦法,但是可以通過對MySQL的二進制日志間接實現增量備份。二進制日志保存了所有更新或者可能更新數據庫的操作。

特點:

沒有重復數據,備份量不大,時間短。

需要上次完全備份及完全備份之后所有的增量備份才能恢復,而且要進行逐個反推恢復,操作繁瑣。

實現增量備份

要進行MySQL增量備份,首先要開啟二進制日志功能。
(1)在mysql的配置文件的[mysqld]選項中加入log-bin=mysql-bin,然后重啟服務。

 vim /etc/my.cnf[mysqld]log-bin=mysql-bin

然后重啟mysql

(2)使用mysqldump完全備份school庫。

 mysqldump -u root -p123456 xcz1 > /bak/mysql_bak/$(date +%F).sql 

(3)使用mysqladmin的選項flush-logs生成新的二進制文件,這樣在插入新的數據后,新的二進制文件對應的就是數據庫的變化的內容。

mysqladmin -uroot -p123456 flush-logs 

(4)插入一條新的數據,以模擬數據的增加或變更。

此時的數據庫變化保存在編號2 的二進制文件中,使用mysqlbinlog命令可以查看二進制文件的內容,里面保存了插入數據的語句。

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002

(5)再次執行flush- logs操作生成新的二進制文件,而新的二進制文件會保存之后的數據操作。

mysqladmin -uroot -p123456 flush-logs

基于時間點與位置恢復

基于位置恢復
使用基于時間點的恢復可能會出現在一個時間點里既同時存在正確的操作又存在錯誤的操作,基于位置是一種更為精確的恢復方式。

mysqlbinlog --no-defaults --start-position='1560' --stop-position='1825'
/opt/mysql-bin.000006 | mysql -uroot -pabc123

基于時間點恢復

mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小時:分鐘:秒' --stopdatetime='
年-月-日小時:分鐘:秒' 二進制日志 | mysql -u 用戶名 -p 密碼
#例如:
mysqlbinlog --no-defaults --stop-datetime='2023-07-17 23:04:18' /opt/mysqlbin.
000006 | mysql -uroot -pabc123

二.MySQL日志管理

MySQL日志管理
MySQL的默認日志保存位置為/usr/local/mysql/data
yum安裝為 /var/lib/mysql
日志開啟方式有兩種:通過配置文件或者是通過命令
通過命令修改開啟的日志是臨時的,關閉或重啟服務后就會關閉

可在 /etc/my.cnf 配置文件中的 [mysqld] 中進行日志的路徑修改、開啟、關閉等操作
①、錯誤日志
用于記錄 mysql 啟動、停止或運行時產生的錯誤信息
可通過一下字段進行更新
log-error=/usr/local/mysql/data/mysql_error.log (指定日志的保存位置和文件名)
②、二進制日志
二進制日志,用來記錄所有更新的數據或者已經潛在更新了數據的語句,記錄了數據的更改,可用于數據恢復
開啟方式:

log-bin=mysql-bin #或者 
log_bin=mysql-bin

③、中繼日志
一般情況下,它在 mysql 主從同步(復制)、讀寫分離集群的從節點上才開啟。
主節點一般不需要這個日志。
④、慢查詢日志
慢查詢日志,用來記錄所有執行時間超過long_query_time秒的語句,可以找到哪些查詢語句執行時間長,以便于優化
開啟方式:

slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log #(指定文件路徑和名稱)
long_query_time=5 #(設置執行超過5秒的語句會被記錄,缺省時默認為10秒)

數據庫中查詢日志狀態
①、查看二進制日志開啟狀態

show variables like '%log_bin%';

②、查看慢查詢日志功能是否開啟

show variables like '%slow%';

③、查看慢查詢時間設置

show variables like 'long_query_time';

查看通用查詢日志是否開啟

#重新mysql服務
systemctl restart mysqld.service
mysql -uroot -pabc123
show variables like 'general%';

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14349.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14349.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14349.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在未來你將何去何從?

在數字化的浪潮中&#xff0c;信息技術行業無疑是推動全球經濟和社會發展的重要動力。隨著科技的不斷迭代與進步&#xff0c;云計算、大數據、人工智能&#xff08;AI&#xff09;、物聯網&#xff08;IoT&#xff09;、5G通信和區塊鏈等技術已經深入到我們生活的每一個角落&am…

鴻蒙原生應用元服務開發-鴻蒙真機運行項目實戰與注意事項

一、解壓項目注意項目包不能為中文 二、用數據線將裝好DevEco Studio的電腦與設置為開發者模式的鴻蒙手機相連接。 三、將項目包托進DevEco Studio 中 注意項目包文件不能有嵌套 四、查看設備運行 五、點擊項目結構 六、勾選紅色框圈部分 登錄開發者賬號 七、選擇好公司 八、等…

我是如何使用 Next.js14 + Tailwindcss 重構個人項目的

前言 去年在學習 React 和 Nest 的時候&#xff0c;參考了大佬 imsyy 的項目 DailyHot&#xff0c;以此項目的靈感基于 React 開發&#xff0c;完成之后就沒怎么在意。 后來發現這個項目還有點小流量&#xff0c;每天差不多 200-400 的 IP 訪問量&#xff1a; 我又抽時間優…

深度學習之基于Pytorch框架手寫數字識別

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 手寫數字識別是數字圖像處理領域的一個經典問題&#xff0c;也是深度學習技術的一個常用應用場…

AWS計算之Amazon Lightsail

Amazon Lightsail是亞馬遜提供的一種簡化的虛擬私有服務器(VPS)服務&#xff0c;旨在幫助開發人員快速、輕松地搭建和管理虛擬服務器。Lightsail提供了預配置地計算資源、網絡、存儲和數據傳輸選項&#xff0c;用戶可以通過簡單的界面選擇所需的配置&#xff0c;輕松部署應用程…

51匯編--數碼管時鐘

實現一個24小時制的電子鐘程序&#xff0c;在實驗箱的6個數碼管上顯示時分秒&#xff08;用定時器0中斷更新計時時間&#xff0c;時間值以壓縮BCD碼形式保存在內部RAM的30H31H和32H單元&#xff09;。 PC機可通過串行口發送要設置的時間給單片機&#xff08;發送的時間格式為壓…

java 重寫接口的default方法

在Java 8中&#xff0c;接口可以包含默認方法&#xff08;default methods&#xff09;&#xff0c;這些方法可以有默認實現。如果一個類實現了包含默認方法的接口&#xff0c;并且沒有提供這個方法的實現&#xff0c;則會使用接口中的默認實現。 如果需要重寫接口中的默認方法…

【MySQL精通之路】SQL優化(1)-查詢優化(11)-多范圍查詢優化

主博客&#xff1a; 【MySQL精通之路】SQL優化(1)-查詢優化-CSDN博客 上一篇&#xff1a; 【MySQL精通之路】SQL優化(1)-查詢優化(10)-外部聯接簡化-CSDN博客 下一篇&#xff1a; 當基表很大且未存儲在存儲引擎的緩存中時&#xff0c;使用輔助索引上的范圍掃描讀取行可能會…

uniappx 獲取設備唯一標識(OAID、AAID、AndroidID、IMEI等) Ba-IdCode-U

簡介&#xff08;下載地址&#xff09; Ba-IdCode-U 是一款可以獲取國內各大手機廠商 OAID&#xff08;開放匿名設備標識&#xff09;及海外手機平臺 AAID&#xff08;安卓廣告標識&#xff09;的uniapp插件。另外也支持獲取 IMEI/MEID、AndroidID、WidevineID、PseudoID、GUI…

Spring Cloud Alibaba-06-Sleuth鏈路追蹤

Lison <dreamlison163.com>, v1.0.0, 2024.4.03 Spring Cloud Alibaba-06-Sleuth鏈路追蹤 文章目錄 Spring Cloud Alibaba-06-Sleuth鏈路追蹤為什么使用鏈路追蹤常見鏈路追蹤解決方案Sleuth概述概述Sleuth術語 Sleuth Zipkin 原理Sleuth原理簡述Zipkin 原理簡述 Sleut…

Python庫之`lxml`的高級用法深度解析

Python庫之lxml的高級用法深度解析 簡介 lxml是一個功能強大的第三方庫&#xff0c;它提供了對XML和HTML文檔的高效處理能力。除了基本的解析和創建功能外&#xff0c;lxml還包含了一些高級用法&#xff0c;這些用法可以幫助開發者在處理復雜文檔時更加得心應手。 高級解析技…

代碼隨想錄——路徑總和(Leetcode113)需要回顧

題目鏈接 遞歸 本題遞歸需要遍歷整棵樹&#xff0c;所以遞歸沒有返回值 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* T…

蘋果M4性能分析:進步神速?還有多少空間?

2024年初&#xff0c;蘋果推出了M4處理器&#xff0c;令人意外的是&#xff0c;它的發布距離M3發布僅僅過去了半年時間。更讓人驚訝的是&#xff0c;M4首次亮相于iPad Pro。這一新處理器不僅僅是M3的簡單升級版本&#xff0c;而是一次全面的架構優化。本文將詳細分析M4處理器的…

Vue基礎(1)數據綁定

一. 文本插值 普通文本可以使用雙大括號 {{ }} &#xff0c;要想插入 HTML&#xff0c;需要使用 v-html 指令。 <template><h1>Message: {{ state.msg }}</h1><p>{{ state.count 1 }}</p><p>{{ state.rawHtml }}</p><p v-html…

【教學類-58-02】黑白三角拼圖02(3*3宮格)262144種

背景需求&#xff1a; 已知黑白三角拼圖2*2&#xff08;4個拼圖&#xff09;一共有256種排列方法 【教學類-58-01】黑白三角拼圖01&#xff08;2*2宮格&#xff09;256種-CSDN博客文章瀏覽閱讀142次&#xff0c;點贊5次&#xff0c;收藏12次。【教學類-58-01】黑白三角拼圖01…

深度學習之基于Matlab卷積神經網絡(CNN)手寫數字識別

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 手寫數字識別是計算機視覺領域的一個重要問題&#xff0c;也是深度學習應用的一個典型場景。卷…

什么是固態繼電器?

固態繼電器是不需要使用任何機械部件的開關繼電器。這通常使它們具有比普通機電繼電器壽命更長的優勢&#xff0c;然而&#xff0c;盡管固態繼電器速度快且耐用&#xff0c;但仍具有某些設計規定。 固態繼電器風靡全球&#xff0c;徹底改變了從農業自動化到航空航天等各個行業…

中國數學會發布數學期刊分級目錄

T1,T2,T3均是中國數學會的期刊分類 下載地址&#xff1a; 中國數學會發布數學期刊分級目錄-太原理工大學數學學院 (tyut.edu.cn)

銀行總部文件自動下發,如何保證不影響專線網絡使用?

銀行在我國金融體系中占據重要地位&#xff0c;是我國市場經濟的重要組成部分。我國商業銀行隨著自身不斷發展&#xff0c;規模日益擴大&#xff0c;形成了“總行-分行-支行-營業網點”的典型層級管理模式。在日常中&#xff0c;銀行總部存在文件下發的場景&#xff1a; 銀行總…

1.4 接入網和物理媒體

接入網絡和物理媒體 Q: 怎樣將端系統和邊緣路由器連接&#xff1f; 住宅接入網絡 單位接入網絡 &#xff08;學校、公司&#xff09; 無線接入網絡 注意&#xff1a; 接入網絡的帶寬 (bits persecond) &#xff1f; 共享/專用&#xff1f; 接入網: 這是指將端系統物理連接到其…