728x90

데이터베이스란


데이터베이스란

- 데이터를 체계적으로 저장/관리 하기 위한 서비스

- 관계형 데이터베이스를 많이 사용함 (2차원 테이블)

- NoSQL 방식의 데이터베이스도 많이 사용함 => 빅데이터 처리 등의 용도로 사용

- MariaDB는 관계형 데이터베이스 중 하나 (Mysql에서 파생)

 

 

데이터베이스 실습 개요


1. 패키지 설치 (mariadb-server)

2. 설정 파일 수정 (/etc/my.cnf)

3. 서비스 활성화 (mariadb)

4. 서비스 기본 보안 설정 (mysql_secure_installation)

 - 루트 사용자 암호 설정 및 불필요한 정보 제거

5. 방화벽 설정 (firewall-cmd --add-service=mysql)

 - 원격 접근이 필요할 경우만 설정

 

* xml 설정 파일: /usr/lib/firewalld/services/

xml 파일을 이용하여 설정 가능

 


DB 서버 이중화 구성 실습 개요


백업 및 복원

- 백업 및 복원의 필요성: 데이터베이스에 저장한 데이터를 안전하게 유지하기 위함

- 백업 특징

  물리적 백업 논리적 백업
속도 빠름 느림
제약 사항 같은 시스템(서비스) 관계 없음

 

이중화 구성

- 이중화 구성의 필요성: 서비스 제공을 원활하게 하기 위해 장애 발생에 대한 대비

- 이중화 구성의 특징: 마스터(쓰기 가능)와 슬레이브(읽기만 가능)

 

이중화 구성 방법

1. 기본 서비스가 구성된 두 대 이상의 서버 준비

2. 마스터 역할의 서버에서 설정

 1) 시스템을 구분할 ID 지정 (설정 파일)

 2) 사용자 설정 (생성/권한)

 3) 방화벽 설정 (mysql) > 슬레이브 접근을 위한 설정

 4) 데이터베이스 백업

3. 슬레이브 역할의 서버에서 설정

 1) 시스템을 구분할 ID 지정 (설정 파일)

 2) 마스터를 지정 및 슬레이브 상태로 설정 (mysql 실행 후)

 3) 마스터의 백업 데이터를 이용해 복원

 


 

실습 환경

 

  DB-Master DB-Slave
IPv4 10.0.2.10/24 10.0.2.20/24
GW 10.0.2.1
DNS 8.8.8.8
HOSTNAME master.goorm.com slave.goorm.com
OS CentOS 7

 


 

사전 작업-시스템 환경 설정


 

네트워크 설정

# 마스터
[root@localhost ~]# nmcli con add type ethernet ifname enp0s3 con-name nat ipv4.addresses 10.0.2.10/24 ipv4.gateway 10.0.2.1 ipv4.dns 8.8.8.8 ipv4.method manual
[root@localhost ~]# nmcli con up nat
[root@localhost ~]# hostnamectl set-hostname master.goorm.com
[root@localhost ~]# bash
[root@master ~]#

# 슬레이브
[root@localhost ~]# nmcli con add type ethernet ifname enp0s3 con-name nat ipv4.addresses 10.0.2.20/24 ipv4.gateway 10.0.2.1 ipv4.dns 8.8.8.8 ipv4.method manual
[root@localhost ~]# nmcli con up nat
[root@localhost ~]# hostnamectl set-hostname slave.goorm.com
[root@localhost ~]# bash
[root@slave ~]#

 

패키지 설치

yum install -y mariadb-server

 

서비스 활성화

systemctl enable --now mariadb

 

보안 구성

mysql_secure_installation

 

방화벽 구성

firewall-cmd --add-service=mysql
firewall-cmd --add-service=mysql --permanent

 

 


SQL 구문


1. SELECT
데이터 확인 (모든 유저)


2. DML
INSERT  - 데이터 삽입(행 추가)
UPDATE - 데이터 수정(값 변경)
DELETE - 데이터 삭제(행 삭제)


3. DDL
CREATE - 테이블(객체)를 생성
ALTER - 테이블의 구조 / 객체의 특성을 변경
DROP - 테이블(객체)를 삭제


4. DCL
GRANT - 권한 추가
REVOKE - 권한 제거


5. TCL
COMMIT - 변경 사항을 적용
ROLLBACK - 이전 상태로 되돌리기

 


MariaDB의 COMMIT 방식


- 기본적으로 설치 시 AUTO-COMMIT 방식으로 구성

- 설정 시 오류가 발생하면 복구하기 어려움

- 활성/비활성 설정 시에는 세션(일시적) 설정과 설정 파일(영구) 설정

 

세션 설정

# 현재 설정 값 확인
MariaDB [testdb]> show variables like 'autocommit';

# 현재 설정 값 변경(일시적)
MariaDB [testdb]> set autocommit = 1;

# (1/0 , true/false , on/off)
# 비활성화 시에는 COMMIT / ROLLBACK 구문 사용 가능

 

 

영구 설정

- /etc/my.cnf 파일 (/etc/my.cnf.d)

- autocommit=0

 

vi /etc/my.cnf
autocommit=0

# 설정 파일을 변경했으므로 서비스 재시작
systemctl restart mariadb

 

/etc/my.cnf 파일의 [mysqld] 영역에 autocommit 추가

 

 

 

 

 

728x90

+ Recent posts