RHEL, Rocky, AlmaLinux എന്നിവയിൽ MySQL റെപ്ലിക്കേഷൻ എങ്ങനെ സജ്ജീകരിക്കാം


ഡാറ്റ ലഭ്യത മെച്ചപ്പെടുത്തുന്നതിനും ഒരു ആപ്ലിക്കേഷന്റെ വിശ്വാസ്യതയും പ്രകടനവും വർദ്ധിപ്പിക്കുന്നതിന് ഒന്നിലധികം സെർവറുകളിലുടനീളം നിങ്ങളുടെ ഡാറ്റ പകർത്തുന്ന പ്രക്രിയയാണ് ഡാറ്റ റെപ്ലിക്കേഷൻ. MySQL റെപ്ലിക്കേഷനിൽ, ഡാറ്റയുടെ സ്ഥിരത ഉറപ്പാക്കാനും ബാക്കപ്പും ആവർത്തനവും നൽകാനും തത്സമയം മാസ്റ്റർ സെർവറിൽ നിന്ന് മറ്റ് നോഡുകളിലേക്ക് ഒരു ഡാറ്റാബേസിൽ നിന്ന് ഡാറ്റ പകർത്തുന്നു.

ഈ ഗൈഡിൽ, CentOS, Fedora, Rocky Linux, AlmaLinux തുടങ്ങിയ RHEL-അധിഷ്uഠിത വിതരണങ്ങളിൽ നിങ്ങൾക്ക് എങ്ങനെ MySQL (മാസ്റ്റർ-സ്ലേവ്) റെപ്ലിക്കേഷൻ സജ്ജീകരിക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതരുന്നു.

അതിനാൽ, ഞങ്ങളുടെ MySQL റെപ്ലിക്കേഷൻ ലാബ് സജ്ജീകരണം ഇതാ.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

നമുക്ക് തുടങ്ങാം…

ഘട്ടം 1: മാസ്റ്ററിലും സ്ലേവ് സെർവറിലും MySQL ഇൻസ്റ്റാൾ ചെയ്യുക

മാസ്റ്റർ, സ്ലേവ് സെർവറുകളിൽ MySQL ഡാറ്റാബേസ് ഇൻസ്റ്റാൾ ചെയ്തുകൊണ്ട് ഞങ്ങൾ ആരംഭിക്കും.

$ sudo dnf install @mysql

ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, ഡാറ്റാബേസ് സെർവർ ആരംഭിക്കുന്നതിന് ഒരു പോയിന്റ് നൽകുക.

$ sudo systemctl start mysqld

തുടർന്ന് സിസ്റ്റം സ്റ്റാർട്ടപ്പിലേക്ക് അല്ലെങ്കിൽ റീബൂട്ട് ചെയ്യുമ്പോൾ അത് പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo systemctl enable mysqld

അതിനുശേഷം, കാണിച്ചിരിക്കുന്നതുപോലെ MySQL ഡാറ്റാബേസ് സെർവർ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിക്കുക:

$ sudo systemctl status mysqld

ഘട്ടം 2: മാസ്റ്ററിലും സ്ലേവ് സെർവറിലും MySQL സുരക്ഷിതമാക്കുക

മാസ്റ്റർ, സ്ലേവ് സെർവറുകളിൽ MySQL ഡാറ്റാബേസ് സുരക്ഷിതമാക്കുക എന്നതാണ് അടുത്ത ഘട്ടം. കാരണം, ഡിഫോൾട്ട് ക്രമീകരണങ്ങൾ സുരക്ഷിതമല്ലാത്തതും ഹാക്കർമാർക്ക് എളുപ്പത്തിൽ ചൂഷണം ചെയ്യാൻ കഴിയുന്ന ചില പഴുതുകൾ അവതരിപ്പിക്കുന്നതുമാണ്.

അതിനാൽ, MySQL കഠിനമാക്കാൻ, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

$ sudo mysql_secure_installation

ആദ്യം, നിങ്ങൾ MySQL റൂട്ട് പാസ്uവേഡ് സജ്ജീകരിക്കേണ്ടതുണ്ട്. വലിയക്ഷരം, ചെറിയക്ഷരം, പ്രത്യേകം, സംഖ്യാ പ്രതീകങ്ങൾ എന്നിവയുടെ മിശ്രിതമായ 8-ലധികം പ്രതീകങ്ങളുള്ള ശക്തമായ റൂട്ട് പാസ്uവേഡ് നൽകുന്നത് ഉറപ്പാക്കുക.

