今回は神戸会場の講師の方々より運用管理で使える小技をご紹介いただきました。
*このページの情報は2008年9月時点での情報です。
【講師データ】大亀義尚 講師(写真右)
社会人1年目(Oracle8)からOracleデータベースを触っています。ORACLE MASTER Platinum Oracle Database 10gも保有しています。座右の銘は「昨日の自分よりすごい今日の自分」
日比淳 講師(写真左)
大亀と同様に、Oracle8からデータベースと関わっています。開発者向けの社内教育を行い教育に目覚めました。座右の銘は「鶏口となるも牛後となるなかれ」
SQL*Plusコマンドって意外に使えるのご存知でしたか?その一例をご紹介させて頂きます!
| コマンド | 内容 | 使用例 |
|---|---|---|
set sqlp '文字列' |
SQL*Plusのプロンプトを文字列に変更 |
set sqlp '&_user &_connect_identifier >' |
set colsep 文字列 |
出力結果の列と列の間を指定文字列に変更 |
|
col 列名 for 書式 |
列の表示形式を指定 |
|
col 列名 new_v 変数 |
列の値を変数に格納 |
|
spool ファイル名 app |
10g~追加されたログ出力の追記 |
spool creata_table.log app |
set time on |
SQL*Plusのプロンプトに時刻を表示 |
メンテナンス作業を、spoolを併用してログに時間を残す事で、作業実績やトラブル時の操作履歴としても使用できるので是非とも使用しましょう |
set lin 幅 |
SQL*Plusの表示幅調整 |
set lin 150 |
set pages 行数 |
SQL*Plusの結果表示行数調整 |
set pages 10000 |
その他にも「へぇ~!」って思う使えるSQL*Plusコマンドが色々あります。マニュアルなど見て参考にして下さい。これらをSQL*Plusにログインした時から有効にしたい場合は、glogin.sqlもしくはlogin.sqlに記載しましょう!これらのファイルはSQL*Plusを起動した時にどのような状態で起動するかを設定するファイルです。頻繁に使用するSQL*Plusコマンドは、これらのファイルに事前に登録しておけば非常に便利です。
※glogin.sqlは全体に影響するので注意して下さい!(参考KROWN:13564)
複数のデータベースを管理している場合に、1つ1つ起動・停止するのは大変ですよね。そこで今回は、dbshut/dbstartというユーティリティを紹介します。
これらは名前のとおり、データベースを起動・停止出来るコマンドですが、ちょっとした設定の追加・変更ですぐに使用できます。事前設定は一つ。下記のように/etc/oratabへの設定が必要です。
# $ORACLE_SID:$ORACLE_HOME:<N|Y>
orcl:/u01/app/oracle/product/10.2.0/db_1:Y
第3引数をYにすることで、そのデータベースが自動起動の対象になります。上記の例だと、orclというデータベースですね。これで、dbstart 、dbshutとOSから実行することで、データベースの起動停止が1つのコマンド実行で出来るようになります。oratabに複数インスタンスを登録していれば、複数一気に起動停止もできて便利です。
[18:20:09 oracle /u01/app/oracle/product/10.2.0/db_1/bin(orcl)]dbstart
Processing Database instance "orcl": log file /u01/app/oracle/product/10.2.0/db_1/startup.log
[18:20:25 oracle /u01/app/oracle/product/10.2.0/db_1/bin(orcl)]dbshut
dbstart、dbshutを実行したログはそれぞれ、startup.log、shutdown.logという名称で、$ORACLE_HOMEに生成されるので、起動・停止後は念のためチェックしておいてください。
作業の自動化は手作業でのミスを防ぐことにもつながりますので、ぜひ活用してみてください!