久久国产av,国产激情欧美有码,亚洲国产综合精品2020,国产无套粉嫩白浆内精

mysql工具編譯功能(好用的mysql備份工具)

2023-04-02 11:42:01 數(shù)碼極客 3015次閱讀 投稿:歸零

本篇文章給大家談?wù)刴ysql工具,以及mysql工具編譯功能對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。

mysql運(yùn)維管理(八):合格的運(yùn)維管理員必須掌握的常用工具

在MySQL日常運(yùn)維工作中,經(jīng)常會(huì)用到各種管理工具,這些工具屬于mysql自帶的管理工具,存儲(chǔ)在mysql目錄下的bin目錄中,例如對(duì)象查看,備份,日志分析等,熟練使用是運(yùn)維開(kāi)發(fā)人員的必備工作,這些工具參數(shù)很多,這里介紹常用選項(xiàng),更多詳細(xì)可參考幫助文件。

在mysql工具集中,管理員使用最頻繁的就是mysql命令了,它是連接數(shù)據(jù)庫(kù)的客戶(hù)端工具,類(lèi)似oracle中的sqlplus,通過(guò)它可以進(jìn)入mysql控制臺(tái)界面。在大部分情況下,使用簡(jiǎn)單,命令語(yǔ)法如下:

常用選項(xiàng):選項(xiàng)一般有兩種表達(dá)方式,一種是"-"+選項(xiàng)單詞縮寫(xiě)和選項(xiàng)值;另一種是“--”+選項(xiàng)的完整單詞“=”選項(xiàng)實(shí)際值。例如我們連接數(shù)據(jù)庫(kù)的兩種命令如下:

myisampack是一個(gè)表壓縮工具,它對(duì)MyISAM存儲(chǔ)引擎表能進(jìn)行高度壓縮,可以很大的節(jié)省磁盤(pán)空間,但是壓縮后的表只能讀,不能寫(xiě),不能進(jìn)行DML操作,所以它的使用場(chǎng)景一般是歸檔 歷史 數(shù)據(jù)。命令如下:

當(dāng)對(duì)一個(gè)壓縮表進(jìn)行增加操作時(shí)會(huì)報(bào)一個(gè)錯(cuò)誤:ERROR 1036 Table is read only,但時(shí)對(duì)查詢(xún)和統(tǒng)計(jì)時(shí)可以正常操作的。

mysqladmin是一個(gè)對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理操作的客戶(hù)端工具,可用來(lái)檢查服務(wù)器是否可用、顯示數(shù)據(jù)庫(kù)版本號(hào)和狀態(tài),還可以直接新增一個(gè)數(shù)據(jù)庫(kù),也可對(duì)數(shù)據(jù)庫(kù)進(jìn)行關(guān)閉,功能和mysql類(lèi)似,它的參數(shù)和mysql差異不大,命令如下:

它還可以修改root密碼,命令如下

MySQL自帶的mysqlbinlog工具的作用是解析二進(jìn)制binlog的日志內(nèi)容,把二進(jìn)制數(shù)據(jù)還原成mysql可以執(zhí)行的SQL語(yǔ)句。我有篇文章專(zhuān)門(mén)介紹該工具的使用,請(qǐng)具體參考:

傳送門(mén):mysql運(yùn)維管理(七):使用Mysqlbinlog工具恢復(fù)增量數(shù)據(jù)

mysqlcheck工具可以用來(lái)檢查和修復(fù)MyISAM存儲(chǔ)引擎的表,還能做優(yōu)化的工作,例如check、repair、analyze、optimize等等功能。具體命令如下:

注意,如果是innodb引擎的表,不能用上述優(yōu)化工具。

mysqldump工具用來(lái)邏輯備份數(shù)據(jù)庫(kù),或者數(shù)據(jù)遷移。該工具是最常用的備份工具。

我有篇文章專(zhuān)門(mén)介紹該工具的使用,請(qǐng)具體參考:

傳送門(mén):mysql運(yùn)維管理(五):掌握MySQLdump邏輯備份工具使用

它是數(shù)據(jù)導(dǎo)入工具,專(zhuān)門(mén)用來(lái)處理mysqldump 加-T選項(xiàng)后導(dǎo)出的文本文件,基本用法很簡(jiǎn)單,命令如下:

