외부 master 서버를 Azure for mysql로 연결하고자 할때 아래와 같은 절차로 진행합니다.

* 제한 : mysql 5.6, 5.7만 가능하고,  소스 mysql이 public ip나 dns를 가져야 구성 가능함. 

 

Azure for mysql (target db, slave)에서 아래 정보를 확인하여 source쪽에 방화벽 오픈해야함

SELECT @@global.redirect_server_host;

+-----------------------------------------------------------+
| @@global.redirect_server_host                             |
+-----------------------------------------------------------+
| e299ae56f000.tr1830.westus1-a.worker.database.windows.net |
 +-----------------------------------------------------------+

ping e299ae56f000.tr1830.westus1-a.worker.database.windows.net  (여기에 표시되는 ip를 방화벽에 등록)

 

 

1. master 서버 replication 계정생성

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';

 

2. master 서버에서 data dump 및 slave import

1) master

FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;

 

show master status;

-- dump 진행

 

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

 

2) azure for mysql

데이터 import 진행

 

3. Azure for mysql에 slave 설정

CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', <master_port>, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');

 

-- azure 함수로 master 정보 등록

CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mysql-bin.000002', 120, '');

 

-- azure replicatio 시작

CALL mysql.az_replication_start;

 

-- azure slave 상태 체크

show slave status;

 

 

4. 기타 

-- replication 중지

CALL mysql.az_replication_stop;

 

-- replication 제거

CALL mysql.az_replication_remove_master;

 

-- 오류 건너 띄기

CALL mysql.az_replication_skip_counter;

 

-- binlog 보기

SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos][LIMIT [offset,] row_count]

 

 

 

'cloud > azure' 카테고리의 다른 글

Azure vm disk 용량 증설  (0) 2021.07.15
Azure linux와 disk lun 맵핑  (0) 2021.07.14
azure for mysql template (자동화)  (0) 2021.06.16
azure 전용선 (express route) 연결  (0) 2021.06.11
azure 네트웍 구성  (0) 2021.06.04

+ Recent posts