mysql還原數據庫日誌,MySQL數據庫還原

本文目錄一覽:

mysql數據庫怎樣用日誌恢複數據sql語句

要想從二進制日誌恢複數據,你需要知道當前二進制日誌文件的路徑和文件名。一般可以從選項文件(即my.cnf or my.ini,取決於你的系統)中找到路徑。如果未包含在選項文件中,當服務器啟動時,可以在命令行中以選項的形式給出。啟用二進制日誌的選項為– log-bin。要想確定當前的二進制日誌文件的文件名,輸入下面的MySQL語句:

SHOW BINLOG EVENTS /G

你還可以從命令行輸入下面的內容:

mysql –user=root -pmy_pwd -e ‘SHOW BINLOG EVENTS /G’

將密碼my_pwd替換為服務器的root密碼。

1. 指定恢復時間

對於MySQL 4.1.4,可以在mysqlbinlog語句中通過–start-date和–stop-date選項指定DATETIME格式的起止時間。舉例說 明,假設在今天上午10:00(今天是2006年4月20日),執行SQL語句來刪除一個大表。要想恢復表和數據,你可以恢復前晚上的備份,並輸入:

mysqlbinlog –stop-date=”2005-04-20 9:59:59″ /var/log/mysql/bin.123456 /

mysql -u root -pmypwd

該命令將恢復截止到在–stop-date選項中以DATETIME格式給出的日期和時間的所有數據。如果你沒有檢測到幾個小時後輸入的錯誤的SQL語句,可能你想要恢復後面發生的活動。根據這些,你可以用起使日期和時間再次運行mysqlbinlog:

mysqlbinlog –start-date=”2005-04-20 10:01:00″ /var/log/mysql/bin.123456 /

mysql -u root -pmypwd /

在該行中,從上午10:01登錄的SQL語句將運行。組合執行前夜的轉儲文件和mysqlbinlog的兩行可以將所有數據恢復到上午10:00前一秒鐘。你應檢查日誌以確保時間確切。

linux 怎樣恢復mysql數據庫日誌

一、binlog 介紹

服務器的二進制日誌記錄著該數據庫的所有增刪改的操作日誌(前提是要在自己的服務器上開啟binlog),還包括了這些操作的執行時間。為了顯示這些二進制內容,我們可以使用mysqlbinlog命令來查看。

用途1:主從同步

用途2:恢複數據庫(也是線上出現一次數據庫文件丟失後,才對這個有所了解並學習的)

mysqlbinlog命令用法:shell mysqlbinlog [options] log_file …

1)mysqlbinlog 選項示例

常見的選項有以下幾個:

–start-datetime

從二進制日誌中讀取指定等於時間戳或者晚於本地計算機的時間。取值如:=”1470733768″ 或者=”2016-08-09 5:09:28″

示例:

[root@hcloud ~]# mysqlbinlog –start-datetime=”2016-08-09 5:05:27″ /var/lib/mysql/mysql-bin.000001

–stop-datetime

從二進制日誌中讀取指定小於時間戳或者等於本地計算機的時間取值和上述一樣

–start-position

從二進制日誌中讀取指定position 事件位置作為開始。取值:=”2698″

示例:

[root@hcloud ~]# mysqlbinlog –start-position=”2698″ /var/lib/mysql/mysql-bin.000001

–stop-position

從二進制日誌中讀取指定position 事件位置作為事件截至。取值:=”2698″

二、環境準備以及備份恢復

1) 安裝好mysql後,檢查開啟binlog

mysql SHOW BINARY LOGS;

ERROR 1381 (HY000): You are not using binary logging

:上面提示說明沒有服務器開啟binlog

修改/etc/my.cnf

在mysqld選項中添加一行內容如下:

log-bin=mysql-bin

默認如果不給值的話,log-bin 的會

MySQL的備份與還原,非常規備份,全量備份,增量備份

1:官方百萬級別的測試數據庫:

官方測試數據庫github網址:

下載到目錄,解壓即可,運行命令:

2:自己創建簡單測試數據庫:

快速隨機生成測試語言的網站:

選擇sql和想生成的字段,點擊生成Generate!生成即可。

在MySQL輸入生成的語句即可。

3:測試備份還原時用到的命令

刪庫跑路測試(先備份好)

還原後查詢庫的表數據是否完整。

採用複製整個數據存放目錄

1:查看數據庫數據存放位置

有兩種方法:

1):在數據庫中用命令 show variables like ‘datadir’; 查看

2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置

Linux中查看配置文件

2:複製目錄或者目錄下某個數據庫名

3:還原時直接複製文件夾到數據庫目錄即可

mysqldump又可叫做全量備份。

參數 –databases 同 -B ,單獨一個庫,也可省略。

1、備份命令mysqldump格式

格式:mysqldump -h主機名 -P端口 -u用戶名 -p密碼 database 數據庫名 文件名.sql

備份testDatabase數據庫

2、備份MySQL數據庫為帶刪除表的格式

備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。

3、直接將MySQL數據庫壓縮備份

備份並壓縮

4、備份MySQL數據庫某個(些)表

備份testDatabase中的myTable表,不需要用參數 –databases 或者 -B

5、同時備份多個MySQL數據庫

同時備份testDatabase和 employees兩個庫

6、備份服務器上所有數據庫

參數 –all-databases 同 -A

7、還原MySQL數據庫的命令

1) 不指定數據名還原,默認生成原數據庫名稱,還原所有數據庫。

2) 指定數據名還原,還原指定單個數據庫,需在數據庫種預先創建一個testDatabase名稱。

3) 還原壓縮的MySQL數據庫

4) 進入數據庫用source導入

增量備份是針對於數據庫的bin-log日誌進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日誌。

1:查看是否開啟bin-log日誌

進入mysql輸入命令可查看。

顯示如下為開啟狀態,日誌文件在/var/lib/mysql/以binlog.00001的格式保存。

如未開啟,需要在配置文件種配置

2:查看目前使用的bin-log日誌文件

進入mysql查看命令。

顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。

查看當前testDatabase的表myTable數據如下,

3:刷新日誌,使用新的日誌文件(備份)

在命令端執行命令

日誌文件從 binlog.000022 變為 binlog.000023

這時相當與已經備份成功,備份文件即為上次的binlog.000022日誌文件。

4:刪除數量,從日誌還原數據

1) 刪除ABC行

查詢以及沒有ABC行列。

2) 恢複數據ABC行

退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日誌狀態。

進入數據庫再次查看數據,ABC已經恢復。

增量備份完成。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254742.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:13
下一篇 2024-12-15 12:13

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Cron執行日誌用法介紹

    本文將從多個方面對cron執行日誌進行詳細闡述,包括cron執行日誌的定義、cron執行日誌的產生原因、cron執行日誌的格式以及如何解讀cron執行日誌。 一、定義 Cron是一…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28

發表回復

登錄後才能評論