외부 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 |