Oracleインスタンスの起動と停止をコマンドで実行

覚えるべきキーワード

・STARTUP
・SYSDBA
・SYSOPER
・CONNECT ユーザー名/パスワード名 AS SYSDBA/SYSOPER
・SHUTDOWN
・NORMAL
・TRANSACTIONAL
・IMMEDIATE
・ABORT

クライアントがデータベースにアクセスするためにはインスタンスが起動、データベースがオープンになっている必要があります。インスタンスを起動するためにはSQL DeveloperやEM Cloud ControlなどのGUIツールを使う方法もありますが、今回はSQL*Plusでコマンドラインからインスタンス起動する方法をお伝えします。
ですが、その前に1点。インスタンスの起動と停止はどのユーザーでもできるわけではありません。特別な管理権限を持ったユーザーのみインスタンスの起動と停止ができます。その特別な管理権限とはSYSDBASYSOPERです。SYSDBAはデータベースを完全にコントロールできる権限(いわば絶対的王者の権限)で、SYSOPERはインスタンスの起動と停止ができる権限です。SYSDBAか、SYAOPER権限が付与されたユーザーであれば、インスタンス操作ができます。ちなみにデータベース作成時点で初期管理者としてSYSとSYSTEMユーザーがデフォルトで登録されますが、このSYSユーザーはデフォルトでSYSDBA権限が付いているので、SYSユーザーを使えば、デフォルト状態でもインスタンスの起動と停止はできます。覚えておきましょう。
では、インスタンス起動に話を戻します。インスタンスを起動するにはSQL*Plusでコマンド実行します。その手順は以下です。

①SQL * Plusを起動する
コマンド操作を行うため、まずはSQL*Plusを起動します。

sqlplus /nolog;

②データベースに接続する
インスタンス操作の権限を持つSYSユーザーでデータベースに接続します。SYSユーザーのパスワードをolepassだったとします。

CONNECT SYS/olepass AS SYSDBA;

③インスタンスの起動
起動していないインスタンスをSTARTUPコマンドで起動します。

STARTUP;

STARTUP実行後の仕組み

STARTUPコマンドの実行後、データベースがオープンになるには大きく3ステップがあります。まずインスタンスが起動します。この時、インスタンス用の初期化パラメータ(SGAの領域など)が読み込まれ、そのパラメータによってSGAが割り当てられて、バックグラウンドプロセスが起動します。
次にデータベースのマウントが起こります。初期化パラメータファイルに記載されているCONTROL_FILES初期化パラメータによって制御ファイルがオープンされることによりMOUNT状態となります。最後にデータベースがオープン状態となります。すべてのデータファイルとREDOログファイルがオープンにされ、一般のユーザーが接続できるようになります。

反対にインスタンスを停止する手順もご紹介します。ですが、その前にインスタンスを停止する時は停止モードを指定できますので、まずそちらを知っておいた方がいいですね。
インスタンスの停止モードはNORMAL、TRANSACTIONAL、IMMEDIATE、ABORTの4タイプがあります。標準タイプはNORMALです。NORMALで停止する場合は、現在接続しているユーザーセッションが切断された後にインスタンスを停止します。礼儀正しい停止方法です。TRANSACTIONALで停止する場合はすべてのトランザクションが完了するのを待ってからインスタンスを停止します。ユーザーが接続していても停止してしまうんですね。IMMEDIATEで停止する場合はコミットされていないトランザクションは即時にロールバックを行い、インスタンスを停止します。途中の処理も即終了して、インスタンスを停止します。ABORTで停止する場合は強制終了です。NORMAL、TRANSACTIONAL、IMMEDIATEはユーザーセッションやトランザクションの終了後にインスタンスを停止するのに対して、ABORTは即終了します。異常終了です。そのためABORTで停止したインスタンスを起動する時はデータベースオープン前にインスタンス・リカバリを実行する必要があります。

では、停止モードを踏まえて、インスタンスの停止方法を紹介します。SQL*Plusでコマンド実行します。

①SQL * Plusを起動する
コマンド操作を行うため、まずはSQL*Plusを起動します。

sqlplus /nolog;

②データベースに接続する
インスタンス操作の権限を持つSYSユーザーでデータベースに接続します。SYSユーザーのパスワードをolepassだったとします。

CONNECT SYS/olepass AS SYSDBA;

③インスタンスの停止
インスタンスをSHUTDOWNコマンドで停止します。

SHUTDOWN NORMAL;

SHUTDOWN実行後の仕組み
SHUTDOWNコマンドの実行後、インスタンス停止までには大きく3ステップがあります。まずデータベースをクローズします。SGA内のデータがデータファイルとオンラインREDOログファイルに書きこまれ、データファイルとオンラインREDOログファイルがクローズします。次にデータベースのアンマウントが起こります。データベースの制御ファイルがクローズされ、データベースがアンマウントされます。データベースはここでインスタンスから切り離されます。最後にインスタンスの停止となります。バックグラウンドプロセスが終了し、SGA使用用の共有メモリー割り当てが解除され、インスタンスが停止します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です