最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫備份問題及處理

 更新時(shí)間:2026年05月04日 10:46:33   作者:84歲帶頭沖鋒  
本文主要介紹了MySQL的日志分類、備份重要性、備份類型、備份方法及備份命令等內(nèi)容,日志包括錯(cuò)誤日志、二進(jìn)制日志、中繼日志、慢查詢?nèi)罩镜?備份方法包括冷備份、二進(jìn)制日志增量備份、第三方工具備份等,備份類型有完全備份、差異備份、增量備份等

一、MySQL常用日志

1.1 概述

日志文件在數(shù)據(jù)庫進(jìn)行備份和恢復(fù)時(shí)起到了很重要的作用

常用的日志文件默認(rèn)保存在 /usr/local/mysql/data 目錄下

可在 /etc/my.cnf 配置文件中的 [mysqld] 中進(jìn)行日志的路徑修改、開啟、關(guān)閉等操作

1.2 錯(cuò)誤日志

用于記錄 mysql 啟動(dòng)、停止或運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤信息

可通過一下字段進(jìn)行更新

log-error=/usr/local/mysql/data/mysql_error.log (指定日志的保存位置和文件名)

1.3 二進(jìn)制文件

二進(jìn)制日志,用來記錄所有更新的數(shù)據(jù)或者已經(jīng)潛在更新了數(shù)據(jù)的語句,記錄了數(shù)據(jù)的更改,可用于數(shù)據(jù)恢復(fù)

開啟方式:

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

1.4 中繼日志

一般情況下,它在 mysql 主從同步(復(fù)制)、讀寫分離集群的從節(jié)點(diǎn)上才開啟。

主節(jié)點(diǎn)一般不需要這個(gè)日志。

1.5 慢查詢?nèi)罩?/h3>

慢查詢?nèi)罩?,用來記錄所有?zhí)行時(shí)間超過long_query_time秒的語句,可以找到哪些查詢語句執(zhí)行時(shí)間長(zhǎng),以便于優(yōu)化

開啟方式:

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

1.6 數(shù)據(jù)庫中的查詢?nèi)罩緺顟B(tài)

1.6.1 查看二進(jìn)制日志狀態(tài)開啟

show variables like '%log_bin%';

1.6.2 查看慢查詢?nèi)罩竟δ苁欠耖_啟

show variables like '%slow%';

1.6.3 查詢慢時(shí)間設(shè)置

show variables like 'long_query_time';

1.6.4 在數(shù)據(jù)庫中設(shè)置開啟慢查詢的辦法(臨時(shí))

set global slow_query_log=ON;

查看
show variables like ‘long_query_time';

日志超時(shí)時(shí)間

二、備份

2.1 概述

  • 備份的主要目的是災(zāi)難恢復(fù)
  • 還可以用來測(cè)試應(yīng)用、回滾數(shù)據(jù)修改、查詢歷史數(shù)據(jù)、審計(jì)等
  • 在生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性至關(guān)重要
  • 任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴(yán)重的后果

2.2 備份的重要性

在企業(yè)中,數(shù)據(jù)的價(jià)值至關(guān)重要,數(shù)據(jù)保障了企業(yè)業(yè)務(wù)的正常運(yùn)行。

因此,數(shù)據(jù)的安全性及數(shù)據(jù)的可靠性是運(yùn)維的重中之重,任何數(shù)據(jù)的吊事都可能對(duì)企業(yè)產(chǎn)生嚴(yán)重的后果。

== 通常情況下,造成數(shù)據(jù)丟失的原因有一下幾種:==

  • 程序錯(cuò)誤
  • 人為操作錯(cuò)誤
  • 運(yùn)算錯(cuò)誤
  • 磁盤故障
  • 災(zāi)難(火災(zāi)、地震、盜竊等)

2.3 備份類型

從物理與邏輯的角度分類可分為:邏輯備份、物理備份

