사전 작업 NAS 생성 & 연결 ■ NAS 생성 및 연결 ■ NAS를 연결했음에도 MSSQL에서 데이터베이스 생성 시 NAS의 경로가 보이지 않습니다. ■ xp_cmdshell 활성화 exec sp_configure 'show advanced options', 1; go reconfigure; go exec sp_configure 'xp_cmdshell',1 go reconfigure; go ■ Fileserver NAS의 경로, NAS유저 패스워드, NAS유저 ID exec xp_cmdshell 'net use E: \\\n2370497_testjj11\data /USER:\gwnupoc' output --------------------------------------------------------..
pt-online-change-schema 이란, Mysql에서 몇억건 이상의 대량의 데이터를 갖고 있는 테이블을 수정 하는것은 어렵습니다. 단순히 alter table을 해버리면 4시간, 5시간 이상 수행되기 떄문에 이를 해결 하기 위해 create select(CTAS) 방법을 사용합니다. MySQL은 특히나 온라인 스키마 변경이 취약합니다. 물론 5.6부터는 online alter기능이 포함되어 있다고는 하나 100% 완벽하게 모든 상황을 온라인스럽게 제공해주지도 않고 그렇다하더라도, 일정 트래픽 이상의 데이터 변경이 이루어지는 경우, 게다가 슬레이브 지연을 염두한다면 꺼려지는 상황이 있습니다. (마스터에서 온라인 스키마 변경이 이루어졌을지라도, 이 관련 alter구문이 슬레이브로 넘어갔을 때는, ..
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 - 변경된 스키마가 적용된 임시 테이블을 생성하여 기존 테이블의 데이터를 복사한 후 테이블 이..
안녕하세요 이번글에서는 Naver Cloud의 CloudDB for MySQL서비스에서의 데이터 마이그레이션 작업을 진행해보겠습니다. 실제 사이트에서 작업중 일어난 에러들도 함께 정리해보았습니다. 해결방법은 제 개인적인 생각으로 진행했으므로 최선의 방법이 아닐 수 있습니다 테스트 환경 기존 DB : CloudDB for MySQL -> AS-IS 대상 DB : CloudDB for MySQL -> TO-BE 마이그레이션을 위한 임시 서버 생성 -> VM 인스턴스 (mig) Export ※ 에러 1번 TABLE1 테이블이 오랜 미관리로 인해 손상되어 있어 dump불가하며 조회시 없다고 나옵니다. [root@mig ~]# mysqldump -h -u -p --routines --triggers --singl..
※ 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..