Ubuntu 18.04 VPS 또는 전용 서버에서 MySQL 복제로 고 가용성을 만드는 방법

소개

데이터베이스와 관련하여 고 가용성은 특정 데이터베이스가 호스트의 오류를 처리 할 수있는 능력이 있음을 의미합니다. 데이터베이스가 MySQL, 운영 체제 또는 하드웨어 유지 보수의 장애로 인한 다운 타임을 유발할 수있는 장애를 복구 할 수 있어야합니다..


고 가용성 솔루션은 배포중인 애플리케이션 유형, 환경에 따라 다릅니다.’모범 사례 또는 필요한 가용성 수준. 일반적인 클러스터 환경과 마찬가지로 MySQL을 사용하면 다음이 있습니다.

  • 클라이언트를 모니터링하고 구성하는 데 사용되는 관리 노드
  • 데이터를 저장하고 공유 / 복제하는 데 사용되는 데이터 노드
  • 모든 노드에 연결하기위한 인터페이스 인 SQL 노드

시작하기 전에

  • 가상 사설망 환경에서 구성된 Ubuntu 18.04를 실행하는 VPS 인스턴스가 3 개 이상
  • 각 VPS에 구성된 sudo 권한을 가진 비 루트 사용자.
  • wget타르 VPS에 설치된 패키지.

단계

3 개 노드 모두에서 시스템 패키지 업데이트.

$ sudo apt 업데이트 -y && sudo apt 업그레이드 -y

관리 노드 구성

$ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz

압축 파일을 새 폴더로 추출.

$ mkdir mysql
$ tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz -C mysql –strip-components = 1

클러스터 관리 서버 이진 파일을 복사하십시오. ndb_mgm 및 ndb_mgmd를 로컬 이진 파일 폴더에 넣고 파일 모드를 실행 파일로 변경.

$ sudo cp / mysql / bin / ndb_mgm * / usr / local / bin
$ sudo chmod + x / usr / local / bin / ndb_mgm *

새로 작성된 config.ini라는 구성 파일을 작성하십시오. MySQL의 클러스터 관리 클러스터 노드의 디렉토리. 이 파일은 SQL 노드와 관리 노드를 식별합니다.’IP 주소.

또한 데이터 노드를 식별합니다’IP 주소 및 해당 데이터 디렉토리.

$ sudo mkdir -p / var / lib / mysql-cluster
$ nano /var/lib/mysql-cluster/config.ini

특별 참고 사항 : 환경 설정에서 IP 주소를 IP 주소로 바꾸십시오. 아래 구성 코드의 경우 데이터 노드가 하나만 있으면 테이블 복제본을 저장할 데이터 노드가 하나만 있으므로 NoOfReplicas를 1로 설정해야합니다..

[ndbd 기본값]
NoOfReplicas = 1
데이터 메모리 = 80M
IndexMemory = 18M
[mysqld 기본값]
[ndb_mgmd 기본값]
[tcp 기본값]
# 클러스터 제어 / 관리 노드
[ndb_mgmd]
호스트 이름 = 92.168.56.10
# 데이터 노드
[ndbd]
호스트 이름 = 92.168.56.11
DataDir = / var / lib / mysql-cluster
# 데이터 노드 1
[ndbd]
호스트 이름 = 92.168.56.12
DataDir = / var / lib / mysql-cluster
# SQL 노드
[mysqld]
호스트 이름 = 92.168.56.40

이제 클러스터 관리 노드를 시작하고 시작시 활성화하십시오. 다른 모든 노드는 활성화되어 있어야합니다. 그렇지 않으면 존재하지 않는 IP 주소에서 오류가 발생합니다..

$ sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini –configdir = / var / lib / mysql-cluster / MySQL 클러스터 관리 서버 mysql-5.6.31 ndb-7.4.12 $ sudo echo’ndb_mgmd- f /var/lib/mysql-cluster/config.ini –configdir = / var / lib / mysql-cluster / ‘ >> /etc/rc.local

특별 참고 사항 : 권한 오류가 발생하면 루트 (sudo su)로 로그인하여 명령을 다시 실행하십시오..

데이터 노드 구성

Linux에서 libaio1 패키지를 설치하여 여러 개의 시스템 I / O 동시 호출 가능.

$ sudo apt 설치 libaio1

라는 새 그룹과 사용자 만들기 MySQL

$ groupadd mysql
$ useradd -g mysql mysql

다운로드 MySQL의 클러스터 관리 노드에서와 마찬가지로 패키지.

$ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
$ mkdir mysql
$ tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz -C mysql –strip-components = 1

이번에는 전체 mysql 폴더를 / usr /로 옮깁니다.현지 예배 규칙서.

$ sudo mv mysql / / usr / local

디렉토리를 이동 된 폴더로 변경하고 시스템 데이터베이스 작성 스크립트 mysql_install_db를 실행하십시오.

$ cd / usr / local / mysql
$ ./scripts/mysql_install_db –user = mysql

mysql 서비스 파일을 초기화.d 폴더 및 시작시 mysql 서비스 활성화.

$ sudo cp support-files / mysql.server /etc/init.d/mysql
$ sudo systemctl enable mysql

로컬 이진 파일을 로컬 이진 디렉토리로 이동하고 새 심볼릭 링크를 만듭니다.

$ sudo mv bin / * / usr / local / bin /
$ sudo rm -rf bin /
$ sudo ln -s / usr / local / bin / usr / local / mysql /

