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

作成日: 2013/06/29

OSSでLinuxサーバ構築

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

トップページOSSでLinuxサーバ構築 > シェルスクリプト内でSQL*Plusを実行
このエントリーをはてなブックマークに追加

概要

解説

 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

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会


第000414号