客戶(hù)端對(duì)象查找工具,用來(lái)查找數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的表,表中列或者索引,具體使用命令如下:

不加任何選項(xiàng),默認(rèn)顯示所有數(shù)據(jù)庫(kù)。

常用參數(shù):

--count ,用來(lái)顯示數(shù)據(jù)庫(kù)和表的統(tǒng)計(jì)信息,不指定數(shù)據(jù)庫(kù)的話(huà),顯示所有庫(kù)信息

-k或者--keys,用來(lái)顯示指定表中所有索引,例如查看employees庫(kù)中employees表的索引信息,

在使用mysql使用過(guò)程中,會(huì)經(jīng)常出現(xiàn)錯(cuò)誤,錯(cuò)誤信息都會(huì)帶有一個(gè)編碼,具體編碼代表什么意思,就需要perror來(lái)查看。用法很簡(jiǎn)單:

舉個(gè)例子,我們故意寫(xiě)錯(cuò)一個(gè)查詢(xún)語(yǔ)句,例如:

現(xiàn)在有一個(gè)編碼1054,我們可以用perror查看下

結(jié)果跟用工具顯示的內(nèi)容差不多,當(dāng)然第三方工具也會(huì)顯示錯(cuò)誤信息。

本章做了一個(gè)常用工具的使用匯總,并舉例說(shuō)明了基本用法,熟練使用是每個(gè)運(yùn)維人員必修內(nèi)容,當(dāng)然還有很多參數(shù)沒(méi)有一一列舉,可以參考相關(guān)幫助文檔。

mysql有沒(méi)有像git的管理工具

有。mysql是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),該系統(tǒng)有很多像git的管理工具,因此有。工具是原指工作時(shí)所需用的器具。

MySQL 常用備份工具流程解析

下面我們就看一下常見(jiàn)的備份工具,以及目前最流行的 Percona XtraBackup 的備份流程。

MySQL 常見(jiàn)的備份工具主要分為三種:

這里先說(shuō)一下 binlog 備份,它只是把 binlog 又復(fù)制了一份,并且需要在邏輯備份或者物理備份的基礎(chǔ)上才能進(jìn)行數(shù)據(jù)恢復(fù),無(wú)法單獨(dú)進(jìn)行數(shù)據(jù)恢復(fù)。

mysqldump 備份出的文件就是 sql 文件,其核心就是對(duì)每個(gè)表執(zhí)行 select ,然后轉(zhuǎn)化成相應(yīng)的 insert 語(yǔ)句。mysqldump 的備份流程大致如下:

從上面可以看出在 mysqldump 備份期間,備份到某個(gè)數(shù)據(jù)庫(kù)時(shí),該數(shù)據(jù)庫(kù)下的表都會(huì)處于只讀狀態(tài),無(wú)法對(duì)表進(jìn)行任何變更,直到該庫(kù)下的表備份完畢,這對(duì)于線(xiàn)上環(huán)境一般是無(wú)法接受的。若是指定了--master-data或者 --dump-slave 則會(huì)在備份開(kāi)始時(shí)加全局讀鎖(FLUSH TABLES WITH READ LOCK),直到備份結(jié)束。當(dāng)然我們可以選一個(gè)從庫(kù)進(jìn)行備份,這樣就不會(huì)影響線(xiàn)上業(yè)務(wù)。另外使用 mysqldump 備份還有一個(gè)最大的好處,因?yàn)閭浞莩鰜?lái)的是 sql 語(yǔ)句,所以它支持跨平臺(tái)和跨版本的數(shù)據(jù)遷移或者恢復(fù),這是物理備份無(wú)法做到的。

但是也正是因?yàn)?mysqldump 備份出來(lái)的是 sql 語(yǔ)句,在使用時(shí)要更加注意,否則可能會(huì)釀成大禍。例如,使用 mysqldump 常見(jiàn)的問(wèn)題有:

所以使用 mysqldump 時(shí)一定要了解各個(gè)選項(xiàng)的作用,以及確認(rèn)備份出來(lái)的 sql 文件里會(huì)有什么操作,會(huì)對(duì)現(xiàn)有數(shù)據(jù)造成什么影響。

