RHEL 8のOracle Database 19cにdbcaで作成したDBの自動起動

Facebooktwittermail

先日、Database Configuration Assistant(DBCA)を使用してDBを作成しました。

RPM PackageでインストールしたOracle Database 19cに新規DBを作成 – DBCA

このDBをサーバ起動時に自動起動できるようにしてみました。
と言ってもrpmでインストールしたスクリプトの流用なんですが。ライセンス的には?…大丈夫なのかな?
警告が入ったら消します。

環境
・Red Hat Enterprise Linux release 8.5 (Ootpa)
・Kernel 4.18.0-348.7.1.el8_5.x86_64
・oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm
・oracle-database-ee-19c-1.0-1.x86_64.rpm
・開発環境、GNOME環境、日本語入力インストール
・Subscription登録

  1. スクリプトコピー
  2. スクリプト名をoracledb_ORCL-19cとします。

  3. 編集
  4. ざっくりとconfigureの部分を削除してroclに書き換えています。orclは単一データベースです。
    編集したものはここ

  5. 実行権限
  6. テスト stop
  7. 大丈夫そうです。

  8. テスト start
  9. こちらも大丈夫そう。

  10. 自動起動設定

サーバ再起動したらエラーで自動起動できないな…何故orz
手動では動くのに。

【2022/01/30追記】
サーバ起動時にエラーで動いてくれないのでデバックしてみました。
スクリプトを書き換えて/var/log/messagesにメッセージ出力してみると

/etc/rc.d/init.d/oracledb_ORCL-19c: 行 61: /usr/bin/su: 許可がありません

あら? エラーコード126になっていました。

When running su -bash: /bin/su: Permission denied
https://access.redhat.com/solutions/1236923

SELinuxが有効だとダメだと。確かにSELINUX=enforcingになっていました。disabledにしたら動きました。
さらに

bash: 行 5: 警告: ヒアドキュメントの 0 行目でファイル終了 (EOF) に達しました (`EOF’ が必要)

【シェル】【エラー】ヒアドキュメントのEOFの前にスペースは入れてはいけない
https://blog.suganoo.net/entry/2018/04/20/181506

EOFの行頭にスペースを入れたらこのメッセージがでると。
インデントで見やすくするのにスペース入れますよね。試しにTABを入れてみましたが同様でした。
これでも動いてくれるので無視してもいいのですが、取り合えず修正しました。

最終的なスクリプトはここです。

動作すると/var/log/messagesにこのようなログが残ります。

“The listener supports no services”と表示されていますが60秒経過でサービスが登録されます。

Leave a Reply