一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

[原]同步文件和數(shù)據(jù)庫(kù) -

 憂郁_小剛 2011-04-11
同步文件和數(shù)據(jù)庫(kù) 陰
linuxing , 13:46 , 數(shù)據(jù)庫(kù) » Mysql , 評(píng)論(0) , 引用(0) , 閱讀(4686) , Via 本站原創(chuàng) | |
 為了防止blog主機(jī)出現(xiàn)故障導(dǎo)致文件丟失,我在整理了另外一臺(tái)后備的服務(wù)器,下面就寫寫如何做它們的同步。
 遇到的問題有兩個(gè):1、主機(jī)是FreeBSD,備機(jī)是Linux,使用的命令和路徑有不同;2、不單要同步文件,而且要同步mysql數(shù)據(jù)。

一、同步文件
 我使用rsync服務(wù),主機(jī)做rsync服務(wù)器,備機(jī)做rsync客戶機(jī)。關(guān)于rsync的詳細(xì)命令可以參考[原]使用rsync命令同步數(shù)據(jù)
主機(jī):
 FreeBSD系統(tǒng),可以使用port安裝rsync,安裝完后的路徑在/usr/local/下。
 修改/usr/local/etc/rsyncd.conf文件,增加:
引用
[test]
path = /usr/local/www/test/
comment = my blog data
uid = www
gid = www
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets

  增加密碼驗(yàn)證文件:

# cat /usr/local/etc/rsyncd.secrets
linuxing:test
# chown root:wheel /usr/local/etc/rsyncd.secrets
# chmod 600 /usr/local/etc/rsyncd.secrets

 啟動(dòng)服務(wù)
# rsync --daemon

# /usr/local/etc/rc.d/rsyncd.sh start

 查看是否已經(jīng)打開服務(wù)(端口873)
# sockstat |grep 873
root     rsync      1147  4  tcp4   *:873                 *:*

# netstat -aln | grep 873
tcp4       0      0  *.873                  *.*                    LISTEN

 確認(rèn)都正常的話,使到rsync服務(wù)開機(jī)自動(dòng)啟動(dòng),在/etc/rc.conf,增加rsyncd_enable="YES"。

備機(jī):
 使用的是紅旗DC Server 4.1 for x86系統(tǒng),默認(rèn)已經(jīng)安裝好rsync客戶端,路徑在/usr/bin/中。
 首先,添加密碼驗(yàn)證文件
# mkdir /etc/rsyncd
# vi /etc/rsyncd/test.secrets
test

 然后,使用命令同步即可:
rsync -azv rsync://linuxing@www./test /var/www/html/test/ --password-file=/etc/rsyncd/test.secrets


二、同步mysql數(shù)據(jù)庫(kù)
 因?yàn)镸ysql服務(wù)使用Cache和緩沖區(qū)來提供對(duì)存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)文件更新的效率,所以文件的內(nèi)容和當(dāng)前數(shù)據(jù)庫(kù)的內(nèi)容可能并不完全一致。而標(biāo)準(zhǔn)的備份程序僅僅包括對(duì)系統(tǒng)和數(shù)據(jù)文件的拷貝,這種對(duì)Mysql數(shù)據(jù)文件的備份并不能完全滿足我們的需要,因?yàn)樗荒鼙WC拷貝的文件在系統(tǒng)崩潰時(shí)能夠正常地使用。
 Mysql中的工具可以對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的備份,而且不會(huì)影響服務(wù)的效率。
 Mysql數(shù)據(jù)庫(kù)版本:5.0
  關(guān)于mysql 5.0使用日志恢復(fù)更詳細(xì)的介紹,可以參考mysql 5.0更新日志的問題

主機(jī):
1) 打開mysql的更新日志記錄
# cp my-huge.cnf /var/db/mysql/my.cnf
# vi /var/db/mysql/my.cnf

 修改/var/db/mysql/my.cnf文件,把
引用
log-bin=mysql-bin

 改為
引用
log-bin=/usr/backups/mysql/mysql-bin

 建立拜訪更新日志的路徑:
# mkdir /usr/backups
# mkdir /usr/backups/mysql
# chown mysql:mysql /usr/backups/mysql

 重新啟動(dòng)mysql服務(wù),使到其記錄更新日志生效:
