程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql備份與恢復詳解

mysql備份與恢復詳解

編輯:MySQL綜合教程

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()

V>
熱備的辦法針對不多的數據庫有分歧的計劃 關於myisam存儲引擎來講,做法就是給數據庫表加鎖來阻攔寫操作,可以直接復制物理文件,或許也能夠經由過程mysql專門的mysqlhotcopy(道理就是現鎖住表,然落後行操作)法式來完成響應的備份義務。 flush tables with read lock cp -R test /tmp/backup/test unlock tables;
innodb數據庫引擎來講,有一款貿易軟件ibbackup,在線物理備份功效。還有一款開源的對象xtrabackup, 假如在備份進程中,把INNODB數據文件備份完成後,會鎖住全部庫,並開端復制MYISAM等非事務引擎的數據和.frm;所以假如你具有比擬多的MYISAM表,鎖庫的時刻會連續很長。假如是在主庫上運轉,萬萬留意。
異樣也只能經由過程xtrabackup停止增量的備份,其實這一對象只是備份innobd的日記信息。

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 在數據庫性命期赓續增加。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved