최근 Oracle DBMS를 운영하다가 오라클의 깡패(?)같은 유지보수 비용과 라이선스 비용이 만만치 않아 차세대 DBMS로 전환할 계획을 세우고 있다..
그와중에 눈에 들어온건 EnterpriseDB (이하 EDB).
EDB는 PostgreSQL 기반의 DB이긴 하지만, ORACLE의 PL/SQL을 95% 수준까지 지원한다는 장점이 있어 운영환경을 구성하고 테스팅을 해보고 있다.
그럼 아래 설치과정을 복기할 겸 정리해보았다.
[설치 환경 정리]
- OS : Rocky Linux
- EDB PAS ver. : 17.4
- EDB Connector : EDB-JDBC 42.7.3.2
- DB연결 툴 : DBeaver 25.0.1
1. EDB 설치파일 다운로드
1) 회원가입 및 설치파일 다운로드
https://www.enterprisedb.com/software-downloads-postgres
EDB: Open-Source, Enterprise Postgres Database Management
EDB Postgres Extended Server PostgreSQL-compatible with TDE from EDB 17.416.815.1214.1713.20 PostGIS Geospatial extension for EDB Postgres Advanced Server 3..x Windows x86-64Interactive InstallerEDB Postgres Advanced Server 14DownloadWindows x86-64Interact
www.enterprisedb.com
먼저 EDB는 EDB 회원에게만 설치파일을 제공하고 있다.
회원가입을 진행하고 나서 위 링크로 접속하면...

EDB Postgres Advanced Server (EDB PAS)를 확인한 후 운영환경에 맞게 설치해주면 된다.
필자는 최신을 좋아하기 때문에 EDB PAS 17.4 버전 으로 선택했다.

그러면 이런식으로 REPO Token 값이 나온다. (*회원이 아니면 저 토큰 값이 안보인다)
아래 Access EDB Repos 2.0 클릭

필자는 Rocky Linux 9 환경이기 때문에 1 ▶ 2 ▶ 3 순으로 진행했다.
1. 운영환경 선택
2. EDB PAS 버전 선택
3. 운영환경에 맞는 명령어 안내되면, 이에 따라 설치 환경에 명령 실행
- 안에 코드 값은 개인마다 발급되는 EDB Token 값이 들어있다. 순서는 STEP 1 Auto 명령 실행 → STEP 2 명령 실행
sudo dnf -y install edb-as17-server ## STEP 2 명령
2) 운영환경에서 설치
자 여기서부터 삽질 시작한 후기가 많이 들어있다.
위 STEP 2까지 명령을 실행하고 나면 사용자를 enterprisedb 로 변경한 후 홈 디렉토리에서 .bash_profile을 수정해줘야 한다.
sudo su enterprisedb cd ~ vi .bash_profile
그런다음 아래와 같이 수정해준다.

# .bash.profile ... PGHOME=/usr/edb/as17 export PGHOME PATH=$PATH:$PGHOME/bin ...
PGHOME 경로를 먼저 정의하고 PATH를 추가해준다.
그다음 현재 수정한 .bash_profile을 적용한다.
source ~/.bash_profile
2. EDB 데이터베이스 초기화 및 데몬 재시작
initdb -E UTF-8 --lc-collate='C' --lc-ctype='C' -D $PGDATA
위 명령을 실행하여 DB를 초기화해준다.
sudo systemctl enable edb-as-17 sudo systemctl daemon-reload sudo systemctl restart edb-as-17
그다음 systemctl로 서비스 등록하고 서버가 재시작되도 자동으로 기동될 수 있도록 설정한다.
(선택) 설치한 EDB 환경과 접속하는 환경이 원격지인 경우
설치한 EDB와 같은 머신에서 DBeaver와 같은 툴을 쓰는 사용자라면 아래 내용은 필요 없으니 3번으로 바로 가도된다.
필자는 사무실 PC (Windows 11)에서 설치한 EDB 환경 (Rocky Linux 9)으로 원격 접속을 해야하기 때문에 추가 설정 절차가 필요했다.

보통 EDB 가 실행되는 환경은 localhost:5444 로 실행되고 있을 것이다.
하지만 원격지에서 접근하는 경우라면 이 부분을 바꿔줘야 정상적으로 접근이 가능하다.
# su 계정으로 /etc/hosts 파일 수정 su vi /etc/hosts

