導航:首頁 > 文件處理 > xtrabackup壓縮備份

xtrabackup壓縮備份

發布時間:2022-06-25 23:21:11

1. mysql備份問題,mysql版本5.7.2

1.mysqlmp:最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個資料庫實例、單個資料庫、單張表的邏輯備份工具, 上手簡單,學習成本幾乎為 0。備份簡單,恢復也簡單。

比如導出單個資料庫 ytt: mysqlmp ytt > /tmp/ytt.sql;

恢復也非常簡單:mysql < /tmp/ytt.sql

缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數據集要恢復的話同樣也是單線程運行,恢復速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復。

2.mysqlpump:MySQL 5.7 GA 後推出的 mysqlmp工具的增強版。可以對同一個數據集多個線程並發備份,備份速度很快。

其他缺點和 mysqlmp 一樣。

3.MySQL Shell UTIL對象附帶的備份工具:隨 MySQL 8.0.21 最新版本捆綁發布,自帶多線程備份以及多線程恢復功能, 可以直接替代 mysqlmp/mysqlpump。

2. linux怎麼備份資料庫

一、 使用mysql相關命令進行簡單的本地備份

1 mysqllmp命令

mysqlmp 是採用SQL級別的備份機制,它將數據表導成 SQL 腳本文件,在不同的 MySQL 版本之間升級時相對比較合適,這也是最常用的備份方法。

使用 mysqlmp進行備份非常簡單,如果要備份資料庫」 db_backup 」,使用命令:
#mysqlmp –u -p phpbb_db_backup > /usr/backups/mysql/db_backup2008-1-6.sql
還可以使用gzip命令對備份文件進行壓縮
#mysqlmp db_backup | gzip > /usr/backups/mysql/ db_backup2008-1-6.sql.gz (備份後生成的sql不含建庫語句!)
只備份一些頻繁更新的資料庫表:
## mysqlmp sample_db articles comments links > /usr/backups/mysql/sample_db.art_comm_lin.2008-1-6.sql
上面的命令會備份articles, comments, 和links 三個表。

恢復數據使用命令:
#mysql –u -p db_backup </usr/backups/mysql/ db_backup2008-1-6.sql
注意使用這個命令時必須保證資料庫正在運行。

2 使用 SOURCE 語法

其實這不是標準的 SQL 語法,而是 mysql 客戶端提供的功能,例如:
# SOURCE /tmp/db_name.sql;
這里需要指定文件的絕對路徑,並且必須是 mysqld 運行用戶(例如 nobody)有許可權讀取的文件。

3 mysqlhot備份

mysqlhot 只能用於備份 MyISAM,並且只能運行在 linux 和Unix 和 NetWare 系統上。mysqlhot 支持一次性拷貝多個資料庫,同時還支持正則表達。以下是幾個例子:
#mysqlhot -h=localhost -u=goodcjh -p=goodcjh db_name /tmp
(把資料庫目錄 db_name 拷貝到 /tmp 下)
注意,想要使用 mysqlhot,必須要有 SELECT、RELOAD(要執行 FLUSH TABLES) 許可權,並且還必須要能夠有讀取 datadir/db_name 目錄的許可權。

還原資料庫方法:

mysqlhot 備份出來的是整個資料庫目錄,使用時可以直接拷貝到 mysqld 指定的 目錄 (在這里是 /usr/local/mysql/data/)目錄下即可,同時要注意許可權的問題,另外首先應當刪除資料庫舊副本如下例:

# /bin/rm -rf /mysql-backup/**//*old
關閉mysql 伺服器、復制文件、查詢啟動mysql伺服器的三個步驟:
# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]
# cp -af /mysql-backup/**//* /var/lib/mysql /
# /etc/init.d/mysqld start
Starting MySQL: [ OK ]
#chown -R nobody:nobody /usr/local/mysql/data/ (將 db_name 目錄的屬主改成 mysqld 運行用戶)
二、使用網路備份

