2. DBMS이야기/01. PostgreSQL 89

SQL_DUMP VS SQL_DUMPALL

1. SQL_DUMP - ORACLE EXPORT와 동일 (EXPORT의 FULL=Y, DUMPALL 사용) - PG_DUMP Command를 실행하는 순간의 DATA, Export - 문법 : PG_DUMP [OPTIONS] [DBNAME] > [FILENAME] OPTION NAME DESCRIPTION f FILENAME 출력파일이름 F FORMAT(c,t,p) p(plain) : Text (Default) c(custem) : Binary 형태 t(tar) : Tar 형태 a DATA ONLY 스키마 제외 데이터만 s SCHEMA ONLY 스키마만 t TABLE NAME 지정한 이름의 테이블만 n SCHEMA NAME 지정한 이름의 스키마만 2. SQL_DUMPALL - PG_DUMP와 동일 (단..

[Postgresql] Lock Session 확인 및 정리 가이드

* Lock Session 확인 및 정리 가이드 세션(1) pid=3516 (Blocking Session) kyh=# select pg_backend_pid(); pg_backend_pid ---------------- 3516 kyh=# begin; kyh=# update kyh1 set test='kyh' where test='kyh2'; UPDATE 26 세션(2) pid=6532 (Wait Session) pg_backend_pid ---------------- 6532 kyh=# begin; kyh=# update kyh1 set test='kyh3' where test='kyh2'; ~ lock발생 (1) blocking세션으로 인한 wait session확인하기 kyh=# select pi..

[postgreSQL] vacuum 이란

Vacuum 이란 ? Vacuum 은 PostgreSQL 에서만 (다른 RDBMS에 없는) 고유 명령이다.PostgreSQL에서 특정 Row를 업데이트 할 경우, 디스크 상의 해당 Row를 물리적으로 업데이트하여 사용하지 않고, 새로운 영역을 할당해 쓴다. Update 또는 Delete 가 된 후, 해당영역이 자동으로 재사용되거나 사라지지 않는다. 이렇게 오래된 영역을 재사용하거나 정리해주는 명령어가 Vacuum 이다.따라서 Update, Delete, Insert 가 많이 일어나는 DB 의 경우는 Vacuum 을 주기적으로 해주는 것이 좋다. Vacuum 실행 구조 PostgreSQL에서는 특정 Row가 Update나 Delete 되어도, 물리적인 저장공간은 삭제되지 않고 남게 된다. 이런 오래된 행 ..

[Postgresql] Postgresql 백업 (pg_dump)

PG_DUMP 이 방법은 백업 프로그램이 백업 대상에 대해서, SQL 구문의 텍스트 파일을 만들고, 복원을 할 때는 서버에 이 SQL 구문을 실행해서, 백업 할 때의 상태로 만드는 기법이다. 이 방법을 구현한 PostgreSQL 유틸리티 프로그램이 pg_dump 이다.기본적인 사용법은 다음과 같다: pg_dump 데이터베이스이름 > 출력파일 [OPTIONS] -a 스키마를 제외한 데이터만 백업-b Include large objects in the dump. This is the default behavior except when --schema, --table, or --schema-only is specified, so the -b switch is only useful to add large obj..

PostgreSQL Privileges Part.3

PostgreSQL Privileges Part.3 6) ACCESS PRIVILEGES • OBJECT 별 ACCESS 설정 가능한 권한 access privilege 는 각 object 당 부여할 수 있는 권한의 종류입니다. 7) OBJECT OWNERSHIP • OBJECT 구조 및 OBJECT OWNERSHIP 첫번째 보이는 그림은 각 object 들의 구조를 나타내며 두번째 그림은 유저가 부여해야만 하는 권한들의 구조를 나타냅니다. (1) (2) table에 접근을 하고싶다면 table 하나에만 권한을 부여해서는 안되고 object 구조에 따라서 schema, database, tablespace 모두에 대한 권한이 있어야지만 접근이 가능합니다. 개념은 여기까지이며, 자세한 내용은 다음 시간부터..

[Admin] 3.Server Configuration : Parameter 변경

Parameter 변경 • context 값이 postmaster인 경우, Configuration File 변경 후 서버 재기동 필요 $ psql edb -U enterprisedbedb=# select name, setting, context from pg_settings where name = 'archive_mode'; name | setting | context--------------+---------+------------ archive_mode | off | postmaster edb=# \q $vi $PGDATA/postgresql.confarchive_mode = on $ pg_ctl restart... $ psql edb -U enterprisedbedb=# select current..

[PostgreSQL] PostgreSQL 에서의 Transaction 종류2

1. 트랜잭션 시스템 구조 PostgreSQL 의 트랜잭션 시스템은 3개의 Layer 로 구성되어 있음 상단 레이어는 사용자가 SQL 명령어를 통해서 시스템의 상태를 변경할 수 있게 됨 중단 레이어는 개별 쿼리를 프로세싱하는 전과 후를 담당함 하단 레이어는 로우레벨 트랜잭션과 서브 트랜잭션으로 구현함 상단 레이어 - BEGIN : Begin Transaction Block - COMMIT : End Transaction Block - ROLLBACK : User Abort Transaction Block - SAVEPOINT : Define Savepoint - ROLLBACK TO : Rollback To Savepoint - RELEASE : Release Savepoint 중단 레이어의 상태 단계 ..

PostgreSQL Privileges Part.2

PostgreSQL Privileges Part.2 4) Privilege 해제 : REVOKE Privilege를 해제하려면 revoke 명령어를 사용하여 권한을 해제할 수 있습니다. revoke 문의 문법은 다음과 같습니다. REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | ..

Hot Backup

Hot Backup - Archive Mode 설정 (Parameter 변경 후, DB 재기동 필요) postgresql.conf ; DB 설정 파일 수정 . wal_level : WAL Log의 Level 설정 minimal : Default archive : DB Log Archive Mode 설정 시 사용 hot_standby : DB Active-Standby 구조 설정 시 사용 . archive_mode : DB Archive Mode 설정 on (wal_level = minimal 이면, 설정되지 않음) off . archive_command : WAL Log가 Archive 영역으로 copy 되도록 command 설정 \\cp -f %p /archive/%f %p : WAL Log 파일 전체..