1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle Cloud Infrastructure]Oracle Database 18c Express Editionをインストールしてアプリケーション・コンテナやPDBを作る

Last updated at Posted at 2021-04-23

Oracleのデータベースには、無償のExpress Editionがあります。
以下の制限がありますが、ISVが自分のパッケージに小さなOracle DBをBundleさせたい場合など小規模のデータベースで良ければ十分に使えると思います。
https://www.oracle.com/jp/database/technologies/appdev/xe.html

リソース:
最大12GBのユーザー・データ
最大2GBのデータベースRAM
最大2つのCPUスレッド
最大3つのプラガブル・データベース

#Oracle Database 18c Express Editionのインストールと初期データベース構築
試しに、以下の手順に沿ってExpress Databaseをインストール・構築しました。
https://docs.oracle.com/cd/E96517_01/xeinl/

Oracle Cloud Infrastructureで任意のCompartmentにVM.Standard2.2のComputeインスタンスを1つ作成。
そこにExpress Editionをインストールしました。

1.rootユーザにスイッチ

[opc@instance-20210423-1501 ~]$ sudo -s

2.プリインストールパッケージをダウンロード・インストール

[root@instance-20210423-1501 opc]# curl -o oracle-database-preinstall-18c-1.0-1.el6.x86_64.rpm
[root@instance-20210423-1501 opc]# yum -y localinstall oracle-database-preinstall-18c-1.0-1.el6.x86_
64.rpm

3.Oracle Technology Networkから、Oracle Database RPMをダウンロードします。
https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

4.ダウンロードしたRPMをインストールします。

[root@instance-20210423-1501 ~]# yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

5.サービス構成スクリプトを実行して、データベースを構築します。
  このコマンドを実行すると、oracleユーザの作成からDB内のsys、system、pdbadminユーザを作成してくれます。

[root@instance-20210423-1501 tmp]# /etc/init.d/oracle-xe-18c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
Enter SYS user password:
************
Enter SYSTEM user password:
************
Enter PDBADMIN User Password:
*********
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
31% complete
34% complete
38% complete
41% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.

Connect to Oracle Database using one of the connect strings:
     Pluggable database: instance-20210423-1501/XEPDB1
     Multitenant container database: instance-20210423-1501
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
[root@instance-20210423-1501 tmp]#

6.oracleユーザにスイッチし、環境変数をセットしてリスナーの実行状況の確認やsqlplusの実行が可能か確認します。

[oracle@instance-20210423-1501 ~]$ . oraenv
ORACLE_SID = [oracle] ? XE
The Oracle base has been set to /opt/oracle
[oracle@instance-20210423-1501 ~]$ echo $ORACLE_HOME
/opt/oracle/product/18c/dbhomeXE
[oracle@instance-20210423-1501 ~]$ which lsnrctl
/opt/oracle/product/18c/dbhomeXE/bin/lsnrctl
[oracle@instance-20210423-1501 ~]$ lsnrctl status

LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 23-APR-2021 11:45:47

Copyright (c) 1991, 2018, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=instance-20210423-1501.subnet04231504.vcn04231504.oraclevcn.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date                23-APR-2021 11:32:20
Uptime                    0 days 0 hr. 13 min. 26 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/instance-20210423-1501/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hogehoge.oraclevcn.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=127.0.0.1)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/XE/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "c0a3464253cb487ae0534c00000ae93f" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "xepdb1" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@instance-20210423-1501 ~]$
[oracle@instance-20210423-1501 ~]$ sqlplus /nolog

SQL*Plus: Release 18.0.0.0.0 - Production on Fri Apr 23 11:46:37 2021
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

SQL> conn / as sysdba
Connected.
SQL> select name, open_mode from v$pdbs;

NAME          OPEN_MODE
------------- ----------
PDB$SEED      READ ONLY
XEPDB1        READ WRITE

これでPDBを1つ搭載したデータベースができました。

#PDB最大数制限抵触確認
ここで、PDBが最大3つまでということを確認しようと思い、以下のような構成を作ってみます。

PDB名 用途
APPCON アプリケーション・コンテナ
CUSTOMER1 エンドユーザ1用PDB
CUSTOMER2 エンドユーザ2用PDB

サンプルで作ったXEPDB1をDropしておき、以下を実行してアプリケーション・コンテナ、アプリケーションPDBを作成します。

SQL> CREATE PLUGGABLE DATABASE appcon AS APPLICATION CONTAINER ADMIN USER appcon IDENTIFIED BY [password] FILE_NAME_CONVERT=('/opt/oracle/oradata/XE/pdbseed/','/opt/oracle/oradata/XE/appcon/');

Pluggable database created.

SQL>alter session set container=APPCON;

Session altered.

SQL> CREATE PLUGGABLE DATABASE customer1 ADMIN USER customer1 IDENTIFIED BY [password]  FILE_NAME_CONVERT=('/opt/oracle/oradata/XE/pdbseed/','/opt/oracle/oradata/XE/customer1/');

Pluggable database created.

SQL> CREATE PLUGGABLE DATABASE customer2 ADMIN USER customer2 IDENTIFIED BY Kazuma0215  FILE_NAME_CONVERT=('/opt/oracle/oradata/XE/pdbseed/','/opt/oracle/oradata/XE/customer2/');

Pluggable database created.

SQL> select name, open_mode from v$pdbs;

NAME       OPEN_MODE
---------- ---------------
PDB$SEED   READ ONLY
CUSTOMER2  READ WRITE
APPCON     READ WRITE
CUSTOMER1  READ WRITE

SQL>

これでアプリケーション・コンテナ1つ、アプリケーションPDB2つの構成ができました。
ここから、アプリケーション・コンテナでさらにもう1つアプリケーションPDBを作成してみます。

SQL> CREATE PLUGGABLE DATABASE customer3 ADMIN USER customer3 IDENTIFIED BY [password]  FILE_NAME_CONVERT=('/opt/oracle/oradata/XE/pdbseed/','/opt/oracle/oradata/XE/customer3/');
CREATE PLUGGABLE DATABASE customer3 ADMIN USER customer3 IDENTIFIED BY [password]  FILE_NAME_CONVERT=('/opt/oracle/oradata/XE/pdbseed/','/opt/oracle/oradata/XE/customer3/')
                          *
ERROR at line 1:
ORA-65010: maximum number of pluggable databases created


SQL>

ORA-65010が出力され、PDB制限数に抵触してCreateできませんでした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?