MySQL 備份和恢復(fù)策略詳細(xì)教程_MySQL教程
推薦:Apache服務(wù)器下使用 ab 命令進行壓力測試ab是Apache超文本傳輸協(xié)議(HTTP)的性能測試工具。 其設(shè)計意圖是描繪當(dāng)前所安裝的Apache的執(zhí)行性能,主要是顯示你安裝的Apache每秒可以處理多少個請求. #ab -v可以看出其基本信息 #ab -n1000 -c10 http://localhost:81/t.php 這是一個基本命令 -n1000表示總請求數(shù)為1000
在數(shù)據(jù)庫表丟失或損壞的情況下,備份你的數(shù)據(jù)庫是很重要的。如果發(fā)生系統(tǒng)崩潰,你肯定想能夠?qū)⒛愕谋肀M可能丟失最少的數(shù)據(jù)恢復(fù)到崩潰發(fā)生時的狀態(tài)。本文主要對MyISAM表做備份恢復(fù)。
備份策略一:直接拷貝數(shù)據(jù)庫文件(不推薦)
備份策略二:使用mysqlhotcopy備份數(shù)據(jù)庫(完全備份,適合小型數(shù)據(jù)庫備份)
備份策略三:使用mysqldump備份數(shù)據(jù)庫(完全+增量備份,適合中型數(shù)據(jù)庫備份)
備份策略四:使用主從復(fù)制機制(replication)(實現(xiàn)數(shù)據(jù)庫實時備份)
備份策略一、直接拷貝數(shù)據(jù)庫文件
直接拷貝數(shù)據(jù)文件最為直接、快速、方便,但缺點是基本上不能實現(xiàn)增量備份。為了保證數(shù)據(jù)的一致性,需要在備份文件前,執(zhí)行以下 SQL 語句:
FLUSH TABLES WITH READ LOCK;
也就是把內(nèi)存中的數(shù)據(jù)都刷新到磁盤中,同時鎖定數(shù)據(jù)表,以保證拷貝過程中不會有新的數(shù)據(jù)寫入。這種方法備份出來的數(shù)據(jù)恢復(fù)也很簡單,直接拷貝回原來的數(shù)據(jù)庫目錄下即可。
備份策略二、使用mysqlhotcopy備份數(shù)據(jù)庫
mysqlhotcopy 是一個 PERL 程序,最初由Tim Bunce編寫。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 來快速備份數(shù)據(jù)庫。它是備份數(shù)據(jù)庫或單個表的最快的途徑,但它只能運行在數(shù)據(jù)庫文件(包括數(shù)據(jù)表定義文件、數(shù)據(jù)文件、索引文件)所在的機器上,并且mysqlhotcopy 只能用于備份 MyISAM表。
本備份策略適合于小型數(shù)據(jù)庫的備份,數(shù)據(jù)量不大,可以采用mysqlhotcopy程序每天進行一次完全備份。
備份策略布置:
(1)、安裝DBD-mysql perl模塊,支持mysqlhotcopy腳本連接到MySQL數(shù)據(jù)庫。
shell> tar -xzvf DBD-mysql-4.005.tar.gz
shell> cd DBD-mysql-4.005
shell> unset LANG
shell> perl Makefile.PL -mysql_config=/usr/local/mysql/bin/mysql_config -testuser=root -testpassword=UserPWD
shell> make
shell> make test
shell> make install
(2)、設(shè)置crontab任務(wù),每天執(zhí)行備份腳本
shell> crontab -e
0 3 * * * /root/MySQLBackup/mysqlbackup.sh >/dev/null 2>&1
每天凌晨3:00執(zhí)行備份腳本。
mysqlbackup.sh注釋:
#!/bin/sh
# Name:mysqlbackup.sh
# PS:MySQL DataBase Backup,Use mysqlhotcopy script.
# Write by:i.Stone
# Last Modify:2007-11-15
#
# 定義變量,請根據(jù)具體情況修改
# 定義腳本所在目錄
scriptsDir=`pwd`
# 數(shù)據(jù)庫的數(shù)據(jù)目錄
dataDir=/usr/local/mysql/data/
# 數(shù)據(jù)備份目錄
tmpBackupDir=/tmp/tmpbackup/
backupDir=/tmp/mysqlbackup/
# 用來備份數(shù)據(jù)庫的用戶名和密碼
mysqlUser=root
mysqlPWD=111111
# 定義eMail地址
# 如果臨時備份目錄存在,清空它,如果不存在則創(chuàng)建它
if [[ -e $tmpBackupDir ]]; then
rm -rf $tmpBackupDir/*
else
mkdir $tmpBackupDir
fi
# 如果備份目錄不存在則創(chuàng)建它
if [[ ! -e $backupDir ]];then
mkdir $backupDir
fi
# 清空MySQLBackup.log
if [[ -s MySQLBackup.log ]]; then
分享:MySQL下的NoSQL解決方案HandlerSocket目前使用MySQL的網(wǎng)站,多半同時使用Memcache作為鍵值緩存。雖然這樣的架構(gòu)極其流行,有眾多成功的案例,但過于依賴Memcache,無形中讓Memcache成為故障的根源: Memcache數(shù)據(jù)一致性的問題:當(dāng)MySQL數(shù)據(jù)變化后,如果不能及時有效的清理掉過期的數(shù)據(jù),就會造成數(shù)據(jù)不一致
- Apache服務(wù)器下使用 ab 命令進行壓力測試
- MySQL下的NoSQL解決方案HandlerSocket
- MySQL引擎 學(xué)習(xí)筆記
- navicat如何連接mysql?navicat連接mysql詳細(xì)圖文教程
- 如何從Windows命令行啟動MySQL
- 你應(yīng)該知道的10個MySQL客戶啟動選項
- MySQL十條特殊技巧
- 用特殊的MySQL運算符獲得更多數(shù)據(jù)比較功能
- MySQL數(shù)據(jù)庫中與 NULL值有關(guān)的幾個問題
- Redis SORT排序命令使用方法詳解
- mysql多表隨機查詢優(yōu)化方案
- 通過frm&ibd 恢復(fù) Mysql ibdata 丟失或損壞的數(shù)據(jù)教程
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
猜你也喜歡看這些
- Sql學(xué)習(xí)第三天——SQL 關(guān)于CTE(公用表達式)的遞歸查詢使用
- 教你SQL Server日志清除的兩種方法
- SQL新手教程:SQL SELECT 語句使用方法
- MySQL的數(shù)據(jù)類型和建庫策略
- order by newid() 各種數(shù)據(jù)庫隨機查詢的方法
- 談Oracle數(shù)據(jù)庫SQL語句性能調(diào)整的基本原則
- SQL Server 2008 新特性 總結(jié)復(fù)習(xí)(一)
- MS SQL SERVER 的一些有用日期
- 解析SQL Server的怪辟:異常與孤立事務(wù)
- 用JavaBean編寫SQL Server數(shù)據(jù)庫連接類
- 相關(guān)鏈接:
- 教程說明:
MySQL教程-MySQL 備份和恢復(fù)策略詳細(xì)教程
。