Mydumper 原理與 Mysqldump 原理類(lèi)似,最大的區(qū)別是引入了多線(xiàn)程備份,每個(gè)備份線(xiàn)程備份一部分表,當(dāng)然并發(fā)粒度可以到行級(jí),達(dá)到多線(xiàn)程備份的目的。這里不再單獨(dú)介紹。

Percona XtraBackup 是 Percona 公司開(kāi)發(fā)的一個(gè)用于 MySQL 數(shù)據(jù)庫(kù)物理熱備的備份工具,是基于 InnoDB 的崩潰恢復(fù)功能來(lái)實(shí)現(xiàn)的。它的基本工作原理如下:

Percona XtraBackup 在進(jìn)行恢復(fù)時(shí)會(huì)應(yīng)用拷貝的 redo log ,應(yīng)用已提交的事務(wù),回滾未提交的事物,將數(shù)據(jù)庫(kù)恢復(fù)到一致性狀態(tài)。因?yàn)?Percona XtraBackup 備份出來(lái)的是物理文件,所以在使用備份出的文件進(jìn)行恢復(fù)或者遷移時(shí),不會(huì)像 mysqldump 那樣會(huì)存在很多問(wèn)題。

使用 XtraBackup 備份時(shí)根據(jù)備份參數(shù)設(shè)置不同,對(duì)數(shù)據(jù)庫(kù)的變更會(huì)造成不同程度的影響,具體影響會(huì)在下文分析。

通過(guò)對(duì)比發(fā)現(xiàn),XtraBackup 具有對(duì)數(shù)據(jù)庫(kù)影響小,且能快速恢復(fù)的優(yōu)點(diǎn),在日常備份中是首選;mysqldump 使用相對(duì)更加靈活,但是使用是要注意對(duì)數(shù)據(jù)庫(kù)原有數(shù)據(jù)的影響。

備份策略主要有:全量備份和增量備份,再加上 binlog 備份。

目前去哪兒網(wǎng)數(shù)據(jù)庫(kù)備份主要采用 XtraBackup 全量備份 +binlog 備份。數(shù)據(jù)庫(kù)的重要級(jí)別不同,全量備份的頻率不同。備份程序主要架構(gòu)如下:

說(shuō)明:

Percona XtraBackup 是目前備份 MySQL 使用最廣泛的工具。在備份過(guò)程中,數(shù)據(jù)庫(kù)可以進(jìn)行正常的讀寫(xiě)或者其他變更操作,但是偶爾也會(huì)遇見(jiàn)備份引起的元數(shù)據(jù)鎖,或提交事務(wù)時(shí)發(fā)現(xiàn)被 binlog lock 阻塞等情況。下面我們就看一下 Percona XtraBackup 的備份流程和加鎖時(shí)機(jī)。

說(shuō)明:以下對(duì) Percona XtraBackup 的分析都是基于 2.4.23 的版本,其他版本會(huì)略有差別,但是關(guān)鍵步驟基本相同。

XtraBackup 在備份開(kāi)始時(shí),會(huì)創(chuàng)建一個(gè)后臺(tái)線(xiàn)程,專(zhuān)門(mén)用于拷貝數(shù)據(jù)庫(kù)的 redo log 。首先 XtraBackup 會(huì)掃描每組 redo log 的頭部,找出當(dāng)前的 checkpoint lsn ,然后從該 lsn 后順序拷貝所有的 redo log ,包括后續(xù)新產(chǎn)生的 redo log 。該線(xiàn)程會(huì)一直持續(xù)到將非事務(wù)表完全拷貝完成,才會(huì)安全退出。備份日志輸出中會(huì)記錄拷貝開(kāi)始時(shí)的 checkpoint lsn 。日志輸出如下:

在拷貝ibd文件之前,會(huì)先掃描數(shù)據(jù)庫(kù)的數(shù)據(jù)文件目錄,獲取ibdata1,undo tablespaces及所有的ibd文件列表,并會(huì)記錄相應(yīng)的 space id,因?yàn)樵诨謴?fù)時(shí)需要這些 space id來(lái)找到對(duì)應(yīng) doublewrite buffer里頁(yè)面的內(nèi)容,以及對(duì)應(yīng)的redo log條目。然后開(kāi)始循環(huán)拷貝ibdata1,undo tablespaces及所有的ibd文件。

