RedHatLinux下實現MySQL資料庫映象(轉)
RedHatLinux下實現MySQL資料庫映象(轉)[@more@] MySQL從3.23.15版本以後提供資料庫複製功能,利用該功能可以實現兩個資料庫同步,主從模式,互相備份模式的功能。實現資料同步備份。
資料庫同步複製功能的設定都在mysql的設定檔案中體現。mysql的配置檔案(一般是my.cnf) 在Linux環境下在/etc/my.cnf 或者在mysql使用者的home目錄下面的my.cnf.
設定方法:
作業系統: RedHat Linux 9 mysql:mysql-standard-4.0.18-pc-linux-i686.tar.gz
A Server: 192.168.0.1 主伺服器master
B Server: 192.168.0.10 副伺服器slave
A上已安裝好MySQL且已有資料庫,在B上安裝mysql-standard-4.0.18, 安裝步驟可解壓後按INSTALL-BINARY上方法安裝mysql,我將其然後啟動 mysql.
A伺服器設定
#mysql –u root –p Master開放一個賬號dbbackup密碼123456給IP:192.168.0.10有檔案處理的許可權. mysql>GRANT ALL ON *.* TO dbbackup@192.168.0.10 IDENTIFIED BY‘123456’ mysql>exit
#mysqladmin –u root –p shutdown
備份Master所有資料庫..通常都用tar指令. (注意:tar的時候,MySQL是要在stop情況下)
#tar zcvf /tmp/mysql.tar.gz /usr/local/src/mysql/data
在A機器上修改/etc/my.cnf
[mysqld]
log-bin (生成.index檔案。#設定需要記錄log 可以設定log-bin=c:mysqlbakmysqllog 設定日誌檔案的目錄,
#其中mysqllog是日誌檔案的名稱,mysql將建立不同副檔名,文 件名為mysqllog的幾個日誌檔案。)
server-id=1
sql-bin-update-same
binlog-do-db=forimage (#指定需要日誌的資料庫為forimage)
啟動A伺服器mysql: Bin/mysqld-safe –user=mysql server-id=1 & (要指定server-id)
此時由於加入log-bin引數,因此開始生成index檔案,在/usr/local/src/mysql/data目錄下有.index檔案。檔案紀錄資料庫的異動log. #mysql –u root –p 用show master status 命令看日誌情況。
B伺服器設定
設定/etc/my.cnf
[mysqld]
master-host=192.168.0.1
master-user=dbbackup (#同步使用者帳號)
master-password=123456
master-port=3306
server-id=2
master-connect-retry=60 (預設重試間隔為60秒 )
replicate-do-db=forimage (只對資料庫forimage更新 )
log-slave-updates
copy A上的/tmp/mysql.tar.gz 到B上的MySQL安裝目錄的data/下,並解壓縮覆蓋data/
#chown –R mysql /usr/local/src/mysql/data/
#cd /usr/local/src/mysql/
#chown –R root:mysql .
重啟B伺服器的mysql: #bin/mysqladmin –u root shutdown #bin/mysql-safe –user=mysql server-id=2 & (要指定server-id,與my.cnf對應)
show slave status看同步配置情況。
#bin/mysql –u root
則在/usr/local/src/mysq/data/目錄會出現master.info,此檔案紀錄了Master MySQL server的資訊. 如有要修改相關slave的配置要先刪除該檔案. 否則修改的配置不能生效。
狀況測試:
1.A跟B網路及服務都正常情況下,由A端變化資料後,到B端瀏覽資料,檢查是否有資料變化。
2.模擬B當機,或是B不一定需要一直跟A有連線.將由A端變化資料後,到B端瀏覽資料,B點應該是沒有資料變化的。
雙機互備模式
如果在A加入slave設定,在B加入master設定,則可以做B->A的同步。
在A的配置檔案中 mysqld 配置項加入以下設定:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置檔案中 mysqld 配置項加入以下設定:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:當有錯誤產生時*.err日誌檔案。同步的執行緒退出,當糾正錯誤後要讓同步機制進行工作,執行slave start
重啟AB機器,則可以實現雙向的熱備。
測試:
向B批次插入大資料量表AA(1872000)條, A資料庫每秒鐘可以更新2500條資料。
資料庫同步複製功能的設定都在mysql的設定檔案中體現。mysql的配置檔案(一般是my.cnf) 在Linux環境下在/etc/my.cnf 或者在mysql使用者的home目錄下面的my.cnf.
設定方法:
作業系統: RedHat Linux 9 mysql:mysql-standard-4.0.18-pc-linux-i686.tar.gz
A Server: 192.168.0.1 主伺服器master
B Server: 192.168.0.10 副伺服器slave
A上已安裝好MySQL且已有資料庫,在B上安裝mysql-standard-4.0.18, 安裝步驟可解壓後按INSTALL-BINARY上方法安裝mysql,我將其然後啟動 mysql.
A伺服器設定
#mysql –u root –p Master開放一個賬號dbbackup密碼123456給IP:192.168.0.10有檔案處理的許可權. mysql>GRANT ALL ON *.* TO dbbackup@192.168.0.10 IDENTIFIED BY‘123456’ mysql>exit
#mysqladmin –u root –p shutdown
備份Master所有資料庫..通常都用tar指令. (注意:tar的時候,MySQL是要在stop情況下)
#tar zcvf /tmp/mysql.tar.gz /usr/local/src/mysql/data
在A機器上修改/etc/my.cnf
[mysqld]
log-bin (生成.index檔案。#設定需要記錄log 可以設定log-bin=c:mysqlbakmysqllog 設定日誌檔案的目錄,
#其中mysqllog是日誌檔案的名稱,mysql將建立不同副檔名,文 件名為mysqllog的幾個日誌檔案。)
server-id=1
sql-bin-update-same
binlog-do-db=forimage (#指定需要日誌的資料庫為forimage)
啟動A伺服器mysql: Bin/mysqld-safe –user=mysql server-id=1 & (要指定server-id)
此時由於加入log-bin引數,因此開始生成index檔案,在/usr/local/src/mysql/data目錄下有.index檔案。檔案紀錄資料庫的異動log. #mysql –u root –p 用show master status 命令看日誌情況。
B伺服器設定
設定/etc/my.cnf
[mysqld]
master-host=192.168.0.1
master-user=dbbackup (#同步使用者帳號)
master-password=123456
master-port=3306
server-id=2
master-connect-retry=60 (預設重試間隔為60秒 )
replicate-do-db=forimage (只對資料庫forimage更新 )
log-slave-updates
copy A上的/tmp/mysql.tar.gz 到B上的MySQL安裝目錄的data/下,並解壓縮覆蓋data/
#chown –R mysql /usr/local/src/mysql/data/
#cd /usr/local/src/mysql/
#chown –R root:mysql .
重啟B伺服器的mysql: #bin/mysqladmin –u root shutdown #bin/mysql-safe –user=mysql server-id=2 & (要指定server-id,與my.cnf對應)
show slave status看同步配置情況。
#bin/mysql –u root
則在/usr/local/src/mysq/data/目錄會出現master.info,此檔案紀錄了Master MySQL server的資訊. 如有要修改相關slave的配置要先刪除該檔案. 否則修改的配置不能生效。
狀況測試:
1.A跟B網路及服務都正常情況下,由A端變化資料後,到B端瀏覽資料,檢查是否有資料變化。
2.模擬B當機,或是B不一定需要一直跟A有連線.將由A端變化資料後,到B端瀏覽資料,B點應該是沒有資料變化的。
雙機互備模式
如果在A加入slave設定,在B加入master設定,則可以做B->A的同步。
在A的配置檔案中 mysqld 配置項加入以下設定:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置檔案中 mysqld 配置項加入以下設定:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:當有錯誤產生時*.err日誌檔案。同步的執行緒退出,當糾正錯誤後要讓同步機制進行工作,執行slave start
重啟AB機器,則可以實現雙向的熱備。
測試:
向B批次插入大資料量表AA(1872000)條, A資料庫每秒鐘可以更新2500條資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-945872/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux作業系統下建立mysql映象資料庫(轉)Linux作業系統MySql資料庫
- Excel資料庫轉MySQL,實現查詢Excel資料庫MySql
- Linux下用PHP實現XML備份Mysql資料庫(轉)LinuxPHPXMLMySql資料庫
- MSSQL資料庫映象在Oracle中的實現方法SQL資料庫Oracle
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- golang實現mysql資料庫備份GolangMySql資料庫
- 資料庫映象和故障轉移群集資料庫
- 實現MySQL資料庫的實時備份MySql資料庫
- 【JDBC的實現步驟……MySQL資料庫】JDBCMySql資料庫
- mysql資料庫實現主從複製MySql資料庫
- 資料庫映象和資料庫快照資料庫
- 資料庫系列——基於Canal實現MySQL增量資料同步資料庫MySql
- [資料庫] Navicat for MySQL事件Event實現資料每日定期操作資料庫MySql事件
- crontab 備份docker mysql映象的資料庫不生效DockerMySql資料庫
- php實現mysql資料庫隨機重排例子PHPMySql資料庫隨機
- 部署otter實現mysql主備資料同步(下)MySql
- [轉]Mysql資料庫相關資料索引MySql資料庫索引
- 已為資料庫映象啟動資料庫,必須刪除資料庫映象才能刪除該資料庫資料庫
- SQL Server 資料庫映象SQLServer資料庫
- 資料庫映象 (SQL Server)資料庫SQLServer
- 資料庫映象和跨資料庫事務資料庫
- rac環境下standby資料庫的實現資料庫
- MySQL資料庫事務隔離性的實現MySql資料庫
- mybatis實現MySQL資料庫的增刪改查MyBatisMySql資料庫
- Oracle元件實現動態Web資料庫(轉)Oracle元件Web資料庫
- ASP中使用MYSQL資料庫(轉)MySql資料庫
- zabbix和mysql performance monitor模板實現mysql資料庫的監控MySqlORM資料庫
- 資料庫系列:InnoDB下實現高併發控制資料庫
- 複製和資料庫映象資料庫
- 利用python實現mysql資料庫向sqlserver的同步PythonMySql資料庫Server
- No-PDO-Models-MySQL資料庫層抽象類 – 實現MySql資料庫抽象
- 怎樣實現MySQL資料庫雙機熱備份MySql資料庫
- 使用EF 連線 資料庫 SQLserver、MySql 實現 CodeFirst資料庫ServerMySql
- 下載和安裝MySQL資料庫MySql資料庫
- Linux下安裝Mysql資料庫LinuxMySql資料庫
- 實踐sqlserver2005資料庫映象功能SQLServer資料庫
- MySQL資料庫實現高可用架構之MHA的實戰MySql資料庫架構
- MySQL基礎入門學習教程:mysql資料庫的實現原理MySql資料庫