Avatar
임호현
좋아요
댓글
[FAQ/PG] WAS 연동을 위한 JDBC Driver 다운로드 방법

jdbc 드라이버는 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 에서 다운로드 받거나 스택빌더를 통해 받을 수 있습니다.

스택빌더는 $PostgreSQL_HOME\10\bin\stackbuilder.exe 파일이 있으니 실행하여 설치합니다.
아래와 같이 Categories -> Database Drivers -> pgJDBC v42.2.1-1을 선택하여 Install 하시면 됩니다.

mceclip0.png

정상 설치가 완료되면 아래와 같이 JDBCDriver가 생성된 것을 확인할 수 있습니다.

mceclip1.png

1. query 실행시간 확인 방법
- query가 수행하는 시간을 확인하는 방법입니다.
\timing postgreSQL 명령어를 통해 확인할 수 있습니다.

postgres=# \timing
Timing is on.
postgres=# select * from t1;
c1
----
(0 rows)
Time: 0.409 ms
postgres=# \timing
Timing is off.
postgres=# select * from t1;
c1
----
(0 rows)
postgres=#

위와 같이 \timing으로 query 실행 시간을 켜거나 없앨 수 있습니다.


1. postgreSQL을 하나의 pc에서 여러개 기동하기
종종 하나의 machine 에서 여러개의 PostgreSQL 을 사용해야 할 때가 있습니다.
machine 을 여러 사용자가 사용할 수도 있고, 혹은 개인적으로 여러개의 PostgreSQL 을 띄우고 이것저것 작업을 할 수도 있기 때문입니다.
아래 2가지 조건만 만족하면 N개의 PostgreSQL 을 실행 시킬 수 있습니다.
   1. data 가 달라야 한다.
   2. port 가 달라야 한다.
data 가 달라야 한다는 말은, "pg_ctl start -D" 옵션에 넣는 경로가 달라야 한다는 말입니다.
당연히, 하나의 datafile에 여러개의 process 가 작업을 하면 안되겠죠!
port 가 달라야 한다는 말은, tcp listen port 가 달라야 한다는 말입니다. 하나의 Server에서 동일한 포트를 2개이상 띄울수는 없으니까요.
자 그럼 직접 생성해 보겠습니다.
기존에 있던 data 말고, 새로운 data 를 생성합니다.

% initdb -D [NEW_DIRECTORY] -U [USER_NAME]

[postgres@NRSON 10]$ initdb -D /home/postgres/PostgreSQL/10/data2 -U postgres
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "ko_KR.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "ko_KR.UTF-8"
The default text search configuration will be set to "simple".
Data page checksums are disabled.
creating directory /home/postgres/PostgreSQL/10/data2 ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
Success. You can now start the database server using:
pg_ctl -D /home/postgres/PostgreSQL/10/data2 -l logfile start
[postgres@NRSON 10]$

port 를 변경합니다.

[postgres@NRSON 10]$ vi /home/postgres/PostgreSQL/10/data2/postgresql.conf
# - Connection Settings -
listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 15432 # (change requires restart)
max_connections = 100 # (change requires restart)

앞에 주석 # 을 삭제한 후, 5432 말고 다른 port 를 입력합니다.
서버를 시작한다.

[postgres@NRSON 10]$ pg_ctl start -D [NEW_DIRECTORY]
[postgres@NRSON data2]$ pg_ctl start -D /home/postgres/PostgreSQL/10/data2
waiting for server to start....2018-04-05 14:58:41.093 KST [28187] LOG: listening on IPv6 address "::1", port 15432
2018-04-05 14:58:41.093 KST [28187] LOG: listening on IPv4 address "127.0.0.1", port 15432
2018-04-05 14:58:41.128 KST [28187] LOG: listening on Unix socket "/tmp/.s.PGSQL.15432"
2018-04-05 14:58:41.244 KST [28188] LOG: database system was shut down at 2018-04-05 14:52:38 KST
2018-04-05 14:58:41.279 KST [28187] LOG: database system is ready to accept connections
done
server started
[postgres@NRSON data2]$

자 그럼 새로운 서버로 접속해 보겠습니다.

[postgres@NRSON data2]$ psql -p [NEW_PORT]
[postgres@NRSON data2]$ psql -p 15432
psql.bin (10.3)
Type "help" for help.
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}


\du의 경우 현재 postgresDatabase의 DB User에 대한 정보를 알려줍니다.

위와 같은 방식을 사용하면, N개의 PostgreSQL 을 실행 시킬 수 있습니다.