這里可通過(guò)設(shè)置--parallel進(jìn)行多線(xiàn)程備份,提高物理文件的拷貝效率。不設(shè)置則默認(rèn)為1。

在所有ibd文件拷貝完成后,XtraBackup開(kāi)始備份非ibd文件。這一部分的邏輯比較復(fù)雜,因?yàn)閭浞莘莍bd文件前需要加鎖,具體是否會(huì)加鎖主要受到--no-lock 參數(shù)設(shè)置的影響。

若是設(shè)置了--no-lock為T(mén)RUE,則不會(huì)使用"FLUSH TABLES WITH READ LOCK"去加全局讀鎖,但是若備份過(guò)程中對(duì)non-InnoDB表執(zhí)行了DDL或者DML操作, 這會(huì)導(dǎo)致備份的不一致,恢復(fù)出來(lái)的數(shù)據(jù)就會(huì)有問(wèn)題。所以是不建議將--no-lock為T(mén)RUE,默認(rèn)值是FALSE,也就是在不指定該選項(xiàng)的情況下會(huì)在備份非ibd文件前加全局讀鎖。

下面我們結(jié)合源碼來(lái)看看判斷是否加全局鎖這部分的具體流程邏輯:

流程圖如下:

總結(jié)來(lái)看:

1)若--no-lock為FALSE(默認(rèn)值),則先施加全局讀鎖,然后再進(jìn)行拷貝文件,另外若 --safe-slave-backup 設(shè)置為T(mén)RUE ,則會(huì)在加全局鎖之前關(guān)閉SQL_THREAD線(xiàn)程;

2)若--no-lock為T(mén)RUE,則不會(huì)施加鎖,直接進(jìn)行拷貝文件。

加鎖的邏輯主要由lock_tables_maybe實(shí)現(xiàn),先看一下lock_tables_maybe源代碼,如下:

lock_tables_maybe 函數(shù)簡(jiǎn)化處理流程如下:

1)若備份實(shí)例上已經(jīng)加鎖( LOCK TABLES FOR BACKUP / FLUSH TABLES WITH READ LOCK)或者設(shè)置lock-ddl-per-table 則直接返回;

2)若支持備份鎖,則執(zhí)行LOCK TABLES FOR BACKUP;

3)若不支持備份鎖,則執(zhí)行 FLUSH TABLES WITH READ LOCK。根據(jù)相應(yīng)選項(xiàng)設(shè)置,在執(zhí)行該操作前會(huì)判斷是否有執(zhí)行中的DDL/DML,以及等待超時(shí)時(shí)間,是否kill 對(duì)應(yīng)的未結(jié)束的事務(wù)等。

從上文中我們還看到一個(gè)參數(shù)--safe-slave-backup ,該參數(shù)的主要作用是:

若是在從庫(kù)執(zhí)行的備份操作時(shí)設(shè)置了該參數(shù),可以防止因從庫(kù)同步主庫(kù)操作,而導(dǎo)致XtraBackup長(zhǎng)時(shí)間請(qǐng)求不到鎖而造成備份失敗。

若是設(shè)置了 --safe-slave-backup 為T(mén)RUE,那么會(huì)執(zhí)行"STOP SLAVE SQL_THREAD",并等待Slave_open_temp_tables 為零才開(kāi)始拷貝非 ibd 文件,Slave_open_temp_tables 為零說(shuō)明SQL thread執(zhí)行的事務(wù)都已經(jīng)完成,這樣就能保證備份的一致性。并且此時(shí)也不會(huì)有在執(zhí)行的事務(wù)阻塞 XtraBackup 施加全局鎖。

備份完非 ibd 文件后,將會(huì)備份 slave 和 binlog 信息。

mysql-bin.000004 2004 6b7bda9f-15f0-11ec-ba14-fa163ea367a4:1-83,9841546e-15f0-11ec-9557-fa163e736db4:1

