はじめに
Ubuntu 22.0.4TLSにOracle Database 23c Freeをインストールしたときのメモです。
たぶんUbuntuは推奨外ですが、開発全てをUbuntuで実施したかったのと、今後用にメモします。
いろいろトライ&エラーが発生して、記憶に頼りに書いてるので、多々間違っているところは、あると思います。
ディスク領域確保
最低15Gは、くいます。参考URL。
ダウンロード
- oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL8/developer/x86_64/getPackage/oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm - oracle-database-free-23c-1.0-1.el8.x86_64.rpm
https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
alien
ダウンロードしたディレクトリで以下を実行。
$ sudo alien oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm
$ sudo alien oracle-database-free-23c-1.0-1.el8.x86_64.rpm
すると、以下ファイルが、同じディレクトリにできあがります。
$ ls *.deb
oracle-database-free-23c_1.0-2_amd64.deb
oracle-database-preinstall-23c_1.0-1.5_amd64.deb
dpkg
$ sudo dpkg -i oracle-database-free-23c_1.0-2_amd64.deb
$ sudo dpkg -i oracle-database-preinstall-23c_1.0-1.5_amd64.deb
すると、/opt/oracleにファイルが配置されます。
グループ作成
# groupadd oinstall
# groupadd dba
# groupadd oper
# groupadd backupdba
# groupadd dgdba
# groupadd kmdba
ユーザ作成
# useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle
# passwd oracle
環境変数追加
普段使うユーザとoracleユーザに以下を追加。
$ vi ~/.bashrc
export ORACLE_SID=FREE
export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree
export NLS_LANG=Japanese_Japan.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
ファイルパーミッション変更
$ sudo chown -R oracle:oinstall /opt/oracle
$ sudo chown root:root /opt/oracle/product/23c/dbhomeFree/bin/oradism
DB作成
oracleユーザでdbca起動
oracle$ /opt/oracle/product/23c/dbhomeFree/bin/dbca
グローバル・データベース名:FREE
プラガブル・データベース名:FREEPDB1
リスナ系ファイル配置
/opt/oracle/product/23c/dbhomeFree/network/admin
にリスナ系ファイルを配置する。
$ cat listener.ora
DEFAULT_SERVICE_LISTENER = FREE
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
$ cat tnsnames.ora
FREE =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FREE)
)
)
)
LISTENER_FREE =
(ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
FREEPDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FREEPDB1)
)
)
$ cat sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
起動&スキーマ作成&接続
oracle$ sqlplus / as sysdba
sqlplus> startup
sqlplus> alter pluggable database freepdb1 open;
sqlplus> alter session set container = freepdb1;
sqlplus> create user milu identified by milu default tablespace users temporary tablespace temp quota unlimited on users account unlock;
sqlplus> grant connect to milu;
sqlplus> grant create table to milu;
sqlplus> grant create view to milu;
sqlplus> grant create materialized view to milu;
sqlplus> grant resource to milu;
sqlplus> grant unlimited tablespace to milu;
oracle$ lsnrctl start
$ sqlplus milu/milu@freepdb1