본문 바로가기
반응형

innoDB16

MySQL에서 메모리를 정보 알고 사용하기 전역 버퍼 MySQL은 서버 시작 시 전역 버퍼를 할당하며, 이 버퍼는 모든 연결에서 공유됩니다. MySQL 메모리의 대부분은 innodb_buffer_pool_size, innodb_log_buffer_size, key_buffer_size 등 전역 버퍼에서 사용합니다. InnoDB 버퍼 풀 InnoDB 버퍼 풀은 일반적으로 MySQL 인스턴스에서 가장 큰 메모리를 사용하며, innodb_buffer_pool_size 매개변수를 사용하여 구성됩니다. 테이블 데이터와 색인, 변경 버퍼, 적응형 해시 색인, 기타 내부 구조를 캐시하는 데 사용됩니다. Google Cloud의 관리형 MySQL 서비스인 MySQL용 Cloud SQL은 인스턴스 크기에 따라 innodb_buffer_pool_size를 인스턴스.. 2023. 8. 18.
Mysql Dual master – slave replication - 3단계 안녕하세요. 오늘은 간단하게 Mysql Dual master – slave replication 구성하는 방법을 단계별로 알아보고 있는데요. 이번에는 복제 연동시, 듀얼 마스터 연동시 나올만한 에러 사항들을 확인해보 넘어가도록 하겠습니다. 복제 구성 연동 - 에러 # error1 Last_IO_Errno: 2003 Last_IO_Error: error connecting to master 'master@192.168.152.128:3306' - retry-time: 60 retries: 3 message: Can't connect to MySQL server on '192.168.152.128:3306' (111) # blind address 주석처리 # bind-address 부분을 주석처리하면 모든 .. 2023. 7. 24.
MariaDB의 메모리 설정 Mariadb의 메모리는 크게 두 가지로 분류가 됩니다. 1. Global 메모리 영역 : DB가 최초 기동되었을 때에는 메모리를 최소한만 사용하다가 설정된 값 까지 증가하며 증가한 이후에는 "메모리를 반환하지 않고" 설정 된 값 이내에서 계속 사용됩니다. (오라클의 경우 DB기동시 설정된 값 만큼 메모리를 할당 받고 올라가는 반면 Mariadb 는 기동시 설정된 메모리 값만큼 할당 받는것이 아닌 설정된 값 만큼 서서히 증가하게 됩니다) Innodb_buffer_pool_size Key_buffer_size innodb_log_buffer_size tmp_table_size → Global 메모리 = Innodb_buffer_pool_size + Key_buffer_size + innodb_log_buf.. 2023. 5. 19.
[Google Cloud]관리형 가져오기를 사용하여 외부 데이터베이스에서 복제 설정 시작하기 전에 시작하기 전에 다음 단계를 완료합니다. 외부 서버 구성 소스 표현 인스턴스 만들기 Cloud SQL 복제본 설정. 복제 사용자의 권한 업데이트 외부 서버의 복제 사용자는 모든 호스트(%)의 연결을 수락하도록 구성됩니다. Cloud SQL 복제본에서만 사용할 수 있도록 이 사용자 계정을 업데이트합니다. 복제가 GTID를 기반으로 하는 경우 REPLICATION SLAVE, EXECUTE, SELECT, SHOW VIEW, REPLICATION CLIENT, RELOAD 권한이 필요합니다. 복제가 바이너리 로그를 기반으로 하는 경우 REPLICATION SLAVE, EXECUTE, SELECT, SHOW VIEW, REPLICATION CLIENT, RELOAD 권한이 필요합니다. 외부 서버에.. 2023. 3. 27.
[Google Cloud]외부 서버에서 복제하는 방법 외부 서버 구성 사용 사례 외부 서버 구성은 다음과 같은 목표를 달성하는 방법을 제공합니다. 최소한의 다운타임으로 데이터를 자체 관리형 MySQL 서버에서 Google Cloud로 마이그레이션하기 복제본 관리를 Cloud SQL로 오프로드하면서 서버의 코로케이션 및 제어 유지하기 이 사용 사례를 하이브리드 클라우드라고도 합니다. 자체 관리형 서버와 Cloud SQL 복제본 간의 복제는 무기한으로 지속됩니다. 외부 복제 구성 외부 복제 구성에는 다음 인스턴스가 포함됩니다. 사용자가 관리하는 MySQL 서버: 소스 데이터베이스 서버라고도 합니다. Cloud SQL 복제본 하나의 소스 데이터베이스 서버에 여러 개의 복제본이 있을 수 있습니다. 소스 표현 인스턴스 소스 표현 인스턴스는 Cloud SQL 복제본에.. 2023. 3. 27.
MariaDB buffer_pool_size 변경 공식 메뉴얼 mariadb 공식문서 mysql 공식문서 참고사항 버퍼풀 사이즈는 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances 이여야 한다. 하지만 mariadb는 innodb_buffer_pool_instances 값이 1로 고정이므로, 버퍼풀 사이즈는 innodb_buffer_pool_chunk_size의 배수가 되어야 한다. 딱 맞게 변경하지 않으면 버퍼풀사이즈가 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances 배수에 맞게 조절된다. 또한 성능이슈를 위해서 chunk의 갯수 (innodb_buffer_pool_size / innodb_buffer_pool_chunk_size)는.. 2022. 11. 1.
[DB] MySql - InnoDB Engine 사용 시 반드시 알아야 할 3가지 출처 : http://dev.kthcorp.com/2011/06/10/mysql-innodb-engine-3-tips-you-must-know/ Overview MySQL에서 Built-in 제공되는 InnoDB는 DB로 작업을 하시는 분이라면 누구나 한번쯤은 들어본 엔진이라고 생각이 듭니다. 최근 Oracle사가 SUN을 인수한 후 MySQL쪽으로 가장 많이 성능 개선을 하고 있는 부분 또한 InnoDB입니다. 무엇보다 HandlerSocket이나 MySQL 5.6 Memcached Plugin 모두 InnoDB 스토리지 엔진 API과 직접적인 통신을 하여 엄청난 퍼포먼스를 보여주게 됩니다. 이렇게 점차적으로 활용도가 높은 엔진, InnoDBB는 무엇이고 도대체 어떠한 특성을 가지고 있을까요? 여기서 .. 2022. 4. 8.
Table 작성 시 PK를 무조건 추가하라. RDBMS의 Table에서 가장 먼저 고려하는, 개별 행을 검색하는 데 사용할 수있는 고유 한 키(Primary Key)에 대해 정리할 생각입니다. 기본키(Primary Key)는 시스템이 한 테이블에 있는 Row가 다른 Row와 구별되는 무언가를 가져야 하므로 이 역할을 수행할 수 있습니다. 기본키는 한 Row마다 유일해야 하며 NULL이 될 수 없어야 합니다. 기본키가 있어야 하는 이유 기본키가 없으면 일관성 없는 데이터가 반복적으로 쌓일 수 있기 때문에 쿼리 속도가 느리고, 원하지 않는 정보 조회 결과를 가져올 수 있습니다. 관계형 데이터베이스에서는 반드시 각 행이 고유하게 식별되어야 합니다. 이 규칙을 위반하면 더 이상 관계형이 아니며 데이터에서 모호함이 생길 수 있습니다. 아마 다른 사용자가 테.. 2022. 4. 8.
Innodb tableapsce error & 테이블 삭제 안될경우 동일 테이블 구조를 알고 있는 상태에서 테이블 백업본을 이용하여 복구하는건 1. 로그 반영 2. 테이블스페이스 DISCARD 3. 테이블스페이스 IMPORT 이렇게하면 되지만 갑자기 테이블스페이스 연결을 못하고 테이블도 drop이 안될경우가 있는데 이때 테이블을 삭제하고 싶다면 아래 방식으로 하면됩니다. # mysql -uroot -p --skip-auto-rehash # drop table 삭제할테이블명; # rm -f 삭제할테이블명.* > 해당 DB .ibd 파일 등 테이블 정보 삭제 # 참고 내용 --auto-rehashTo complete a name, enter the first part and press Tab. If the name is unambiguous, mysql completes i.. 2021. 10. 18.
MySQL Error_code : 1756 slave_parallel_workers Yesterday I found a strange problem with a database online, and here I recorded the problem discovery and processing. R&D colleagues reported that the data in a database has not been updated since 19:44 (the online service from the library is not applicable, only offline query and statistical data use). But log in to the slave library to find that the master-slave synchronization is normal, the .. 2021. 5. 10.
MySQL/MariaDB InnoDB(Storage) buffer pool 모니터링 MySQL/MariaDB에서는 다양한 스토리지 엔진을 지원하며 각 스토리지마다 특성 또한 다르다. 각 스토리지 엔진에 대한 특성은 아래 링크를 참고 한다. · Comparison of MySQL database engines : https://en.wikipedia.org/wiki/Comparison_of_MySQL_database_engines 이번 포스트에서는 일반적으로 OLTP 서비스에 많이 사용하는 InnoDB 스토리지 엔진에서 buffer pool(버퍼풀)과 관련한 모니터링 방법에 대해서 알아본다. 아래 스크립트를 실행 하면 InnoDB의 buffer pool에 대한 값을 확인할 수 있다. Show status where variable_name like ‘innodb_buffer%’; Vari.. 2020. 9. 21.
[MariaDB] Master-Slave 설정 [MariaDB] Master-Slave 설정 1. 각 DB에 사용자 추가 (기본적으로 Master서버에만 설정하면되나 Auto-Failover시 누가 Master가 될지 모르기 때문에 동일하게 추가) drop user 'replication_user'@'%'; CREATE USER 'replication_user'@'%' IDENTIFIED BY '비밀번호'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; flush privileges; SELECT host, user, password FROM mysql.user WHERE user='replication_user'; 2. Mater 서버 명령 -- LOCK 설정 FLUSH TABLES WITH.. 2020. 9. 18.
MySQL INNODB Status Monitoring [출처] http://dba-jadelee.blogspot.kr/2014/10/mysql-innodb-status-monitoring.html MySQL INNODB Status Monitoring - 해당 STATUS출력내역은 각 상세내역 설명을 위해 특정장비를 기준으로 특정시점의 결과를 샘플링 - 세부적으로 설명한 부분도 있지만 직관적으로 상태정보를 보여주는 부분은 상세한 설명은 생략함. (이 부분들에 대한 추가적인 질문은 개인별로 문의하세요) - 각 부분에 대한 간략한 기능적 설명이며 모니터링상 중요한 영역에 대한 코멘터리는 각 영역에 대한 설명 마지막 부분에 기재하였음. ----------------------------------------------------------------- SQL> .. 2020. 9. 11.
innodb_flush_log_at_trx_commit = 2를 사용하는 것이 안전할까? 최대 1 초 분량의 트랜잭션을 잃을 수 있습니다. 기본값은 1이며 InnoDB ACID 준수를 유지하는 데 도움이됩니다 . innodb_flush_log_at_trx_commit 의 MySQL 문서에 따르면 innodb_flush_log_at_trx_commit의 값이 0이면 로그 버퍼가 초당 한 번 로그 파일에 기록되고 디스크로 플러시 조작이 로그 파일에서 수행되지만 트랜잭션 커미트에서는 아무것도 수행되지 않습니다. 값이 1 (기본값)이면 각 트랜잭션 커밋에서 로그 버퍼가 로그 파일에 기록되고 디스크로 플러시 작업이 로그 파일에서 수행됩니다. 값이 2 인 경우, 커밋 할 때마다 로그 버퍼가 파일에 기록되지만 디스크로 플러시 작업은 수행되지 않습니다. 그러나 값이 2 인 경우에도 로그 파일의 플러시가 초.. 2020. 8. 25.
MySQL InnoDB lock & deadlock 이해하기 대규모의 많은 요청이 동시에 들어오는 데이터베이스(Database, DB) 어플리케이션의 경우 데이터의 정합성을 유지하면서 최대한 동시성을 높이는 것이 매우 중요한 포인트이다. MySQL InnoDB 엔진의 경우 상황에 따른 여러가지 락(Lock)을 통해서 동시성을 제어하며 이를 통해서 사용자가 설정한 .. 2020. 3. 10.
innodb 설정관련 A. innodb_data_home_dir : 테이블스페이스 파일의 생성 위치 설정 B. innodb_data_file_path : 테이블스페이스 파일 명 및 크기, 옵션 설정 innordata1:256M:autoextend:max:2000M innordata1라는 파일명으로 생성되고 256MB의 고정크기로 최초 생성되며, 용량이 256MB가 넘을 경우 “autoextend”라는 옵션으로 자동으로 파일 크기가 확장되며, 최대 확장되는 크기는 MAX 옵션의 설정 값만큼 확장 C. innodb_autoextend_increment : autoextend 옵션으로 자동 확장되는 크기 지정, 디폴트는 8M D. innodb_file_per_table : 공용 테이블스페이스 사용 대신에 테이블 별 테이블스페이스 .. 2017. 6. 16.
반응형