mysql備份與恢復詳解。本站提示廣大學習愛好者:(mysql備份與恢復詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql備份與恢復詳解正文
代碼: (應用os.listdir)
import os
def ListFilesToTxt(dir,file,wildcard,recursion):
exts = wildcard.split(" ")
files = os.listdir(dir)
for name in files:
fullname=os.path.join(dir,name)
if(os.path.isdir(fullname) & recursion):
ListFilesToTxt(fullname,file,wildcard,recursion)
else:
for ext in exts:
if(name.endswith(ext)):
file.write(name + "\n")
break
def Test():
dir="J:\\1"
outfile="binaries.txt"
wildcard = ".txt .exe .dll .lib"
file = open(outfile,"w")
if not file:
print ("cannot open the file %s for writing" % outfile)
ListFilesToTxt(dir,file,wildcard, 1)
file.close()
Test()
代碼:(應用os.walk) walk遞歸地對目次及子目次處置,每次前往的三項分離為:以後遞歸的目次,以後遞歸的目次下的一切子目次,以後遞歸的目次下的一切文件。
import os
def ListFilesToTxt(dir,file,wildcard,recursion):
exts = wildcard.split(" ")
for root, subdirs, files in os.walk(dir):
for name in files:
for ext in exts:
if(name.endswith(ext)):
file.write(name + "\n")
break
if(not recursion):
break
def Test():
dir="J:\\1"
outfile="binaries.txt"
wildcard = ".txt .exe .dll .lib"
file = open(outfile,"w")
if not file:
print ("cannot open the file %s for writing" % outfile)
ListFilesToTxt(dir,file,wildcard, 0)
file.close()
Test()
4 xtrabackup/ibbackup
xtrabackup --backup --datadir=/var/lib/mysql/ --target-
dir=/data/backups/mysql/
xtrabackup --backup --defaults-file=/etc/my.cnf --target-
dir=/data/backups/mysql/
mysql的備份方法
1.mysqldump
效力比擬低,備份和復原的速度都很慢,任何數據拔出和更新操作都邑被掛起
2.mysqlhotcopy
mysqlhotcopy 是專門針對myisam 數據表停止備份,備份的進程中,任何數據拔出和更新操作都邑被掛起
3.預備一台從辦事器,專門做備份(master-slave方法)
4.xtrabackup 是 percona 的一個開源項目,可熱備份innodb ,XtraDB,MyISAM(會鎖表)
Xtrabackup有兩個重要的對象:xtrabackup、innobackupex
xtrabackup只能備份InnoDB和XtraDB兩種數據表,而不克不及備份MyISAM數據表
innobackupex-1.5.1則封裝了xtrabackup,是一個劇本封裝,所以能同時備份處置innodb和myisam,但在處置myisam時須要加一個讀鎖
Øxtra備份道理
記住開端時刻的LSN號,然後開端拷備文件,同時運
行一個後台過程監督重做日記,並將變更拷備上去到
xtrabackup_logfile。
innobackupex可以備份myisam表和frm文件。當
xtrabackup停止後,履行flush tables with read lock,避
免數據更改,然後刷新一切myisam表到磁盤。拷備結
束後,釋放鎖。
mysqlbinlog也是一個恢停工具,是基於時光點來處置二進制文件的
Ø備份:直接拷備
Ø復原:
ü時光點復原:mysqlbinlog --stop-date="2005-04-20 9:59:59"
/var/log/mysql/bin.123456 | mysql -u root –pmypwd
mysqlbinlog --start-date="2005-04-20 10:01:00"
/var/log/mysql/bin.123456| mysql -u root –pmypwd
Ø日記點復原:
mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd \
LVM是 Logical Volume Manager(邏輯卷治理)的簡寫,它是Linux情況下對磁盤分區停止治理的一種機制。
LSN界說:
日記序號
日記序號 (LSN) 標識特定日記文件記載在日記文件中的地位。
LSN 由 DB2® 產物中的很多組件用來保護數據庫分歧性和完全性。除其他感化外,LSN 還關於分區數據庫情況中的落實和回滾操作、瓦解和前滾恢復和數據庫操作同步起異常主要的感化。
日記文件中 LSN 的增加率與數據庫運動直接相干聯。也就是說,跟著事務產生而且條目被寫入日記文件,LSN 會赓續增年夜。數據庫中的運動越多,LSN 增加得越快。
日記序號的下限
在 DB2 V9.5 和較早版本中,日記序號 (LSN) 是 6 字節數字。從 FP3 開端,LSN 的規模在 0x0000 0000 0000(初次創立數據庫時)到 0xFFFF 0000 0000(約 256 太字節)之間。在 FP3 之前,下限為 0xFFFF FFFF FFFF。跟著記載被添加到日記文件中,LSN 在數據庫性命期赓續增加。