Technique
-
복제 ( Replication )Technique/RDBMS 2016. 5. 17. 22:14
복제는 2대 이상의 MySQL 서버가 동일한 데이터를 담도록 실시간으로 동기화 하는 기술이다. 일반적으로 MySQL의 복제에는 INSERT나 UPDATE와 같은 쿼리를 이용해 데이터를 변경할 수 있는 MySQL 서버와 SELECT 쿼리로 데이터를 읽기만 할 수 있는 MySQL 서버로 나뉜다.MySQL 에서는 쓰기와 읽기의 역할로 구분해, 전자를 마스터( Master ) 라고하고 후자를 슬레이브 ( Slave ) 라고 하는데, 일반적으로 MySQL 서버의 복제에서는 마스터는 반드시 1개이며 슬레이브는 1개 잇아으로 구성할 수 있다. 하나의 MySQL이 일반적으로는 마스터 또는 슬레이브 가운데 하나의 역할만을 수행하지만, 때로는 MySQL 서버 하나가 마스터이면서 슬레이브 역할까지 수행하도록 설정하는 것도 ..
-
플러그인 스토리지 엔진 모델Technique/RDBMS 2016. 5. 16. 22:21
MySQL의 독특한 구조중 대표적인 것이 바로 플러그인 모델이다. 플로그인해서 사용할 수 있는 것이 스토리지 엔진만 가능한 것은 아니다. MySQL 5.1 버전부터는 전문 검색 엔진을 위한 검색어 파서도 플러그인 형태로 개발해서 사용할 수 있다.이미 기본적으로 많은 스토리지 엔진을 가지고 있지만, 이 사셍의 수많은 사용자의 요구조건을 만족시키기 위해 기본적으로 제공되는 스토리지 엔진 이외에 부가적인 기능을 더 제공하는 스토리지엔진이 필요할 수 있으며, 이러한 요건을 기초로 다른 전문 개발 회사 또는 직접 스토리지 엔진을 제작하는 것도 가능하다. 대부분의 MySQL 작업은 엔진에서 처리가되며, 마지막인 "읽기/쓰기" 만이 스토리지 엔진에 의해 처리된다. ( 즉 새로운 스토리지 엔진을 만든다 하더라도 전체 ..
-
메모리 할당 및 사용 구조Technique/RDBMS 2016. 5. 16. 22:11
글로벌 메모리 영역의 모든 메모리 공간은 MySQL 서버가 시작되면서 무조건 운영체제로부터 할당 된다.운영체제의 종류에 따라 다르겠지만 요청된 메모리 공간을 100% 할당해줄 수도 있고, 그 공간 만큼 예약해두고 필요할 때 조금씩 할당해주는 경우도 있다. 글로벌 메모리 영역과 로컬 메모리 영역의 차이는 MySQL 서버 내에 존재하는 많은 스레드가 공유해서 사용하는 공간인지 아닌지에 따라 구분된다. 글로벌 메모리 영역일반적으로 클라이언트 스레드의 수와 문관하게 일반적으로는 하나의 메모리 공간만 할당된다. 단 필요에 따라 2개 이상의 메모리 공간을 할당받을 수도 있지만 클라이언트의 스레드 수와 무관하며, 생성된 글로벌 영역이 N개라 하더라도 모든 스레드에 의해 공유된다. 로컬 메모리 영역세션 메모리 영역이라..
-
MySQL 스레딩 구조Technique/RDBMS 2016. 5. 16. 21:57
MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동하며 포그라운드 ( Foreground ) 스레드와 백그라운드( Background ) 스레드로 구분할 수 있다. 포그라운드 스레드 ( 클라이언트 스레드 ) 최소한 MySQL 서버에 접속된 클라이언트의 수만큼 존재하며, 주로 각 클라이언트 사용자가 요청하는 쿼리 문장을 처리하는 것이 임무다. 클라이언트 사용자가 작업을 마치고 커넥션을 종료하면,ㅡ 해당 커넥션을 담당하던 스레드는 다시 스래드 캐시 ( Thread pool ) 로 되돌아 간다.이미 스레드 캐시에 일정 개수 잇아의 대기중인 스레드가 있으면 스레드 캐시에 넣지 않고 스레드를 종료시켜 일정 개수의 스레드만 스레드 캐시에 존재하게 한다. 포그라운드 스레드는 데이터를 MySQL의 데이터 버..
-
MySQL 아키텍처Technique/RDBMS 2016. 5. 16. 21:43
MySQL은 일반 사용 RDBMS에서 제공하는 대부분의 접근법을 모두 지원한다.MySQL고유의 C API부터 시작해 JDBC나 ODBC 그리고 .NET의 표준 드라이버를 제공하며, 이러한 드라이버를 이용해 C/C++, PHP, JAVA, Perl, Python, Ruby, .NET, COBOL등 모든 언어를 이용해 MySQL 서버에서 쿼리를 사용할 수 있게 지원한다. MySQL 엔진클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 그리고 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다. 그리고 성능 향상을 위해 MyISAM의 키 캐시나 InnoDB의 버퍼풀과 같은 보조 저장소 기능이 포함돼 있다.MySQL은 표준 SQL( ANSI SQL-92) 문법을 지원..
-
[ 기본정리 ] UID와 EIDTechnique/LINUX 2016. 5. 12. 22:25
- UID 는 실제 UID로 RUID라고 하기도 한다.사용자가 로그인할 때 사용한 계정의 UID를 의미한다.- EID 는 유효 사용자 ID 라고 한다.현재 명령을 수행하는 주체의 UID를 의미한다. 일반적으로 UID 와 EUID는 같으며 UID와 EID가 달라지는 경우는 두가지가 있다. - 실행 파일에 setuid가 설정되어 있는 경우 : setuid가 설정되어 있는 경우에 해당 실행 파일을 실행한 프로세스의 UID는 사용자 계정의 UID가 아니라 실행 파일 소유자의 UID가 된다. 이때 실행 파일 소유자의 UID를 EUID라고 한다. - su 명령을 사용하여 다른 계정으로 전환한 경우 : 사용자가 로그인하면 처음에는 UID와 EUID가 같은 값을 갖는다 하지만 su 명령을 사용하여 다른 사용자로 전환하..
-
[ 기본정리 ] 사용자 계정 관리Technique/LINUX 2016. 5. 11. 23:44
사용자 계정 관리에는 사용자가 적절한 권한을 가지고 시스템에 접근할 수 있도록 사용자 계정을 새로 만들거나 사용자 정보를 수정하고, 계정 사용 기한 만료 등의 이유로 사용자 계정을 삭제하는 업무 등이 있다./etc/passwd, /etc/shadow, /etc/login.defs, /etc/group, /etc/gshadow 가 있다. /etc/passwd사용자 계정 정보가 저장된 기본파일이다. 초기 유닉스에서는 암호도 같은 파일에 저장했으나 해킹의 위험이 증가하면서 암호는 /etc/shadow 파일에 별도로 저장한다. root 계정으로 파일의 수정이 가능하지만, /etc/passwd 파일은 사용자 계정이 저장되는 중요한 파일이므로 함부로 수정하지 말고, 사용자 계정의 추가나 삭제, 수정 등 변경 사항이..
-
[ 기본정리 ] 패키지 관리Technique/LINUX 2016. 5. 11. 22:54
APT( Advanced Package Tool ) 패키지의 의존성 문제를 자동으로 해결하여 설치하는 패키지 관리 도구이다. APT 명령 의미 apt-cache status APT 캐시의 통계 정보를 출력한다. apt-cache search 키워드 캐시에서 키워드를 검색한다. apt-cache showpkg 패키지명 패킺지의 의존성 정보와 역의전송 정보를 출력한다. apt-cache show 패키지명 패키지의 간단한 정보를 출력한다. apt-cache pkgnames 사용 가능한 모든 패키지의 이름을 출력한다. apt-get update 패키지 저장소에서 새로운 패키지 정보를 가져온다. apt-get upgrade 현재 설치되어 있는 패키지를 업그레이드 한다. apt-get install 패키지명 패키지..