需要注意,在支持備份鎖的實(shí)例上備份,指定了 --slave-info 或--binlog-info 均會(huì)先施加 binlog 備份鎖( LOCK BINLOG FOR BACKUP),這會(huì)阻塞任何會(huì)更改 binlog 位點(diǎn)的操作。

備份完數(shù)據(jù)庫(kù)的所有文件和binlog等相關(guān)信息,備份工作就基本完成了,之后主要執(zhí)行的操作如下:

1)執(zhí)行"FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS",將所有的redo log刷盤(pán);

2)停止redo log復(fù)制線(xiàn)程;

3)釋放全局讀鎖(備份鎖),binlog鎖;

4)開(kāi)啟SQL_THREAD;

5)拷貝ib_buffer_pool和ib_lru_dump文件;

6)生成配置文件backup-my.cnf;

7)打印備份信息到xtrabackup_info文件,這些信息主要包含備份時(shí)使用的參數(shù)信息,備份起止時(shí)間,binlog位點(diǎn)信息,以及將會(huì)回到的lsn點(diǎn)。

下面是xtrabackup_info記錄的部分內(nèi)容:

加鎖對(duì)應(yīng)的函數(shù)是 mdl_lock_tables ,釋放鎖對(duì)應(yīng)的函數(shù)是 mdl_unlock_all,主要是執(zhí)行COMMIT,結(jié)束 mdl_lock_tables 中開(kāi)啟的顯式事務(wù),來(lái)釋放MDL鎖。mdl_lock_tables 流程如下:

上面參數(shù)--lock-ddl和--lock-ddl-per-table是在 Percona XtraBackup 2.4.8 之后添加的,因?yàn)?MySQL 5.7 新增了一個(gè)叫做 Sorted Index Builds 的功能,這會(huì)導(dǎo)致某些 DDL 操作不記錄重做日志而導(dǎo)致備份失敗。使用--lock-ddl或--lock-ddl-per-table 就會(huì)在備份開(kāi)始時(shí)施加鎖,阻止 DDL 操作。

另外,若備份時(shí)指定了--lock-ddl或--lock-ddl-per-table,則在備份非 ibd 文件時(shí)就不是再有加鎖操作。

注意:LOCK TABLES FOR BACKUP和LOCK BINLOG FOR BACKUP 語(yǔ)句只有在支持備份鎖的實(shí)例上才會(huì)執(zhí)行,Percona Server for MySQL已經(jīng)在 5.6.16-64.0 版本開(kāi)始支持這種更加輕量的備份鎖。

Q1: 使用 XtraBackup 備份的文件進(jìn)行恢復(fù)時(shí),恢復(fù)到哪個(gè)時(shí)間點(diǎn)? A1:恢復(fù)到執(zhí)行 LOCK BINLOG FOR BACKUP 或 FLUSH TABLES WITH READ LOCK 的時(shí)間點(diǎn),因?yàn)檫@時(shí)任何改變 binlog 位點(diǎn)的操作都會(huì)被阻塞,redo log和binlog 是一致的。

Q2: 在開(kāi)啟 binlog 的情況下,MySQL 的奔潰恢復(fù)是同時(shí)依賴(lài) binlog 和 redo log 這兩種日志的,為什么XtraBackup 不用備份binlog?

A2:因?yàn)樵趥浞葜杏袌?zhí)行LOCK BINLOG FOR BACKUP/FLUSH TABLES WITH READ LOCK,阻止了任何改變binlog位點(diǎn)的操作,這樣只需要根據(jù)redo log將有commit log 的事務(wù)提交,沒(méi)有commit log的事務(wù)進(jìn)行回滾即可。

Q3: 使用Percona XtraBackup備份完成后redo的位點(diǎn)是和binlog是一樣還是比binlog多一些?

A3:通過(guò)分析備份流程可以發(fā)現(xiàn)備份 binlog 位點(diǎn)信息(加binlog鎖)是發(fā)生在停止 redo 拷貝線(xiàn)程前,而釋放鎖是在停止 redo 拷貝線(xiàn)之后,所以 redo log 會(huì)多一些。鎖住了 binlog 保證了在該 binlog 位點(diǎn)前已經(jīng)提交的事務(wù)的 redo log 都有 commit log 的信息,未提交的事物也就沒(méi)有對(duì)應(yīng)的 commit log 的信息,即便在鎖住 binlog 后有 Innodb 表新的 DML 產(chǎn)生的 redo log ,但是事務(wù)無(wú)法提交,也就沒(méi)有 commit log 的信息的,最后在回放的過(guò)程中對(duì)沒(méi)有 commit log 的事務(wù)進(jìn)行回滾就可以了。

