INDEX
Windows中心だけど、起動と停止はUNIXでも同じ
Oracleデータベースの起動と停止
Windows は、サービス上で Oracle が稼動しており、 Windows 本体のシャットダウン中に規定時間(デフォルト20秒?)以内で終了処理が完了しないとサービスは強制終了される。そのため、安静時以外(大量のロールバック作業中など)の場合には、必ず手動で Oracle をシャットダウンを行い、Windows を終了させること。
また、サービスとしては動いている(状態が「開始」になっている)が、実際にはインスタンスが立ち上がっていない場合もある(実際に過去に何度かあった)。
Windowsのサービス
WindowsにOracleのDBサーバをインストールすると以下のサービスが登録される。例は、OracleHome を OraHome92、SID を orcl で設定した場合。
- OracleMTSRecoveryService
- MTS(Microsoft Transaction Server : 高いエディションの Windows にしか付いてない機能)を使わない場合は起動する必要ない。
- OracleOraHome92Agent
- Inteligent Agentを使わない場合(Oracle Enterpirse Manager Consoleをスタンドアロンで使う場合)は起動する必要ない。
- OracleOraHome92HTTPServer
- Oracle の HTTPServer を使わない場合は起動する必要ない。
- OracleOraHome92TNSListener
- TNSリスナー。他のマシンからアクセス(利用)する場合は起動させる。
- OracleServiceORCL
- 書かれているSIDのインスタンス。DBの本体なので動かす場合は起動させる。
データベースの起動
startup [nomount|mount|open] alter database [mount|open];
startup open とした場合、nomount, mount を経てデータベースがオープンされた状態まで進みます。startup コマンドを実行して nomount, mount 状態にした場合、さらに先の状態に進めるためには alter database コマンドを使用します。
通常は、startup open でインスタンスを起動すれば問題ないでしょう。こんな感じ…
SQL> startup open ORACLEインスタンスが起動しました。 Total System Global Area 109868016 bytes Fixed Size 283632 bytes Variable Size 75497472 bytes Database Buffers 33554432 bytes Redo Buffers 532480 bytes データベースがマウントされました。 データベースがオープンされました。
※ 特殊な第3段階として、STARTUP RESTRICTコマンドがあります。データベースをメンテナンスする場合など、RESTRICT SESSION権限を持っているユーザのみが接続できるモードにてデータベースを起動します。このモードを解除するには、ALTER SYSTEM DISABLE RESTRICTED SESSION; と入力します。
インスタンス起動(nomount)
インスタンス起動の状態では、SGAの割り当て・バックグラウンドプロセスの開始・制御ファイルの確認が行われます。
データベースマウント(mount)
データベースマウントの状態では制御ファイルがオープンされます。データベースをRECOVERコマンドにて修復したり、アーカイブ・ログ・モードに切り替える場合は、このモードにて行います。
データベースオープン(open)
データベースがオープンされると、データファイル・REDOログファイルがオープンされ、実際にデータベースを使用することができます。
データベースの終了
shutdown [normal|transactional|immediate|abort]
こんな感じ…
SQL> shutdown データベースがクローズされました。 データベースがアンマウントされました。 ORACLEインスタンスがシャットダウンされました。
終了のときは、起動と違って状態の変更等はなく一気にSHUTDOWN状態になる。 ただし、SHUTDOWN時に接続されているユーザのセッションやトランザクションをどう扱うかで、停止モードが異なる。
shutdown normal
normal オプションを付けて(デフォルトもコレ) shutdown コマンドを実行すると、現在接続中のユーザーがすべてログアウトするまで待機します。すべてのユーザーがログアウトすると、データベースのシャットダウンが始まります。整合性が保たれたまま停止されるため、次回起動時のインスタンス・リカバリは不要。
shutdown transactional
transactional オプションを付けて shutdown コマンドを実行すると、現行のトランザクションが終了するまで待機します。現行のトランザクションが終了すると、データベースのシャットダウンが始まります。整合性が保たれたまま停止されるため、次回起動時のインスタンス・リカバリは不要。
shutdown immediate
immediate オプションを付けて shutdown コマンドを実行すると、即時にデータベースのシャットダウンが始まります。シャットダウンを始めた時点でコミットされていない変更(実行中のトランザクションも含む)はロールバックされます。整合性が保たれたまま停止されるため、次回起動時のインスタンス・リカバリは不要。
shutdown abort
abort オプションを付けて shutdown コマンドを実行すると、即時にデータベースのシャットダウンが始まります。コミットもロールバックも行わない為、データに不整合が発生する可能性があります。次回起動時、SMONによりインスタンス・リカバリが自動的に行われる。
データベースの状態の確認
select status from v$instance;
で、データベースの状態を参照します。
SELECT BANNER FROM V$VERSION;
で、Oracle Database Version が取得できます。
SQL> connect / as sysdba 接続されました。 SQL> select status from v$instance; select status from v$instance * 1行でエラーが発生しました。 ORA-01034: ORACLE not available SQL> startup nomount ORACLEインスタンスが起動しました。 Total System Global Area 109868016 bytes Fixed Size 283632 bytes Variable Size 75497472 bytes Database Buffers 33554432 bytes Redo Buffers 532480 bytes SQL> select status from v$instance; STATUS -------------- STARTED SQL> alter database mount; データベースが変更されました。 SQL> select status from v$instance; STATUS -------------- MOUNTED SQL> alter database open; データベースが変更されました。 SQL> select status from v$instance; STATUS ------- OPEN
Oracle Enterprise Manager
dbconsoleプロセスを管理するには、$ORACLE_HOME/bin/emctl を使用。環境変数ORACLE_SIDのデータベースが対象。引数を指定せずにemctlを起動すると、使用方法が確認できる。
dbconsoleプロセスが起動していれば、Webブラウザ経由で Database Control ページにアクセスできる。このとき使用するポート番号は、$ORACLE_HOME/install/portlist.ini に記述、起動時のメッセージでも確認できる。
iSQL*Plus
iSQL*Plusサーバの管理には、isqlplusctl ユーティリティを使用します。引数を指定せずに起動すると、使用方法が確認できる。
iSQL*Plusで接続に使用するポート番号も、$ORACLE_HOME/install/portlist.ini ファイルに記述されている。
リスナー
リモートでOracleに接続するには、リスナーが必要。引数を指定せずに起動すると LSNRCTL プロンプトが表示る。詳細は"help"と入力する。
最終更新時間:2008年11月14日 15時50分00秒 指摘や意見などあればSandBoxのBBSへ。