원하는 내용만을 빼낼수는 있는 듯?

그나저나.. 특정 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     | 

 

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

psql 명령어  (0) 2019.09.03
postgresql copy 와 \copy  (0) 2019.09.03
postgresql working directory  (0) 2019.09.02
postgresql \copy에서 컬럼 무시하기  (0) 2019.09.02
postgresql \copy에서 시작 몇줄 무시하기  (0) 2019.09.02
Posted by 구차니