Q4:Percona XtraBackup什么時(shí)候會(huì)加鎖,以及影響加鎖時(shí)間長(zhǎng)度的因素有哪些?

A4:上面進(jìn)行了分析,加鎖操作只在備份非 ibd 文件時(shí)執(zhí)行,加鎖時(shí)長(zhǎng)主要和非事務(wù)表的數(shù)量和大小有關(guān),非事務(wù)表的數(shù)量越多,體積越大,拷貝文件所用的時(shí)間越長(zhǎng),那么加鎖時(shí)間也就越長(zhǎng)。也會(huì)和 redo log 生成的速度有關(guān),只是 redo log 刷盤(pán)受到多個(gè)因素的影響,未及時(shí)刷盤(pán)的 redo log 一般很小。

Q5:Percona XtraBackup 和mysqldump選擇哪個(gè)更好?

A5:通過(guò)上面的的解析,若是整個(gè)實(shí)例備份,首先選擇 Percona XtraBackup ,因?yàn)閷?duì)數(shù)據(jù)庫(kù)的影響最小。若只是備份某個(gè)庫(kù)表,這個(gè)就要視數(shù)據(jù)量而定,若數(shù)據(jù)量不大可以使用 mysqldump 。注意,對(duì)數(shù)據(jù)庫(kù)做備份時(shí)最好選擇業(yè)務(wù)連接最少的從庫(kù),因?yàn)閭浞菀矔?huì)消耗一定的資源,避免影響業(yè)務(wù)。

好用的mysql備份工具

我以前備份都使用mysqldump 導(dǎo)成文本文件便于存放 但是速度很慢的 最快的備份方法當(dāng)然是直接把數(shù)據(jù)目錄copy一份了 但是一般來(lái)說(shuō) 都要關(guān)閉 MySQL的服務(wù)才能做 不然在你copy的時(shí)候剛好還有人讀寫(xiě)表那麻煩就大了 這次朋友介紹我使用mysqlhotcopy 就相當(dāng)于上面 不過(guò)他可以熱備份 他備份非???我測(cè)試一個(gè) G的mysql他備份的時(shí)間在 分鐘內(nèi)完成

下面是它的介紹

mysqlhotcopy是一個(gè)Perl腳本 最初由Tim Bunce編寫(xiě)并提供 它使用LOCK TABLES FLUSH TABLES和cp或scp來(lái)快速備份數(shù)據(jù)庫(kù) 它是備份數(shù)據(jù)庫(kù)或單個(gè)表的最快的途徑 但它只能運(yùn)行在數(shù)據(jù)庫(kù)目錄所在的機(jī)器上 mysqlhotcopy只用于備份MyISAM 它運(yùn)行在Unix和NetWare中

使用方法見(jiàn)下面的腳本 加入crotab中吧

#!/bin/sh??? # Name:mysqlbackup sh??? # PS:MySQL DataBase Backup Use mysqlhotcopy script ??? # Last Modify: ??? # 定義變量 請(qǐng)根據(jù)具體情況修改??? # 定義腳本所在目錄??? scriptsDir=`pwd`

# 數(shù)據(jù)庫(kù)的數(shù)據(jù)目錄??? dataDir=/var/lib/mysql

# 數(shù)據(jù)備份目錄??? tmpBackupDir=/tmp/mysqlblackup??? backupDir=/backup/mysql

# 用來(lái)備份數(shù)據(jù)庫(kù)的用戶(hù)名和密碼??? mysqlUser=root??? mysqlPWD= you password

# 如果臨時(shí)備份目錄存在 清空它 如果不存在則創(chuàng)建它??? if [[ e $tmpBackupDir ]]; then????? rm rf $tmpBackupDir/*??? else????? mkdir $tmpBackupDir??? fi