# /usr/local/etc/rc.d/mysql-server.sh restart

 這樣數(shù)據(jù)庫(kù)的更新日志就會(huì)放在/usr/backups/mysql目錄中,我們下面就會(huì)使用它們。
 為了方便更新,我們?cè)?usr/local/rsyncd.conf中建立第二個(gè)同步節(jié)點(diǎn):
引用
[mysql]
path = /usr/backups/mysql/
comment = my blog mysql data
uid = mysql
gid = mysql
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets

2)備份mysql數(shù)據(jù)庫(kù)
# mysqldump -uroot -ppassword test > /usr/backups/mysql/test.sql
其中password是linuxing登陸mysql的密碼,test是需要備份的數(shù)據(jù)庫(kù);

備機(jī):
1)建立備份服務(wù)器的主數(shù)據(jù)庫(kù)
# mkdir /root/mysql
# mysqladmin -uroot -ppassword create test
# rsync -azv rsync://linuxing@www./mysql /root/mysql --password-file=/etc/rsyncd/test.secrets
# mysql -uroot -ppassword test < /root/mysql/test.sql

 到此,備份服務(wù)器已經(jīng)建立了test數(shù)據(jù)庫(kù),而且內(nèi)容為主服務(wù)器的內(nèi)容。后面,我們只需要使用日志更新即可。
2)使用更新日志建立差異備份
 這樣的操作是經(jīng)常性的,所以我們可以放到計(jì)劃任務(wù)里面。這里我假設(shè)一天備份一次:
# cd /etc/cron.daily
# vi mydata.cond
rsync -az rsync://linuxing@www./exblog /var/www/html/test --password-file=/etc/rsyncd/test.secrets >> /tmp/mydata.log
if [ $? -eq 0 ]; then
 echo `date` "rsync exblog data successfully!" >> /tmp/mydata.log
 chown -R apache.apache /var/www/html/test
 rsync -az rsync://linuxing@www./mysql /root/mysql --password-file=/etc/rsyncd/test.secrets >> /tmp/mydata.log
 if [ $? -eq 0 ]; then
 echo `date` "rsync mysql data successfully!" >> /tmp/mydata.log
 chown -R root.root /root/mysql
 mysql -ulinuxing -ppassword test < /root/mysql/test.sql
   if [ $? -eq 0 ]; then
   echo `date` "exblog backup database recover ok!" >> /tmp/mydata.log
   find /root/mysql -name "mysql-bin.0*"|xargs mysqlbinlog -d test|mysql -ulinuxing -ppassword
     if [ $? -eq 0 ]; then
     echo `date` "test database bin log recover ok!" >> /tmp/mydata.log
     fi
   fi
 fi
fi


※2005-12-26 第一次編寫完成
※2005-12-27 修改使用mysqlbinlog實(shí)現(xiàn)日志更新恢復(fù)
 為了防止blog主機(jī)出現(xiàn)故障導(dǎo)致文件丟失,我在整理了另外一臺(tái)后備的服務(wù)器,下面就寫寫如何做它們的同步。
 遇到的問題有兩個(gè):1、主機(jī)是FreeBSD,備機(jī)是Linux,使用的命令和路徑有不同;2、不單要同步文件,而且要同步mysql數(shù)據(jù)。

一、同步文件
 我使用rsync服務(wù),主機(jī)做rsync服務(wù)器,備機(jī)做rsync客戶機(jī)。關(guān)于rsync的詳細(xì)命令可以參考[原]使用rsync命令同步數(shù)據(jù)
主機(jī):
 FreeBSD系統(tǒng),可以使用port安裝rsync,安裝完后的路徑在/usr/local/下。
 修改/usr/local/etc/rsyncd.conf文件,增加:
引用
[test]
path = /usr/local/www/test/
comment = my blog data
uid = www
gid = www
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets

  增加密碼驗(yàn)證文件:

# cat /usr/local/etc/rsyncd.secrets
linuxing:test
# chown root:wheel /usr/local/etc/rsyncd.secrets
# chmod 600 /usr/local/etc/rsyncd.secrets

 啟動(dòng)服務(wù)
# rsync --daemon

# /usr/local/etc/rc.d/rsyncd.sh start

 查看是否已經(jīng)打開服務(wù)(端口873)
# sockstat |grep 873
root     rsync      1147  4  tcp4   *:873                 *:*

# netstat -aln | grep 873
tcp4       0      0  *.873                  *.*                    LISTEN

 確認(rèn)都正常的話,使到rsync服務(wù)開機(jī)自動(dòng)啟動(dòng),在/etc/rc.conf,增加rsyncd_enable="YES"。

