Екі қашықтағы MySQL сервері арасындағы деректерді синхрондау - жоғары қолжетімділікті, ақауларға төзімділікті және жүктемені теңдестіруді қамтамасыз ету үшін маңызды міндет.
Бұл мақалада MySQL деректерін екі қашықтағы алаңда тиімді синхрондауға арналған негізгі әдістерді, тәсілдерді және құралдарды, синхрондау кестесін басқаруды, сондай-ақ iptables параметрлерін қарастырамыз.
1. MySQL репликациясы
MySQL репликациясы - MySQL серверлері арасындағы деректерді синхрондаудың стандартты әдісі. Репликацияның екі негізгі түрі бар:
- Мастер-Слэйв (Master-Slave): Бір сервер (мастер) барлық деректер жазбаларын өңдейді, ал басқа сервер (слэйв) осы деректердің көшірмелерін алады. Бұл бір жақты репликация, онда слэйв деректерді оқу үшін пайдаланылуы мүмкін, бірақ жазу үшін пайдаланылмайды.
- Мастер-Мастер (Master-Master): Екі сервер де деректерді оқу және жазу операцияларын орындай алады, өзара өзгерістерді синхрондайды. Бұл репликация түрін орнату күрделірек, бірақ үлкен икемділік пен ақауларға төзімділікті қамтамасыз етеді.
Мастер-Слэйв репликациясын орнату:
-
Мастерді орнату:
- Мастерде
my.cnf
файлына қосу:python[mysqld] server-id=1 log-bin=mysql-bin
- MySQL серверін қайта жүктеу:
bash
sudo service mysql restart
- Репликация үшін пайдаланушы жасау және оған қажетті рұқсаттар беру:
sql
CREATE USER 'replica'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'; FLUSH PRIVILEGES;
- Дерекқордың дампын жасау:
bash
mysqldump -u root -p --all-databases --master-data > dump.sql
- Мастерде
-
Слэйвті орнату:
- Дерекқордың дампын слэйв серверге көшіру және импорттау:
bash
mysql -u root -p < dump.sql
- Слэйвте
my.cnf
файлына қосу:csharp[2
] server-id= - MySQL серверін қайта жүктеу:
bash
sudo service mysql restart
- Репликация үшін слэйвті орнату:
sql
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4; START SLAVE;
- Дерекқордың дампын слэйв серверге көшіру және импорттау:
2. Репликация кестесін басқару
Репликация кестесін басқару үшін MySQL оқиғаларын немесе cron тапсырмаларын пайдалануға болады. Бұл репликацияны белгілі бір уақыт терезелерінде орындауға мүмкіндік береді, бұл серверлерге жүктемені шарықтау кезеңдерінде азайту үшін пайдалы болуы мүмкін.
Репликацияны орындау үшін cron баптау мысалы:
-
Репликацияны бастау үшін скрипт жасау, мысалы,
replicate.sh
:bash"START SLAVE;"
mysql -u root -p -e -
Репликацияны әр сағат сайын орындау үшін cron-ға тапсырма қосу:
bashcrontab -e
Мына жолды қосу:
bash0 * * * * /path/to/replicate.sh
3. iptables баптау
Серверлер арасындағы қауіпсіздікті қамтамасыз ету үшін тек қажетті порттарға трафикке рұқсат беру үшін iptables ережелерін баптау қажет.
Мастер мен слэйвте iptables баптау:
-
MySQL портына кіріс трафигіне рұқсат беру (TCP 3306):
bashsudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
-
Group Replication үшін трафикке рұқсат беру (қолданылса) TCP 33061 және UDP 33062 порттарына:
bashsudo iptables -A INPUT -p tcp --dport 33061 -j ACCEPT sudo iptables -A INPUT -p udp --dport 33062 -j ACCEPT
-
iptables ережелерін сақтау:
bashsudo iptables-save > /etc/iptables/rules.v4
4. MySQL Group Replication пайдалану
MySQL Group Replication MySQL серверлерінің тобын бір бөлінген кластер ретінде жұмыс істеу мүмкіндігін береді. Бұл жағдайда топтағы әрбір сервер оқу және жазу сұрауларын өңдей алады, ал деректер топтағы барлық серверлер арасында автоматты түрде синхрондалады.
- MySQL Group Replication баптау:
- Әр серверде
my.cnf
файлына келесі баптауларды қосу:makefile[mysqld] server-id=1 gtid_mode=ON enforce-gtid-consistency=ON master-info-repository=TABLE relay-log-info-repository=TABLE binlog_checksum=NONE log_slave_updates=ON log_bin=binlog binlog_format=ROW transaction_write_set_extraction=XXHASH64 loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" loose-group_replication_start_on_boot=off loose-group_replication_local_address="192.0.2.1:33061" loose-group_replication_group_seeds="192.0.2.1:33061,192.0.2.2:33061" loose-group_replication_bootstrap_group=off
- Бірінші серверде:
sql
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;
- Қалған серверлерде:
sql
START GROUP_REPLICATION;
- Әр серверде
5. Құралдар мен сервистер
Деректердің сенімді және оңай синхрондауын қамтамасыз ету үшін арнайы құралдар мен сервистерді пайдалануға болады, мысалы:
- MySQL Shell MySQL InnoDB Cluster құру және басқару үшін.
- Percona XtraDB Cluster — MySQL үшін Galera Cluster негізіндегі шешім.
- AWS Database Migration Service (DMS) AWS бұлтында деректер базасын көшіру және репликациялау үшін.
Қорытынды
MySQL деректерін екі қашықтағы алаңда синхрондау жоғары қолжетімділікке, өнімділікке және орнату күрделілігіне байланысты әртүрлі тәсілдермен жүзеге асырылуы мүмкін.
MySQL репликациясы, MySQL Group Replication және арнайы құралдар әртүрлі сценарийлерде сенімді деректер синхрондауын қамтамасыз ету үшін икемді шешімдер ұсынады.
Iptables баптау және репликация кестесін басқару жүйенің қауіпсіздігі мен тиімділігін арттыруға көмектеседі.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- oVirt гипервизорын қорғау — терең талдау
- oVirt жүйесінен Proxmox жүйесіне виртуалды машинаны көшіру
- Proxmox-тан oVirt-ке виртуалды машинаны көшіру
- Kubernetes контейнерлерін қорғау — терең талдау
- Proxmox гипервизорын бұзудан қалай қорғауға болады - Терең талдау
- Fail2Ban-ды oVirt жүйесін қорғауда қолдану - Терең талдау
- oVirt гипервизорын сақтандыруды ұйымдастыру — Терең талдау
- Виртуалды машинаны гипервизорлар арасында Proxmox арқылы көшіру
- Proxmox гипервизорын виртуалды машиналардың оңтайлы жұмысын қамтамасыз ету үшін конфигурациялау
- Proxmox-те SSH арқылы root құқықтарының бұзылуынан қорғау: терең талдау