數據庫主從配置mysql
主庫配置sql
1.目錄規劃數據庫
根目錄有三個data目錄,分別是data、data一、data2
data 目錄用於數據備份和備份腳本
data1 目錄用於mysql數據目錄
data2 目錄用於binlog和relaylog目錄vim
將相應的磁盤掛載到指定的目錄下並寫入/etc/rc.local 。
/bin/mount /dev/sdb1 /data
/bin/mount /dev/sdc1 /data1
/bin/mount /dev/sdd1 /data2
/usr/local/mysql5/bin/mysqld_safe --defaults-file=/usr/local/mysql5/etc/my.cnf --datadir=/home/mysql/data --user=mysql &網絡
2.創建binlog和relaylog目錄ide
mkdir /data2/mysql_log/binlog/ -p;
mkdir /data2/mysql_log/relaylog –p;
cd /data2;
chown –R mysql.mysql mysql_log;
ln –s /data2/mysql_log /mysql_logui
3.mysql配置文件修改線程
######################################################################
server-id = 1
log-bin=/mysql_log/binlog/bin-log
slave-skip-errors=1062,1205
max_binlog_size = 500M
binlog_cache_size = 128K
relay-log = /mysql_log/relaylog/relaylog
log-slave-updates
expire_logs_days=3
######################################################################日誌
四、重起mysqlserver
關閉數據庫
#mysqladmin -uroot -p shutdown
啓動數據庫
#/usr/local/mysql5/bin/mysqld_safe --defaults-file=/usr/local/mysql5/etc/my.cnf --datadir=/home/mysql/data --user=mysql &
五、數據庫主庫的受權操做
grant replication slave on *.* to 'repl'@'%' identified by '1q2w3e4r';
六、數據庫全庫導出
/usr/local/mysql5/bin/mysqldump --add-drop-table --add-locks --all --extended-insert --quick --no-autocommit --master-data=2 --all-databases --single-transaction --flush-logs -u root --password=1q2w3e4r > back.sql
七、手動刪除bin_log日誌
刪除3天之前的bin_log數據
mysql> purge master logs before date_sub(now(),interval 3 day);
從庫環境配置
1.目錄規劃
根目錄有三個data目錄,分別是data、data一、data2
data 目錄用於數據備份和備份腳本
data1 目錄用於mysql數據目錄
data2 目錄用於binlog和relaylog目錄
將相應的磁盤掛載到指定的目錄下並寫入/etc/rc.local 。
/bin/mount /dev/sdb1 /data
/bin/mount /dev/sdc1 /data1
/bin/mount /dev/sdd1 /data2
/usr/local/mysql5/bin/mysqld_safe --defaults-file=/usr/local/mysql5/etc/my.cnf --datadir=/home/mysql/data --user=mysql &
2.創建binlog和relaylog目錄
mkdir /data2/mysql_log/binlog/ -p;
mkdir /data2/mysql_log/relaylog –p;
cd /data2;
chown –R mysql.mysql mysql_log;
ln –s /data2/mysql_log /mysql_log
3. 修改從庫的配置文件
#######################################################################
server-id = 2
#log-bin=/mysql_log/binlog/bin-log
#slave-skip-errors=1062,1205
#max_binlog_size = 500M
#binlog_cache_size = 128K
#relay-log = /mysql_log/relaylog/relaylog
#log-slave-updates
#expire_logs_days=3
#######################################################################
四、重起mysql
關閉數據庫
#mysqladmin -uroot -p shutdown
啓動數據庫
#/usr/local/mysql5/bin/mysqld_safe --defaults-file=/usr/local/mysql5/etc/my.cnf --datadir=/home/mysql/data --user=mysql &
5. 將主庫的備份文件導入到從庫中
記得註釋掉3中的配置文件,除了server-id。等數據導入完畢,開啓註釋掉的配置文件,並從新啓動數據庫。
#mysql -uroot -p < back.sql 將主庫導出的數據導入從庫
#vim back.sql 查看MASTER_LOG_FILE和MASTER_LOG_POS的位置
-- MySQL dump 10.11
--
-- Host: localhost Database:
-- ------------------------------------------------------
-- Server version 5.0.82-log
-- Position to start replication or point-in-time recovery from
-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000021', MASTER_LOG_POS=98;
mysql> change master to master_host='Mater_IP', master_user='repl',master_password='1q2w3e4r',MASTER_LOG_FILE='bin-log.000021', MASTER_LOG_POS=98;
六、mysql > start slave; 啓動slave從庫
七、Mysql> show processlist;查看運行的線程
八、mysql >show slave status;查看從庫同步狀況
九、手動刪除bin_log日誌
刪除3天之前的bin_log數據
mysql> purge master logs before date_sub(now(),interval 3 day);
其它注意事項:
mysql開啓binlog後日志文件增加比較快,很快佔滿磁盤空間。咱們經過如下兩種方式來刪除這些日誌。
1、設置日誌保留時長expire_logs_days自動刪除
show variables like ‘%expire_logs_days%’;(查看當前日誌保存天數,這個默認是0,也就是logs不過時)
set global expire_logs_days=3; (設置全局的參數,使至臨時生效,數據庫從新啓動後,設置失效,因此須要在my.cnf中配置)
#vim my.cnf
expire_logs_days = 3
2、手動刪除BINLOG (purge binary logs)
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
例如:
PURGE MASTER LOGS TO ‘mysql-bin.010′;
PURGE MASTER LOGS BEFORE ‘2013-09-04 13:00:00′;
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
3、在導出與導入數據的過程當中擔憂網絡異常致使拷貝數據中斷,建議這些操做在screen下進行。
screen -S name 進入screen界面
ctrl + a + d 暫時退出screen
screen -ls 查看當前screen
screen -r name 進入指定screen
pkill screen 殺死全部的會話
4、數據庫導出與導出所需時間(該數據僅供參考,本次實驗環境是KVM)
46GB mysql數據庫 mysqldump出21GB 用時26分鐘21GB 數據導入數據庫 用時04小時