從數(shù)據(jù)庫的備份策略角度分類可分為:完全備份、差異備份、增量備份

  • ==完全備份:==每次對(duì)數(shù)據(jù)進(jìn)行完整的備份,即對(duì)整個(gè)數(shù)據(jù)庫、數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份,保存的是備份完成時(shí)刻的數(shù)據(jù)庫,是差異備份與增量備份的基礎(chǔ)。完全備份的備份與恢復(fù)操作都非常簡(jiǎn)單方便,但是數(shù)據(jù)存在大量的重復(fù),并且會(huì)占用大量的磁盤空間,備份的時(shí)間也很長(zhǎng)。
  • ==差異備份:==備份那些自從上次完全備份之后被修改過的所有文件,備份的時(shí)間節(jié)點(diǎn)是從上次完整備份起,備份數(shù)據(jù)量會(huì)越來越大?;謴?fù)數(shù)據(jù)時(shí),只需恢復(fù)上次的完全備份與最近的一次差異備份。
  • ==增量備份:==只有那些在上次完全備份或者增量備份后被修改的文件才會(huì)被備份。以上次完整備份或上次增量備份的時(shí)間為時(shí)間點(diǎn),僅備份這之間的數(shù)據(jù)變化,因而備份的數(shù)據(jù)量小,占用空間小,備份速度快。但恢復(fù)時(shí),需要從上一次的完整備份開始到最后一次增量備份之的所有增量依次恢復(fù),如中間某次的備份數(shù)據(jù)損壞,將導(dǎo)致數(shù)據(jù)的丟失。

2.4 備份的辦法

數(shù)據(jù)庫的備份可以采用很多種方式,如直接打包數(shù)據(jù)庫文件(物理冷備份)、專用備份工具(mysqldump)、二進(jìn)制日志增量備份、第三方工具備份等

2.4.1 冷備份

  • 冷備份時(shí)需要在數(shù)據(jù)庫處于關(guān)閉狀態(tài)下,能夠較好地保證數(shù)據(jù)庫的完整性
  • 冷備份的特點(diǎn)就是速度快,恢復(fù)時(shí)也是最為簡(jiǎn)單的。
  • 通過直接打包數(shù)據(jù)庫文件夾(/usr/loc.al/mysql/data)來實(shí)現(xiàn)備份

2.4.2 通過啟用二進(jìn)制日志進(jìn)行增量備份

  • 支持增量備份,進(jìn)行增量備份時(shí)必須啟用二進(jìn)制日志。
  • 二進(jìn)制日志文件為用戶提供復(fù)制,對(duì)執(zhí)行備份點(diǎn)后進(jìn)行的數(shù)據(jù)庫更改所需的信息進(jìn)行恢復(fù)。
  • 如果進(jìn)行增量備份(包含自上次完全備份或增量備份以來發(fā)生的數(shù)據(jù)修改) ,需要刷新二進(jìn)制日志

2.4.3 通過第三方工具備份

第三方工具Percona xtraBackup是一個(gè)免費(fèi)的MysQL熱備份軟件,支持在線熱備份Innodb和xtraDB,也可以支持MySQL表備份,不過MyISAM表的備份要在表鎖的情況下進(jìn)行。

2.5 備份命令

  • 完全備份

InnoDB存儲(chǔ)引擎的數(shù)據(jù)庫在磁盤上存儲(chǔ)成三個(gè)文件:db.opt(表屬性文件)、表名.frm(表結(jié)構(gòu)文件)、表名.ibd(表數(shù)據(jù)文件)。

物理冷備份與恢復(fù)

systemctl stop mysqld
yum -y install xz
 
#壓縮備份
cd /usr/local/mysql/data
tar jcvf mysql_all_$(date +%F).tar.xz /usr/local/mysql/data
systemctl start mysqld
 
#模擬故障,刪除數(shù)據(jù)庫
drop database HUISUO;
 
#解壓恢復(fù)
tar jxvf /opt/mysql_all_2022-06-21.tar.xz -C /usr/local/mysql/data
cd /usr/local/mysql/data
mv usr/local/mysql/data/* ./

完全備份一個(gè)或多個(gè)完整的庫(包括其中所有的表)

mysqldump -u root -p[密碼] --databases 庫名1 [庫名2] ... > /備份路徑/備份文件名.sql   
#導(dǎo)出的就是數(shù)據(jù)庫腳本文件
 
例:
 
mysqldump -u root -p --databases liu > /opt/kgc.sql       #備份一個(gè)kgc庫
mysqldump -u root -p --databases mysql li > /opt/mysql-kgc.sql    #備份mysql與 kgc兩個(gè)庫

備份所有的庫

mysqldump -uroot -p[密碼] --all-databases > /備份路徑/備份文件名.sql
 

完全備份指定庫中的部分表

mysqldump -u root -p[密碼] 庫名 [表名1] [表名2] … > /備份路徑/備份文件名.sql
 
如:
mysqldump -uroot -p[密碼] [-d] HUISUO member1 > /opt/member1.sql
#使用“-d”選項(xiàng),說明只保存數(shù)據(jù)庫的表結(jié)構(gòu)
#不使用“-d”選項(xiàng),說明表數(shù)據(jù)也進(jìn)行備份

查看備份文件

grep -v "^--" /opt/member1.sql | grep -v "^/" | grep -v "^$"

2.6 增量備份與恢復(fù)

2.6.1 增量備份需要開啟二進(jìn)制日志功能

vim /etc/my.cnf
#錯(cuò)誤日志
log-error=/usr/local/mysql/data/mysql_error.log	 
#通用查詢?nèi)罩?
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
#二進(jìn)制日志
log-bin=mysql-bin	
#慢查詢?nèi)罩?
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5
#配置文件添加完后需要重啟MySQL
systemctl restart mysql

2.6.2 可每天進(jìn)行增量備份操作,生成新的二進(jìn)制文件

先完成完全備份(在創(chuàng)建好表和庫的基礎(chǔ)上)

systemctl restart mysqld.service
mysqldump -uroot -p meeting working > /mnt/meeting_working_$(date +%F).sql
mysqldump -uroot -p meeting > /mnt/meeting_$(date +%F).sql
生成新的二進(jìn)制文件(可每天進(jìn)行增量備份操作)
mysqladmin -uroot -p flush-logs

2.6.3 查看新生成的日志內(nèi)容

mysqlbinlog --no-defaults --base64-output=decode-rows -v /usr/local/mysql/data/mysql-bin.000002

2.7 恢復(fù)的方法

2.7.1 按位置恢復(fù)

先刪除表
drop table working;
 
清空表內(nèi)容
truncate table meeting.working;
 
恢復(fù)結(jié)束點(diǎn)為刪除命令前和插入命令后
mysqlbinlog --no-defaults --stop-position='902' usr/local/mysql/data/mysql-bin.000003 | mysql -uroot -p

2.7.2 按時(shí)間恢復(fù)

先清空表CLASS1,方便實(shí)驗(yàn)
mysql -uroot -p -e "truncate table meeting.working;"
mysql -uroot -p -e "select * from meeting.woring;"
 
mysqlbinlog --no-defaults --stop-datetime='2021-04-15 15:39:23' /opt/mysql-bin.000003 |mysql -uroot -p
mysql -uroot -p -e "select * from meeting.woring;"

總結(jié)

mysql沒有直接提供增量備份的工具,需要借助二進(jìn)制日志文件進(jìn)行操作

使用日志分隔日志的方式進(jìn)行增量備份

增量恢復(fù)需要根據(jù)日志文件的時(shí)間先后逐個(gè)執(zhí)行

使用基于時(shí)間和位置的方式進(jìn)行恢復(fù),可以更精準(zhǔn)的恢復(fù)數(shù)據(jù)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 手把手帶你搞定MySQL全版本安裝與卸載

    手把手帶你搞定MySQL全版本安裝與卸載

    許多人在初次安裝MySQL時(shí),可能會(huì)遇到安裝錯(cuò)誤或選擇過高版本導(dǎo)致的問題,這些問題可能使數(shù)據(jù)庫無法正常使用,或者某些圖形界面無法操作,這篇文章主要介紹了MySQL全版本安裝與卸載的相關(guān)資料,需要的朋友可以參考下
    2026-04-04
  • mytop 使用介紹 mysql實(shí)時(shí)監(jiān)控工具

    mytop 使用介紹 mysql實(shí)時(shí)監(jiān)控工具

    mytop 是一個(gè)類似 Linux 下的 top 命令風(fēng)格的 MySQL 監(jiān)控工具,可以監(jiān)控當(dāng)前的連接用戶和正在執(zhí)行的命令
    2012-05-05
  • 用一條mysql語句插入多條數(shù)據(jù)

    用一條mysql語句插入多條數(shù)據(jù)

    這篇文章主要介紹了在mysql中使用一條sql語句插入多條數(shù)據(jù),效率非常高,但是原理其實(shí)很簡(jiǎn)單,希望對(duì)大家有所幫助
    2014-09-09
  • mysql重復(fù)索引與冗余索引實(shí)例分析

    mysql重復(fù)索引與冗余索引實(shí)例分析

    這篇文章主要介紹了mysql重復(fù)索引與冗余索引,簡(jiǎn)單說明了重復(fù)索引與冗余索引的概念、應(yīng)用場(chǎng)景并結(jié)合實(shí)例形式分析了mysql重復(fù)索引與冗余索引相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • windows系統(tǒng)mysql壓縮包版本安裝過程

    windows系統(tǒng)mysql壓縮包版本安裝過程

    這篇文章主要介紹了windows系統(tǒng)mysql壓縮包版本安裝過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 在Ubuntu上檢查MySQL是否啟動(dòng)并放開3306端口的常見方法

    在Ubuntu上檢查MySQL是否啟動(dòng)并放開3306端口的常見方法

    在使用Ubuntu系統(tǒng)時(shí),MySQL數(shù)據(jù)庫是許多開發(fā)人員和系統(tǒng)管理員的常用工具,本文將詳細(xì)介紹如何在Ubuntu上檢查MySQL是否啟動(dòng),以及如何放開MySQL默認(rèn)的3306端口,以便允許外部訪問,需要的朋友可以參考下
    2025-07-07
  • MySQL中慢SQL優(yōu)化方法小結(jié)

    MySQL中慢SQL優(yōu)化方法小結(jié)

    這篇文章主要為大家詳細(xì)介紹了MySQL中慢SQL優(yōu)化方法的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以參考一下
    2024-04-04
  • MySQL系列數(shù)據(jù)庫設(shè)計(jì)三范式教程示例

    MySQL系列數(shù)據(jù)庫設(shè)計(jì)三范式教程示例

    這篇文章主要為大家介紹了MySQL系列之?dāng)?shù)據(jù)庫設(shè)計(jì)三范式的教程示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • MySQL 事務(wù)概念與用法深入詳解

    MySQL 事務(wù)概念與用法深入詳解

    這篇文章主要介紹了MySQL 事務(wù)概念與用法,結(jié)合實(shí)例形式深入分析了MySQL 事務(wù)基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • MySQLJSON索引用法舉例簡(jiǎn)單介紹

    MySQLJSON索引用法舉例簡(jiǎn)單介紹

    索引是一個(gè)數(shù)據(jù)結(jié)構(gòu),索引是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)(有序),這篇文章主要給大家介紹了關(guān)于MySQLJSON索引用法的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

繁峙县| 房产| 长岭县| 贺兰县| 额济纳旗| 开远市| 朝阳县| 奉新县| 察雅县| 台南市| 崇明县| 通辽市| 砀山县| 苏尼特右旗| 本溪| 南京市| 荃湾区| 杭锦后旗| 扎兰屯市| 澳门| 互助| 辛集市| 毕节市| 万安县| 德化县| 大田县| 江都市| 壶关县| 大方县| 阜宁县| 韩城市| 咸丰县| 溧阳市| 普格县| 舒兰市| 清新县| 江陵县| 石泉县| 广水市| 伊通| 湘潭县|