티스토리 뷰

728x90
반응형

 포스팅은 PostgreSQL Installation 및 WildFly 연동 방법에 대해 가이드하겠습니다.


최근 Cloud 환경으로 넘어 오면서 급격하게 OpenSource Software를 사용하는 빈도가 늘어나고 있습니다. Standalone 환경에서 ScaleOut, ScaleIn이 유동적으로 이루어 질수 있도록 기반을 잡고 있고, PostgreSQL이 앞으로 DB 시장에 어떠한 역할을 할지 귀추가 주목됩니다.


먼저 PostgreSQL 설치 방법에 대해 알아보겠습니다.

바이너리 파일은 PostgreSQL 홈페이지에서 다운로드가 가능하지만 EDB 홈페이지에서 바이너리 형태로 다운로드를 할 수 있습니다.

다운로드 시 필수 선택 사항인 postgreSQL Version을 선택하고 postgreSQL을 설치할 운영체제를 선택하면 다운로드가 수행됩니다.


본 포스팅에서는 EDB 사이트에서 다운로드 받아 수행하였습니다.

설치과정은 매우 간단합니다. Next, Install이 끝입니다.

먼저 Binary를 관리자 권한으로 실행합니다.

이후 Instruction Setup이 나옵니다. Next 후 Installation Directory를 선택합니다.

다음으로 Components 들을 선택합니다. 먼저 PostgreSQL Server, pgAdmin, Stack Builder등을 함께 설치 할 수 있습니다.

다음으로 Data File의 Directory를 선택합니다.

이후 PostgreSQL의 관리자 Password와 PostgreSQL 기동 Port를 선택합니다.

마지막으로 Locale 선택 후 Install을 수행합니다.


다음으로 pgAdmin을 활용한 PostgreSQL 운용가이드를 설명하겠습니다.

위와 같이 설치가 완료가 되면 pgAdmin을 실행할 수 있습니다.

Servers를 선택하고 Install시 설치했던 PostgreSQL 10을 선택합니다.

이 시점에 설치 시 입력했던 Connect to Server를 위한 암호 입력창이 뜹니다. Password 입력 후 OK 버튼을 클릭합니다. 

서버에 연결 되면 다양한 정보들이 출력이 됩니다. 주요 내용을 살펴보겠습니다.

Dashboard에서는 Connect 되어 있는 Session 수, Transactions per Second, Tuples in - out, Blocking I/O, Server activity 등의 그래픽컬한 정보들을 실시간으로 확인할 수 있습니다.

Properties에서는 General ID, Name, Server type, Version, Comments 정보를 확인할 수 있으며, Connection에서는 연결상태, HostName, Port, Username, Role 정보등을 확인 할 수 있고, SSL 사용여부, Host Address, DB restriction등의 내용을 확인 할 수 있다.

SQL에서는 실제 SQL 문을 이용할 수 있습니다. PostgreSQL의 경우 No SQL과 RDB 모두 지원합니다.

Statistics에서는 현재 기동되어 있는 Process의 PID, User, Database Name, Backend Start 정보, Client, Application 정보등을 볼수 있습니다.


그럼 이제 pgAdmin 활용 방법에 대해 알아보겠습니다.

먼저 PostgreSQL DB를 추가해 보겠습니다.

추가 방법은 간단합니다. 먼저 좌측의 Databases에서 우클릭하여 Create, Database 순으로 선택합니다.

생성하고자 하는 Database Info를 입력하고, Save 버튼을 클릭합니다. 이 시점에 Database Name과 소유자를 선택할 수 있습니다.

Database 추가는 이것으로 완료가 될 정도로 pgAdmin을 활용하면 간단하게 작업할 수 있습니다.

참고사항으로 CLI 환경 (Linux / Unix) 에서는 create database nrsonDB 명령어로 추가가 가능합니다.

다음으로 Schema 추가 방법에 대해 알아보겠습니다.

postgreSQL에서는 다른 Database와 다르게 Schema라는 개념이 있습니다.

Schema는 데이터베이스 내부에 있는 객체들(테이블, 함수, 시퀀스)의 관리를 편하게 하는 역할을 담당합니다.

Schema는 여러 사용자나 프레임워크에서 하나의 데이터베이스를 사용할 경우 충돌 현상을 예방할 수 있습니다. 약간 JAVA의 Interface 개념과 비슷하다고 볼수 있습니다.

위에서 생성한 Database인 nrsonDB의 Schema로 기본 public이 등록되어 있습니다. 앞으로 사용할 신규 Schema를 추가해 보도록 하겠습니다.

마찬가지로 Schemas에서 우클릭하여 Create, Schema 순으로 선택합니다.

생성하고자 하는 Schema Info를 입력하고 Save 버튼을 클릭합니다. 이 시점에 Schema Name과 소유자를 선택할 수 있습니다.

마찬가지로 CLI 환경 (Linux / Unix) 에서는 create SCHEMA nrsonDB 명령어로 추가가 가능합니다.

마지막으로 Table을 추가해 보겠습니다.

위와 동일하게 Table 추가를 위해 생성한 Database인 nrsonDB에서 우클릭 후 Schemas, Tables, Create, Table 순으로 선택합니다.

Table Info를 입력하고 Save 버튼을 클릭합니다. 이 시점에는 Table Name, 소유자, TableSpace 등을 선택할 수 있습니다.


자 그럼 위와 같이 생성한 Database와 WildFly 간 연동을 해보도록 하겠습니다.

먼저 Wildfly 설정입니다.

Database와 WAS를 연동하기 위해서는 IP, Port, ID, Password, SID, JNDI 정보가 필요하며 연동 매개체인 JDBC Driver가 있어야 합니다.

먼저 jdbc 드라이버 설치를 WildFly에 반영합니다.

WildFly의 Stack Build를 통해 현 버전에 맞는 pgJDBC Driver를 다운로드 받을 수 있습니다.

정상 설치가 완료되면 아래와 같이 JDBCDriver가 생성된 것을 확인할 수 있습니다. 이중 postgresql-42.2.1.jar 파일을 사용하여 Wildfly에 등록해 보도록 하겠습니다.

JDBC 드라이버를 등록하기 위해서는 몇가지 과정을 거쳐야 합니다.

먼저 JDBC Driver를 $WILDFLU_HOME/modules/org/postgresql/main 위치에 업로드 합니다.

동일 경로에 module.xml을 작성합니다. 추가 된 JDBC Driver를 인식하기 위해서는 module.xml 파일을 작성해야 합니다.


다음으로 Linux에서의 설치 및  PostgreSQL 기동, 종료 방법에 대해 알아보겠습니다.

Linux에서 설치는 윈도우 환경이 아닌 Shell 환경으로 구성되어 있는 것 이외에 선택항목은 모두 동일합니다.

설치가 완료되면, postgreSQL을 기동하게 됩니다.

기동방법은 pg_ctl start로 postgresql을 기동할 수 있습니다.

process는 다양한 프로세스를 가지고 기동이되는데, 상세한 내용은 본인의 포스트 중 PostgreSQL Architecture를 살펴보시기 바랍니다.

다운방법은 pg_ctl stop으로 postgresql을 다운할 수 있습니다.

참고사항으로 pg_ctl -D /home/postgres/PostgreSQL/10/data start와 같이 지정하면 기동 시점에 Datafile의 위치를 임의로 지정할 수 있습니다.


다음 포스팅에서는 CLI 환경에서 유용하게 사용할 수 있는 Command에 대해 알아 보도록 하겠습니다.

고맙습니다.

728x90
반응형