티스토리 뷰
PostgreSQL 에서 사용되는 Backup / Restore 명령어에 대해 공유 합니다.
작성기준은 psql (PostgreSQL) 14.8 기준으로 작성하 였습니다. 작성 시점의 해당 시기에는 homebrew를 통한 Postgresql 설치버전은 15버전까지 존재하고, 현재 16버전이 베타 버전으로 제공 되고 있습니다.
Backup
b : b, --blobs Large Object들도 함께 덤프함
-v : v, --verbose 작업 내역을 자세히 봄(작업로그)
-F : F, --format=c|d|t|p 출력 파일 형식(사용자 지정, 디렉터리, tar, dump 선호)
-Z, --compress=0-9 압축되는 형식의 압축 수준
pg_dump
pg_dump -h localhost -p 5432 -U postgres -d hello-world -v -Z7 -Fc -b --file \tmp\hello-world.dump
pg_dump 명령어 중에 -Z 압축 형식에 따른 압축비와, dump 시간을 비교한 표입니다.
제가 자주 사용하는 dump 압축 형식은 -Z7 -Fc 형태가 dump 시간 및 압축비 형태에서 좋은 성능을 내고 있어 사용중 입니다.
출처 : https://dan.langille.org/2013/06/10/using-compression-with-postgresqls-pg_dump/
pg_dump --help 시 나타나는 pg_dump command 옵션 정보 입니다.
pg_dump --help
pg_dump dumps a database as a text file or to other formats.
Usage:
pg_dump [OPTION]... [DBNAME]
General options:
-f, --file=FILENAME output file or directory name
-F, --format=c|d|t|p output file format (custom, directory, tar,
plain text (default))
-j, --jobs=NUM use this many parallel jobs to dump
-v, --verbose verbose mode
-V, --version output version information, then exit
-Z, --compress=0-9 compression level for compressed formats
--lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock
--no-sync do not wait for changes to be written safely to disk
-?, --help show this help, then exit
Options controlling the output content:
-a, --data-only dump only the data, not the schema
-b, --blobs include large objects in dump
-B, --no-blobs exclude large objects in dump
-c, --clean clean (drop) database objects before recreating
-C, --create include commands to create database in dump
-e, --extension=PATTERN dump the specified extension(s) only
-E, --encoding=ENCODING dump the data in encoding ENCODING
-n, --schema=PATTERN dump the specified schema(s) only
-N, --exclude-schema=PATTERN do NOT dump the specified schema(s)
-O, --no-owner skip restoration of object ownership in
plain-text format
-s, --schema-only dump only the schema, no data
-S, --superuser=NAME superuser user name to use in plain-text format
-t, --table=PATTERN dump the specified table(s) only
-T, --exclude-table=PATTERN do NOT dump the specified table(s)
-x, --no-privileges do not dump privileges (grant/revoke)
--binary-upgrade for use by upgrade utilities only
--column-inserts dump data as INSERT commands with column names
--disable-dollar-quoting disable dollar quoting, use SQL standard quoting
--disable-triggers disable triggers during data-only restore
--enable-row-security enable row security (dump only content user has
access to)
--exclude-table-data=PATTERN do NOT dump data for the specified table(s)
--extra-float-digits=NUM override default setting for extra_float_digits
--if-exists use IF EXISTS when dropping objects
--include-foreign-data=PATTERN
include data of foreign tables on foreign
servers matching PATTERN
--inserts dump data as INSERT commands, rather than COPY
--load-via-partition-root load partitions via the root table
--no-comments do not dump comments
--no-publications do not dump publications
--no-security-labels do not dump security label assignments
--no-subscriptions do not dump subscriptions
--no-synchronized-snapshots do not use synchronized snapshots in parallel jobs
--no-tablespaces do not dump tablespace assignments
--no-toast-compression do not dump TOAST compression methods
--no-unlogged-table-data do not dump unlogged table data
--on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands
--quote-all-identifiers quote all identifiers, even if not key words
--rows-per-insert=NROWS number of rows per INSERT; implies --inserts
--section=SECTION dump named section (pre-data, data, or post-data)
--serializable-deferrable wait until the dump can run without anomalies
--snapshot=SNAPSHOT use given snapshot for the dump
--strict-names require table and/or schema include patterns to
match at least one entity each
--use-set-session-authorization
use SET SESSION AUTHORIZATION commands instead of
ALTER OWNER commands to set ownership
Connection options:
-d, --dbname=DBNAME database to dump
-h, --host=HOSTNAME database server host or socket directory
-p, --port=PORT database server port number
-U, --username=NAME connect as specified database user
-w, --no-password never prompt for password
-W, --password force password prompt (should happen automatically)
--role=ROLENAME do SET ROLE before dump
If no database name is supplied, then the PGDATABASE environment
variable value is used.
Restore
Postgresql 에서 사용되는 Restore 방식은 기본적으로 pg_restore 형식으로 진행하지만, psql 명령어로 restore가 가능합니다.
-j, --jobs = 병렬 작업을 사용
-v : v, --verbose 작업 내역을 자세히 봄(작업로그)
pg_restore
pg_restore -j 8 -h localhost -p 5432 -U postgres -d hello-world -v /tmp/hello-world.dump
psql
psql 의방식은 자주사용 되지는 않으나, 마이그레이션 또는 실행할 쿼리가 많은경우의 *.sql 파일에 대해서 restore시에 사용하고 있습니다. 물론 단순 한 sql파일에 대한 restore뿐만아니라, pg_restore 명령어를 대체하여 사용할 수 있습니다.
psql -h localhost -p 5432 -U postgres -d hello-world -a -f hello-world.sql
Reference.
https://dan.langille.org/2013/06/10/using-compression-with-postgresqls-pg_dump/
https://www.postgresql.org/docs/11/backup-dump.html#BACKUP-DUMP-RESTORE
'개발' 카테고리의 다른 글
Kafka 기본 명령어 (0) | 2023.07.20 |
---|---|
Apache Kafka: 대용량 실시간 데이터 스트리밍 플랫폼 (0) | 2023.07.20 |
Apache Kafka 설치 및 사용 (for Mac & homebrew) (0) | 2023.07.20 |
[Internet Explorer]Internet Explorer 버전별 설치 방법 (0) | 2016.01.27 |
[OpenSource]OpenSource License 오픈소스 라이선스 (0) | 2016.01.20 |
- Total
- Today
- Yesterday
- 신규 모델y
- 모델y rwd
- 환경부
- 레퍼럴
- 모델y 주문
- beelink
- 테슬라
- 테슬라 주니퍼
- 모델y
- RWD
- 모델 Y RWD
- 보조금
- Jowua
- 조우와
- 리터로봇3
- 리터로봇 트러블슈팅
- 주행거리
- 주니퍼 예약
- litter robot troubleshooting
- bonnet removed
- gv70
- 리터로봇 멈춤
- 주니퍼 모델y
- 테슬라 악세사리
- 모델 y
- 테슬라 모델y
- Kafka
- N100
- 모델y 주니퍼
- Litter Robot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |