긍정적인 사고와 행동으로 선한 영향력을 줄 수 있도록

PostgreSQL 16

[PostgreSQL] Clustering 란 ?

Clustering 일반적으로 DB 구조를 보면, DB 서버와 스토리지가 하나씩 구성되어 있다. ​ 만약 서버가 제대로 동작하지 않으면 먹통이 된다. ​ 실시간으로 돌아가면서 데이터 손실을 방지하기 위해서 서버를 여러개로 구성 하는 것이다. 이때, DB서버는 서로 다른 인스턴스에서 동작한다. 이 경우 서버 두 대를 하나로 묶어 운영한다. ​ 두 서버 모두 Active 상태이다. 따라서 서버 한 대가 죽더라도 하나가 동작하고 있고 그동안 복구를 하여 서비스 중단이 없도록 할 수 있다. 또한, 하나의 DB 서버에 가해지던 부하도 나눠짐으로써 CPU와 Memory 부하도 줄어들게 되어 성능 및 유지보수가 향상된다. ​ 다만, 여러 개의 서버가 하나의 스토리지를 공유함으로써 병목현상이 발생한다. 이를 해결하기 ..

PostgreSQL 2023.04.19

[PostgreSQL] Unlogged Table 이란 ?

Unlogged Table A. UNLOGGED Table 이란? ​ 서버 충돌 후 데이터 일관성 또는 정합성이 문제가 되지 않거나 대용량 데이터 쓰기를 위해 당분간 데이터를 복구할 가능성이 없는 경우에 한해 성능 향상이 필요한 일회용 테이블을 처리하려는 경우, Unlogged Table 이 적합합니다. Unlogged Table은 2011 년 PostgreSQL 9.1에 도입되었으며 v9.5부터 alter 구문을 통하여 Unlogged Table, Logged Table 로 전환 사용이 가능합니다. WAL (Write-Ahead Logging ) 시스템은 Postgres를 안정적으로 만드는 주요 구성 요소입니다. WAL 은 이중화 상태일 경우 데이터 동기화에 필요하며 또한, 장애 조치를 위해 복제에 사..

PostgreSQL 2023.04.19

[PostgreSQL] 단일 사용자 모드 (single mode) 란 ?

단일 사용자 모드 ( Single Mode ) 1] 디버그 작업이나, 장애 복구 때 사용한다 2] 세션 사용자 ID를 1로 처리하며, 명령을 실행한 사용자가 슈퍼유저(관리자) 권한을 가진다. 3] 이 사용자는 다중 사용자 환경에서는 없는 사용자이며, 손상된 시스템 카탈로그를 수동으로 복구할 때 단일 사용자 모드로 실행할 수 있다. 4] 단일 사용자 모드에서는 자동 체크포인트나, 복제 같은 백그라운드 프로세스가 실행되지 않는다. [postgres@localhost data]$ postgres --help postgres is the PostgreSQL server. Usage: postgres [OPTION]... Options for single-user mode: --single selects sing..

PostgreSQL 2023.04.19

[PostgreSQL] postgres_fdw 설치 & 가이드

postgres_fdw Oracle DB-Link 처럼 물리적으로 떨어져 있는 데이터베이스를 사용하기 위한 Extension Postgresql은 DB Link 보안 취약점 타파를 위해 Oracle DB Link와 다르게 Link를 사용할 연동 테이블 별로 각각 Link 생성 전체 데이터베이스에 링크 생성 불가 extension 설치 create extension postgres_fdw; extension 조회 experdb=# \dx+ postgres_fdw Objects in extension "postgres_fdw" -[ RECORD 1 ]------+-------------------------------------------- Object description | foreign-data wra..

PostgreSQL 2023.04.12

[PostgreSQL] pg_dump 사용법 & 복구 절차

