Mysql & Maria 41

centos 7, mysql 5.7 설치

VMware에 5.7 mysql 설치 후 8.0 으로 upgrade 하는 시나리오에 대해 포스팅하려고한다 일단은 OS 설치는 되어있다고 전제하에 mysql 만 설치하는 걸로 - centOS- mysql 5.7 서버별 호스트 변경 hostnamectl set-hostname server1 1. GPG Key 다운로드## GPG Key 다운로드rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 2. wget 설치## wget 설치yum install -y wget 3. MySQL5.7 다운로드## MySQL5.7 다운로드wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 4..

Mysql & Maria/admin 2024.09.14

Optimizer_switch- Rowid 필터링 최적화

제한 - 파티션 테이블에서는 지원 불가- 기본값 on , 다이나믹 적용 가능,  글로벌, 세션레벨 적용가능 (optimizer_switch rowid_filter의 변수) - rowid 필터링은 desc 인덱스 스캔과 같이 사용할 수 없음 ( 옵티마이저가 order by ~ desc 쿼리를 실행하면 rowid 가 비활성화됨)  Rowid 필터링의 대상 사용 사례 테이블은 인덱스 IDX1에 대한 참조 액세스를 사용합니다. 다른 인덱스 IDX2에는 상당히 제한적인 범위 조건자가 있습니다.위의 경우 아래 방식으로 유리합니다.  인덱스 IDX2에 대해 인덱스 스캔을 수행하고, 인덱스 레코드의 rowid를 필터링할 수 있는 데이터 구조($FILTER라고 부르겠습니다)에 수집합니다. IDX1에 대해 ref 접근을 ..

Mysql & Maria/admin 2024.09.11

MySQL의 복제 지연을 줄이기 위한 전략

복제지연은 대량의 쓰기 작업이 발생했을 때 가장 많이 발생합니다. 덩치가 큰 테이블의 인덱스를 생성하거나 DDL작업이 발생할 때도 복제지연이 발생할 수 있습니다. 복제 지연에 영향을 주는 파라미터 값들MySQL의 InnoDB 스토리지 엔진은 디스크 I/O 작업을 관리하기 위해 다양한 파라미터를 제공하는데, 그 중 하나가 innodb_io_capacity입니다. 이 파라미터는 InnoDB가 내부 작업(특히 버퍼 풀에서 디스크로의 플러시 작업)을 처리할 때 사용할 수 있는 I/O 작업의 최대 수를 설정합니다. 이 설정은 복제지연(replication lag)에 직접적인 영향을 미칠 수 있습니다. 이번 포스트에서는 innodb_io_capacity가 복제지연에 미치는 영향을 살펴보겠습니다.innodb_io_c..

Mysql & Maria/admin 2024.08.27

MySQL에서 하지말아야 할 것들

Count(*) 함수를 검증 로직에 태우는 것MySQL은 Oracle 처럼 row_num을 저장하지 않기 때문에 카운트 쿼리가 매우매우 느립니다.특히 개발자 분들은 페이지 네이션 할 때 전체 카운트를 세는걸 많이 하는데, 데이터가 많아지면 결과값 리턴이 엄청 늦어집니다.검증 로직이 아니더라도, 운영중에 데이터가 많은 테이블에 count(*) 하는건 매우 위험한 일입니다.- show table status 를 보면 간략 통계 조회 가능- innodb_stats_persistent 파라미터를 on 하면 통계정보를 디스크에 저장한다 근데 이것도 정확한 total 건수는 아니다    Primary Key는 되도록 int 계열 데이터 타입에 Auto Increment를 사용MySQL PK는 기본적으로 클러스터드 ..

Mysql & Maria/admin 2024.08.26

ip 저장시 inet_aton 함수 사용