ശേഷിക്കുന്ന നിർദ്ദേശങ്ങൾക്കായി, ശുപാർശ ചെയ്യുന്ന ക്രമീകരണങ്ങളിലേക്ക് ഡാറ്റാബേസ് സെർവറിനെ മാറ്റുന്നതിന് Y എന്ന് ടൈപ്പ് ചെയ്യുക.

നിങ്ങൾ മാസ്റ്ററിലും സ്ലേവ് നോഡിലും MySQL ഇൻസ്റ്റാൾ ചെയ്യുകയും കഠിനമാക്കുകയും ചെയ്തുകഴിഞ്ഞാൽ, അടുത്തത് മാസ്റ്റർ നോഡ് കോൺഫിഗർ ചെയ്യുക എന്നതാണ്.

ഘട്ടം 3: മാസ്റ്റർ നോഡ് (സെർവർ) കോൺഫിഗർ ചെയ്യുക

അടുത്ത ഘട്ടം മാസ്റ്റർ നോഡ് കോൺഫിഗർ ചെയ്യുകയും സ്ലേവ് നോഡിന് അതിലേക്ക് പ്രവേശനം നൽകുകയും ചെയ്യുക എന്നതാണ്. ആദ്യം, നമ്മൾ mysql-server.cnf കോൺഫിഗറേഷൻ ഫയൽ എഡിറ്റ് ചെയ്യേണ്ടതുണ്ട്.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

[mysqld] വിഭാഗത്തിന് കീഴിൽ ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക.

bind-address	 = 10.128.0.14
server-id 	 = 1
log_bin		 = mysql-bin

ചെയ്തുകഴിഞ്ഞാൽ, മാറ്റങ്ങൾ സംരക്ഷിച്ച് പുറത്തുകടക്കുക. തുടർന്ന് MySQL സെർവർ പുനരാരംഭിക്കുക.

$ sudo sysemctl restart mysqld

അടുത്തതായി, MySQL ഷെല്ലിലേക്ക് ലോഗിൻ ചെയ്യുക.

$ sudo mysql -u root -p

ഒരു ഡാറ്റാബേസ് ഉപയോക്താവിനെ സൃഷ്uടിക്കാൻ ഇനിപ്പറയുന്ന കമാൻഡുകൾ എക്uസിക്യൂട്ട് ചെയ്യുക, അത് മാസ്റ്ററെയും സ്ലേവിനെയും റെപ്ലിക്കേഷനായി ബന്ധിപ്പിക്കാൻ ഉപയോഗിക്കും.

mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email ';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';

മാറ്റങ്ങൾ പ്രയോഗിച്ച് MySQL സെർവറിൽ നിന്ന് പുറത്തുകടക്കുക.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

മാസ്റ്ററുടെ നില പരിശോധിക്കുക.

mysql> SHOW MASTER STATUS\G

ഫയലിന്റെ പേരും സ്ഥാനവും ശ്രദ്ധിക്കുക. അനുകരണത്തിനായി സ്ലേവ് സജ്ജീകരിക്കുമ്പോൾ നിങ്ങൾക്ക് ഇത് പിന്നീട് ആവശ്യമായി വരും. ഞങ്ങളുടെ കാര്യത്തിൽ, ഞങ്ങൾക്ക് mysql-bin.000001 എന്ന ഫയലിന്റെ പേരും പൊസിഷൻ 1232 എന്നതുമാണ്.

ഘട്ടം 4: സ്ലേവ് നോഡ് കോൺഫിഗർ ചെയ്യുക (സെർവർ)

ഇപ്പോൾ, സ്ലേവ് നോഡിലേക്ക് മടങ്ങുക. ഒരിക്കൽ കൂടി, mysql-server.cnf കോൺഫിഗറേഷൻ ഫയൽ എഡിറ്റ് ചെയ്യുക.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

മുമ്പത്തെപ്പോലെ, ഈ വരികൾ [mysqld] വിഭാഗത്തിന് കീഴിൽ ഒട്ടിക്കുക. IP വിലാസം അടിമയുടെ IP-യുമായി പൊരുത്തപ്പെടുന്ന തരത്തിൽ മാറ്റുക. കൂടാതെ, മറ്റൊരു സെർവർ-ഐഡി അസൈൻ ചെയ്യുക. ഇവിടെ നമ്മൾ അതിന് 2 ന്റെ മൂല്യം നൽകി.

