의외로 postgres 서버의 메모리 늘리는 것은 크게 영향이 없는 듯 하고

설정 파일에서 이것저것 고친거랑.. cpu 갯수 늘린게 영향을 주려나?

일단은 확실한 벤치를 한건 아니지만 ramdom_page_cost 늘린게 가장 큰 영향을 주는 듯

 

work_mem
As I mentioned earlier, memory allocation and management is a big part of performance-tuning PostgreSQL. If your system is doing a lot of complex sorts, increasing the sort memory can help the database optimize its configuration for your setup. This allows PostgreSQL to cache more data in memory while it performs its sorting, as opposed to making expensive calls to the disk.

random_page_cost
This setting essentially is the amount of time that your optimizer should spend reading memory before reaching out to your disk. You should alter this setting only when you’ve done other plan-based optimizations that we’ll cover soon, such as vacuuming, indexing, or altering your queries and schema.

These are just some of the optimizations you can make for database configurations, but there are plenty more. Now that you know how to tweak your database setup, let’s look at another area for investigation: vacuuming.

[링크 : https://stackify.com/postgresql-performance-tutorial/]

 

shared_buffers =  — Editing this option is the simplest way to improve the performance of your database server. The default is pretty low for most modern hardware. General wisdom says that this should be set to roughly 25% of available RAM on the system. Like most of the options I will outline here you will simply need to try them at different levels (both up and down ) and see how well it works on your particular system. Most people find that setting it larger than a third starts to degrade performance.


effective_cache_size =  — This value tells PostgreSQL's optimizer how much memory PostgreSQL has available for caching data and helps in determing whether or not it use an index or not. The larger the value increases the likely hood of using an index. This should be set to the amount of memory allocated to shared_buffers plus the amount of OS cache available. Often this is more than 50% of the total system memory.


work_mem =  — This option is used to control the amount of memory using in sort operations and hash tables. While you may need to increase the amount of memory if you do a ton of sorting in your application, care needs to be taken. This isn't a system wide parameter, but a per operation one. So if a complex query has several sort operations in it it will use multiple work_mem units of memory. Not to mention that multiple backends could be doing this at once. This query can often lead your database server to swap if the value is too large. This option was previously called sort_mem in older versions of PostgreSQL.

[링크 : https://www.revsys.com/writings/postgresql-performance.html]

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

postresql backup & recovery  (0) 2019.06.12
postgresql schema  (0) 2019.06.12
postgresql drop all tables  (0) 2019.06.05
postgresql import from csv  (0) 2019.06.04
postgresql password chg  (0) 2019.06.04
Posted by 구차니

 

 

DROP SCHEMA public CASCADE;

CREATE SCHEMA public;

GRANT ALL ON SCHEMA public TO postgres;

GRANT ALL ON SCHEMA public TO public;

 

[링크 : https://stackoverflow.com/questions/3327312/how-can-i-drop-all-the-tables-in-a-postgresql-database]

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

postgresql schema  (0) 2019.06.12
postgres db 속도 향상  (0) 2019.06.07
postgresql import from csv  (0) 2019.06.04
postgresql password chg  (0) 2019.06.04
postgresql 계정은 있는데 로그인 안될때  (0) 2019.03.20
Posted by 구차니

아래는 DOS 스타일로 CSV 파일로 부터 원하는 테이블에 데이터를 넣는 예제

COPY persons(first_name,last_name,dob,email) 
FROM 'C:\tmp\persons.csv' DELIMITER ',' CSV HEADER;

[링크 : http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/]

 

 

pgadmin4에서 이런걸 발견 못했는데 도대체 어디서 찾아야 하나..

Use the Import/Export data dialog to copy data from a table to a file, or copy data from a file into a table.

The Import/Export data dialog organizes the import/export of data through the Options and Columns tabs.

[링크 : https://www.pgadmin.org/docs/pgadmin4/dev/import_export_data.html]

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

postgres db 속도 향상  (0) 2019.06.07
postgresql drop all tables  (0) 2019.06.05
postgresql password chg  (0) 2019.06.04
postgresql 계정은 있는데 로그인 안될때  (0) 2019.03.20
postgresql WAL?  (0) 2019.03.14
Posted by 구차니

헐.. 이렇게 간단한 명려어가 존재한다니.. 

 

sudo -u postgres psql postgres

\password postgres

Enter new password: 

Enter it again:

# \q

[링크 : https://serverfault.com/questions/110154/]

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

postgresql drop all tables  (0) 2019.06.05
postgresql import from csv  (0) 2019.06.04
postgresql 계정은 있는데 로그인 안될때  (0) 2019.03.20
postgresql WAL?  (0) 2019.03.14
postgresql encoding / collate  (0) 2019.03.08
Posted by 구차니

pg_hba.conf 외에도, role을 바꾸어 주어야 하네?


 ALTER ROLE "asunotest" WITH LOGIN;

[링크 : https://stackoverflow.com/questions/35254786/postgresql-role-is-not-permitted-to-log-in]

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

postgresql import from csv  (0) 2019.06.04
postgresql password chg  (0) 2019.06.04
postgresql WAL?  (0) 2019.03.14
postgresql encoding / collate  (0) 2019.03.08
postgresql 설치(centos)  (0) 2019.03.08
Posted by 구차니

서버를 보다보니 뭔가가 주기적으로 IO를 일으키는게 보여서

프로세스 확인해보니 특정 VM

특정 VM에다가 iotop 깔아서 보니 아래 녀석이 튀어나온다.

% postgres: wal writer process

% postgres: checkpointer process

% postgres: autovacuum worker process   dbname


그래서 WAL이 먼가 찾아보니 Write Ahead Logging의 약자라고..

WAL을 쓰면 하드에 쓰는 주기가 줄어든다고 하는데..

[링크 : http://postgresql.kr/docs/9.6/wal-intro.html]


[링크 : https://www.postgresql.org/docs/9.6/wal-intro.html]


체크포인트는 더티를 쓰는 거고(write back에 가깝나?)

 At checkpoint time, all dirty data pages are flushed to disk and a special checkpoint record is written to the log file.

[링크 : https://www.postgresql.org/docs/9.2/wal-configuration.html]

[링크 : https://www.postgresql.org/docs/8.2/wal-configuration.html]


얘는 garbage collector 인거 같네

 VACUUM -- garbage-collect and optionally analyze a database

[링크 : https://www.postgresql.org/docs/8.2/sql-vacuum.html]


[링크 : https://www.postgresql.org/docs/8.2/runtime-config-autovacuum.html]

[링크 : https://www.postgresql.org/docs/8.2/routine-vacuuming.html]



읽으려니 눈에 안들어 오네.. ㅠㅠ

[링크 : https://www.cybertec-postgresql.com/en/postgresql-writer-and-wal-writer-processes-explained/]

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

postgresql password chg  (0) 2019.06.04
postgresql 계정은 있는데 로그인 안될때  (0) 2019.03.20
postgresql encoding / collate  (0) 2019.03.08
postgresql 설치(centos)  (0) 2019.03.08
postgreSQL centos 패키지  (0) 2019.02.01
Posted by 구차니

당연하지만.. 얘도 db인지라 인코딩 언어를 설정해주어야 한다..

아무생각없이 그냥 initdb 하면 en_us로 설정되는 망할 centos ㅠㅠ


[링크 : http://linux.systemv.pe.kr/postgresql-과-문자셋/]

[링크 : https://www.postgresql.org/docs/9.5/app-initdb.html]

[링크 : https://www.postgresql.org/docs/9.3/multibyte.html]


+

이런 에러 발생 -_-

[링크 : https://stackoverflow.com/.../strange-postgresql-value-too-long-for-type-character-varying500]


+

윈도우용 postgresql에서 언어설정에 따라 collate가 정해지는데

ko_KR.UTF-8은 포기해도 UTF-8은 포기 못하니 영어(English_United State)로 하라고..

(auto로 하니 한글 윈10에서는 cp949로 되어버린다)

[링크 : https://stackoverflow.com/questions/40673339/creating-utf-8-database-in-postgresql-on-windows10]

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

postgresql 계정은 있는데 로그인 안될때  (0) 2019.03.20
postgresql WAL?  (0) 2019.03.14
postgresql 설치(centos)  (0) 2019.03.08
postgreSQL centos 패키지  (0) 2019.02.01
postgreSQL 명령어 정리  (0) 2019.02.01
Posted by 구차니

설치

postgresql 은 client

postgresql-server 는 server

# yum install postgresql  postgresql-server 


db 초기화

# service postgresql initdb

(그냥 centos7 에서 이렇게 하니 Encoding이 SQL_ASCII로 Collate가 C로 된다.. 아놔..)

+

$ su -l postgres -c "initdb -E UTF8 --locale=ko_KR.UTF-8 --locale=en_US.utf8"



설정 확인

# chkconfig postgresql on 


서비스 시작

# systemctl start postgresql 

[링크 : https://wiki.postgresql.org/wiki/YUM_Installation]

[링크 : https://www.lesstif.com/pages/viewpage.action?pageId=31850584]


사용자 생성 (암호 없이)

# sudo -i -u postgres

# psql

postgres=# create user [계정아이디] with password '';

postgres=# create database [데이터베이스 이름];

postgres=# \q

# exit

[링크 : https://www.lesstif.com/pages/viewpage.action?pageId=61899197]

[링크 : http://database.sarang.net/database/postgres/tutorial/lecture/x58.htm]


+

2019.06.18

sudo -u postgres psql postgres

# \password postgres

Enter new password:  

[링크 : https://serverfault.com/questions/110154/...]


암호 바꾸기

postgres=# ALTER USER postgres WITH PASSWORD ''; 


[링크 : https://stackoverflow.com/questions/5421807/set-blank-password-for-postgresql-user]


접속되지 않을 경우

connect to PostgreSQL server: FATAL: no pg_hba.conf entry for host

# vim /var/lib/pgsql/data/pg_hba.conf

host all all      ::1/128      trust

host all postgres 127.0.0.1/32 trust 


# vim /var/lib/pgsql/data/pg_hba.conf 

listen_addresses = '*'

[링크 : https://dba.stackexchange.com/.../connect-to-postgresql-server-fatal-no-pg-hba-conf-entry-for-host]

[링크 : https://sysops.tistory.com/8]


+

2019.06.18

서비스 재시작만으로는 포트가 안바뀌는 듯..(ubuntu 18.04) 그래서 완전히 재기동을 해야 하는 문제가 있었음


[링크 : https://blog.bigbinary.com/2016/01/23/configure-postgresql-to-allow-remote-connection.html]


+

2020.01.16

psql 상에서 현재 db의 locale을 확인할 수 있다.

# show LC_COLLATE;

[링크 : https://linux.systemv.pe.kr/postgresql-과-문자셋/]

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

postgresql WAL?  (0) 2019.03.14
postgresql encoding / collate  (0) 2019.03.08
postgreSQL centos 패키지  (0) 2019.02.01
postgreSQL 명령어 정리  (0) 2019.02.01
psql - postgreSQL CLI client  (0) 2019.02.01
Posted by 구차니

postgresql은 메타페키지가 없는건가?

아무튼 클라이언트는 postgresql로 깔면되고 서버는 postgresql-server로 깔면된다.

(서버가 docker로 돌고 있어서 접속하려고 고민하다가 찾음..)


# yum search postgresql

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirror.kakao.com

 * extras: mirror.kakao.com

 * updates: mirror.kakao.com

======================================================== N/S matched: postgresql =========================================================

freeradius-postgresql.x86_64 : Postgresql support for freeradius

libreoffice-postgresql.x86_64 : PostgreSQL connector for LibreOffice

pcp-pmda-postgresql.x86_64 : Performance Co-Pilot (PCP) metrics for PostgreSQL

postgresql.i686 : PostgreSQL client programs

postgresql.x86_64 : PostgreSQL client programs

postgresql-contrib.x86_64 : Extension modules distributed with PostgreSQL

postgresql-devel.i686 : PostgreSQL development header files and libraries

postgresql-devel.x86_64 : PostgreSQL development header files and libraries

postgresql-docs.x86_64 : Extra documentation for PostgreSQL

postgresql-jdbc.noarch : JDBC driver for PostgreSQL

postgresql-jdbc-javadoc.noarch : API docs for postgresql-jdbc

postgresql-libs.i686 : The shared libraries required for any PostgreSQL clients

postgresql-libs.x86_64 : The shared libraries required for any PostgreSQL clients

postgresql-odbc.x86_64 : PostgreSQL ODBC driver

postgresql-plperl.x86_64 : The Perl procedural language for PostgreSQL

postgresql-plpython.x86_64 : The Python2 procedural language for PostgreSQL

postgresql-pltcl.x86_64 : The Tcl procedural language for PostgreSQL

postgresql-server.x86_64 : The programs needed to create and run a PostgreSQL server

postgresql-static.i686 : Statically linked PostgreSQL libraries

postgresql-static.x86_64 : Statically linked PostgreSQL libraries

postgresql-test.x86_64 : The test suite distributed with PostgreSQL

postgresql-upgrade.x86_64 : Support for upgrading from the previous major release of PostgreSQL

qt-postgresql.i686 : PostgreSQL driver for Qt's SQL classes

qt-postgresql.x86_64 : PostgreSQL driver for Qt's SQL classes

qt3-PostgreSQL.i686 : PostgreSQL drivers for Qt 3's SQL classes

qt3-PostgreSQL.x86_64 : PostgreSQL drivers for Qt 3's SQL classes

qt5-qtbase-postgresql.i686 : PostgreSQL driver for Qt5's SQL classes

qt5-qtbase-postgresql.x86_64 : PostgreSQL driver for Qt5's SQL classes

PyGreSQL.x86_64 : A Python client library for PostgreSQL

apr-util-pgsql.x86_64 : APR utility library PostgreSQL DBD driver

libdbi-dbd-pgsql.x86_64 : PostgreSQL plugin for libdbi

perl-DBD-Pg.x86_64 : A PostgreSQL interface for perl

php-pgsql.x86_64 : A PostgreSQL database module for PHP

python-psycopg2.x86_64 : A PostgreSQL database adapter for Python

python-psycopg2-debug.x86_64 : A PostgreSQL database adapter for Python 2 (debug build)

python-psycopg2-doc.x86_64 : Documentation for psycopg python PostgreSQL database adapter

redland-pgsql.x86_64 : PostgreSQL storage support for Redland

rhdb-utils.x86_64 : Miscellaneous utilities for PostgreSQL - Red Hat Edition

tcl-pgtcl.x86_64 : A Tcl client library for PostgreSQL


  Name and summary matches only, use "search all" for everything. 



[링크 : https://unix.stackexchange.com/questions/249494/install-postgresql-client-psql-only-on-centos]



+ 2020.01.16


[링크 : https://www.lesstif.com/pages/viewpage.action?pageId=31850584]

[링크 : https://www.postgresql.org/download/linux/redhat/] 패키지

[링크 : https://www.manualfactory.net/10153]  방화벽

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

postgresql encoding / collate  (0) 2019.03.08
postgresql 설치(centos)  (0) 2019.03.08
postgreSQL 명령어 정리  (0) 2019.02.01
psql - postgreSQL CLI client  (0) 2019.02.01
pgadmin - postgreSQL client  (0) 2019.02.01
Posted by 구차니

psql로 접속해서 보는중


mysql의 show databases;

\l

[링크 : http://www.postgresqltutorial.com/postgresql-show-databases/]


mysql의 show tables;

\dt


얘랑 같다는데 실제로 해보니 \dt는 자신의 테이블만 보여주도록 WHERE 가 추가된 느낌?

SELECT * FROM pg_catalog.pg_tables; 


굳이 좀더 쓰자면 아래에 가까운?

SELECT * FROM pg_catalog.pg_tables WHERE tableowner='username;' 


[링크 : https://stackoverflow.com/questions/769683/show-tables-in-postgresql]

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

postgresql encoding / collate  (0) 2019.03.08
postgresql 설치(centos)  (0) 2019.03.08
postgreSQL centos 패키지  (0) 2019.02.01
psql - postgreSQL CLI client  (0) 2019.02.01
pgadmin - postgreSQL client  (0) 2019.02.01
Posted by 구차니