備機(jī):
 使用的是紅旗DC Server 4.1 for x86系統(tǒng),默認(rèn)已經(jīng)安裝好rsync客戶端,路徑在/usr/bin/中。
 首先,添加密碼驗(yàn)證文件
# mkdir /etc/rsyncd
# vi /etc/rsyncd/test.secrets
test

 然后,使用命令同步即可:
rsync -azv rsync://linuxing@www./test /var/www/html/test/ --password-file=/etc/rsyncd/test.secrets


二、同步mysql數(shù)據(jù)庫(kù)
 因?yàn)镸ysql服務(wù)使用Cache和緩沖區(qū)來提供對(duì)存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)文件更新的效率,所以文件的內(nèi)容和當(dāng)前數(shù)據(jù)庫(kù)的內(nèi)容可能并不完全一致。而標(biāo)準(zhǔn)的備份程序僅僅包括對(duì)系統(tǒng)和數(shù)據(jù)文件的拷貝,這種對(duì)Mysql數(shù)據(jù)文件的備份并不能完全滿足我們的需要,因?yàn)樗荒鼙WC拷貝的文件在系統(tǒng)崩潰時(shí)能夠正常地使用。
 Mysql中的工具可以對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的備份,而且不會(huì)影響服務(wù)的效率。
 Mysql數(shù)據(jù)庫(kù)版本:5.0
  關(guān)于mysql 5.0使用日志恢復(fù)更詳細(xì)的介紹,可以參考mysql 5.0更新日志的問題

主機(jī):
1) 打開mysql的更新日志記錄
# cp my-huge.cnf /var/db/mysql/my.cnf
# vi /var/db/mysql/my.cnf

 修改/var/db/mysql/my.cnf文件,把
引用
log-bin=mysql-bin

 改為
引用
log-bin=/usr/backups/mysql/mysql-bin

 建立拜訪更新日志的路徑:
# mkdir /usr/backups
# mkdir /usr/backups/mysql
# chown mysql:mysql /usr/backups/mysql

 重新啟動(dòng)mysql服務(wù),使到其記錄更新日志生效:
# /usr/local/etc/rc.d/mysql-server.sh restart

 這樣數(shù)據(jù)庫(kù)的更新日志就會(huì)放在/usr/backups/mysql目錄中,我們下面就會(huì)使用它們。
 為了方便更新,我們?cè)?usr/local/rsyncd.conf中建立第二個(gè)同步節(jié)點(diǎn):
引用
[mysql]
path = /usr/backups/mysql/
comment = my blog mysql data
uid = mysql
gid = mysql
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets

2)備份mysql數(shù)據(jù)庫(kù)
# mysqldump -uroot -ppassword test > /usr/backups/mysql/test.sql
其中password是linuxing登陸mysql的密碼,test是需要備份的數(shù)據(jù)庫(kù);

備機(jī):
1)建立備份服務(wù)器的主數(shù)據(jù)庫(kù)
# mkdir /root/mysql
# mysqladmin -uroot -ppassword create test
# rsync -azv rsync://linuxing@www./mysql /root/mysql --password-file=/etc/rsyncd/test.secrets
# mysql -uroot -ppassword test < /root/mysql/test.sql

 到此,備份服務(wù)器已經(jīng)建立了test數(shù)據(jù)庫(kù),而且內(nèi)容為主服務(wù)器的內(nèi)容。后面,我們只需要使用日志更新即可。
2)使用更新日志建立差異備份
 這樣的操作是經(jīng)常性的,所以我們可以放到計(jì)劃任務(wù)里面。這里我假設(shè)一天備份一次:
# cd /etc/cron.daily
# vi mydata.cond
rsync -az rsync://linuxing@www./exblog /var/www/html/test --password-file=/etc/rsyncd/test.secrets >> /tmp/mydata.log
if [ $? -eq 0 ]; then
 echo `date` "rsync exblog data successfully!" >> /tmp/mydata.log
 chown -R apache.apache /var/www/html/test
 rsync -az rsync://linuxing@www./mysql /root/mysql --password-file=/etc/rsyncd/test.secrets >> /tmp/mydata.log
 if [ $? -eq 0 ]; then
 echo `date` "rsync mysql data successfully!" >> /tmp/mydata.log
 chown -R root.root /root/mysql
 mysql -ulinuxing -ppassword test < /root/mysql/test.sql
   if [ $? -eq 0 ]; then
   echo `date` "exblog backup database recover ok!" >> /tmp/mydata.log
   find /root/mysql -name "mysql-bin.0*"|xargs mysqlbinlog -d test|mysql -ulinuxing -ppassword
     if [ $? -eq 0 ]; then
     echo `date` "test database bin log recover ok!" >> /tmp/mydata.log
     fi
   fi
 fi
