mysql怎么備份快照 mysql快速備份表

MySQL使用LVM快照實現(xiàn)備份

新建一個lvm磁盤,這里我建的lv為mydatalv,掛載到了/data下

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及成都集裝箱等,在成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗。

[root@localhost

~]#

lvs

LV

VG

Attr

LSize

Pool

Origin

Data%

Meta%

Move

Log

Cpy%Sync

Convert

mydatalv

mydata

-wi-ao----

1.00g

[root@localhost

~]#

df

-h

文件系統(tǒng)

容量

已用

可用

已用%

掛載點

/dev/mapper/mydata-mydatalv

976M

2.6M

907M

1%

/data

將原數(shù)據(jù)庫文件復(fù)制到/data目錄下

[root@localhost

~]#

cp

-a

/var/lib/mysql

/data/

修改配置文件,將mysql數(shù)據(jù)庫文件放在lvm盤中,二進(jìn)制文件放在非lvm盤的/var/lib/mysql/目錄下

[root@ns1

~]#

vim

/etc/my.cnf

[mysqld]

log_bin=/var/lib/mysql/mysql-bin

datadir=/data/mysql

[root@localhost

~]#

service

mariadb

restart

[root@localhost

~]#

ls

/data/mysql

aria_log.00000001

ibdata1

ib_logfile1

mysql-bin.000001

mysql-bin.000003

performance_schema

aria_log_control

ib_logfile0

mysql

mysql-bin.000002

mysql-bin.index

test

可以看到重啟后數(shù)據(jù)庫文件已存放在了/data/mysql目錄中了

對mysql進(jìn)行鎖表備份

[root@localhost

~]#

mysql

-e

'flush

tables

with

read

lock;'

鎖表

[root@localhost

~]#

mysql

-e

'flush

logs;'

對日志進(jìn)行滾動,

[root@localhost

~]#

mysql

-e

'show

master

status;'

/root/back.$(date

+%F+%T)

[root@localhost

~]#

ls

back.2016-07-13+10:14:29

對lv創(chuàng)建快照

[root@localhost

~]#

lvcreate

-L

1G

-n

mysqlback

-p

r

-s

/dev/mydata/mydatalv

釋放鎖

[root@localhost

~]#

mysql

-e

'unlock

tables;'

在別的磁盤上創(chuàng)建備份目錄,只讀掛載快照后備份至備份目錄

[root@localhost

~]#

mkdir

/myback

[root@localhost

~]#

mount

-r

/dev/mydata/mysqlback

/mnt

[root@localhost

~]#

cp

-a

/mnt/mysql

/myback

修改表內(nèi)容,然后刪除掉數(shù)據(jù)庫文件內(nèi)容即/data/mysql中的內(nèi)容

[root@localhost

~]#

mysql

MariaDB

[hellodb]

use

hellodb;

MariaDB

[hellodb]

insert

into

classes

(class,numofstu)

values

('xxoo',39);

[root@localhost

~]#

rm

-rf

