そのため、BitrixVMとBitrix24システムが展開された2つのサーバーがあります。 最初に行うことは、両方のノードでデータの同期を維持し、データベース間とbitrixファイル間の両方を同期することです。
Bitrix1-172.16.10.1
Bitrix2-172.16.10.2
必ず両方のマシンのhostsファイルに行を書いてください:
172.16.10.1 bitrix1 172.16.10.2 bitrix2
データベースにはマスターとマスターのデータ複製を使用します。 これを行うには、 / etc / my.cnfファイルの設定を調整する必要があります
独自の設定を上書きするには、Bitrixは/etc/mysql/conf.d/z_bx_custom.cnfファイルを作成することをお勧めします。このファイルで変更を行う必要があります。
[root@bitrix1 /]# cat /etc/my.cnf # # Basic mysql configuration. Use bvat for advanced settings. # Parameters set by bvat are stored in /etc/mysql/conf.d/bvat.cnf # If you want to change any parameter, you'll have to redefine it in #/etc/mysql/conf.d/z_bx_custom.cnf #
推奨事項に従ってファイルを作成します。
touch /etc/mysql/conf.d/z_bx_custom.cnf [root@bitrix1 /]# nano /etc/mysql/conf.d/z_bx_custom.cnf [mysqld]
レプリケーション参加者間の一意のサーバー識別子:
server-id = 1
変更されたバイナリデータのロギングが実行されます。 このオプションを指定しないと、ログとbitrixポータル自体に入るときにエラーが発生する場合があります。
Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is #READ #COMMITTED or READ UNCOMMITTED. binlog_format=row
エラーログ:
log=/var/log/mysqld.log log_error = /var/log/mysqld.log
サーバートランザクションログへのパス(ウィザードが保持するバイナリログ):
log-bin = /var/lib/mysql/server-mysql-bin log-bin-index = /var/lib/mysql/server-mysql-bin.index
スレーブリレーログへのパス(ウィザードからダウンロードされたバイナリログ):
relay-log = /var/lib/mysql/slave-mysql-relay-bin relay-log-index = /var/lib/mysql/slave-mysql-relay-bin.index
複製が必要または不要なデータベース(標準のbitrixデータベース-sitemanager0の複製のみを実行します):
replicate-do-db = sitemanager0 replicate-ignore-db=test replicate-ignore-db=information_schema replicate-ignore-db=mysql replicate-ignore-db=performance_schema
データベースのbinlogをログに記録しないでください:
binlog-ignore-db = information_schema binlog-ignore-db = mysql binlog-ignore-db = performance_schema
自動インクリメントの競合を回避するために、3番目から開始し、それぞれ10を追加してidが生成されるようにサーバーに通知します。 13、23、33、43以降:
auto_increment_increment = 10 auto_increment_offset = 3
ウィザードからログをビンログに保存して、スレーブに渡します。
log-slave-updates
その後、mysqlを再起動します。
[root@bitrix1 /]# /etc/init.d/mysqld restart
次に-2番目のBitrixVMに切り替える必要があります。 bitrix2、およびmysqlに対して同様の設定を実行します。以前は/etc/mysql/conf.d/にz_bx_custom.cnfファイルも作成し、 server-idおよびauto_increment_offsetを変更しました 。
[root@bitrix2 ~]# cat /etc/mysql/conf.d/z_bx_custom.cnf [mysqld] server-id = 2 binlog_format=row log=/var/log/mysqld.log log_error = /var/log/mysqld.log log-bin = /var/lib/mysql/server-mysql-bin log-bin-index = /var/lib/mysql/server-mysql-bin.index relay-log = /var/lib/mysql/slave-mysql-relay-bin relay-log-index = /var/lib/mysql/slave-mysql-relay-bin.index replicate-do-db = sitemanager0 replicate-ignore-db=test replicate-ignore-db=information_schema replicate-ignore-db=mysql replicate-ignore-db=performance_schema binlog-ignore-db = information_schema binlog-ignore-db = mysql binlog-ignore-db = performance_schema auto_increment_increment = 10 auto_increment_offset = 4 log-slave-updates
2番目のマシンでmysqlを再起動します。
[root@bitrix2 ~]# /etc/init.d/mysqld restart
レプリケーションの場合、両方のマシンでレプリケーターユーザーを作成します。
root@bitrix1 /]# mysql -u root -p Enter password: mysql> create user 'replicator'@'%' identified by 'aGiV4uac'; mysql> grant replication slave on *.* to 'replicator'@'%'; root@bitrix2 /]# mysql -u root -p Enter password: mysql> create user 'replicator'@'%' identified by 'aGiV4uac'; mysql> grant replication slave on *.* to 'replicator'@'%';
繰り返しますが、最初のマシンに移動してレプリケーションを開始します。 これを行うには、 2番目のマシンbitrix2の名前master_logおよびmaster_log_positionを知る必要があります。
[root@bitrix2 /]# mysql -u root -p -e 'show master status;' +-----------------------+--------+------------+-------------------------------------------+ | File |Position|Binlog_Do_DB| Binlog_Ignore_DB | +-----------------------+--------+------------+-------------------------------------------+ |server-mysql-bin.000029| 819 | |information_schema,mysql,performance_schema| +-----------------------+--------+------------+-------------------------------------------+
結果のリストから、 MASTER_LOG_FILE = server-mysql-bin.000029 、およびMASTER_LOG_POS = 819
このデータを使用して、最初のマシンでレプリケーションを構成します。
[root@bitrix1 /]# root -p -e "CHANGE MASTER TO MASTER_HOST = '172.16.10.2', MASTER_USER = 'replicator', MASTER_PASSWORD = 'aGiV4uac', MASTER_LOG_FILE = 'server-mysql-bin.000029', MASTER_LOG_POS = 819;"
スレーブを実行します:
[root@bitrix1 /]# mysql -u root -p -e 'start slave;'
ステータスを確認します。
[root@bitrix1 /]# mysql -u root -p -e 'show slave status \G;' *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.16.10.2 Master_User: replicator Master_Port: 3306 Connect_Retry: 60 Master_Log_File: server-mysql-bin.000029 Read_Master_Log_Pos: 819 Relay_Log_File: slave-mysql-relay-bin.000002 Relay_Log_Pos: 72951 Relay_Master_Log_File: server-mysql-bin.000029 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: sitemanager0 Replicate_Ignore_DB: test,information_schema,mysql,performance_schema Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 819 Relay_Log_Space: 73113 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 2
パラメーターSeconds_Behind_Master (マスターからのレプリカの時間遅延)はゼロでなければなりません:
Slave_IO_Stateは、 「マスターが偶数を送信するのを待機しています」と報告するはずです
Slave_IO_Running =はい
Slave_SQL_Running =はい
Slave_IO_State行に値がなく、 Seconds_Behind_MasterがNULLの場合、レプリケーションは開始されていません。
最初のマシンbitrix1のmaster_logおよびmaster_log_positionを学習します。
[root@bitrix1 /]# mysql -u root -p -e 'show master status;' +-----------------------+--------+------------+-------------------------------------------+ | File |Position|Binlog_Do_DB| Binlog_Ignore_DB | +-----------------------+--------+------------+-------------------------------------------+ |server-mysql-bin.000026| 2930 | |information_schema,mysql,performance_schema| +-----------------------+--------+------------+-------------------------------------------+
2番目のbitrix2マシンで、レプリケーションを構成します。
[root@bitrix2 ~]# mysql -u root -p -e "CHANGE MASTER TO MASTER_HOST = '172.16.10.1', MASTER_USER = 'replicator', MASTER_PASSWORD = 'aGiV4uac', MASTER_LOG_FILE = 'server-mysql-bin.000026', MASTER_LOG_POS = 2930;" [root@bitrix2 ~]# mysql -u root -p -e 'stop slave;' [root@bitrix2 ~]# mysql -u root -p -e 'show slave status \G;'
次のパラメーターを表示する必要があります: Seconds_Behind_Master 、 Slave_IO_State 、 Slave_IO_Running 、 Slave_SQL_Runningは、マシンbitrix1でレプリケーションをセットアップする場合と同様のパラメーターです。
次に-Bitrix24間でデータ自体を同期する必要があります。 csync2を介してファイルを同期します。
csyncのインストールは、両方のマシンで実行する必要があります。
[root@bitrix1 /]# yum install csync2 [root@bitrix2 /]# yum install csync2
両方のマシンの電源を入れます。
chkconfig xinetd on chkconfig csync2 on
最初のマシンbitrix1で証明書を生成します:
[root@bitrix1 /]# openssl genrsa -out /etc/csync2/csync2_ssl_key.pem 1024 [root@bitrix1 /]# openssl req -new -key /etc/csync2/csync2_ssl_key.pem -out /etc/csync2/csync2_ssl_cert.csr [root@bitrix1 /]# openssl x509 -req -days 600 -in /etc/csync2/csync2_ssl_cert.csr -signkey /etc/csync2/csync2_ssl_key.pem -out /etc/csync2/csync2_ssl_cert.pem
csync2キーを生成します。
csync2 -k /etc/csync2/csync2.cluster.key
かなり長い生成プロセスの後、 csync2.cluster.keyキーが/ etc / csync2 /フォルダーに表示されます
csync構成の構成は次のようになります。
[root@bitrix1 /]# cat /etc/csync2/csync2.cfg group cluster { host bitrix1 bitrix2; key /etc/csync2/csync2.cluster.key; include /home/bitrix/www;
両方のマシンで異なるパスワードを使用するため、データベースに接続するための設定ファイルを除外します。 キャッシュ付きのディレクトリも除外します。
exclude /home/bitrix/www/bitrix/php_interface/dbconn.php; exclude /home/bitrix/www/bitrix/.settings.php; exclude /home/bitrix/www/bitrix/cache; exclude /home/bitrix/www/bitrix/managed_cache;
ファイル選択パラメーターを設定します。最新のものが残ります。
auto younger; }
生成されたキーをcsync2.cfg構成ファイルとともにbitrix1からbitrix2にコピーします。たとえば、scpを使用します。
scp /etc/csync2/csync2* root@172.16.10.2:/test
csync2が動作するすべてのプロジェクトファイルのローカルデータベースを構築します。
[root@bitrix1 csync2]# csync2 -cr /
後-実行:
[root@bitrix1 /]# /usr/sbin/csync2 –xv
エラーが発生した場合は、 / usr / sbin / csync2 –Tvを使用できます
コマンドがエラーなしで完了した場合、両方のマシンの/ etc / crontabにエントリを追加して、csyncを毎分開始できます。
*/1 * * * * root /usr/sbin/csync2 -x >/dev/null 2>&1
チェックを行うことは残っています。たとえば、ポータル自体にメッセージを作成し、bitrix24チャット、削除、ファイルの作成、および変更がノード間で転送されることを確認します。
単一のエントリポイントのオプションの1つとして、追加のサーバーにあるHAProxyを使用できます。 HAProxyのインストールと構成の概要は、この記事では考慮されません。 この問題に関する十分なガイドがありますが、例として、ファイル/etc/haproxy/haproxy.cfgの構成を示します。
[root@haproxy haproxy]# cat haproxy.cfg global log 127.0.0.1 local2 notice chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon nbproc 1 # Number of processing cores. ulimit-n 65536 # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 5000 timeout queue 5000 timeout connect 5000 timeout client 5000 timeout server 5000 timeout http-keep-alive 30 timeout check 20 # maxconn 3000 frontend bitrix.local mode http bind :80 default_backend bitrix backend bitrix mode http balance roundrobin option httpchk option httpclose server bitrix1 172.16.10.1:80 check server bitrix2 172.16.10.2:80 check
サーバーを正常な状態にクラスター化してください。フォースが一緒にいるかもしれません。

SIM-CLOUD-ドイツのフェールオーバークラウド
ドイツの信頼できるデータセンターの専用サーバー!
あらゆる構成、迅速な組み立て、無料インストール