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 objects to selective dumps.
-c 데이터베이스 삭제 포함
-C 데이터베이스 생성 구문까지 포함(복구하려는 데이터베이스가 없는 서버에 복구할때)
-d 데이터만 백업 / 복구 (insert 쿼리로 덤프)
-D 컬럼명을 붙인 INSERT 명령어로 데이터를 백업. 복구시 속도가 늦음. PostgreSQL이외의 다른 데이터베이스에 복구할 때 유용.
-E encoding 인코딩지정
-f filename 출력 파일명
-F format 파일 포맷(costom, tar, plain text)
(1) -Fp : 디폴트 백업 방식(palin text), 복구는 psql 명령어
백업을 자동으로 압축. 복원시에 필요한 테이블이나 스키마만 따로 분리해서 처리할 수 있음
필요한 경우 plain text 방식으로 변환할 수 있어서 sql문을 수작업으로 편집할 수 있다.
(2) -Fc : 바이너리 형식으로 압축, 복구는 pg_restore
(3) -Ft : tar로 압축된 파일로 백업, 복구는 pg_restore
-i pg_dump와 데이터베이스 서버와의 버젼차이를 무시
-n schema 스키마 지정, 복수의 스키마를 지정할 수 있음.
-N schema 지정한 스키마를 백업하지 않음
-o
-O
-s 데이터 없이 스키마 정보 백업 / 복구 (데이터베이스가 존재하는 곳에 복구)
-S username 트리거 작동을 중지 시킬 수 있는 슈퍼유저 이름을 지정
-t tablename 지정한 테이블만 백업
-T tablename 지정한 테이블 백업 안함
-v 자세한 정보를 보여줌
-x 접근권한(grant/revoke) 명령은 백업하지 않음
-Z 아카이브(archive) 형식에서 사용하는 압축레벨을 지정
# 데이터베이스 접솝 관련 옵션
-h host 서버 호스트 지정
-p port 포트 지정
-U username 사용자명 지정
-W 비밀번호 지정
Pg_dump 예제
옵션: c (custom)
[postgres@olmaster:~]$ pg_dump -d scottdb -U scott -F c -b -v -f scott_scottdb.backup
Password:
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading extensions
pg_dump: reading user-defined functions
pg_dump: reading user-defined types
pg_dump: reading procedural languages
pg_dump: reading user-defined aggregate functions
pg_dump: reading user-defined operators
pg_dump: reading user-defined operator classes
pg_dump: reading user-defined operator families
pg_dump: reading user-defined text search parsers
pg_dump: reading user-defined text search templates
pg_dump: reading user-defined text search dictionaries
pg_dump: reading user-defined text search configurations
pg_dump: reading user-defined foreign-data wrappers
pg_dump: reading user-defined foreign servers
pg_dump: reading default privileges
pg_dump: reading user-defined collations
pg_dump: reading user-defined conversions
pg_dump: reading type casts
pg_dump: reading table inheritance information
pg_dump: reading rewrite rules
pg_dump: finding extension members
pg_dump: finding inheritance relationships
pg_dump: reading column info for interesting tables
pg_dump: finding the columns and types of table "dept"
pg_dump: finding the columns and types of table "emp"
pg_dump: finding the columns and types of table "bonus"
pg_dump: finding the columns and types of table "salgrade"
pg_dump: finding the columns and types of table "dummy"
pg_dump: flagging inherited columns in subtables
pg_dump: reading indexes
pg_dump: reading indexes for table "dept"
pg_dump: reading indexes for table "emp"
pg_dump: reading constraints
pg_dump: reading foreign key constraints for table "dept"
pg_dump: reading foreign key constraints for table "emp"
pg_dump: reading triggers
pg_dump: reading triggers for table "dept"
pg_dump: reading triggers for table "emp"
pg_dump: reading large objects
pg_dump: reading dependency data
pg_dump: saving encoding = UTF8
pg_dump: saving standard_conforming_strings = off
pg_dump: saving database definition
pg_dump: dumping contents of table bonus
pg_dump: dumping contents of table dept
pg_dump: dumping contents of table dummy
pg_dump: dumping contents of table emp
pg_dump: dumping contents of table salgrade
[postgres@olmaster:~]$
[postgres@olmaster:~]$ ls -l
합계 16
drwx------. 4 postgres postgres 4096 2012-10-31 22:33 9.2/
drwxr-xr-x. 2 postgres postgres 4096 2012-11-18 14:57 oradba/
-rw-r--r--. 1 postgres postgres 5258 2012-12-01 16:27 scott_scottdb.backup
[postgres@olmaster:~]$ file scott_scottdb.backup
scott_scottdb.backup: PostgreSQL custom database dump - v1.12-0
[postgres@olmaster:~]$ cat scott_scottdb.backup |more
PGDMP^L # 생성된 백업 화일은 바이너리 파일
옵션 : p (plain)
SQL 구문의 텍스트 파일 형태로 백업
[postgres@olmaster:~]$ pg_dump scottdb -U scott -F p -b -v -f scott_scottdb_backup.sql
Password:
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading extensions
.........
[postgres@olmaster:~]$ ls -alrt
합계 72
-rw-r--r--. 1 postgres postgres 131 2012-10-30 13:30 .bashrc
drwx------. 4 postgres postgres 4096 2012-10-31 22:33 9.2/
drwxr-xr-x. 51 root root 4096 2012-11-10 23:37 ../
drwxr-xr-x. 2 postgres postgres 4096 2012-11-18 14:57 oradba/
-rw-------. 1 postgres postgres 1238 2012-11-18 14:57 .bash_profile
-rw-r--r--. 1 postgres postgres 532 2012-11-22 09:33 .psqlrc
-rw-------. 1 postgres postgres 13520 2012-12-01 16:14 .psql_history
-rw-------. 1 postgres postgres 11345 2012-12-01 16:26 .bash_history
-rw-r--r--. 1 postgres postgres 5258 2012-12-01 16:27 scott_scottdb.backup
drwx------. 4 postgres postgres 4096 2012-12-01 16:33 ./
-rw-r--r--. 1 postgres postgres 4920 2012-12-01 16:33 scott_scottdb_backup.sql
[postgres@olmaster:~]$ file scott_scottdb_backup.sql
scott_scottdb_backup.sql: ASCII text
[postgres@olmaster:~]$ cat scott_scottdb_backup.sql |more # 생성된 파일은 TEXT 파일
--
-- PostgreSQL database dump
--
-- Dumped from database version 9.2.1
-- Dumped by pg_dump version 9.2.1
-- Started on 2012-12-01 16:33:08 KST
SET statement_timeout = 0;
SET client_encoding = 'UTF8';
.......
posted by 김득은
'2. DBMS이야기 > 01. PostgreSQL' 카테고리의 다른 글
[postgreSQL] vacuum 이란 (0) | 2014.07.22 |
---|---|
[Admin] 3.Server Configuration : Parameter 종류(Resource Consumption) (0) | 2014.07.15 |
PostgreSQL Privileges Part.3 (0) | 2014.07.09 |
[Admin] 3.Server Configuration : Parameter 변경 (0) | 2014.07.04 |
[PostgreSQL] PostgreSQL 에서의 Transaction 종류2 (0) | 2014.07.02 |