將MYSQL數據放在一台計算機上是不安全的,所以應當把數據備份到區域網中其他Linux計算機中。假設Mysql伺服器IP地址是:192.168.1.3。區域網使用Linux的遠程計算機IP地址是192.168.1.4;類似於windows的網路共享,UNIX(Linux)系統也有自己的網路共享,那就是NFS(網路文件系統),在linux客戶端掛接(mount)NFS磁碟共享之前,必須先配置好NFS服務端。linux系統NFS服務端配置方法如下:

(1)修改 /etc/exports,增加共享目錄
/export/home/sunky 192.168.1.4(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)

3. unix下mysql資料庫如何利用工具進行數據備份

用以備份的工具

1. mysqlmp

2. mysqlhot

3.mysqlsnapshot

4.ibbackup
聯機備份 .VS. 離線備份

聯機備份通常使用在不能接受資料庫停機的情況下,一般來說,離線備份速度快,並且發生錯誤的幾率少,我們不用擔心資料庫正在執行事務,鎖表等容易發生一致性問題的發生。如果你幸運的可以停下資料庫或者有一個主從方式的資料庫,請使用離線方式備份。
Data Dump vs Raw backups

Data mp 輸出一系列SQL 語句序列,可以在後來用來重新創建資料庫的結構並恢復數據。mysqlmp 是這個領域的首選工具,他可以用在任意類型的表上面,無論是本地的還是網路的。當然,由於要產生很多額外的SQL語句,導出結果將是一個很大的文件並且佔用很多CPU資源,最重要的是,當數據恢復後需要一次完全的索引重建。

更有效率的方法是是對MySQL資料庫的物理文件做一次快照(snapshot)。因為我們跳過了很多轉化步驟,因此處理起來比較高效。 做一個MyISM數據表的備份只要拷貝磁碟上數據文件和索引文件。對InnoDB,需要備份對應表空間和關聯的事務日誌。
mysqlmp / mysqlhot / mysqlsnapshot / ibbackup

mysqlmp - (online, mp) - 最一般的工具,他會通過鎖表的方式從一個聯機資料庫中做數據導出並寫到指定的文件中(磁碟或網路上)。他只適合小的資料庫。

# typical mysql mp backup and restore usage
mysqlmp -u root -pPassword -x –all-databases > db_mp.sql
mysql -u root -pPassword < db_mp.sql

# mp into 『backup』 folder (local machine), into two text files <data, table_structure>
mysqlmp -T backup –fields-terminated-by=』,』 database-name -u root -pPassword

# compress the mped data on the fly
mysqlmp -u root -pPassword –all-databases | bzip2 -c > db_mp.bz2

mysqlhot - (online, raw) 將對由 ISAM或MyISAM 表構成的資料庫做一個完全的物理備份。他的操作方式:對所有表獲取一個只讀鎖=>做文件拷貝=>釋放鎖。

# perform an online backup into /backup/location
mysqlhot -u root -p password database_name /backup/location

mysqlsnapshot - (online, raw) 一個非常好的工具用來在聯機方式下獲得MySQL資料庫的一個快照。可以配置它來壓縮數據,並/或 為每一個資料庫提供一個分離的tar文件。 不過他只適合 MyISAM 類型資料庫。

# save a full database snapshot of an online database into /backup/location
mysqlsnapshot -u root -pPassword -s /backup/location

# restore a snapshot
tar -xvf /backup/location/db.tar

ibbackup - (online, raw) 可以對使用InnoDB和MyISAM表的任何資料庫做聯機備份。是一個很好的工具就是要收費.當然如果你是一個InnoDB的用戶,還是值得花錢購買的。

# perform online backup of MyISAM / InnoDB tables
ibbackup /etc/my.cnf /etc/ibbackup.cnf

# restore recent backup (as configured in ibbackup.cnf)
ibbackup –restore /etc/ibbackup.cnf

cp, scp, nc - (offline, raw) 如果你可以停下資料庫,則可以使用這幾個工具直接拷貝資料庫目錄下的文件。是獲取資料庫快照的最安全方法。

4. 本機運行的MySQL 資料庫 如何安全的備份/還原

一般是即時備份。做主從。或者是每天增量備份。
本文是在linux下,mysql 4.1.14版本下測試的,經過適當修改可能適合mysql 4.0,5.0及其其他版本.

本文適合於沒有啟動復制功能的mysql,如果啟動了復制,可能不需要採取這種備份策略或者需要修改相關參數.

每個人的備份策略都可能不同,所以請根據實際情況修改,做到舉一反三,不要照搬照抄,可能會造成不必要的損失.

希望你明白這個腳本要干什麼工作!

腳本描述

每7天備份一次所有數據,每天備份binlog,也就是增量備份.

(如果數據少,每天備份一次完整數據即可,可能沒必要做增量備份)

作者對shell腳本不太熟悉,所以很多地方寫的很笨 :)

開啟 bin log

在mysql 4.1版本中,默認只有錯誤日誌,沒有其他日誌.可以通過修改配置打開bin log.方法很多,其中一個是在/etc/my.cnf中的mysqld部分加入:

[mysqld]
log-bin

這個日誌的主要作用是增量備份或者復制(可能還有其他用途).

如果想增量備份,必須打開這個日誌.

對於資料庫操作頻繁的mysql,這個日誌會變得很大,而且可能會有多個.

在資料庫中flush-logs,或者使用mysqladmin,mysqlmp調用flush-logs後並且使用參數delete-master-logs,這些日誌文件會消失,並產生新的日誌文件(開始是空的).

所以如果從來不備份,開啟日誌可能沒有必要.

完整備份的同時可以調用flush-logs,增量備份之前flush-logs,以便備份最新的數據.

完整備份腳本

如果資料庫數據比較多,我們一般是幾天或者一周備份一次數據,以免影響應用運行,如果數據量比較小,那麼一天備份一次也無所謂了.

#!/bin/sh

# mysql data backup script
# by scud
# 2005-10-30
#
# use mysqlmp --help,get more detail.
#

BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbak.log

DATE=`date +%Y%m%d`

echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile

cd $BakDir

DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tgz

mysqlmp --quick --all-databases --flush-logs
--delete-master-logs --lock-all-tables
> $DumpFile

echo "Dump Done" >> $LogFile

tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1

echo "[$GZDumpFile]Backup Success!" >> $LogFile

rm -f $DumpFile

#delete previous daily backup files:採用增量備份的文件,如果完整備份後,則刪除增量備份的文件.
cd $BakDir/daily

rm -f *

cd $BakDir

echo "Backup Done!"

echo "please Check $BakDir Directory!"

echo " it to your local disk or ftp to somewhere !!!"

ls -al $BakDir
上面的腳本把mysql備份到本地的/backup/mysql目錄,增量備份的文件放在/backup/mysql/daily目錄下.

注意:上面的腳本並沒有把備份後的文件傳送到其他遠程計算機,也沒有刪除幾天前的備份文件:需要用戶增加相關腳本,或者手動操作.

增量備份

增量備份的數據量比較小,但是要在完整備份的基礎上操作,用戶可以在時間和成本上權衡,選擇最有利於自己的方式.

增量備份使用bin log,腳本如下:

#!/bin/sh

#
# mysql binlog backup script
#

/usr/bin/mysqladmin flush-logs

DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily

###如果你做了特殊設置,請修改此處或者修改應用此變數的行:預設取機器名,mysql預設也是取機器名
HOSTNAME=`uname -n`

cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

##計算行數,也就是文件數
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done

NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo "skip exist $base"
else
echo "ing $base"
cp $base $BAKDIR
fi
fi
done

echo "backup mysql binlog ok"
增量備份腳本是備份前flush-logs,mysql會自動把內存中的日誌放到文件里,然後生成一個新的日誌文件,所以我們只需要備份前面的幾個即可,也就是不備份最後一個.
因為從上次備份到本次備份也可能會有多個日誌文件生成,所以要檢測文件,如果已經備份過,就不用備份了.

注:同樣,用戶也需要自己遠程傳送,不過不需要刪除了,完整備份後程序會自動生成.

訪問設置

腳本寫完了,為了能讓腳本運行,還需要設置對應的用戶名和密碼,mysqladmin和mysqlmp都是需要用戶名和密碼的,當然可以寫在腳本中,但是修改起來不太方便,假設我們用系統的root用戶來運行此腳本,那麼我們需要在/root(也就是root用戶的home目錄)創建一個.my.cnf文件,內容如下

[mysqladmin]
password =password
user= root
[mysqlmp]
user=root
password=password
注:設置本文件只有root可讀.(chmod 600 .my.cnf )

此文件說明程序使用mysql的root用戶備份數據,密碼是對應的設置.這樣就不需要在腳本里寫用戶名和密碼了.

自動運行

為了讓備份程序自動運行,我們需要把它加入crontab.

有2種方法,一種是把腳本根據自己的選擇放入到/etc/cron.daily,/etc/cron.weekly這么目錄里.
一種是使用crontab -e放入到root用戶的計劃任務里,例如完整備份每周日凌晨3點運行,日常備份每周一-周六凌晨3點運行.

5. displa通過sessioncontainer1.log_backup1是什麼文件

displaysessioncontainer是NVDisplay文件。

為了方便建立從庫,Xtrabackup 在備份完成後會將 binlogposition 與 GTID 的相關信息保存於 xtrabackup_binlog_info 文件中。但是當你使用 Xtrabackup 生成的備份建立一個從庫時,會發現恢復後的實例執行 show master status。

顯示的 Executed_Gtid_Set 與 xtrabackup_binlog_info 文件中記錄的信息並不一致,而且使用 Xtrabackup 2.4 與 8.0(對 MySQL 8.0 進行備份)生成的備份在恢復後,信息不一致的表現又不相同。本篇文章主要針對該現象進行簡單的分析。

工作方式:

1. 在電腦上安裝DisplayLink驅動,負責GPU與CPU之間的信號轉換、自動調制。

2. 用獨創的DisplayLink自適應壓縮技術自動根據CPU和USB帶寬的情況壓縮視頻內容。

3. 壓縮的數據包通過USB電纜快速傳送到DisplayLink設備上,讓用戶幾乎感覺不到延遲。

4. 如果高速DisplayLink晶元嵌入顯示設備、對接站或適配器上可以直接傳送視頻或圖形數據。

6. xtrabackup怎麼在windows上用

備份
備份時無法指定備份名,每一個備份文件夾都是以時間來命名的,裡面存放的是數據文件、日誌文件,目錄需存在,沒有則先創建。
1,全量備份
[root@localhost]# innobackupex --user=root --password=123456 --host=127.0.0.1 /var/backup/all
2,增量備份
[root@localhost]# innobackupex --user=root --password=123456 --host=127.0.0.1 --incremental --incremental-basedir=/var/backup/all/2015-10-12_11-15-21 /var/backup/inc1
遠程備份
壓縮備份
[root@localhost]# innobackupex --user=root --password=dba@85263382 --host=127.0.0.1 --stream=tar /tmp | ssh [email protected] "gzip - > /tmp/bak.tar.gz"
或者
[root@localhost]# innobackupex --user=root --password=dba@85263382 --host=127.0.0.1 --stream=tar /tmp | gzip | ssh [email protected] " /tmp/bak.tar.gz"
--stream=tar:tar格式
gzip:壓縮
非壓縮備份
[root@localhost]# innobackupex --user=root --password=dba@85263382 --host=127.0.0.1 --stream=tar /tmp | ssh [email protected] "cat - > /tmp/bak.tar"
遠程恢復
數據壓縮的文件需要加上 「i」
[root@localhost]# tar -izxvf bak.tar.gz
恢復
當恢復時,data文件夾需要清空,如果是單庫備份的恢復,像MySQL的系統庫需要移動到臨時文件夾中,當恢復完成後再拷貝到data文件夾中,當然也可以在備份時加入mysql庫,恢復時也能把Mysql庫恢復了。同時需要注意,清空data後,將mysql服務關閉後執行恢復,恢復完成後再啟動