bind-address	 = 10.128.15.211
server-id	 = 2
log_bin 	 = mysql-bin

മാറ്റങ്ങൾ സംരക്ഷിച്ച് ഫയലിൽ നിന്ന് പുറത്തുകടക്കുക. തുടർന്ന് ഡാറ്റാബേസ് സെർവർ പുനരാരംഭിക്കുക.

$ sudo systemctl restart mysqld

മാസ്റ്റർ നോഡിൽ നിന്ന് പകർത്താൻ സ്ലേവ് നോഡ് ക്രമീകരിക്കുന്നതിന്, സ്ലേവിന്റെ MySQL സെർവറിലേക്ക് ലോഗിൻ ചെയ്യുക.

$ sudo mysql -u root -p

ഒന്നാമതായി, റെപ്ലിക്കേഷൻ ത്രെഡുകൾ നിർത്തുക:

mysql> STOP SLAVE;

മാസ്റ്ററിൽ നിന്നുള്ള ഡാറ്റാബേസുകൾ പകർത്താൻ സ്ലേവ് നോഡ് ക്രമീകരിക്കുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുക.

mysql> CHANGE MASTER TO
     MASTER_HOST='10.128.0.14' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='[email ' ,
     MASTER_LOG_FILE='mysql-bin.000001' ,
     MASTER_LOG_POS=1232;

MASTER_LOG_FILE, MASTER_LOG_POS ഫ്ലാഗുകൾ സ്റ്റെപ്പ് 1 ന്റെ അവസാനത്തെ മാസ്റ്റർ നോഡിൽ നിന്നുള്ള ഫയലും സ്ഥാന മൂല്യങ്ങളുമായി പൊരുത്തപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക.

MASTER_HOST, MASTER_USER, MASTER_PASSWORD എന്നിവ യഥാക്രമം മാസ്റ്റർ ഐപി വിലാസം, റെപ്ലിക്കേഷൻ ഉപയോക്താവ്, റെപ്ലിക്കേഷൻ ഉപയോക്താവിന്റെ പാസ്uവേഡ് എന്നിവയുമായി പൊരുത്തപ്പെടുന്നു.

തുടർന്ന് സ്ലേവ് റെപ്ലിക്കേഷൻ ത്രെഡുകൾ ആരംഭിക്കുക:

mysql> START SLAVE;

ഘട്ടം 4: MySQL മാസ്റ്റർ-സ്ലേവ് റെപ്ലിക്കേഷൻ പരിശോധിക്കുന്നു

ഇപ്പോൾ, മാസ്റ്ററും സ്ലേവ് നോഡും തമ്മിലുള്ള പകർപ്പ് പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കാൻ, മാസ്റ്റർ നോഡിലെ MySQL ഡാറ്റാബേസ് സെർവറിലേക്ക് ലോഗിൻ ചെയ്യുക:

$ sudo mysql -u root -p

ഒരു ടെസ്റ്റ് ഡാറ്റാബേസ് സൃഷ്ടിക്കുക. ഇവിടെ, ഞങ്ങളുടെ ടെസ്റ്റ് ഡാറ്റാബേസിനെ replication_db എന്ന് വിളിക്കുന്നു.

mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;

ഇപ്പോൾ, സ്ലേവ് നോഡിലേക്ക് പോകുക, MySQL സെർവറിലേക്ക് ലോഗിൻ ചെയ്ത് replication_db ഡാറ്റാബേസ് ഉണ്ടെന്ന് സ്ഥിരീകരിക്കുക. ചുവടെയുള്ള ഔട്ട്uപുട്ടിൽ നിന്ന്, ഡാറ്റാബേസ് ഉണ്ടെന്ന് നമുക്ക് കാണാൻ കഴിയും. യജമാനൻ മുതൽ സ്ലേവ് നോഡ് വരെ അനുകരണം നടന്നുവെന്നതിന്റെ സ്ഥിരീകരണമാണിത്.

mysql> SHOW DATABASES;

അത്രയേയുള്ളൂ, മാസ്റ്റർ നോഡിൽ നിന്ന് സ്ലേവ് നോഡിലേക്ക് ഡാറ്റാബേസുകൾ പകർത്താൻ കഴിയുന്ന ഒരു MySQL മാസ്റ്റർ-സ്ലേവ് റെപ്ലിക്കേഷൻ മോഡൽ നിങ്ങൾക്ക് എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഞങ്ങൾ വിജയകരമായി തെളിയിച്ചു.