fi


※2005-12-26 第一次編寫完成
※2005-12-27 修改使用mysqlbinlog實(shí)現(xiàn)日志更新恢復(fù)
 為了防止blog主機(jī)出現(xiàn)故障導(dǎo)致文件丟失,我在整理了另外一臺(tái)后備的服務(wù)器,下面就寫寫如何做它們的同步。
 遇到的問題有兩個(gè):1、主機(jī)是FreeBSD,備機(jī)是Linux,使用的命令和路徑有不同;2、不單要同步文件,而且要同步mysql數(shù)據(jù)。

一、同步文件
 我使用rsync服務(wù),主機(jī)做rsync服務(wù)器,備機(jī)做rsync客戶機(jī)。關(guān)于rsync的詳細(xì)命令可以參考[原]使用rsync命令同步數(shù)據(jù)
主機(jī):
 FreeBSD系統(tǒng),可以使用port安裝rsync,安裝完后的路徑在/usr/local/下。
 修改/usr/local/etc/rsyncd.conf文件,增加:
引用
[test]
path = /usr/local/www/test/
comment = my blog data
uid = www
gid = www
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets

  增加密碼驗(yàn)證文件:

# cat /usr/local/etc/rsyncd.secrets
linuxing:test
# chown root:wheel /usr/local/etc/rsyncd.secrets
# chmod 600 /usr/local/etc/rsyncd.secrets

 啟動(dòng)服務(wù)
# rsync --daemon

# /usr/local/etc/rc.d/rsyncd.sh start

 查看是否已經(jīng)打開服務(wù)(端口873)
# sockstat |grep 873
root     rsync      1147  4  tcp4   *:873                 *:*

# netstat -aln | grep 873
tcp4       0      0  *.873                  *.*                    LISTEN

 確認(rèn)都正常的話,使到rsync服務(wù)開機(jī)自動(dòng)啟動(dòng),在/etc/rc.conf,增加rsyncd_enable="YES"。

備機(jī):
 使用的是紅旗DC Server 4.1 for x86系統(tǒng),默認(rèn)已經(jīng)安裝好rsync客戶端,路徑在/usr/bin/中。
 首先,添加密碼驗(yàn)證文件
# mkdir /etc/rsyncd
# vi /etc/rsyncd/test.secrets
test

 然后,使用命令同步即可:
rsync -azv rsync://linuxing@www./test /var/www/html/test/ --password-file=/etc/rsyncd/test.secrets


二、同步mysql數(shù)據(jù)庫(kù)
 因?yàn)镸ysql服務(wù)使用Cache和緩沖區(qū)來提供對(duì)存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)文件更新的效率,所以文件的內(nèi)容和當(dāng)前數(shù)據(jù)庫(kù)的內(nèi)容可能并不完全一致。而標(biāo)準(zhǔn)的備份程序僅僅包括對(duì)系統(tǒng)和數(shù)據(jù)文件的拷貝,這種對(duì)Mysql數(shù)據(jù)文件的備份并不能完全滿足我們的需要,因?yàn)樗荒鼙WC拷貝的文件在系統(tǒng)崩潰時(shí)能夠正常地使用。
 Mysql中的工具可以對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的備份,而且不會(huì)影響服務(wù)的效率。
 Mysql數(shù)據(jù)庫(kù)版本:5.0
  關(guān)于mysql 5.0使用日志恢復(fù)更詳細(xì)的介紹,可以參考mysql 5.0更新日志的問題

主機(jī):
1) 打開mysql的更新日志記錄
# cp my-huge.cnf /var/db/mysql/my.cnf
# vi /var/db/mysql/my.cnf

 修改/var/db/mysql/my.cnf文件,把
引用
log-bin=mysql-bin

 改為
引用
log-bin=/usr/backups/mysql/mysql-bin

 建立拜訪更新日志的路徑:
