'프로그램 사용/postgreSQL'에 해당되는 글 162건

  1. 2019.09.03 postgresql copy 와 \copy
  2. 2019.09.03 pg_restore
  3. 2019.09.02 postgresql working directory
  4. 2019.09.02 postgresql \copy에서 컬럼 무시하기
  5. 2019.09.02 postgresql \copy에서 시작 몇줄 무시하기
  6. 2019.09.02 postgresql custom database dump 복구하기
  7. 2019.08.28 postgresql generate_series()
  8. 2019.08.27 where 1=1 4
  9. 2019.08.27 join
  10. 2019.08.27 postgresql ROW_COUNT

copy는 SQL 문의 명령어 이고

[링크 : https://www.postgresql.org/docs/9.2/sql-copy.html]

 

\copy는 psql에서 인식하는 meta command 라고..

[링크 : https://www.postgresql.org/docs/9.2/app-psql.html]

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

pgadmin over ssh  (0) 2019.09.03
psql 명령어  (0) 2019.09.03
pg_restore  (0) 2019.09.03
postgresql working directory  (0) 2019.09.02
postgresql \copy에서 컬럼 무시하기  (0) 2019.09.02
Posted by 구차니

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

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

\! pwd

 

그냥 외부 명령어 실행해서 확인하는 듯..

[링크 : https://stackoverflow.com/questions/45091269/how-to-print-current-working-directory-in-psql-console]

Posted by 구차니

그런거 없다~ -_ㅠ

 

아무래도.. awk의 힘을 빌려야 할 듯..

[링크 : https://stackoverflow.com/questions/26701735/]

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

pg_restore  (0) 2019.09.03
postgresql working directory  (0) 2019.09.02
postgresql \copy에서 시작 몇줄 무시하기  (0) 2019.09.02
postgresql custom database dump 복구하기  (0) 2019.09.02
postgresql generate_series()  (0) 2019.08.28
Posted by 구차니

그런거 없다 -_-

tail -n+3을 통해서 앞의 3줄을 날리고 하는걸 추천하는 듯...

 

tail -n+3 myfile.csv

[링크 : https://stackoverflow.com/questions/37368845/postgresql-copy-skip-first-two-lines-off-csv]

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

postgresql working directory  (0) 2019.09.02
postgresql \copy에서 컬럼 무시하기  (0) 2019.09.02
postgresql custom database dump 복구하기  (0) 2019.09.02
postgresql generate_series()  (0) 2019.08.28
where 1=1  (4) 2019.08.27
Posted by 구차니

 

 

export
pg_dump -U db_user -W -F t db_name > /path/to/your/file/dump_name.tar

import
pg_restore -d db_name /path/to/your/file/dump_name.tar -c -U db_user

[링크 : https://axiomq.com/blog/backup-and-restore-a-postgresql-database/]

 

[링크 : https://www.postgresql.org/docs/9.4/backup-dump.html]

[링크 : https://www.postgresql.org/docs/8.1/backup.html]

[링크 : https://www.postgresql.org/docs/8.1/app-pgrestore.html]

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

postgresql \copy에서 컬럼 무시하기  (0) 2019.09.02
postgresql \copy에서 시작 몇줄 무시하기  (0) 2019.09.02
postgresql generate_series()  (0) 2019.08.28
where 1=1  (4) 2019.08.27
join  (0) 2019.08.27
Posted by 구차니

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

postgresql \copy에서 시작 몇줄 무시하기  (0) 2019.09.02
postgresql custom database dump 복구하기  (0) 2019.09.02
where 1=1  (4) 2019.08.27
join  (0) 2019.08.27
postgresql ROW_COUNT  (0) 2019.08.27
Posted by 구차니

나~쁘게 말하면.. 조건식에서 AND를 넣냐 마냐로 고민하기 싫으니

where 1=1라는 항상 참인 조건을 주고 그 이후에 AND 조건식 이런식으로 붙여 나가는 방법을 쓰겠다~ 라는 것이군..

[링크 : http://hatisgood.tistory.com/entry/SQL-where-11-하는-이유]

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

postgresql custom database dump 복구하기  (0) 2019.09.02
postgresql generate_series()  (0) 2019.08.28
join  (0) 2019.08.27
postgresql ROW_COUNT  (0) 2019.08.27
sql select if or case  (0) 2019.08.26
Posted by 구차니

+

[링크 : https://www.w3schools.com/sql/sql_join.asp]

 

끄앙.. 다시 보려니 머리가 안돌아간다

 

left join

테이블 두개를 조인할때 왼쪽의 것과, 두개의 교집합 까지만 허용

[링크 : https://makand.tistory.com/entry/SQL-LEFT-JOIN-구문]

 

right join

두개 중에 오른쪽 것과, 두개의 교집합 허용이라는데.. 굳이 left, right할 이유가 있나 싶네..

걍 테이블 순서 바꾸어서 하세요~ 하면 되지 않았을려나?

[링크 : https://makand.tistory.com/entry/SQL-RIGHT-JOIN-구문]

 

inner join

교집합만

[링크 : https://makand.tistory.com/entry/SQL-INNER-JOIN-구문]

 

left outer join - 조건이 맞지 않더라도 왼쪽 테이블 전체 내용이 나옴

right outer join

full outer join(full join) 조건이 아닌 컬럼도 포함(왜?)

[링크 : https://limkydev.tistory.com/144]

 

(일종의.. 전체 목록 꺼내기에 가까운 느낌?)

[링크 : https://thebook.io/006696/part01/ch06/03/04/]

 

+

문득 full outer join 이랑 select distinct union 이랑 같은거 아닌가 싶긴한데..

찾아보니 union은 vertical이고 join은 horizontal이라고 하는데 무슨 의미인지 감이 잘 안오네..

full outer join vs union distinct

[링크 : https://www.quora.com/What-is-the-difference-between-full-outer-join-and-union-in-SQL]

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

postgresql generate_series()  (0) 2019.08.28
where 1=1  (4) 2019.08.27
postgresql ROW_COUNT  (0) 2019.08.27
sql select if or case  (0) 2019.08.26
order by group by  (0) 2019.08.26
Posted by 구차니

select 로 몇개 줄이 나왔는지는 못하는것 같고(perform 해서 어떻게 받는게 가능해 보이긴 하지만)

select into나

update, insert문 등에 의해 영향을 받은(affected) 것에 대해서 출력이 되는 듯

 

GET DIAGNOSTICS integer_var = ROW_COUNT;

[링크 : https://www.postgresql.org/docs/9.0/plpgsql-statements.html]

 

변수 선언

DO $$ 
DECLARE
   varname integer := 0;
BEGIN 
   get diagnostics age = row_count;
   raise notice '%', age;
END $$;

[링크 : http://www.postgresqltutorial.com/plpgsql-variables/]

[링크 : http://www.gisdeveloper.co.kr/?p=4573]

 

+

pg 9.3 이후 부터 지원되는 듯

Allow PL/pgSQL to access the number of rows processed by COPY (Pavel Stehule)

A COPY executed in a PL/pgSQL function now updates the value retrieved by GET DIAGNOSTICS x = ROW_COUNT.

[링크 : https://stackoverflow.com/questions/16610449/get-the-count-of-rows-from-a-copy-command]

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

where 1=1  (4) 2019.08.27
join  (0) 2019.08.27
sql select if or case  (0) 2019.08.26
order by group by  (0) 2019.08.26
postgresql 정규 표현식 검색  (0) 2019.08.26
Posted by 구차니