pg_dump 여러 데이터 센터에 걸쳐 복제 클러스터를 구축할 수 있지만, 우발적인 DELETE DROP 후에는 백업만이 해결책 이중화 구성이 백업을 대체할 수 없음. # 논리적(Logical) 백업 [1] pg_dump 사용 [2] 기본적으로 일반 텍스트 파일에 저장하지만, 압축된 tar파일로도 생성 할 수 있음 [3] 이 백업은 psql과 pg_restore를 사용하여 복원 ( SQL 내용을 쉽게 추출할 수 있음 ) [4] pg_dump --help pg_dump [OPTION] ... [DBNAME] g_dump dumps a database as a text file or to other formats. Usage: pg_dump [OPTION]... [DBNAME] General options:..

PostgreSQL 2023.04.03

[Postgresql] postgres 15 version 설치

PostgreSQL 15 Version 설치 가이드 공식 사이트 다운로드 : https://www.postgresql.org/download/linux/redhat/ [1] # Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm [2] # Install PostgreSQL: sudo yum install -y postgresql15-server [rpm 종속성 에러 발생 시 ] yum install libicu-50.2-4.el7_7.x86_64 yum install postgresql15-..

PostgreSQL 2023.04.03

[PostgreSQL] Primary Key 설정 추가 생성

Primary Key 의 약어로 데이터베이스의 기본키를 의미한다. - 기본키는 후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다. - 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다. - NULL 값이 있어서도 안된다. 1. PK 생성 [ 제약조건 이름 미생성 시 ] ALTER TABLE ADD PRIMARY KEY ; [ 제약조건 이름 생성 시 ] ALTER TABLE 테이블이름 ADD CONSTRAINT PRIMARY KEY () 2. PK 삭제 ALTER TABLE 테이블이름 DROP PRIMARY KEY;

PostgreSQL 2023.03.30

[PostgreSQL] tablespace 란? 생성법과 개념 정리

tablespace 란 데이터베이스 객체가 파일 시스템상에서 저장되는 물리적인 공간을 의미한다. 논리적인 데이터베이스 구조나 스키마를 지정하지 않는다. PostgreSQL에서 DB는 PGDATA라는 환경변수에 지정된 디렉터리를 통째로 DB로 사용한다. 그리고 그 하위에 테이블이 파일로 생성된다. 즉 테이블스페이스를 따로 생성하지 않아도 DB에 사용자 테이블을 만들 수 있다. 기본적으로 DB로 지정된 디렉토리 전체가 하나의 기본 테이블스페이스로 인식되는 것이다. PostgreSQL 공식문서는 아래와 같이 정의하고 있다. - postgresql에서 기본으로 테이블스페이스가 생성되는 여부 * 기본적으로 pg_default, pg_global 이 생성됩니다. List of tablespaces Name | Ow..

PostgreSQL 2023.03.21

[Postgresql] general_series 함수를 이용한 더미데이터 생성

Postgres 데이터베이스에 테스트용 Dummy 데이터를 삽입해야 하는 경우가 종종 발생한다. 그때 유용하게 사용될 수 있는 기능이 " generate_series " 이다. CREATE TABLE t AS SELECT gs as idx, '테스트 문자열' || gs AS test_string, md5(random()::text) AS random_string FROM generate_series(1, 1000000) AS gs; idx | test_string | random_string -----+-----------------+---------------------------------- 1 | 테스트 문자열1 | dd338ba654774bb643ada0c58c0d1141 2 | 테스트 문자열2 ..

PostgreSQL 2023.03.20

[PostgreSQL] pgbench 를 통한 파라미터 튜닝 성능 개선 방법

pgbench 란 PostgreSQL이 기본적으로 제공하는 Benchmark Tool, 일정 패턴의 SQL 구문들을 반복 수행하여 이를 통해 얻어지는 초 당 Transaction 횟수로 성능을 평가합니다. 스크립트 파일 수정을 통해 트랜잭션의 커스터마이징이 가능합니다. 테스트 환경 OS : CentOS Linux 7.9 Memory : 2.4G CPU : 2 Core PostgreSQL Versioin : 14.5 postgres.conf : 기본값 ① test 할 임시 데이터베이스 생성 postgres =# create database [DB Name]; CREATE DATABASE ② 생성한 데이터베이스의 table 및 row 수 설정 후 생성 [postgres@localhost bin]$ pgben..

PostgreSQL 2023.03.15