개발자와 DBA를 위한 Real MySQL 책을 보고 정리한 내용이다. 트랜잭션 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두 개 이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 100% 적용되거나 또는 아무것도 적용되지 않아야 함을 보장해주는 것 트랜잭션 관점에서 InnoDB/MyISAM 스토리지 엔진 차이 mysql> CREATE TABLE tab_myisam(fdpk INT NOT NULL, PRIMARY KEY (fdpk)) ENGINE=MyISAM; mysql> INSERT INTO tab_myisam(fdpk) VALUES (3); mysql> CREATE TABLE tab_innodb(fdpk INT NOT NULL, PRIMARY KEY (fdpk)) ENGINE=INNODB; m..
개발자와 DBA를 위한 Real MySQL 책을 보고 정리한 내용이다. MySQL 전체 아키텍처 MySQL 서버는 MySQL 엔진, 스토리지 엔진으로 구분된다. MySQL 엔진 클라이언트로부터 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 그리고 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다. 성능 향상을 위해 MyISAM의 키 캐시나 InnoDB의 버퍼 풀과 같은 보조 저장소 기능이 포함돼 있다. 표준 SQL(ANSI SQL-92) 문법을 지원하므로 표준 문법에 따른 다른 DBMS와 호환되어 실행될 수 있다. 스토리지 엔진 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로..
개발자와 DBA를 위한 Real MySQL 책을 보고 정리한 내용이다. MySQL 설정 파일 MySQL 서버는 단 하나의 설정 파일(my.cnf)만 사용한다. 설정 파일의 경로가 하나로 고정돼어 있지않고 MySQL 서버에 지정된 여러 개의 디렉토리를 순차적으로 탐색하면서 처음 발견된 my.cnf 파일을 시작될 때만 참조해 사용하게 된다. 순서는 다음과 같다. 1. /etc/my.cnf 2. /etc/mysql/my.cnf 3. /usr/local/mysql/etc/my.cnf 4. ~/.my.cnf 1, 2, 4 번 파일 경로는 어느 MySQL에서나 동일하게 검색하는 경로이며, 3 번 파일은 컴파일될 때 MySQL 프로그램에 내장된 경로이다. MySQL 서버용 설정 파일 1, 3 하나의 장비( 서버 머신..
ElephantSQL 소개할 ElephantSQL은 여러 관계형 데이터베이스 중 PostgreSQL 데이터베이스의 호스팅 서비스이다. 데이터베이스 호스팅 서비스는 웹서버와 데이터베이스 서버가 같은 물리적 장치에 있는 것이 아닌 웹서버와 데이터베이스 서버를 분리하여 효율적으로 데이터베이스를 활용할 수 있도록 도와주는 서비스이다. 좀 더 간략히 말하면 데이터베이스만을 사용하는 서버를 구축한다는 것이다. 데이터베이스 호스팅을 사용하게 되면 여러 웹서버가 데이터베이스 호스팅에 연결되어 동작한다. 이러한 호스팅을 제공하는 많은 회사가 존재하며 그중 하나라고 생각하면 될듯하다. 이러한 데이터베이스 호스팅 회사들은 데이터베이스의 저장용량, 동시 허용 접속 수 등을 관리하며 사용자들에게 관리비를 받는다고 알고 있다. ..
Ubuntu 18.04 에 Oracle 12c 설치설치 환경Ubuntu : 18.04 LTS Oracle : 12c EnterpriseOracle 설치 파일 다운로드아래의 링크를 클릭해 Oracle 12c Enterprise/Standard Editions를 클릭해 Linux x86-64를 클릭해 다운로드 합니다.오라클 12c 설치오라클 데이터베이스 그룹/유저 추가먼저 관리자계정으로 접속한 후 필요한 그룹과 oracle계정을 추가합니다.$ sudo su $ groupadd -g 502 oinstall $ groupadd -g 503 dba $ groupadd -g 504 oper $ groupadd -g 505 asmadmin $ useradd -u 502 -g oinstall -G dba,asmadmi..
MVCCMVCC (MultiVersion Concurrency Control) 이란 Write 세션이 Read 세션을 블로킹하지 않고 그 반대로 Read세션이 Write세션을 블로킹하지 않고 서로 다른 세션이 동일 데이터에 접근했을 때 각 세션마다 다른 버전의 문서(스냅샵 이미지)를 보장해주는 메커니즘을 의미한다.다음 그림은 이해하기 위한 예제로 쇼핑몰에서 상품을 관리하는 서로 다른 두 관리자가 있다고 가정한다.먼저 두 관리자가 상품 가격을 업데이트하기 위해 왼쪽에 있는 관리자1이 오른쪽에 있는 관리자2보다 2초 일찍 상품에 대해서 전체 조회를 진행했다. Figure 1. 상품 전체 조회관리자 1이 Blue jeans 상품의 가격을 $15로 업데이트하고 트랜잭션을 완료했다. Figure 2. 관리자1 청..
MacOS PostgreSQL 설치설치환경MacOShomebrew버전 : homebrew 1.3.2PostgreSQL Version : v9.6목차homebrewhomebrew?설치간단한 사용법Postgresql 설치설치설치 확인Postgresql 서비스 시작접속 테스트database 생성user 생성database 소유권 user에게 주기user 권한 주기(scott) 유저 접속 테스트homebrewhomebrew?리눅스 터미널에서는 wget이나 yum으로 패키지 관리를 손쉽게 할 수 있지만 리눅스 계열인 mac os에서는 이러한 기능이 없다.그래서 나온게 HomeBrew이다.설치법홈페이지에 접속 : [brew 홈페이지]가운데 부분에 위치한 /usr/bin/ruby -e "$(curl -fsSL htt..
Linux(Ubuntu) PostgreSQL 설치설치 환경Ubuntu Version : Xenial (16.04 LTS)Apt Version : apt 1.2.24 (amd64)PostgreSQL Version : 9.6목차소개PostgreSQL란?PostgreSQL 설치Ubuntu add PPApostgreSQL 설치PostgreSQL TutorialpostgreSQL 원격 설정DBMS 접속계정 생성데이터베이스 생성데이터베이스에 계정 연동데이터베이스 접속소개PPA에 대해서 모르신다면 아래의 글을 읽고나서 설치를 진행하시기 바랍니다.Personal Package Archive (PPA)리눅스는 업데이트 방식을 각자 프로그램이 직접 하는 게 아닌 패키지 저장소를 이용해 업테이트를 합니다. 이 패키지 저장소..
postgresql_upgradeBomin Seo Table of Contents업그레이드 환경upgradeBakcupPostgres 10 install실행중인 postgres목록 조회9.6upgrade9.6 remove업그레이드 환경Ubuntu 16.04PostgreSQL-9.6 → PostgreSQL-10.2root 권한으로 진행upgradeBackupBACKUP$ pg_dumpall > backupName형식pg_dumpall : PostgreSQL 모든 데이터를 백업하겠다.backupName : 백업파일 이름백업파일이 굳이 필요하지는 않지만 혹시 업데이트 도중 잘못될 수 있기 때문에 백업을 진행한다.Postgres 10 installhttps://www.postgresql.org/download/..
MongoDB 사용법설치환경MacOShomebrew버전 : homebrew 1.3.2Ubuntu Version : Xenial (16.04 LTS)Apt Version : apt 1.2.24 (amd64)MongoDB Version : v3.4.9MongoDB?몽고DB는 데이터 객체들이 컬렉션 내부에서 독립된 문서로 저장되는, 문서 모델을 기반으로 하는 NoSQL 데이터베이스입니다.MongoDB는 무료 오픈 소스 크로스 플랫폼 문서 지향 데이터베이스 프로그램입니다. NoSQL 데이터베이스 프로그램으로 분류 된 MongoDB는 스키마와 함께 JSON과 유사한 문서를 사용합니다. MongoDB는 MongoDB Inc.에 의해 개발되었으며 GNU Affero General Public License와 Apac..