程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL二進制備份與AB復制(初學)

MySQL二進制備份與AB復制(初學)

編輯:關於MYSQL數據庫

MySQLd_safe --log-bin----打開二進制備份命令vim /etc/my.cnf----也可以修改配置文件進行開啟二進制備份日志
[MySQLd]
log-bin=MySQL-bin
server-id=1[root@death var]# MySQLd_safe --log-bin &
[1] 5741
100422 11:40:22 mysqld_safe Logging to '/usr/local/MySQL/var/death.uplooking.com.err'.
100422 11:40:23 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var[root@death var]# MySQLbinlog death-bin.000001
查看二進制的日志[root@death var]# mysqlbinlog --stop-date="10-04-22 11:45:35" stu254-bin.000002 | MySQL -u root -pjindong
用時間限制來顯示一部分的數據,並且用管道傳給數據庫(相當於恢復)。[root@death var]# mysqlbinlog --start-date="10-04-22 12:11:20" --stop-date="10-04-22 12:11:43" death-bin.000001 | MySQL -u root -p   
指定時間來恢復數據[root@death var]# mysqlbinlog --start-position=357 --stop-position=539 death-bin.000001 | MySQL -u root -p
指定點來恢復,比指定時間好用。====================================================================計劃任務備份
[root@death var]# vim /etc/my.cnf
[MySQLd]
log-bin=MySQL-bin     -----------等號後面的東西是以後建立二進制目錄的名字。也可以不寫,有默認值的。這樣
重啟一下MySQL以後,目錄:
/usr/local/MySQL/var
下就會生成兩個日志文件了
[root@death var]# ls
a1                       death.uplooking.com.pid  ibdata1      ib_logfile1  MySQL-bin.000001  PHPbb  work1
death.uplooking.com.err  discuss                  ib_logfile0  mysql        MySQL-bin.index   work   yiti
然後就可以用這個日志來恢復數據庫了。[root@death var]# mysqladmin flush-logs -u root -p    ------可以產生一個新的日志文件[root@death var]# MySQLdump --delete-master-logs --all-databases -u root -p > /root/sql.bak.sql----做一個完全備份,並且把舊的二進制日志都刪除掉,
並且產生一個新的日志文件。這個可以寫一個計劃任務,每周日晚上十二點進行完全備份
[root@death data]# vim MySQL.sh
/usr/local/mysql/bin/MySQLdump --delete-master-logs --all-databases -u root -pjindong > /data/baking,sql`date +%F`這個可以寫一個計劃任務,每周一到周六進行增量備份。
[root@death data]# vim update.sh
/usr/local/mysql/bin/MySQLadmin flush-logs
if [ $?=0 ]
        then
mv /usr/local/mysql/var/mysql-bin.`ls /usr/local/mysql/var/MySQL-bin.0* | awk -F. '{print $2}' | sort -n | head -l` /data
        else
                exit
fi
=====================================================

AB復制(主從復制)---可以減輕一個服務器的負擔。
復制主服務器的二進制文件到從服務器
主服務器創建一個帳號 給它一個復制的權限:replicationg slave的權限。從服務器用這個帳號遠程登錄主服務器,然後進行復制備份。一、[root@death var]# vim /etc/my.cnf
[MySQLd]
log-bin=MySQL-bin
server-id=1
二、
MySQL> grant replication slave on *.* to [email protected] identifIEd by 'jindong';---首先創建一個帳號,給它一個可以復制的權限。
三、
MySQLdump備份一下all.sql.2012-04-22,然後scp到從的電腦裡
從;
一、
MySQL -uroot -p123 < all.sql.2010-04-22
二、
修改/etc/my.cnf配置文件
[MySQLd]
server-id=2
master-host=192.168.1.233------------主服務器的IP地址
master-user=bak    ----------------主服務器創建的用戶
master-passWord=jindong    -----------用戶的密碼
重新啟動一下MySQL
cd /usr/local/MySQL/var
ls一下會看到新產生的文件
relay-log.info
stu24-relay-bin.*
master.info登錄從服務器
之後從服務器的數據庫帳號密碼都會被更新成主機的帳號密碼
MySQL -u root -pjindong之後在主數據庫創建一個數據庫或者表什麼的然後在從服務器查看,會發現主服務器創建的表也會同步更新過來。如果沒有進行同步更新有可能是sql線程沒有開啟
輸入一個命令:slave start; 來開啟線程就好了。MySQL> show master status;----------查看主的信息的存貯點;
MySQL> show slave status;-----------查看從機的讀取點; -
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved