分类: Mysql/postgreSQL
2010-11-24 09:20:05
http://blog.longwin.com.tw/archives/000416.html
使用mysqlhotcopy熱備份MySQL資料庫
為了找這個東西.. 不小心找到剛剛貼的兩個好站 ~~
不過總算找到我要的東西了~~ XD
以下內容轉載自: 使用mysqlhotcopy熱備份MySQL資料庫
一提起mysql的備份,大家最多想到的就是mysqldump,不過導成文字檔案雖然便於存放,但是速度很慢的。最快的備份方法自然是直接把資料
目錄copy一份了。但是一般來說,都要關閉MySQL的服務才能做,不然在你copy的時候剛好還有人讀寫表那麻煩就大了。下面簡單介紹一下我試用
mysql自帶的熱備份工具mysqlhotcopy的一些心得。~
我是用root用戶完成備份操作的。(是不是應該使用mysql用戶來做操作更安全一些?待嘗試)
首先要在root的home目錄下建立一個.my.cnf檔,以便讓mysqlhotcopy從中讀取用戶名/密碼。
[mysqlhotcopy]
user=root
password=YourPasswordGoesHere
然後安全起見,chmod一下。
chmod 600 ~/.my.cnf
mysqlhotcopy可以把執行的操作記錄入資料庫中,所以我建立了下面這個DB/Table:
CREATE DATABASE `dbinfo`;
USE dbinfo;
CREATE TABLE `checkpoint` (
`time_stamp` timestamp(14) NOT NULL,
`src` varchar(32) NOT NULL default '',
`dest` varchar(60) NOT NULL default '',
`msg` varchar(255) NOT NULL default '',
PRIMARY KEY (`time_stamp`)
) TYPE=MyISAM;
然後建立一個備份目錄。如果不指定備份目錄,mysqlhotcopy會在原來的位置備份(Redhat下面是/var/lib/mysql/),只不過目錄名後面加上了 _old 這個尾碼。
好了一切準備妥當,測試一下:
mysqlhotcopy --checkpoint dbinfo.checkpoint --addtodest db_douzi_org /var/db_backup
簡單說明一下:neobilly2010-11-24 21:23:45
CREATE TABLE `graph_path` (
`id` int(11) NOT NULL auto_increment,
`term1_id` int(11) NOT NULL,
`term2_id` int(11) NOT NULL,
`relationship_type_id` int(11) default NULL,
`distance` int(11) default NULL,
`relation_distance` int(11) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `graph_path0` (`id`),
KEY `relationship_typ