# 如果備份目錄不存在則創(chuàng)建它??? if [[ ! e $backupDir ]];then????? mkdir $backupDir??? fi

# 得到數(shù)據(jù)庫(kù)備份列表 在此可以過(guò)濾不想備份的數(shù)據(jù)庫(kù)??? for databases in `find $dataDir type d | \????? sed e s/\/var\/lib\/mysql\/// | \????? sed e s/test// `; do????? if [[ $databases == ]]; then??????? continue????? else

# 備份數(shù)據(jù)庫(kù)??? /usr/bin/mysqlhotcopy user=$mysqlUser password=$mysqlPWD q $databases $tmpBackupDir??????? dateTime=`date +%Y %m %d %H:%M:%S `??????? echo $dateTime Database:$databases backup success! MySQLBackup log????? fi??? done

# 壓縮備份文件??? date=`date I`??? cd $tmpBackupDir??? tar czf $backupDir/mysql $date tar gz /

#End完成

加入到crontab中設(shè)置每周 運(yùn)行??? * * /backup/blackup sh

注意:恢復(fù)數(shù)據(jù)庫(kù)到備份時(shí)的狀態(tài)

mysqlhotcopy 備份出來(lái)的是整個(gè)數(shù)據(jù)庫(kù)目錄 使用時(shí)可以直接拷貝到 mysqld 指定的 datadir (在這里是 /var/lib/mysql/)目錄下即可 同時(shí)要注意權(quán)限的問(wèn)題 如下例

shell cp rf db_name /var/lib/mysql/

shell chown R mysql:mysql /var/lib/mysql/ (將 db_name 目錄的屬主改成 mysqld 運(yùn)行用戶(hù))

本套備份策略只能恢復(fù)數(shù)據(jù)庫(kù)到最后一次備份時(shí)的狀態(tài) 要想在崩潰時(shí)丟失的數(shù)據(jù)盡量少應(yīng)該更頻繁的進(jìn)行備份 要想恢復(fù)數(shù)據(jù)到崩潰時(shí)的狀態(tài)請(qǐng)使用主從復(fù)制機(jī)制(replication)

小技巧:

不想寫(xiě)密碼在shell中的話(huà) 可以在root的home目錄下建立一個(gè)f文件 以便讓mysqlhotcopy從中讀取用戶(hù)名/密碼 ??? [mysqlhotcopy]??? user=root??? password=YourPassword??? 然后安全起見(jiàn) chmod一下 ??? chmod ~/f

附:mysqlhotcopy常用參數(shù)

·???? allowold??如果目標(biāo)存在不放棄(加上一個(gè)_old后綴重新命名它) ??? ·???? checkpoint=db_name tbl_name?在指定的db_name tbl_name插入檢查點(diǎn)條目 ??? ·???? debug???啟用調(diào)試輸出 ??? ·???? dryrun n??報(bào)告動(dòng)作而不執(zhí)行它們 ??? ·???? flushlog??所有表鎖定后刷新日志 ??? ·???? keepold???完成后不刪除以前(重新命名的)的目標(biāo) ??? ·???? method=mand??復(fù)制方法(cp或scp) ??? ·???? noindices??備份中不包括全部索引文件 這樣使備份更小 更快 可以在以后用myisamc rq重新構(gòu)建索引 ??? ·???? password=password p password?當(dāng)連接服務(wù)器時(shí)使用的密碼 請(qǐng)注意該選項(xiàng)的密碼值是不可選的 不象其它MySQL程序 ??? ·???? port=port_num P port_num?當(dāng)連接本地服務(wù)器時(shí)使用的TCP/IP端口號(hào) ??? ·???? quiet q??除了出現(xiàn)錯(cuò)誤時(shí)保持沉默 ??? ·???? regexp=expr??復(fù)制所有數(shù)據(jù)庫(kù)名匹配給出的正則表達(dá)式的數(shù)據(jù)庫(kù) ??? ·???? socket=path S path?用于連接的Unix套接字文件 ??? ·???? suffix=str??所復(fù)制的數(shù)據(jù)庫(kù)名的后綴 ??? ·???? tmpdir=path??臨時(shí)目錄(代替/tmp) ??? ·???? user=user_name u user_name?當(dāng)連接服務(wù)器時(shí)使用的MySQL用戶(hù)名

