https://lalitvc.wordpress.com/2016/11/03/mysql-architecture-and-components/ 이 블로그 게시물은 새로운 MySQL 5.7 물리적, 논리적 아키텍처 및 구성 요소에 대한 것입니다.이 블로그 게시물에서는 다이어그램을 사용하여 MySQL의 데이터 처리 및 SQL 실행을 포함한 흐름에 대해 설명하려고합니다. 다른 데이터베이스와 달리 MySQL은 매우 유연하며 다양한 종류의 스토리지 엔진을 다양한 종류의 요구에 대한 플러그인으로 제공합니다. 이 때문에 스토리지 엔진의 사용에 따라 MySQL 아키텍처 및 동작도 변경됩니다 (예 : 트랜잭션 [InnoDB] 및 비 트랜잭션 [MyISAM] 엔진) 데이터 스토리지 및 SQL 실행 방법이 다르며 서버 내에서 엔진..
1. 문제점 Centos 7 + apache 2.4.x + php 7.x + mysql 5.7.x 설치 도중 mysql 설치과정에서 아래와 같은 에러메시지를 발견하였습니다. -- Running cmake version 2.8.11 -- Could NOT find Git (missing: GIT_EXECUTABLE) -- Configuring with MAX_INDEXES = 64U -- SIZEOF_VOIDP 8 -- MySQL 5.7.11 -- Packaging as: mysql-5.7.11-Linux-x86_64 -- Looked for boost/version.hpp in and -- BOOST_INCLUDE_DIR BOOST_INCLUDE_DIR-NOTFOUND -- LOCAL_BOOST_DIR ..
특정 시점 복구는 특정 시점 이후의 데이터 변경 사항까지 적용한 복구를 의미합니다. 일반적으로 이 유형의 복구는 전체 백업을 복원 한 후 백업 시점의 서버 상태로 복원 한 후에 수행됩니다. (7.2 절.“데이터베이스 백업 방법”에 나열된 것과 같은 여러 가지 방법으로 전체 백업을 수행 할 수 있습니다.) 특정 시점 복구는 전체 풀 백업 시간에서 가능한 한 최신 시점까지 시간을 적용하여 최근의 데이터베이스와 비슷하게 만드는 것입니다. 또는 특정 용도에 따라 원하는 시간까지만 복구할 수도 있습니다. 예를 들어 풀백업 이후 몇월 몇일 몇시까지의 특정 데이터베이스가 필요한경우 이 방법을 이용해서 특정 시간으로 복구를 할 수 있습니다. ■ 사전 지식사항 여기에있는 몇몇 예제는 mysqlbinlog에 의해 생성 된..
■ mysqlimport 프로그램 소개 커맨드 라인 인터페이스로 되어 있는 프로그램으로 LOAD Data SQL과 같은 방법으로 데이터를 테이블에 로드합니다. mysql 프로그램에서 사용되는 LOAD DATA문법이며 이 구문을 알고 있다면 좀더 손쉽게 사용할 수 있습니다. 이 LOAD DATA문은 이 블로그에서 별로 페이지로 제공하고 있습니다. 참고 URL : https://myinfrabox.tistory.com/18?category=804726 mysqlimport프로그램을 사용하면서 자주 사용하는 옵션이 있다면 my.cnf안에 [client], [mysqlimport]란 그룹 옵션을 만들고 지원되는 옵션을 이 항목에 추가해서 사용할 수 있습니다. 이렇게 하면 터미널에서 실행할 때 추가 옵션을 굳이 ..
■ GTID를 이용한 복제 설정. 여기에서는 처음으로 GTID를 이용하여 처음 설정하는 "콜드 스타트"방법입니다. 이 포스트를 통해서 복제를 어떻게 설정하고, 주의할점은 무엇인지 알아봅니다. ■ 서버준비 가능하면 같은 사양의 물리서버를 준비합니다. 그리고 같은 버전의 MySQL을 설치합니다. 여기에서는 5.7 위주로 설명을 합니다. 다음의 환경으로 설정되어 있다고 가정합니다. 서버 IP MySQL Version 마스터 192.168.0.101 5.7 슬레이브 192.168.0.102 5.7 ■ 파라미터 설정 마스터 슬레이브 서버 모두에 다음의 파라미터를 설정합니다. ▶ 서버별 설정할 파라미터 mysqld 섹션에 작성합니다. [mysqld] server-id=1 log-bin=binlog gtid-mode..
이 섹션에서는 GTID (Global Transaction Identifier)를 사용한 트랜잭션 기반 복제에 대해 설명합니다. GTID를 사용할 때 각 트랜잭션은 원래 서버에서 커밋되고 슬레이브에 의해 적용될때 식별되고 추적될 수 있습니다. 이는 새 슬레이브를 시작하거나 새 마스터로 Failover가 되었을때 GTID를 사용하여 해당 파일 내에서 로그 파일 또는 위치를 참조 하기 때문에 기존방법인 로그파일과 포지션을 찾아야 하는 작업을 크게 단순화합니다. GTID 기반 복제는 완전히 트랜잭션 기반이기 때문에 마스터와 슬레이브가 일치하는지 간단하게 판단 할 수 있습니다. 마스터에서 커밋된 모든 트랜잭션이 슬레이브에서도 커밋되는 경우 이 둘 사이의 일관성이 보장됩니다. GTID와 함께 Statement 기..
MySQL에서는 데이터 베이스 백업을 위한 여러가지 방법을 지원합니다. 그중에 가장 대표적인것이 mysqldump입니다. 사용법도 쉽고 지원되는 옵션도 많아서 원하는 방법으로 백업이 가능합니다. 참고로 백업도 권한이 있어야 수행할 수 있습니다. 아무나 데이터를 컨트롤 하면 안되기 때문입니다. 또한 덤프만큼 복원시 필요한 권한도 있습니다. 그래서 백업 및 복구 수행은 많은 권한이 필요합니다. 그래서 별도로 백업 전용 계정을 만들어 사용하기도 합니다. 참고로 MySQL에서는 백업이라는 용어보단 덤프란 용어를 더 많이 씁니다. 개념은 같지만 약간의 미묘한 차이가 있습니다. 그래서 지금부터는 백업이라는 용어보다 덤프라는 용어로 사용하겠습니다. ■ mysqldump 소개 MySQL에서 제공하는 대표적인 덤프 프로..
■ Replication Filtering Rule 사용 및 적용방법 이전 챕터에서 복제 룰에 대해서 평가하는 방법을 배웠습니다. 이번엔 실제 복제필터링을 적용하는 명령과 환경설정 옵션에서 어떻게 적용하는지에 대해 알아봅니다. 복제 필터링을 하는 방법은 3가지가 있습니다. + MySQL서버를 시작할 때 관련 옵션을 주고 시작하는 방법 서버를 시작할 때 필요한 필터링 옵션을 주고 실행합니다. 스크립트나 기타 관리방법을 만들어야 합니다. + CHANGE REPLICATION 명령어를 이용하는 방법 서버를 시작 후 명령어를 이용해서 필터링을 적용합니다. 서버를 중지하면 설정이 사라집니다. 아래에서 설명합니다. + my.cnf 환경파일에 옵션을 이용해서 설정하는 방법 my.cnf안에 옵션을 설정하여 필터링합니다..
■ 서버가 복제 필터링 규칙을 평가하는 방법 복제를 구성할때 전체 데이터베이스를 대상으로 하는 방법도 있지만 원하는 데이터베이스만을 선택해서 복제할 수도 있습니다. 반대로 원하는 데이터베이스만을 복제해서 사용할 수 있습니다. 특정 데이터베이스의 특정 테이블만 복제도 가능합니다. 이렇게 원하는 조건을 만들어 복제하는 방법을 복제 필터링이라고 합니다. 복제 필터링을 구성하기 위해선 바이너리 로그 포멧 형식 선택과 복제레벨(데이터베이스 레벨 혹은 테이블 레벨) 그리고 범위등 몇가지 전략을 세워야 할 내용들이 있습니다. 여기에서는 복제필터링을 걸기위헤 사전에 확인해봐야 할 내용들을 확인해 보겠습니다. 다음으로 복제필터링을 하기 위한 환경설정, 혹은 명령문을 알아보도록 하겠습니다. 마스터 서버가 바이너리 로그에 ..
Replication 상태에서 모니터링을 하는 방법에 대해 알아봅니다. 모니터링에서 표시해주는 상태에 따라 그에 맞는 대처를 해서 복제가 지속적으로 이루어 지도록 합니다. ■ Slave 상태 확인 mysql 클라이언트에서 다음의 명령을 입력합니다. mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.30.224.100 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read..