OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

シェルスクリプト内でSQL*Plusを実行

カテゴリ:OSSセットアップ | ソフトウェア:Linux | タグ:
最終更新日:2020/11/01 | 公開日:2013/06/29

目次

概要

 Oracleインスタンスの起動・停止シェルを作成したい場合など、 シェルスクリプト内でSQL*Plusを起動してSQLやOracleのコマンドを 実行する方法を紹介します。

構成

サーバ構成

OSバージョン

Red Hat Enterprise Linux 5.9 64bit
※バージョンが異なってもBashであれば書き方は同じです。

パッケージ一覧

必要な追加パッケージはありません。

書き方

 『<<EOF』から『EOF』の間に書かれている3行は『sqlplus /nolog』コマンドへ標準入力として渡されます。 『EOF』という文字列自体にはあまり意味はなく、『AAA』などに変えても問題ありません。 ただし、終わりの方の『EOF(AAAの場合も)』は行の先頭から書かれていなければなりません(スペースなどでインデントしてはいけない)。 例ではSIDは『hoge』とします。

# cd /tmp/
# touch oracle_stop.sh
# chmod 755 oracle_stop.sh
# chown oracle:oinstall oracle_stop.sh
# vi oracle_stop.sh
ファイル名: /tmp/oracle_stop.sh
#!/bin/bash

export ORACLE_SID=hoge

sqlplus /nolog <<EOF
connect / as sysdba
shutdown immediate
exit
EOF

exit 0;

 作成したシェルはoracleユーザで実行します。

# su - oracle
$ /tmp/oracle_stop.sh