lishixinzhi/Article/program/MySQL/201311/29401

mysql數(shù)據(jù)庫(kù)管理工具有哪些

MySQL 管理工具

本回答來(lái)自:MySQL 管理工具_(dá)樹(shù)懶學(xué)堂

MySQL的標(biāo)準(zhǔn)安裝版本中沒(méi)有圖形化管理工具,雖然MySQL幾乎所有的任務(wù)都可以用命令提示符下的mysqladmin和mysql命令來(lái)完成,也會(huì)對(duì)MySQL留下“界面不友好”的壞印象,為解決這個(gè)問(wèn)題,MySQL開(kāi)發(fā)了多種圖形化的管理工具。下面介紹3個(gè)使用比較廣泛的MySQL圖形化管理工具。

Navicat for MySQL

Navicat for MySQL基于Windows平臺(tái),為MySQL量身定做,提供類(lèi)似于MySQL的用戶(hù)管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫(kù)設(shè)計(jì)者、管理者的大腦,降低開(kāi)發(fā)成本,為用戶(hù)帶來(lái)更高的開(kāi)發(fā)效率。

Navicat for MySQL使用了極好的圖形用戶(hù)界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。用戶(hù)可完全控制MySQL數(shù)據(jù)庫(kù)和顯示不同的管理資料,包括管理用戶(hù)和控制訪(fǎng)問(wèn)權(quán)限,可方便的將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫(kù)中(Local to Remote、Remote to Remote、Remote to Local)進(jìn)行數(shù)據(jù)備份。

Navicat for MySQL支持Unicode,以及本地或遠(yuǎn)程MySQL服務(wù)器多連接,用戶(hù)可瀏覽數(shù)據(jù)庫(kù)、建立和刪除數(shù)據(jù)庫(kù)、編輯數(shù)據(jù)、建立或執(zhí)行SQL queries、管理用戶(hù)權(quán)限(安全設(shè)定)、將數(shù)據(jù)庫(kù)備份/還原、導(dǎo)入/導(dǎo)出數(shù)據(jù)(支持CSV、TXT、DBF和XML數(shù)據(jù)格式)等。

phpMyAdmin

phpMyAdmin是基于php環(huán)境的web端管理工具,所以是通過(guò)瀏覽器來(lái)執(zhí)行具體的MySQL操作,而非客戶(hù)端軟件。最大的優(yōu)點(diǎn)就是便捷性。

phpMyAdmin可以運(yùn)行在各種版本的PHP及MySQL下,可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,如創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)、數(shù)據(jù)表及數(shù)據(jù)等。安裝完hpMyAdmin后,在瀏覽器中輸入phpMyAdmin訪(fǎng)問(wèn)地址,如,即可打開(kāi)登錄頁(yè)面

MySQL Administrator

MySQL Administrator是眾多MySQL圖形化管理工具中應(yīng)用最廣泛的一種,是用來(lái)執(zhí)行數(shù)據(jù)庫(kù)管理操作的程序,以及用來(lái)監(jiān)視和管理MySQL實(shí)例的數(shù)據(jù)庫(kù)、用戶(hù)的權(quán)限和數(shù)據(jù)的實(shí)用程序,比如MySQL服務(wù)的配置、控制、開(kāi)啟和關(guān)閉,還可用于管理用戶(hù)和連接數(shù)據(jù)庫(kù),執(zhí)行數(shù)據(jù)備份和其他的一些管理任務(wù)。它有這幾個(gè)優(yōu)點(diǎn):

(1)它的圖形化的用戶(hù)界面為用戶(hù)提供了非常直觀的接口。

(2)它提供了較好的全局設(shè)置,這對(duì)于MySQL服務(wù)器的可執(zhí)行性、可信度和安全性是相當(dāng)重要的。

(3)它提供了圖形化的性能顯示,使中止服務(wù)器和更改服務(wù)器的設(shè)置更加簡(jiǎn)單。

聲明:各百科所有作品(圖文、音視頻)均由用戶(hù)自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流。若您的權(quán)利被侵害,請(qǐng)聯(lián)系: [email protected]