7. windows mysql幾種備份和 恢復

1、復制date文件夾備份
============================
假想環境:
MySQL 安裝位置:C:\MySQL
論壇資料庫名稱為:bbs
資料庫備份目的地:C:\db_bak\
============================
新建db_bak.bat,寫入以下代碼

*******************************Code Start*****************************
net stop mysql
x c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,10%\ /S /I
net start mysql
*******************************Code End *****************************

然後使用Windows的「計劃任務」定時執行該批處理腳本即可。(例如:每天凌晨3點執行back_db.bat)
解釋:備份和恢復的操作都比較簡單,完整性比較高,控制備份周期比較靈活,例如,用%date:~0,10%。此方法適合有獨立主機但對mysql沒有管理經驗的用戶。缺點是佔用空間比較多,備份期間mysql會短時間斷開(例如:針對30M左右的資料庫耗時5s左右),針對%date:~0,10%的用法參考 。

2、mysqlmp備份成sql文件
==============
假想環境:
MySQL 安裝位置:C:\MySQL
論壇資料庫名稱為:bbs
MySQL root 密碼:123456
資料庫備份目的地:D:\db_backup\

腳本:

rem *******************************Code Start*****************************
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
C:\MySQL\bin\mysqlmp --opt -u root --password=123456 bbs > D:\db_backup\bbs_%Ymd%.sql
@echo on
rem *******************************Code End*****************************

將以上代碼保存為backup_db.bat
然後使用Windows的「計劃任務」定時執行該腳本即可。(例如:每天凌晨5點執行back_db.bat)
說明:此方法可以不用關閉資料庫,並且可以按每一天的時間來名稱備份文件。
通過%date:~5,2%來組合得出當前日期,組合的效果為yyyymmdd,date命令得到的日期格式默認為yyyy-mm-dd(如果不是此格式可以通過pause命令來暫停命令行窗口看通過%date:~,20%得到的當前計算機日期格式),所以通過%date:~5,2%即可得到日期中的第五個字元開始的兩個字元,例如今天為2009-02-05,通過%date:~5,2%則可以得到02。(日期的字元串的下標是從0開始的)

3、利用WinRAR對MySQL資料庫進行定時備份。
對於MySQL的備份,最好的方法就是直接備份MySQL資料庫的Data目錄。下面提供了一個利用WinRAR來對Data目錄進行定時備份的方法。

首先當然要把WinRAR安裝到計算機上。

將下面的命令寫入到一個文本文件里

*******************************Code Start*****************************
net stop mysql

c:\progra~1\winrar\winrar a -ag -k -r -s d:\mysql.rar d:\mysql\data

net start mysql
*******************************Code End*****************************

保存,然後將文本文件的擴展名修改成CMD。進入控制面版,打開計劃任務,雙擊「添加計劃任務」。在計劃任務向導中找到剛才的CMD文件,接著為這個任務指定一個運行時間和運行時使用的賬號密碼就可以了。
這種方法缺點是佔用時間比較多,備份期間壓縮需要時間,mysql斷開比第一種方法更多的時間,但是對於文件命名很好。

8. mysql的備份都有哪些方式原理都是基於什麼的,適用范圍是什麼有詳細解答的高手沒

數據備份是數據容災的最後一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業務,備份數據無法恢復,這些也是企業難以承受的。所以選擇合適的備份工具尤為重要。


每個企業級資料庫都會有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業版中非常重要的工具之一,是為企業級客戶提供的數據備份方案。


Xtrabackup一直作為MEB 開源版備胎而存在,從MySQL 8.0開始情況可能會變得有所不同。


在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復體驗會更好,目前xtrabackup還不支持這些特性。


MySQL 企業版還有哪些功能?

