MySQL Clone Plugin

JM·2021년 6월 16일
0

MySQL

목록 보기
7/10

🔨 Clone Plugin?

  • 로컬 또는 원격 MySQL 서버 인스턴스에서 데이터 복제를 허용
  • 복제 된 데이터는 Schema, Table, Tablespace 및 Data Dictionary Metadata를 포함하는 InnoDB에 저장된 데이터의 물리적 스냅샷
  • 복제 된 데이터는 완전한 기능을 갖춘 데이터 디렉토리로 구성

🔨 Clone Plugin 설치

mysql> INSTALL PLUGIN clone SONAME 'mysql_clone.so';

mysql> show plugins;
+---------------------------------+----------+--------------------+----------------+---------+
| Name                            | Status   | Type               | Library        | License |
+---------------------------------+----------+--------------------+----------------+---------+
| clone                           | ACTIVE   | CLONE              | mysql_clone.so | GPL     |
+---------------------------------+----------+--------------------+----------------+---------+

🔨 데이터 복제

📌 로컬 데이터 복제

-- 계정 생성
mysql> CREATE USER 'clone_user'@'%' identified by 'password';
mysql> GRANT BACKUP_ADMIN ON *.* TO 'clone_user';

-- 로컬 데이터 복제
mysql> CLONE LOCAL DATA DIRECTORY = '/mysql/clone';

-- 복제 확인
$ ls /mysql/clone
#clone  ib_buffer_pool  ib_logfile0  ib_logfile1  ibdata1  mysql  mysql.ibd  sys  undo_001  undo_002

📌 원격 데이터 복제

-- Donor 계정 생성 in local server
mysql> CREATE USER 'donor_clone_user'@'%' IDENTIFIED BY 'password';
mysql> GRANT BACKUP_ADMIN on *.* to 'donor_clone_user'@'%';

-- Recipient 계정 생성 in remote server
mysql> CREATE USER 'recipient_clone_user'@'%' IDENTIFIED BY 'password';
mysql> GRANT CLONE_ADMIN on *.* to 'recipient_clone_user'@'%';

-- Clone in remote server
mysql> SET GLOBAL clone_valid_donor_list = 'donor_host:3306';
mysql> CLONE INSTANCE FROM 'donor_clone_user'@'192.168.20.10':3306 IDENTIFIED BY 'password' DATA DIRECTORY = '/mysql/clone';

$ ls /mysql/clone
#clone  ib_buffer_pool  ib_logfile0  ib_logfile1  ibdata1  mysql  mysql.ibd  sys  undo_001  undo_002

🔨 제한사항

  • 복제 작업 중에는 DDL이 허용되지 않음 (TRUNCATE TABLE 포함)

  • MySQL 버전이 다를 경우 복제 불가능

  • 한 번에 하나의 MySQL 인스턴스만 복제 가능

  • X 프로토콜 포트(mysqlx_port)로 원격 복제 불가능

  • 서버 구성(my.cnf) 복제를 지원하지 않음

  • 바이너리 로그 복제를 지원하지 않음

  • InnoDB 테이블만 복제 지원 (sys 스키마를 포함하여 스키마에 저장된 MyISAM 및 CSV 테이블은 빈 테이블로 복제)

  • MySQL Router를 통해 Donor MySQL 서버에 연결하는 것은 지원되지 않음

  • 로컬 복제 작업은 절대 경로로 생성된 일반 테이블 스페이스의 복제를 지원하지 않음

profile
오픈소스 DB엔지니어

0개의 댓글