# mkdir /usr/backups
# mkdir /usr/backups/mysql
# chown mysql:mysql /usr/backups/mysql

 重新啟動(dòng)mysql服務(wù),使到其記錄更新日志生效:
# /usr/local/etc/rc.d/mysql-server.sh restart

 這樣數(shù)據(jù)庫(kù)的更新日志就會(huì)放在/usr/backups/mysql目錄中,我們下面就會(huì)使用它們。
 為了方便更新,我們?cè)?usr/local/rsyncd.conf中建立第二個(gè)同步節(jié)點(diǎn):
引用
[mysql]
path = /usr/backups/mysql/
comment = my blog mysql data
uid = mysql
gid = mysql
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets

2)備份mysql數(shù)據(jù)庫(kù)
# mysqldump -uroot -ppassword test > /usr/backups/mysql/test.sql
其中password是linuxing登陸mysql的密碼,test是需要備份的數(shù)據(jù)庫(kù);

備機(jī):
1)建立備份服務(wù)器的主數(shù)據(jù)庫(kù)
# mkdir /root/mysql
# mysqladmin -uroot -ppassword create test
# rsync -azv rsync://linuxing@www./mysql /root/mysql --password-file=/etc/rsyncd/test.secrets
# mysql -uroot -ppassword test < /root/mysql/test.sql

 到此,備份服務(wù)器已經(jīng)建立了test數(shù)據(jù)庫(kù),而且內(nèi)容為主服務(wù)器的內(nèi)容。后面,我們只需要使用日志更新即可。
2)使用更新日志建立差異備份
 這樣的操作是經(jīng)常性的,所以我們可以放到計(jì)劃任務(wù)里面。這里我假設(shè)一天備份一次:
# cd /etc/cron.daily
# vi mydata.cond
rsync -az rsync://linuxing@www./exblog /var/www/html/test --password-file=/etc/rsyncd/test.secrets >> /tmp/mydata.log
if [ $? -eq 0 ]; then
 echo `date` "rsync exblog data successfully!" >> /tmp/mydata.log
 chown -R apache.apache /var/www/html/test
 rsync -az rsync://linuxing@www./mysql /root/mysql --password-file=/etc/rsyncd/test.secrets >> /tmp/mydata.log
 if [ $? -eq 0 ]; then
 echo `date` "rsync mysql data successfully!" >> /tmp/mydata.log
 chown -R root.root /root/mysql
 mysql -ulinuxing -ppassword test < /root/mysql/test.sql
   if [ $? -eq 0 ]; then
   echo `date` "exblog backup database recover ok!" >> /tmp/mydata.log
   find /root/mysql -name "mysql-bin.0*"|xargs mysqlbinlog -d test|mysql -ulinuxing -ppassword
     if [ $? -eq 0 ]; then
     echo `date` "exblog database bin log recover ok!" >> /tmp/mydata.log
     fi
   fi
 fi
fi


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产在线一区二区三区不卡 | 亚洲伊人久久精品国产| 久久99精品国产麻豆婷婷洗澡| 亚洲国产成人久久一区二区三区| 亚洲黄香蕉视频免费看| 在线观看免费视频你懂的| 大尺度剧情国产在线视频| 青青操精品视频在线观看| 亚洲国产精品久久琪琪| 精品al亚洲麻豆一区| 日韩一级毛一欧美一级乱| 日韩高清中文字幕亚洲| 国产一区二区熟女精品免费| 国产午夜免费在线视频| 青青久久亚洲婷婷中文网| 中文字幕乱码免费人妻av| 黄色国产自拍在线观看| 99久久精品免费看国产高清| 亚洲精品伦理熟女国产一区二区| 超碰在线播放国产精品| 好吊妞视频这里有精品| 亚洲一区二区三区免费的视频| 一区二区三区国产日韩| 国产精品激情对白一区二区| 国产传媒精品视频一区| 免费在线播放不卡视频| 中文字幕一区二区免费| 成人免费观看视频免费| 又大又紧又硬又湿又爽又猛| 好吊妞视频这里有精品| 亚洲国产一级片在线观看 | 黄片美女在线免费观看| 91香蕉国产观看免费人人| 久久一区内射污污内射亚洲| 性欧美唯美尤物另类视频| 中字幕一区二区三区久久蜜桃| 日韩丝袜诱惑一区二区| 免费在线播放一区二区| 在线观看免费午夜福利| 亚洲国产性生活高潮免费视频| 国产成人精品视频一二区|