9. mysql如何快速備份

來源:知乎

河南-老宋(志強)

問題描述的不是非常的清晰
使用mysqlmp備份時一般會會加上--single-transaction參數,這里假設你是加了這個參數。
一 加速備份
1 加了single-transaction參數 備份時 需要先flush table with read lock 這個過程中會有一個鎖表的過程,如果有事務或語句正在執行,沒有結束,那麼備份進程會一直等待,並且阻塞別的事務,那麼也會影響業務。所以要先確認備份的時候沒有大的事務在運行。
具體 single-transaction的加鎖可以參考 我的博客:mysqlmp備份時加single-transaction會不會加鎖
2 mysqlmp是單進程的,沒有辦法並行,但現在機器的瓶頸多是出現在IO方面,可以使用更了的IO設備加快速度
3 mysqlmp時如果空間夠的話,不要邊壓縮邊備份
二 加速恢復
1 關閉binlog:不寫入Binlog會大大的加快數據導入的速度
2 innodb_flush_log_at_trx_commit=0
3 更好的配置
建議:
一 如果非要使用邏輯備份,可以考慮mysqlmper, mysqlpump(5.7)這兩個工具去備份,這兩個在備份的時候支持並行操作,mysqlmper還可以對單表進行恢復,在只需要恢復單表的情況下,恢復速度會大大加快
二 使用物理備份 xtrabackup (open source),MEB(oracle提供,收費): 他們的備份原理是基於mysql crash recover, 備份速度 是和邏輯備份的相差不太大。但是恢復速度卻有很大的提升。
邏輯備份 備出來的是sql語句文件,恢復時需要一條一條的執行sql,所以恢復很慢。
而物理備份和還原的速度 相當於直接文件,所以恢復的時候性能有很大的提升
並且這兩個軟體還支持並行,效果更好。
邏輯備份最大的優點是 備份好的文件經壓縮後佔用空間較小,最大缺點恢復太慢
物理備份可以很快的恢復,但是備份好的文件壓縮後佔用空間比邏輯備份要大。
使用雲,你做為用戶可以不用考慮這些事情。

附:xtrabackup的並行參數
Parallel local backups
Parallel compression
Parallel encryption
Parallel apply-log

Gary Chen

《MySQL DBA修煉之道》作者。從事資料庫領域10多年。
1.一般來說,你只有靠更好的硬體. 軟體沒有大的變動的情況下不可能突破硬體瓶頸;
2. mysqlmp默認的導出選項已經可以了,單進程的工具不要期望太多,TommyChiu介紹的工具可試試.;
3. 導出的時候觀察下系統,如果是cpu瓶頸,你基本無解.如果是swap問題,看是否是因為內存不夠;
4. 恢復的時候主要是一個參數:innodb_flush_log_at_trx_commit=2

TommyChiu
mk-parallel-mp 試試

閱讀全文

與xtrabackup壓縮備份相關的資料

熱點內容
解壓歌曲什麼歌最好 瀏覽:151
諾貝爾pdf 瀏覽:967
雲伺服器快速安裝系統原理 瀏覽:788
蘋果騰訊管家如何恢復加密相冊 瀏覽:115
手機軟體反編譯教程 瀏覽:858
sqlserver編程語言 瀏覽:650
gpa國際標准演算法 瀏覽:238
伺服器編程語言排行 瀏覽:947
怎麼下載快跑app 瀏覽:966
小紅書app如何保存視頻 瀏覽:170
如何解開系統加密文件 瀏覽:809
linux切換root命令 瀏覽:283
c編譯之後界面一閃而過怎麼辦 瀏覽:880
怎麼看ic卡是否加密 瀏覽:725
lgplc編程講座 瀏覽:809
cnc手動編程銑圓 瀏覽:723
cad中幾種命令的意思 瀏覽:327
oraclelinux安裝目錄 瀏覽:136
安卓系統可以安裝編譯器嗎 瀏覽:572
javajson實體類 瀏覽:693