/data/*

修改配置文件中二進(jìn)制日志和數(shù)據(jù)庫文件的位置

[root@localhost

~]#

vim

/etc/my.cnf

[mysqld]

log_bin=/data/mysql/mysql-bin

datadir=/data/mysql

利用/myback/中的內(nèi)容還原

[root@localhost

~]#

cp

-a

/myback/*

/data/

[root@localhost

~]#

service

mariadb

restart

利用二進(jìn)制日志還原快照后的操作,由下面這個文件來查看快照執(zhí)行時二進(jìn)制日志的位置

[root@localhost

~]#

cat

back.2016-07-13+10\:14\:29

File

Position

Binlog_Do_DB

Binlog_Ignore_DB

mysql-bin.000014

245

將000014中245之后的操作做成sql文件,進(jìn)行還原

[root@localhost

~]#

mysqlbinlog

--start-position=245

/var/lib/mysql/mysql-bin.000014

binlog.sql

[root@localhost

~]#

mysql

/root/binlog.sql

查看恢復(fù)情況

[root@localhost

~]#

mysql

MariaDB

[(none)]

use

hellodb;

MariaDB

[hellodb]

select

*

from

classes;

+---------+----------------+----------+

|

ClassID

|

Class

|

NumOfStu

|

+---------+----------------+----------+

|

1

|

Shaolin

Pai

|

10

|

|

2

|

Emei

Pai

|

7

|

|

3

|

QingCheng

Pai

|

11

|

|

4

|

Wudang

Pai

|

12

|

|

5

|

Riyue

Shenjiao

|

31

|

|

6

|

Lianshan

Pai

|

27

|

|

7

|

Ming

Jiao

|

27

|

|

8

|

Xiaoyao

Pai

|

15

|

|

9

|

xxoo

|

39

|

+---------+----------------+----------+

9

rows

in

set

(0.00

sec)

unix下mysql數(shù)據(jù)庫如何利用工具進(jìn)行數(shù)據(jù)備份

用以備份的工具

1.

mysqldump

2.

mysqlhotcopy

3.mysqlsnapshot

4.ibbackup

聯(lián)機(jī)備份

.VS.

脫機(jī)備份

聯(lián)機(jī)備份通常使用在不能接受數(shù)據(jù)庫停機(jī)的情況下,一般來說,脫機(jī)備份速度快,并且發(fā)生錯誤的幾率少,我們不用擔(dān)心數(shù)據(jù)庫正在執(zhí)行事務(wù),鎖表等容易發(fā)生一致性問題的發(fā)生。如果你幸運的可以停下數(shù)據(jù)庫或者有一個主從方式的數(shù)據(jù)庫,請使用脫機(jī)方式備份。

Data

Dump

vs

Raw

backups

Data

dump

輸出一系列SQL

語句序列,可以在后來用來重新創(chuàng)建數(shù)據(jù)庫的結(jié)構(gòu)并恢復(fù)數(shù)據(jù)。mysqldump

是這個領(lǐng)域的首選工具,他可以用在任意類型的表上面,無論是本地的還是網(wǎng)絡(luò)的。當(dāng)然,由于要產(chǎn)生很多額外的SQL語句,導(dǎo)出結(jié)果將是一個很大的文件并且占用很多CPU資源,最重要的是,當(dāng)數(shù)據(jù)恢復(fù)后需要一次完全的索引重建。

更有效率的方法是是對MySQL數(shù)據(jù)庫的物理文件做一次快照(snapshot)。因為我們跳過了很多轉(zhuǎn)化步驟,因此處理起來比較高效。

做一個MyISM數(shù)據(jù)表的備份只要拷貝磁盤上數(shù)據(jù)文件和索引文件。對InnoDB,需要備份對應(yīng)表空間和關(guān)聯(lián)的事務(wù)日志。

mysqldump

/

mysqlhotcopy

/

mysqlsnapshot

/

ibbackup

mysqldump

-

(online,

dump)

-

最一般的工具,他會通過鎖表的方式從一個聯(lián)機(jī)數(shù)據(jù)庫中做數(shù)據(jù)導(dǎo)出并寫到指定的文件中(磁盤或網(wǎng)絡(luò)上)。他只適合小的數(shù)據(jù)庫。

#

typical

mysql

dump

backup

and

restore

usage

mysqldump

-u

root

-pPassword

-x

–all-databases

db_dump.sql

mysql

-u

root

-pPassword

db_dump.sql

#

dump

into

‘backup’

folder

(local

machine),

into

two

text

files

data,

table_structure

mysqldump

-T

backup

–fields-terminated-by=’,’

database-name

-u

root

-pPassword

#

compress

the

dumped

data

on

the

fly

mysqldump

-u

root

-pPassword

–all-databases

|

bzip2

-c

db_dump.bz2

mysqlhotcopy

-

(online,

raw)

將對由

ISAM或MyISAM

表構(gòu)成的數(shù)據(jù)庫做一個完全的物理備份。他的操作方式:對所有表獲取一個只讀鎖=做文件拷貝=釋放鎖。

#

perform

an

online

backup

into

/backup/location

mysqlhotcopy

-u

root

-p

password

database_name

/backup/location

mysqlsnapshot

-

(online,

raw)

一個非常好的工具用來在聯(lián)機(jī)方式下獲得MySQL數(shù)據(jù)庫的一個快照??梢耘渲盟鼇韷嚎s數(shù)據(jù),并/或

為每一個數(shù)據(jù)庫提供一個分離的tar文件。

不過他只適合

MyISAM

類型數(shù)據(jù)庫。

#

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表的任何數(shù)據(jù)庫做聯(lián)機(jī)備份。是一個很好的工具就是要收費.當(dāng)然如果你是一個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)

如果你可以停下數(shù)據(jù)庫,則可以使用這幾個工具直接拷貝數(shù)據(jù)庫目錄下的文件。是獲取數(shù)據(jù)庫快照的最安全方法。

如何備份整個mysql數(shù)據(jù)庫

1、首先打開mysql數(shù)據(jù)庫軟件進(jìn)入軟件主界面。

2、然后再左側(cè)樹里打開自己的的數(shù)據(jù)庫。

3、然后需要點擊需要備份的數(shù)據(jù)庫名。

4、如圖所示為打開數(shù)據(jù)庫后界面。

5、然后需要點擊轉(zhuǎn)儲sql文件選項。

6、然后需要打開選擇存儲文件路徑并選擇保存。

7、點擊保存即可在路徑備份好格式為sql的數(shù)據(jù)庫文件。

mysql如何快速備份

來源:知乎

河南-老宋(志強(qiáng))

問題描述的不是非常的清晰

使用mysqldump備份時一般會會加上--single-transaction參數(shù),這里假設(shè)你是加了這個參數(shù)。

一 加速備份

1 加了single-transaction參數(shù) 備份時 需要先flush table with read lock 這個過程中會有一個鎖表的過程,如果有事務(wù)或語句正在執(zhí)行,沒有結(jié)束,那么備份進(jìn)程會一直等待,并且阻塞別的事務(wù),那么也會影響業(yè)務(wù)。所以要先確認(rèn)備份的時候沒有大的事務(wù)在運行。

具體 single-transaction的加鎖可以參考 我的博客:mysqldump備份時加single-transaction會不會加鎖

2 mysqldump是單進(jìn)程的,沒有辦法并行,但現(xiàn)在機(jī)器的瓶頸多是出現(xiàn)在IO方面,可以使用更了的IO設(shè)備加快速度

3 mysqldump時如果空間夠的話,不要邊壓縮邊備份

二 加速恢復(fù)

1 關(guān)閉binlog:不寫入Binlog會大大的加快數(shù)據(jù)導(dǎo)入的速度

2 innodb_flush_log_at_trx_commit=0

3 更好的配置

建議:

一 如果非要使用邏輯備份,可以考慮mysqldumper, mysqlpump(5.7)這兩個工具去備份,這兩個在備份的時候支持并行操作,mysqldumper還可以對單表進(jìn)行恢復(fù),在只需要恢復(fù)單表的情況下,恢復(fù)速度會大大加快

二 使用物理備份 xtrabackup (open source),MEB(oracle提供,收費): 他們的備份原理是基于mysql crash recover, 備份速度 是和邏輯備份的相差不太大。但是恢復(fù)速度卻有很大的提升。

邏輯備份 備出來的是sql語句文件,恢復(fù)時需要一條一條的執(zhí)行sql,所以恢復(fù)很慢。

而物理備份和還原的速度 相當(dāng)于直接copy文件,所以恢復(fù)的時候性能有很大的提升

并且這兩個軟件還支持并行,效果更好。

邏輯備份最大的優(yōu)點是 備份好的文件經(jīng)壓縮后占用空間較小,最大缺點恢復(fù)太慢

物理備份可以很快的恢復(fù),但是備份好的文件壓縮后占用空間比邏輯備份要大。

使用云,你做為用戶可以不用考慮這些事情。

附:xtrabackup的并行參數(shù)

Parallel local backups

Parallel compression

Parallel encryption

Parallel apply-log

Gary Chen

《MySQL DBA修煉之道》作者。從事數(shù)據(jù)庫領(lǐng)域10多年。

1.一般來說,你只有靠更好的硬件. 軟件沒有大的變動的情況下不可能突破硬件瓶頸;

2. mysqldump默認(rèn)的導(dǎo)出選項已經(jīng)可以了,單進(jìn)程的工具不要期望太多,TommyChiu介紹的工具可試試.;

3. 導(dǎo)出的時候觀察下系統(tǒng),如果是cpu瓶頸,你基本無解.如果是swap問題,看是否是因為內(nèi)存不夠;

4. 恢復(fù)的時候主要是一個參數(shù):innodb_flush_log_at_trx_commit=2

TommyChiu

mk-parallel-dump 試試

網(wǎng)頁標(biāo)題:mysql怎么備份快照 mysql快速備份表
文章鏈接:http://muchs.cn/article36/hgiesg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站企業(yè)網(wǎng)站制作、服務(wù)器托管、面包屑導(dǎo)航網(wǎng)站策劃、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作