Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

Oracle Database Express Edition (XE) on CentOS7

 

こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。

 

 

CentOS7にOracle Database Express Edition (XE)をインストールするメモです。

 

以下を参考にしました。

Oracle® Database Express Editionインストレーション・ガイド

 

なお、CentOS7ですがOracle Database XEを利用するシステム要件を満たさないとインストールできないので注意が必要です。

[root@oracle ~]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
[root@oracle ~]# uname -a
Linux oracle.centos7 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

 

※パッケージの追加(yumなど)やスワップが不足していれば追加(mkswap/swaponなど)で対応しましょう。

  [root@oracle Disk1]# rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
準備しています...
(100%)################################# [100%]

This system does not meet the minimum requirements for swap space. Based on
the amount of physical memory available on the system, Oracle Database 11g
Express Edition requires 2048 MB of swap space. This system has 1535 MB
of swap space. Configure more swap space on the system and retry the
installation.

エラー: %pre(oracle-xe-11.2.0-1.0.x86_64) スクリプトの実行に失敗しました。終了ステータス 1
エラー: oracle-xe-11.2.0-1.0.x86_64: インストール 失敗

 

 

f:id:opensourcetech:20200520110944p:plain

f:id:opensourcetech:20200520111111p:plain

 

 

①Oracle Database Express Edition(XE)の取得

以下から、Linux用を取得します。

f:id:opensourcetech:20200520105053p:plain

Oracle Database Express Edition (XE) Downloads


なお取得にはOracleプロファイルへのサインインが必要なので、アカウントがない場合、登録を行います。

f:id:opensourcetech:20200520111357p:plain


取得したパッケージは、scpなどでCentOS7へ転送します。

[root@oracle tmp]# ls
oracle-xe-11.2.0-1.0.x86_64.rpm.zip

 



②Oracle XEのインストール

 取得したzipを解凍し、rpmでインストールします。

[root@oracle tmp]# unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Archive: oracle-xe-11.2.0-1.0.x86_64.rpm.zip
creating: Disk1/
creating: Disk1/upgrade/
inflating: Disk1/upgrade/gen_inst.sql
creating: Disk1/response/
inflating: Disk1/response/xe.rsp
inflating: Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm

[root@oracle tmp]# cd Disk1/

[root@oracle Disk1]# ls
oracle-xe-11.2.0-1.0.x86_64.rpm response upgrade

[root@oracle Disk1]# rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
準備しています...
(100%)################################# [100%]
/var/tmp/rpm-tmp.FoTwzz: 257 行: [: 18446744073692774399: 整数の式が予期されます
/var/tmp/rpm-tmp.FoTwzz: 271 行: [: 18446744073692774399: 整数の式が予期されます
更新中 / インストール中...
1:oracle-xe-11.2.0-1.0
( 99%)################################# [100%]
Executing post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.

 

 

③Oracle XEの設定

インストーラの最終行に出力されてますが、「/etc/init.d/oracle-xe configure」を実行します。

赤字の部分が設定する項目となります。

・HTTPポート(デフォルト8080)

・データベースリスナーポート(デフォルト1521)

・データベース管理者アカウント(SYS/SYSTEM)のパスワード

・Oracle  XEの自動起動設定

[root@oracle Disk1]# /etc/init.d/oracle-xe configure

Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Press <Enter> to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

/etc/init.d/oracle-xe: line 362: netstat: command not found
Specify a port that will be used for the database listener [1521]:

/etc/init.d/oracle-xe: line 405: netstat: command not found
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:

Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:

Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.

※netstatがないと出てますが、CentOS7ではssコマンドを使うので気にしないことにします。

 

 

 

④環境変数の設定

使用するシェルに合ったスクリプトを実施します。

[root@oracle Disk1]# cd /u01/app/oracle/product/11.2.0/xe/bin
[root@oracle bin]# ls
adapters cursize dg4odbc extjob kgmgr maxmem oracle_env.sh osh sysresv unzip
createdb.sh dbfs_client dgmgrl extjobo loadpsp nid oradism ott tkprof wrap
ctxkbtc dbfsize dumpsga extproc lsnrctl nls_lang.sh oraenv rman tnslsnr zip
ctxlc dbhome exp imp lxchknlb oracle orapwd sqlldr tnsping
ctxload dbv expdp impdp mapsga oracle_env.csh osdbagrp sqlplus trcroute
[root@oracle bin]# . ./oracle_env.sh
[root@db01 bin]# cat -n oracle_env.sh
1 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
2 export ORACLE_SID=XE
3 export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
4 export PATH=$ORACLE_HOME/bin:$PATH

 また、ログイン時やシェル開始時にも環境が適用されるように、.bash_profileや.bashrcにも追記しておきます。

 

 

 

 

⑤Oracle XEの起動

 インストール時に起動スクリプトも作成されているので、起動します。

[root@oracle bin]# /etc/init.d/oracle-xe status

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 19-5月 -2020 18:09:44

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 11.2.0.2.0 - Production
開始日 19-5月 -2020 17:38:57
稼働時間 0 日 0 時間 30 分 47 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
デフォルト・サービス XE
パラメータ・ファイル /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.centos7)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.centos7)(PORT=8080))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"PLSExtProc"には、1件のインスタンスがあります。
インスタンス"PLSExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"XE"には、1件のインスタンスがあります。
インスタンス"XE"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"XEXDB"には、1件のインスタンスがあります。
インスタンス"XE"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
[root@oracle bin]# /etc/init.d/oracle-xe start
Starting oracle-xe (via systemctl): [ OK ]
[root@oracle bin]# /etc/init.d/oracle-xe status


LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 19-5月 -2020 18:10:09

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 11.2.0.2.0 - Production
開始日 19-5月 -2020 17:38:57
稼働時間 0 日 0 時間 31 分 11 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
デフォルト・サービス XE
パラメータ・ファイル /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.centos7)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.centos7)(PORT=8080))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"PLSExtProc"には、1件のインスタンスがあります。
インスタンス"PLSExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"XE"には、1件のインスタンスがあります。
インスタンス"XE"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"XEXDB"には、1件のインスタンスがあります。
インスタンス"XE"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

 

 

⑥データベースへの接続

 データベースに接続するユーザに グループ「dba」をサブグループして登録して、

sqlplusからデータベースへ接続します。

[root@oracle bin]# id -a takahiro
uid=1000(takahiro) gid=1000(takahiro) groups=1000(takahiro)
[root@oracle bin]# usermod -G dba takahiro
[root@oracle bin]# id -a
uid=1000(takahiro) gid=1000(takahiro) groups=1000(takahiro),1001(dba)
[root@oracle bin]# su - takahiro
最終ログイン: 2020/05/19 (火) 18:41:22 JST日時 pts/0
[takahiro@oracle ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 火 5月 19 18:42:57 2020

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

SQL> conn /as sysdba
接続されました。
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

PL/SQLプロシージャが正常に完了しました。

SQL> exit
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。

 

 

※おまけ

 Oracleインスタンスの自動起動設定

[root@db01 skel]# cat /etc/oratab
XE:/u01/app/oracle/product/11.2.0/xe:N
[root@db01 skel]# vi /etc/oratab
[root@db01 skel]# cat /etc/oratab
XE:/u01/app/oracle/product/11.2.0/xe:Y

 

 

 

 

アフィリエイトのアクセストレード

 

 

 

 

 

 

www.slideshare.net

github.com

www.facebook.com

twitter.com

www.instagram.com

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

 

 

Opensourcetech by Takahiro Kujirai