真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql怎么復制備份表 mysql備份表sql

在MySQL中如何復制表

在工作中需要把MySQL環(huán)境某一個庫里一個表復制一份,故整理記錄方法如下:復制整個表create table new_table select * from old_table;

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)瑪納斯,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

復制表,不復制數(shù)據(jù)create table new_table select * from old_table where 0;

主鍵,索引,自增等其他額外特征不會被帶到新表中。這點和其他的數(shù)據(jù)庫產(chǎn)品類似。

如何將mysql的一個完整數(shù)據(jù)庫全部復制到另外一個數(shù)據(jù)庫?

如果從庫上表 t 數(shù)據(jù)與主庫不一致,導致復制錯誤,整個庫的數(shù)據(jù)量很大,重做從庫很慢,如何單獨恢復這張表的數(shù)據(jù)?通常認為是不能修復單表數(shù)據(jù)的,因為涉及到各表狀態(tài)不一致的問題。下面就列舉備份單表恢復到從庫會面臨的問題以及解決辦法:

場景 1

如果復制報錯后,沒有使用跳過錯誤、復制過濾等方法修復主從復制。主庫數(shù)據(jù)一直在更新,從庫數(shù)據(jù)停滯在報錯狀態(tài)(假設(shè) GTID 為 aaaa:1-100)。

修復步驟:

在主庫上備份表 t (假設(shè)備份快照 GTID 為 aaaa:1-10000);

恢復到從庫;

啟動復制。

這里的問題是復制起始位點是 aaaa:101,從庫上表 t 的數(shù)據(jù)狀態(tài)是領(lǐng)先其他表的。aaaa:101-10000 這些事務(wù)中只要有修改表 t 數(shù)據(jù)的事務(wù),就會導致復制報錯 ,比如主鍵沖突、記錄不存在(而 aaaa:101 這個之前復制報錯的事務(wù)必定是修改表 t 的事務(wù))

解決辦法:啟動復制時跳過 aaaa:101-10000 這些事務(wù)中修改表 t 的事務(wù)。

正確的修復步驟:

1. 在主庫上備份表 t (假設(shè)備份快照 GTID 為 aaaa:1-10000),恢復到從庫;

2. 設(shè)置復制過濾,過濾表 t:

CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');

3. 啟動復制,回放到 aaaa:10000 時停止復制(此時從庫上所有表的數(shù)據(jù)都在同一狀態(tài),是一致的);

START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';

4. 刪除復制過濾,正常啟動復制。

注意事項:這里要用 mysqldump --single-transaction --master-data=2,記錄備份快照對應的 GTID

場景 2

如果復制報錯后,使用跳過錯誤、復制過濾等辦法修復了主從復制。主、從庫數(shù)據(jù)一直在更新。

修復步驟:

在主庫上備份表 t (假設(shè)備份快照 GTID為 aaaa:1-10000);

停止從庫復制,GTID為 aaaa:1-20000;

恢復表 t 到從庫;

啟動復制。

這里的問題是復制起始位點是 aaaa:20001,aaaa:10000-20000 這些事務(wù)將不會在從庫上回放,如果這里面有修改表 t 數(shù)據(jù)的事務(wù),從庫上將丟失這部分數(shù)據(jù)。

解決辦法:從備份開始到啟動復制,鎖定表 t,保證 aaaa:10000-20000 中沒有修改表 t 的事務(wù)。

正確修復步驟:

對表 t 加讀鎖;

在主庫上備份表 t;

停止從庫復制,恢復表 t;

啟動復制;

解鎖表 t。

如果是大表,這里可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。

mysql備份表的幾種方式

基于之前的文章方法,加入批處理命令即可實現(xiàn)自動備份。只是由于批處理命令中對于備份文件的名字按照時間命名比較特別,所以特別整理一文。

1、復制date文件夾備份

============================

假想環(huán)境:

MySQL 安裝位置:C:\MySQL

論壇數(shù)據(jù)庫名稱為:bbs

數(shù)據(jù)庫備份目的地:C:\db_bak\

============================

新建db_bak.bat,寫入以下代碼

*******************************Code Start*****************************

net stop mysql

xcopy c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,10%\ /S /I

net start mysql

*******************************Code End *****************************

然后使用Windows的“計劃任務(wù)”定時執(zhí)行該批處理腳本即可。(例如:每天凌晨3點執(zhí)行back_db.bat)

釋:備份和恢復的操作都比較簡單,完整性比較高,控制備份周期比較靈活,例如,用%date:~0,10%。此方法適合有獨立主機但對mysql沒有管理

經(jīng)驗的用戶。缺點是占用空間比較多,備份期間mysql會短時間斷開(例如:針對30M左右的數(shù)據(jù)庫耗時5s左右),針對%date:~0,10%的用法

參考 。

2、mysqldump備份成sql文件

==============

假想環(huán)境:

MySQL 安裝位置:C:\MySQL

論壇數(shù)據(jù)庫名稱為:bbs

MySQL root 密碼:123456

數(shù)據(jù)庫備份目的地:D:\db_backup\

腳本:

rem *******************************Code Start*****************************

@echo off

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

C:\MySQL\bin\mysqldump --opt -u root --password=123456 bbs D:\db_backup\bbs_%Ymd%.sql

@echo on

rem *******************************Code End*****************************

將以上代碼保存為backup_db.bat

然后使用Windows的“計劃任務(wù)”定時執(zhí)行該腳本即可。(例如:每天凌晨5點執(zhí)行back_db.bat)

說明:此方法可以不用關(guān)閉數(shù)據(jù)庫,并且可以按每一天的時間來名稱備份文件。

通過%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數(shù)據(jù)庫進行定時備份。

對于MySQL的備份,最好的方法就是直接備份MySQL數(shù)據(jù)庫的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。進入控制面版,打開計劃任務(wù),雙擊“添加計劃任務(wù)”。在計劃任務(wù)向?qū)е姓业絼偛诺腃MD文件,接著為這個任務(wù)指定一個運行時間和運行時使用的賬號密碼就可以了。

這種方法缺點是占用時間比較多,備份期間壓縮需要時間,mysql斷開比第一種方法更多的時間,但是對于文件命名很好。


當前名稱:mysql怎么復制備份表 mysql備份表sql
網(wǎng)站鏈接:http://weahome.cn/article/hhcchi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部