위와 같이 개인별로 머신 public IP를 넣어주고 hosts 파일 편집한 후 네트워크 서비스, edb 데몬 재시작
sudo systemctl restart networking sudo systemctl daemon-reload sudo systemctl restart edb-as-17 netstat -anlp | grep 5444
재시작 하고나면 netstat 명령으로 5444번 포트가 public IP로 떠있는지 확인해보면 된다.
+참고로 윈도우 환경에서 이래도 안되는 사람들이 있다면... WINDOWS 방화벽 내려보고 실행해보는걸 추천한다.
3. EDB 사용자 및 DB 생성
EDB에 사용자를 추가하고 DB를 생성한다.
psql -d edb -U enterprisedb
위와 같이 실행하면 psql 접속 화면이 나오게 된다.

+근데, 나중에 원격지로 붙을걸 생각하면 enterprisedb 비밀번호가 필요한데..
아무리 구글링해도 enterprisedb 초기 비밀번호가 안나온다... 그러니 패스워드도 변경해주자
ALTER USER ENTERPRISEDB WITH PASSWORD '****';
enterprisedb는 위 화면과 같이 EDB에서 슈퍼유저에 해당한다.
enterprisedb 외에 슈퍼유저를 추가하려면 아래와 같이 진행한다.
CREATE USER [USERNAME] PASSWORD '****' SUPERUSER;
아래는 요새 화제인 생성형 AI(perplexity)의 힘을 빌려 기본 명령을 정리해왔다. 참고하시길...

4. 방화벽 해제 및 외부접속 허용
# 방화벽 허용 firewall-cmd --permanent --zone=public --add-port=5444/tcp firewall-cmd --reload # EDB 접근정책 허용 vi /var/lib/edb/as17/data/pg_hba.conf
필자는 EDB를 기본포트인 5444번으로 설정했다.
그리고 EDB 접근정책을 아래와 같이 허용해주면 된다.

이후 postgresql.conf 파일 수정
vi /var/lib/edb/as17/data/postgresql.conf

5. 최종 확인 (Windows DBeaver 25.0.1)
먼저 DBeaver 25.0.1 기준으로 구성한 EDB를 연결하려면 EDB 드라이버가 필요하다. (jdbc 파일)
** PostgreSQL과 EDB JDBC 드라이버는 엄연히 다르다. 이 과정을 수행하지않으면 Connection error가 뜬다.
1) EDB-CONNECTORS 다운로드
https://www.enterprisedb.com/software-downloads-postgres#edb-connectors
EDB: Open-Source, Enterprise Postgres Database Management
EDB Postgres Extended Server PostgreSQL-compatible with TDE from EDB 17.416.815.1214.1713.20 PostGIS Geospatial extension for EDB Postgres Advanced Server 3..x Windows x86-64Interactive InstallerEDB Postgres Advanced Server 14DownloadWindows x86-64Interact
www.enterprisedb.com

다운로드 받은 파일은 꼭 "관리자 권한"으로 실행 시켜줘야 열린다.
2) JDBC 다운로드를 받아서 설치

위에 처럼 jar파일이 만들어졌으면, 이제 DBeaver를 실행시켜준다.

처음 실행해서 connect to a database 화면에서 위 항목들을 운영 환경(설치한 DB)에 맞게 수정해준다.

이후엔 위처럼 [Libraries] 탭에서 Add file을 눌러 아까 설치한 jar파일을 추가해준다.

그러면 위 그림처럼 Database Navigator 항목에 연결이 짜잔~~~하고 되는걸 확인할 수 있다.
하루 반나절 동안 설치하는데 삽질좀 했는데.. 그래도 운영환경 구성이 절반이라고...마무리하고 나니 뿌듯하다.
다음 스텝은 Oracle 환경에 있는 DB를 EDB로 마이그레이션하는 과정을 포스팅할 예정이다.
'운영(Ops) 이야기 > 데이터베이스' 카테고리의 다른 글
[Oracle] 계정 락(LOCK) 걸렸을 시 해제하는 방법 (ORA-28000) (0) | 2023.05.09 |
---|---|
[ORACLE] 사용자 (User) 패스워드 변경하는 방법 (0) | 2023.03.26 |
[Oracle] 실행한 SQL 쿼리 이력 확인 방법 (0) | 2022.11.09 |
[Oracle] 데이터베이스 명, SID 조회 방법 (0) | 2022.08.08 |
[Oracle] Synonym 사용법 정리 (생성, 조회, 권한, 삭제 등) (0) | 2022.08.08 |