오라클 데이터베이스 18c 부터는 리눅스 환경에서 preinstall RPM과 데이터베이스 RPM 패키지를 설치할 수 있습니다. 그래서 Preinstall > 데이터베이스 소프트웨어 설치 > 데이터베이스 구성까지 이르는 과정이 대단히 간편해 졌습니다.
다음은 Oracle Cloud Infrastructure (OCI) 환경 오라클 리눅스 7.9에 오라클 데이터베이스 21c Multitenant 설치를 한 과정입니다.
오라클 데이터베이스 설치
먼저 19c, 21c데이터베이스 rpm 기반 설치 파일은 아래 링크에서 다운로드 받습니다.
Oracle Database Software Downloads
다운로드 받은 설치 파일을 리눅스 서버에 업로드합니다. 여기서는 ftp로 파일을 업로드했습니다.
오라클 리눅스를 사용하고 있고, Unbreakable Linux Network (ULN)에 가입되어 있다면 “yum -y install oracle-database-ee-21c" 같은 단일 yum 명령으로 오라클 데이터베이스 설치 파일 다운로드와 Preinstall RPM, 오라클 데이터베이스를 설치할 수 있습니다만, 여기서는 각 설치 과정으로 별도로 수행했습니다.
먼저 root 유저로 접속해서 오라클 데이터베이스 Preinstall RPM을 다운로드/설치합니다.
[root@apex opc]# whoami
root
[root@apex opc]# yum -y install oracle-database-preinstall-21c
...
Complete!
[root@apex opc]#
다운로드 받았던 rpm 기반 설치 파일을 임시 디렉토리로 옮기고, root 유저로 소유권을 변경한 다음 “yum localinstall” 명령으로 데이터베이스 소프트웨어를 설치합니다.
[root@apex opc]# mv oracle-database-ee-21c-1.0-1.ol7.x86_64.rpm /tmp
[root@apex opc]# chown root:root /tmp/oracle-database-ee-21c-1.0-1.ol7.x86_64.rpm
[root@apex opc]# cd /tmp/
[root@apex tmp]# yum -y localinstall oracle-database-ee-21c-1.0-1.ol7.x86_64.rpm
Loaded plugins: langpacks, ulninfo
Examining oracle-database-ee-21c-1.0-1.ol7.x86_64.rpm: oracle-database-ee-21c-1.0-1.x86_64
Marking oracle-database-ee-21c-1.0-1.ol7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-ee-21c.x86_64 0:1.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================
Installing:
oracle-database-ee-21c x86_64 1.0-1 /oracle-database-ee-21c-1.0-1.ol7.x86_64 7.1 G
Transaction Summary
========================================================================================================================================
Install 1 Package
Total size: 7.1 G
Installed size: 7.1 G
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : oracle-database-ee-21c-1.0-1.x86_64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service configuration script as root: /etc/init.d/oracledb_ORCLCDB-21c configure
Verifying : oracle-database-ee-21c-1.0-1.x86_64 1/1
Installed:
oracle-database-ee-21c.x86_64 0:1.0-1
Complete!
[root@apex tmp]#
이제 데이터베이스를 구성합니다. 아래 명령을 수행하면 1521 리스너 포트로 통신하는 “ORCLCDB” 라는 컨테이너 데이터베이스와 “ORCLPDB1” 이라는 Pluggable Database가 생성됩니다. 다른 설정으로 구성하고 싶다면, /etc/sysconfig/oracledb_ORCLCDB-21c.conf 설정 파라미터 파일을 열어 수정하면 됩니다.
[root@apex tmp]# /etc/init.d/oracledb_ORCLCDB-21c configure
Configuring Oracle Database ORCLCDB.
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.
[root@apex tmp]#
오라클 데이터베이스 접속 설정
데이터베이스가 생성되었습니다. 명령 프롬프트에 나온대로 이제 oracle 유저로 데이터베이스에 접속해서 sys와 system 패스워드를 변경합니다. 그 전에 접속 편의를 위해 oracle 유저 환경 변수를 .bash_profile에 저장합니다.
[root@apex tmp]# su - oracle
Last login: Fri Mar 18 02:27:28 GMT 2022 on pts/0
[oracle@apex ~]$ vi .bash_profile
...
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/21c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
...
[oracle@apex ~]$ source .bash_profile
[oracle@apex ~]$ sqlplus "/as sysdba"
...
SQL> alter user sys identified by xxxxxxxxxx;
User altered.
SQL> alter user system identified by xxxxxxxxxx;
User altered.
SQL> exit
Disconnected from Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
리스너 파일 생성/설정과 TNS 접속 정보를 생성/설정을 합니다. 호스트 정보에는 호스트의 DNS 이름을 여기서는 사용했습니다.
[oracle@apex ~]$ vi $ORACLE_HOME/network/admin/listener.ora
...
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = apex.subnetpublic.demovcn.oraclevcn.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCLCDB)
(ORACLE_HOME = /opt/oracle/product/21c/dbhome_1)
(SID_NAME = ORCLCDB)
)
)
...
[oracle@apex ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
...
ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = apex.subnetpublic.demovcn.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)
ORCLPDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = apex.subnetpublic.demovcn.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLPDB1)
)
)
...
[oracle@apex ~]$
이제 Pluggable Database 서비스가 올라온 것까지 확인한 다음 컨테이너 데이터베이스, Pluggable Database 접속을 확인합니다.
[oracle@apex ~]$ tnsping orclcdb
...
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = apex.subnetpublic.demovcn.oraclevcn.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB)))
OK (0 msec)
[oracle@apex ~]$ tnsping orclpdb1
...
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = apex.subnetpublic.demovcn.oraclevcn.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLPDB1)))
OK (0 msec)
[oracle@apex ~]$ sqlplus system/xxxxxxxxxx@orclpdb1
...
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL> show con_name
CON_NAME
------------------------------
ORCLPDB1
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
ORCLCDB OPEN
<END>
'Database > Oracle Database' 카테고리의 다른 글
Oracle Application Express 개요 & 샘플 - 2. APEX/ORDS 설치 (0) | 2022.04.18 |
---|---|
Oracle Application Express 개요 & 샘플 - 1. APEX 개요 (0) | 2022.04.18 |
Oracle RESTful Data Service, Apache Tomcat + APEX 설치 및 설정 방법 (0) | 2022.03.10 |
Oracle REST Data Services - 3. 커넥션 네비게이터를 이용한 샘플 테스트 (0) | 2022.02.28 |
Oracle REST Data Services - 2. 테이블 엑세스 샘플 테스트 (0) | 2022.02.28 |