mysql 디렉토리를 다음으로 변경하십시오. 뿌리 의 소유자 MySQLmysql 그룹의 mysql 소유자에 대한 그룹 및 데이터 디렉토리.

$ sudo chown -R 루트 : mysql .
$ sudo chown -R MySQL 데이터

이제 데이터 노드에 대한 새 구성 파일을 작성하여 데이터 노드가 속한 클러스터 및 관리 노드를 정의하십시오..

$ sudo mkdir -p / var / lib / mysql-cluster
$ sudo chown -R mysql / var / lib / mysql-cluster

데이터 노드를 시작하십시오

$ ndbd-초기 2018-11-01 00:51:08 [ndbd] INFO- ‘192.168.56.20:1186’에 연결된 천사
2018-11-01 00:51:23 [ndbd] INFO-Angel 할당 nodeid : 2 $ sudo systemctl start mysql

이제 mysql 사용법에 대한 비밀번호를 만들 수 있습니다

$ sudo mysql_secure_installation

SQL 노드 구성

먼저 mysql 클러스터 패키지를 설치하고 폴더를 / usr / local 디렉토리로 이동해야합니다.

$ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
$ mkdir mysql
$ tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz -C mysql –strip-components = 1
$ mv mysql / usr / local /

설치 데이터베이스 스크립트 파일을 실행하십시오..

$ cd / usr / local / mysql
$ sudo ./scripts/mysql_install_db –user = mysql

mysql 서비스 파일을 복사하여 부팅시 활성화

$ cp 지원 파일 /mysql.server /etc/init.d/mysql
$ sudo systemctl enable msql

로컬 이진 파일을 로컬 이진 디렉토리로 이동하고 새 심볼릭 링크를 만듭니다.

$ sudo mv bin / * / usr / local / bin /
$ sudo rm -rf bin /
$ sudo ln -s / usr / local / bin / usr / local / mysql /

마지막으로 나의.관리 노드 IP 주소를 바꾸는 동안 다음 코드에 cnf 파일을 붙여 넣기.

$ vim /etc/my.cnf
# MySQL 설정
[mysqld]
datadir = / usr / local / mysql / data
소켓 = / tmp / mysql.sock
사용자 = mysql

# ndb 스토리지 엔진 실행
ndbcluster
# IP 주소 관리 노드
ndb-connectstring = 192.168.56.20
[mysql_cluster]
# IP 주소 관리 노드
ndb-connectstring = 192.168.56.20
# MySQL Pid and Log
[mysqld_safe]
log-error = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid

변경 사항을 저장하고 종료 한 다음 mysql 서비스를 시작하고 비밀번호를 구성하십시오..

$ sudo systemctl start mysql
$ sudo mysql_secure_installation
$ mysql -u 루트 -p

설치가 작동하는지 확인하기 위해 SQL 노드에서 샘플 데이터베이스를 작성하고 데이터 노드에서 복제 할 것인지 확인합니다..

동일한 SQL VPS에서 새 데이터베이스를 작성하십시오 (원하는 이름을 지정하십시오).

MySQL> CREATEDATABASE 야채;
쿼리 OK, 영향을받는 1 행 (0.02 초)

데이터 노드에 로그인하여 데이터베이스를 확인하십시오. SQL 노드에서 작성된 데이터베이스가 복제되어야합니다..

$ mysql -u 루트 -p mysql> SHOWDATABASES;

결론

고 가용성을 위해 MySQL 클러스터 복제를 성공적으로 설정했습니다. shutdown 명령을 사용하여 ndb_mgm 콘솔의 관리 노드에서 클러스터 상태를 종료 할 수 있습니다..

마지막으로 ndb_mgm 콘솔에서 동일하게 모니터링하려면 보여 주다 명령. MySQL 클러스터 복제는 내결함성, 자동 장애 조치 및 탄력성을 제공하는 것으로 입증되었습니다.

이 3 가지 Linux 호스팅 서비스를 확인하십시오.

FastComet

시작 가격 :
$ 2.95


신뢰할 수 있음
9.7


가격
9.5


사용자 친화적
9.7


지원하다
9.7


풍모
9.6

리뷰 읽기

FastComet 방문

주인공

시작 가격 :
$ 0.99


신뢰할 수 있음
9.3


가격
9.3


사용자 친화적
9.4


지원하다
9.4


풍모
9.2

리뷰 읽기

Hostinger 방문

ChemiCloud

시작 가격 :
$ 2.76


신뢰할 수 있음
10


가격
9.9


사용자 친화적
9.9


지원하다
10


풍모
9.9

리뷰 읽기

ChemiCloud 방문

관련 사용법 기사

  • Ubuntu 18.04 Linux VPS에서 MYSQL 8.0을 설치하고 데이터베이스를 만드는 방법
    중급
  • Ubuntu 18.04 VPS 또는 전용 서버의 PostgreSQL에서 복제를 설정하는 방법
    중급
  • Ubuntu 18.04 VPS 또는 전용 서버에서 DBdeployer를 사용하여 MySQL 샌드 박스를 설치하고 만드는 방법
    초보자
  • Ubuntu 18.04 VPS 또는 전용 서버에서 phpMyAdmin을 보호하는 방법
    중급
  • MySQL 5를 비활성화하는 방법 "엄격한 모드" Ubuntu 18.04 VPS 또는 전용 서버
    중급
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me