Online DDL 작업 정보 계측 memory ※ 사전 조건 performance_schema=ON MariaDB [(none)]> show variables like 'performance_schema'; +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | performance_schema | ON | +--------------------+-------+ ■ Performance_schmea.setup_instruments 조회 mysql> select substring_index(name,'/',1) as cate, count(*) as cnt from performance_schema.s..
Online DDL이란 테이블의 구조를 변경(스키마 변경)을 실행하는 도중에도, INSERT나 UPDATE와 같은 DML들을 실행할 수 있도록 해주는 기능입니다. MySQL 서버에서 Online DDL이 지원되지 않았던 시절에는 pt-online-schema-change와 같은 3-rd party 도구들을 이용해야 했지만, (이런 도구들은 불필요한 작업이 너무 많이 수반되어 서비스 영향도가 높은 편이어서) 이제는 대부분의 경우 MySQL 서버의 Online DDL을 이용합니다. InnoDB에서 지원하는 online ddl 알고리즘 - copy - inplace - instant (mysql 8.0) ■ Copy - 변경된 스키마가 적용된 임시 테이블을 생성하여 기존 테이블의 데이터를 복사한 후 테이블 이..
※ analyze table 1. optimizer가 사용하는 통계정보의 갱신처리입니다. 2. InnoDB에서는 자발(자동)적으로 통계 정보를 갱신하기 때문에 크게 필요없다고 합니다. MyISAM의 경우는 카디날리티가 정확하게 갱신되어 있지만 InnoDB는 아주 부정확하고 analyze table을 실행하면 빈번이 값이 바뀐다. InnoDB의 경우 자동으로 갱신되는 조건은 아래와 같다. - 전에 인덱스 통계정보를 갱신한후 테이블의 전체행수의1/16이 갱신된경우 - 전에 인덱스 통계정보를 갱신한후 20억행이상이 갱신된경우 3. analyze table은 랜덤으로 페이지를 8회추출해서 그 페이지내에 포함된 행 데이타를 조사해서 인덱스의 통계정보를 근사치로 갱신한다. 근사치이지만 옵티마이저가 사용하기 위한 통..
현재의 Master+Slave1,2,3 MHA 구성에서 Slave 2,3을 MHA에서 제외시킨 뒤 LoadBalancer를 통해 Slave 2,3을 select 용 부하분산을 할 예정입니다. 여기서 가장 중요한 점은 was단에서 read와 write를 각 IP별로 나눠줄 수 있어야합니다. 먼저 확인 후 진행하시길 바랍니다. 최종적으로 MHA manager + Master + Slave1 이 write작업 및 고가용성을 지원하며, Slave2 + Slave3은 read 부하분산용으로 사용 예정입니다. 따라서 write용 IP는 MHA의 VIP가 서비스 IP가 되며, read용 IP는 Loadbalancer의 도메인이 됩니다. ■ Slave2,3 MHA에서 제외 (mgr) [root@jh-mgr ~]# vi..
part1에 이어 구축 진행 및 failover테스트를 하도록 하겠습니다. part1 : https://jhdatabase.tistory.com/101 [MySQL - 4node MHA 구축] part 1. 그동안 master-slave 구조에서의 mha는 2node가 보통입니다. 이번 포스팅에선 총 4node를 구성할 예정이며 master와 slave 3대를 구축하여 LB를 통해 부하분산이 최종 목표입니다. 테스트 환경 Hostname Public I. jhdatabase.tistory.com ■ MHA scripts 수정 [root@jh-mgr ~]# cp /root/mha4mysql-manager-0.57/samples/scripts/master_ip_failover /var/log/masterha..
그동안 master-slave 구조에서의 mha는 2node가 보통입니다. 이번 포스팅에선 총 4node를 구성할 예정이며 master와 slave 3대를 구축하여 LB를 통해 부하분산이 최종 목표입니다. 테스트 환경 Hostname Public IP Private IP DB version Role VIP jh-mgr 115.85.183.80 192.168.100.35 MHA manager jh-master 101.101.210.29 192.168.100.36 Mysql 8.0.28 Master 192.168.100.40 jh-slave1 49.50.161.52 192.168.100.37 Mysql 8.0.28 Slave jh-slave2 118.67.131.204 192.168.100.38 Mysql ..
MaxScale은 MariaDB 에서 지원하는 DB Proxy 입니다. HA proxy 와 동일하나 DB read/ write 쿼리를 지정한 DB 서버로 나눠주는 기능이 있는 등 DB에 더 특화되어있습니다. read / write 분산이 필요한 아키텍처에서 MaxScale 을 사용하면 효율적으로 분산 구조를 구성할 수 있습니다. 이번 포스팅에서는 Maxscale을 GUI로 구축하여 웹에서 통제 해보았습니다. 테스트 환경 Hostname IP server1 192.168.100.23 server2 192.168.100.20 maxscale 49.50.163.26(public IP) , 192.168.100.21 ■ 필수 패키지 설치 [root@jeong ~]# yum -y install libcurl li..
Galera Cluster를 구축한 뒤, proxysql을 이용하여 Master에서는 read+write Slave에서는 read 가 되도록 READ/WRITE Split을 할 수 있도록 구성하였습니다. 테스트 환경 Hostname IP Version galera001 192.168.100.40 MariaDB10.2.12 galera002 192.168.100.41 MariaDB10.2.12 galera003 192.168.100.42 MariaDB10.2.12 Haproxy 192.168.100.43 HA-Proxy version 2.5 ※ 사전 mariadb 설치 진행 ■ galera 설치 & 기동 (galera1,2,3) [root@jh-galera001 ~]# yum -y install rsync..
데이터 이관을 위해 datapump 덤프를 받으려는데 용량이 너무 커서 받을만한 파일시스템이 없어서 ACFS로 data diskgroup 파일시스템 만들어서 사용하였습니다. Oracle MOS : Example About How To Perform An EXPDP (Export Data Pump) on ACFS. (Doc ID 1437402.1) ACFS( ASM Cluster File System )이란, datafile을 제외한 나머지 Oracle및 Application 파일의 저장/관리를 위해 사용되는 시스템 - Oracle ACFS 정보 Oracle ACFS는 Oracle Database 외부에서 유지 관리되는 고객 파일 시스템 애플리케이션 데이터에 대한 지원을 제공하는 범용, 단일 노드 및 클러..
이전 part 1에 이어 이기종 플랫폼간 replication을 통해 최대한 무중단 이관이 가능하지 않을까해서 테스트 해보았습니다. part 1. URL : https://jhdatabase.tistory.com/96 [ Mysql - NCP & OCI 이기종 플랫폼 ] part 1. Replication Naver Cloud 플랫폼과 Oracle Cloud 플랫폼 간에 설치형 db로 이중화 구성을 해보았습니다. 테스트 환경 Hostname Platform Public IP DB Version ncp-master NCP(naver cloud) 101.101.218.225 8.0.28 oci-slave.. jhdatabase.tistory.com 혹시 다른 방법이 있거나 보통은 어떤 방법으로 진행되는지 댓..