tar做物理備份

2021-09-18 04:32:00 字數 2255 閱讀 5474

tar cp scp 工具/備份資料庫 一般用於完整全備份。

無法實現增量備份。

備份的過程: [ 完全 的 物理 方式 冷備。] 可以實現 完全備份 + 增量備份

施加全域性鎖

實施 tar 命令 壓縮備份

複製備份好的資料庫到備份目錄

重新整理二進位制日誌檔案

立刻解鎖

1、以某張表的資料 為依據, 例如學生表。 在這次備份完成後。

a\ 當前學生表多少條記錄 1015條

b\ 當前使用的二進位制日誌,已經 它停留的位置

c\ 這次備份後,災難發生於,下一次備份到來之前。

2、 模擬業務向前執行(插入 另外10條資料) , 這 10條 資料,存在哪個位置???

3、在沒有任何預備的情況下, 停庫,刪除所有資料 rm -rf /data/mysql

然後執行還原過程

如果軟體損壞,就重灌mysql,先不要啟動。

將完全備份恢復到 資料庫 目錄。 (## 恢復後的檔案,許可權 是否 都是 mysql 使用者 )

新增防火牆規則,臨時禁止 3306 埠的連線 input上加

啟動資料庫,檢查是否有報錯。 1015 條資料找回

找到 另外 10 條資料所在的 二進位制日誌檔案,將他們匯出。

mysqlbinlog --start-position=154 /data/log-bin/mysql-bin.000003 > /root/03.sql

6.停止 當前的 二進位制日誌的記錄功能。

mysql> set session sql_log_bin=0;

7、匯入資料

mysql> source /root/03.sql;

8、開啟二進位制日誌記錄功能

mysql> set session sql_log_bin=1;

檢視驗證。

9、清除防火牆 規則。

恢復流程 完畢。

備份指令碼如下:

[root@mysql-21 /test]# cat full-backup.sh

#!/bin/bash

a_log="/root/mysql-bak.log" #mysql備份日誌

a_dir=/backup #備份路徑

data_dir=/data/mysql # 備份資料庫路徑

data_name=`echo echo $data_dir | awk -f "/" ''` #要備份的資料庫名稱

echo "**********===`date`********************=">> $a_log

tail -1 /bin-log/mysql-bin.index >> $a_log #備份mysql的二進位制檔案

echo "對/data/mysql的完全備份開始..."

time1=`date +%s` #獲得當前時間

#備份mysql的配置檔案

cp /etc/my.cnf $a_dir/my-`date +%f-%h-%m-%s`.cnf

mysql -uroot<> $a_log

unlock table;

system echo "解鎖表..."

eoftime2=`date +%s` #獲得備份結束時間

echo "備份完成時`expr $time2 - $time1`秒"

###########實現備份的回滾功能#################

##獲取mysql備份數量,超過$num份後刪掉最早的乙份

num=5

count=`ls -lt $a_dir | grep "mysql" | wc -l`

if [ $count -gt $num ]

then

rm -rf `ls -lt $a_dir | grep "mysql" |tail -1| awk '`

fi ##獲取資料庫配置檔案my.cnf備份數量,超過$num份後刪掉最早的乙份

count1=`ls -lt $a_dir| grep "\".*cnf| wc -l`

if [ $count1 -gt $num ]

then

rm -rf `ls -lt $a_dir| grep "\".*cnf| tail -1|awk ''

當前配置環境是在centos7下,資料庫的配置/etc/my.cnf

MySQL資料物理備份之tar打包備份

複製資料檔案方式,可以使用cp或tar 1 停止服務 root localhost mysql systemctl stop mysqld root localhost mysql netstat lnupt grep 3306 2 備份資料檔案 cd var lib mysql root loca...

MySQL資料物理備份之tar打包備份

複製資料檔案方式,可以使用cp或tar 1 停止服務 root localhost mysql systemctl stop mysqld root localhost mysql netstat lnupt grep 3306 2 備份資料檔案 cd var lib mysql root loca...

tar增量備份

tar命令實現增量備份 最近在備份web 站點,但是出現的問題是隨著備份的目錄增加,以及站點的不斷的擴大,磁碟空間開始顯示出不夠用。正對這種問題,做出了如下的幾個調整。1 將備份的個數縮短,什麼意思呢。以我的web bak 目錄為例,原來的目錄中是保留了 1個月的備份,現在我將他調整為 20天。但是...