원하는 내용만을 빼낼수는 있는 듯?
그나저나.. 특정 schema에 넣으려고 했는데 왜 안되지.. ㅠㅠ
[링크 : http://i5on9i.blogspot.com/2016/09/db-pgdump-pgrestore.html]
[링크 : https://www.postgresql.org/docs/9.2/app-pgrestore.html]
[링크 : https://stackoverflow.com/questions/4191653/i-want-to-restore-the-database-with-a-different-schema]
옵션을 봐도.. schema만 복구하는 등의 옵션은 있지만
특정 스키마로 복구하는 옵션은 존재하지 않는듯.
하고 나서 alter 로 변경해야 할것으로 보인다.
$ pg_restore --help pg_restore 프로그램은 pg_dump로 만들어진 자료파일로 PostgreSQL 데이터베이스에 그 자료를 일괄 입력합니다.
사용법: pg_restore [옵션]... [파일]
일반 옵션들: -d, --dbname=NAME 접속할 데이터베이스 이름 -f, --file=FILENAME 출력 파일 이름 -F, --format=c|d|t 백업 파일 형식 (지정하지 않으면 자동분석) -l, --list 자료의 요약된 목차를 보여줌 -v, --verbose 자세한 정보 보여줌 -V, --version 버전 정보를 보여주고 마침 -?, --help 이 도움말을 보여주고 마침
리스토어 처리를 위한 옵션들: -a, --data-only 스키마는 빼고 자료만 입력함 -c, --clean 다시 만들기 전에 데이터베이스 개체 지우기(삭제) -C, --create 작업 대상 데이터베이스를 만듦 -e, --exit-on-error 오류가 생기면 끝냄, 기본은 계속 진행함 -I, --index=NAME 지정한 인덱스 만듦 -j, --jobs=NUM 여러 병렬 작업을 사용하여 복원 -L, --use-list=FILENAME 출력을 선택하고 해당 순서를 지정하기 위해 이 파일의 목차 사용 -n, --schema=NAME 해당 스키마의 개체들만 복원함 -N, --exclude-schema=NAME 해당 스키마의 개체들은 복원 안함 -O, --no-owner 개체 소유권 복원 건너뛰기 -P, --function=NAME(args) 지정한 함수 만듦 -s, --schema-only 자료구조(스키마)만 만듦 -S, --superuser=NAME 트리거를 사용하지 않기 위해 사용할 슈퍼유저 사용자 이름 -t, --table=NAME 복원할 객체 이름 (테이블, 뷰, 기타) -T, --trigger=NAME 지정한 트리거 만듦 -x, --no-privileges 접근 권한(grant/revoke) 지정 안함 -1, --single-transaction 하나의 트랜잭션 작업으로 복원함 --disable-triggers 자료만 복원할 때 트리거 사용을 안함 --enable-row-security 로우 보안 활성화 --if-exists 객체 삭제 시 IF EXISTS 구문 사용 --no-comments 코멘트는 복원하지 않음 --no-data-for-failed-tables 만들 수 없는 테이블에 대해서는 자료를 덤프하지 않음 --no-publications 발행 정보는 복원 안함 --no-security-labels 보안 라벨을 복원하지 않음 --no-subscriptions 구독 정보는 복원 안함 --no-tablespaces 테이블스페이스 할당을 복원하지 않음 --section=SECTION 지정한 섹션만 복원함 섹션 종류: pre-data, data, post-data --strict-names 테이블이나 스키마를 지정했을 때 그 패턴에 맞는 객체가 적어도 하나 이상 있어야 함 --use-set-session-authorization SET SESSION AUTHORIZATION 명령을 ALTER OWNER 명령 대신 사용하여 소유권 설정
연결 옵션들: -h, --host=HOSTNAME 접속할 데이터베이스 서버 또는 소켓 디렉터리 -p, --port=PORT 데이터베이스 서버의 포트 번호 -U, --username=NAME 연결할 데이터베이스 사용자 -w, --no-password 암호 프롬프트 표시 안 함 -W, --password 암호 입력 프롬프트 보임(자동으로 처리함) --role=ROLENAME 복원 전에 SET ROLE 수행
The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified multiple times to select multiple objects.
사용할 입력 파일을 지정하지 않았다면, 표준 입력(stdin)을 사용합니다.
오류보고: <pgsql-bugs@postgresql.org>. |
결론은.. WAL을 활성화 시키고 그걸 쓰면 최대한 올릴수 잇고
8.4 이후 부터 병렬처리 옵션을 지원하니 그걸 쓰라고.. (일단은 하드불이 안꺼지는거 봐서는 WAL이 좀더 도움이 될 듯..)
First check that you are getting reasonable IO performance from your disk setup. Then check that you PostgreSQL installation is appropriately tuned. In particular shared_buffers should be set correctly, maintenance_work_mem should be increased during the restore, full_page_writes should be off during the restore, wal_buffers should be increased to 16MB during the restore, checkpoint_segments should be increased to something like 16 during the restore, you shouldn't have any unreasonable logging on (like logging every statement executed), auto_vacuum should be disabled during the restore.
If you are on 8.4 also experiment with parallel restore, the --jobs option for pg_restore. |
[링크 : https://stackoverflow.com/questions/2094963/postgresql-improving-pg-dump-pg-restore-performance]
+
위의 옵션들을 건드리고 -j 4 로 해서 수행하니 40분 걸렸네..
938M 8월 1 15:48 postgres_data.dmp
938MB.. 정상 속도인건가? 아무튼 SSHD라 어느정도 넘어가면 HDD 속도에 늦어져서 그럴지도
real 39m28.317s user 0m36.639s sys 0m2.967s |
+
SQL dump는 이렇게 빨리 되네.. -_-
(용량이 위는 900MB 아래는 500MB 지만)
real 2m55.319s user 0m1.206s sys 0m0.573s |
+
--------+----------------------------+--------+----------+------------+------ ctgov | baseline_counts | 테이블 | postgres | 8072 kB | ctgov | baseline_measurements | 테이블 | postgres | 159 MB | ctgov | brief_summaries | 테이블 | postgres | 200 MB | ctgov | browse_conditions | 테이블 | postgres | 45 MB | ctgov | browse_interventions | 테이블 | postgres | 24 MB | ctgov | calculated_values | 테이블 | postgres | 29 MB | ctgov | central_contacts | 테이블 | postgres | 13 MB | ctgov | conditions | 테이블 | postgres | 45 MB | ctgov | countries | 테이블 | postgres | 24 MB | ctgov | criteria | 테이블 | postgres | 8192 bytes | ctgov | design_group_interventions | 테이블 | postgres | 34 MB | ctgov | design_groups | 테이블 | postgres | 114 MB | ctgov | design_outcomes | 테이블 | postgres | 451 MB | ctgov | designs | 테이블 | postgres | 37 MB | ctgov | detailed_descriptions | 테이블 | postgres | 301 MB | ctgov | documents | 테이블 | postgres | 2096 kB | ctgov | drop_withdrawals | 테이블 | postgres | 26 MB | ctgov | eligibilities | 테이블 | postgres | 407 MB | ctgov | facilities | 테이블 | postgres | 241 MB | ctgov | facility_contacts | 테이블 | postgres | 28 MB | ctgov | facility_investigators | 테이블 | postgres | 17 MB | ctgov | id_information | 테이블 | postgres | 30 MB | ctgov | intervention_other_names | 테이블 | postgres | 18 MB | ctgov | interventions | 테이블 | postgres | 103 MB | ctgov | ipd_information_types | 테이블 | postgres | 856 kB | ctgov | keywords | 테이블 | postgres | 71 MB | ctgov | links | 테이블 | postgres | 7824 kB | ctgov | mesh_headings | 테이블 | postgres | 1128 kB | ctgov | mesh_terms | 테이블 | postgres | 5920 kB | ctgov | milestones | 테이블 | postgres | 34 MB | ctgov | outcome_analyses | 테이블 | postgres | 50 MB | ctgov | outcome_analysis_groups | 테이블 | postgres | 18 MB | ctgov | outcome_counts | 테이블 | postgres | 55 MB | ctgov | outcome_measurements | 테이블 | postgres | 1291 MB | ctgov | outcomes | 테이블 | postgres | 178 MB | ctgov | overall_officials | 테이블 | postgres | 38 MB | ctgov | participant_flows | 테이블 | postgres | 7984 kB | ctgov | pending_results | 테이블 | postgres | 1712 kB | ctgov | provided_documents | 테이블 | postgres | 1480 kB | ctgov | reported_events | 테이블 | postgres | 1787 MB | ctgov | responsible_parties | 테이블 | postgres | 26 MB | ctgov | result_agreements | 테이블 | postgres | 15 MB | ctgov | result_contacts | 테이블 | postgres | 5120 kB | ctgov | result_groups | 테이블 | postgres | 273 MB | ctgov | sponsors | 테이블 | postgres | 44 MB | ctgov | studies | 테이블 | postgres | 186 MB | ctgov | study_references | 테이블 | postgres | 128 MB | |