데이터베이스란
데이터베이스란
- 데이터를 체계적으로 저장/관리 하기 위한 서비스
- 관계형 데이터베이스를 많이 사용함 (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/
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 추가
'쿠버네티스 교육 > 프로젝트' 카테고리의 다른 글
220525_2_세미 프로젝트_웹 서비스 구축_NFS-WEB 연동 (0) | 2022.05.25 |
---|---|
220525_1_세미 프로젝트_웹 서비스 구축_WEB-DB 연동 (0) | 2022.05.24 |
220524_2_세미 프로젝트_웹 서비스 구축_DB 서버 이중화 구성-2 (0) | 2022.05.24 |
220523_2_세미 프로젝트_웹 서비스 구축_iSCSI 구성-2 (0) | 2022.05.24 |
220523_1_세미 프로젝트_웹 서비스 구축_iSCSI 구성-1 (0) | 2022.05.23 |