INET_ATONIP 저장시 `INET_ATON` 함수를 사용하면 문자열이 아닌 int unsigned 로 저장 할 수 있습니다.IP 주소를 저장할 때 정수로 변환하여 삽입INSERT INTO ip_addresses (ip_address) VALUES (INET_ATON('192.168.0.1'));정수로 변환된 IP 주소를 이용하여 검색SELECT * FROM ip_addresses WHERE ip_address = INET_ATON('192.168.0.1');+--------------------------+| INET_ATON('192.168.0.1') |+--------------------------+| 3232235521 |+--------------------------+정수로 변환하면 4바..

Mysql & Maria/admin 2024.08.26

mysql 처음 설치시 초기파라미터

binlog_row_image- minimal :  CDC를 하지 않고 복제 기능만 사용할 때 설정합니다.- full : binlog를 통한 CDC를 사용하는 경우 설정해 줍니다.binlog_row_image = FULL:모든 컬럼의 값을 로그에 기록합니다.UPDATE 문의 경우, 변경 전과 후의 모든 컬럼 값을 기록합니다.더 많은 디스크 공간과 네트워크 대역폭을 사용합니다.복제 과정에서 더 많은 정보를 제공하므로 문제 해결이 용이합니다.원본 테이블과 복제 테이블의 구조가 다르더라도 안전하게 복제할 수 있습니다.binlog_row_image = MINIMAL:변경된 컬럼의 값만 로그에 기록합니다.UPDATE 문의 경우, 변경된 컬럼과 기본 키(또는 고유 키)만 기록합니다.디스크 공간과 네트워크 대역폭 사..

Mysql & Maria/admin 2024.08.26

CentOS 7 Maria 10.3 이중화 Galera Cluster

[테스트 시나리오] 지난번에 생성해둔 서버를 Galera Cluster를 사용하여 이중화 한다 1. Galera Cluster 설치 rpm -qa | grep galera 명령어로 사전 설치되어 있는지 확인 maria 이미 설치했기 때문에 설치되어 있었음 yum install -y galera 2. MariaBackup 설치 (sst 방식 중 하나로 다른 노드와 동기화하기 위해서) yum install -y MariaDB-backup 3. Galera Cluster 동기화 유저 생성 ( 각 노드별로 생성) CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'sst1234'; SHOW GRANTS FOR 'sstuser'@'localhost'; GRANT ALL ON *..

Mysql & Maria/admin 2024.04.18

CentOS 7 Maria 10.3 복제 환경구축

[테스트 시나리오] master db를 이용해 maria db 복제 구성 및 동기화를 진행한다. 복제 구성을 위한 사전작업 1. master db 데이터 백업 및 복제서버 구성 2. binlog 설정 on 3. replication 계정생성 4. replication 동기화 설정 - OS : centos 7.9.2009 - DB : maria 10.9.3 1. master db의 host name 변경 (db서버 구별을 위해) hostnamectl set-hostname kmleeDB1 hostname 서버 1 (kmleedb1) 전체 백업 진행 > 생성 파일 확인 mysqldump -uroot -p --all-databases > kmleedb1.sql 서버 2 (kmleedb2) OS 설치 및 mar..

Mysql & Maria/admin 2024.04.18

mysqlslap 사용 부하테스트

mysqlslap 사용하여 부하/성능 테스트 진행 mysql, maria 설치 시 기본으로 제공하는 유틸리티이며 Concurrency 파라미터를 통해 여러 client 가 동시 접속 하는것처럼 작동한다. mysqlslap --concurrency=200 --iterations=100 --auto-generate-sql --auto-generate-sql-guid-primary --auto-generate-sql-load-type=read --verbose 위의 명령어는 동시접속자 200 session이 100번 수행함을 의미 --auto-generate-sql 파라미터를 통해 테스트 db와 테이블을 자동생성, 삭제 하며 테스트 한다. * 자동생성된 mysqlslap 스키마와 t1 테이블 확인 (테스트 도..

Mysql & Maria/admin 2024.04.18