|
|
Oracleを動かしてみよう(オラクル起動方法) 当ページではオラクルの起動方法を説明します。 まず、オラクルの起動方法ですが、GUIベースのOracleEnterpriseManager(OEM)を 使用したデータベースの起動方法、およびCUIベース(コマンド)を使用した データベースの起動方法があります。 オラクルが起動するには、「NOMOUNTモード」「MOUNTモード」「OPENモード」の3つのモードがあります。 データベースが起動したと言う場合は、OPENモードになった事を指します。 以下は上記で触れた「NOMOUNTモード」「MOUNTモード」「OPENモード」の3つのモードに遷移する際にOracle内部で読込まれるファイル、動作の説明を纏めた表です。
上記の表を見て頂けると、Oracleが内部で行っている処理動作が分かります。 例えば、Oracleを起動(OPEN状態)まで起動させるSTARTUPコマンドを実行しても、MOUNT状態までしか遷移しない場合はデータファイル、REDOログファイルが破損している SCN番号の整合性がおかしいと判断出来ます。 同様に、NOMOUNT状態までしか遷移しない場合は、制御ファイルがない、読込めないなどと制御ファイル周りがおかしいと分かります。 また、NOMOUNT状態すら行かない場合は、パラメータファイルがおかしい事が分かります。その場合は、$ORACLE_HOME/dbs配下にSPFILE、INITORAファイルがあるか確認してください。 オラクルの起動方法のコマンド オラクル起動方法には多くのオプションがありますが、当ページでは業務でする事が多いもののみを紹介致します。 当ページ以外の起動方法を行いたい場合は、Oracle社の以下のマニュアルを参考にして下さい。 SQL*Plusユーザーズ・ガイドおよびリファレンス(STARTUP) OPEN状態までオラクルを起動させる場合 SQL>STARTUP STARTUPコマンド以降にオプションなどは必要ありません。 オラクルを起動させたい場合は、STARTUPと打ち、ENTERボタンを押すだけです。 NOMOUNT状態までオラクルを起動させる場合 SQL>STARTUP NOMOUNT STARTUPコマンド以降にNOMOUNTと打ち、ENTERボタンを押してください。 パラメータファイル(SPFILEかINITORAファイル)が$ORACLE_HOME/dbs配下にあれば起動します。 なお、$ORACLE_HOME/dbs配下にSPFILEかINITORAファイルが両方ある場合は、SPFILEが優先的に読込まれます。 MOUNT状態までオラクルを起動させる場合 SQL>STARTUP MOUNT STARTUPコマンド以降にMOUNTと打ち、ENTERボタンを押してください。 制御ファイルがパラメータファイルに記載されているパスにあり、読込み可能な状態であればMOUNT状態で起動します。 特定のパラメータファイルを使用してOPEN状態までオラクルを起動させる場合 SQL>STARTUP PFILE=(PFILEのパス)/PFILE名 STARTUPコマンド以降にPFILEと記述してどこのPFILEを読込むかフルパスで記述した後にENTERを押してください。 一時的に異なるPFILEを使用したい場合などに使用します。 通常は$ORACLE_HOME/dbs配下にSPFILE、INITORAファイルを置いておく事が一般的ですので、常に上記コマンドでデータベースを起動する方法は運用時に混乱を招きますのでやめた方が良いと思います。 実際に起動してみる SQLPLUS経由でオラクルに接続する まずはSQLPLUSを起動します。Oracleユーザにて以下のコマンドを実行します。 $SQLPLUS /NOLOG その後にDBAユーザであるSYSに接続します。 SQL>CONNECT SYS/ORACLE AS SYSDBA ※作者の環境ではSYSユーザのパスワードは”ORACLE”です。 その後にSYSユーザで接続出来ている事を確認します。 SQL>SHOW USER 起動コマンドを実行する ここではOPENモードへ一発で起動します。 SQL>STARTUP 以下は上記のコマンド実行時の標準出力結果です。 [oracle@localhost ~]$ sqlplus /nolog SQL*Plus: Release 11.1.0.6.0 - Production on Sun May 3 07:11:54 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. SQL> connect sys/oracle as sysdba Connected to an idle instance. <=アイドルインスタンス(起動していない)事が分かります。 SQL> SQL> show user USER is "SYS" SQL> SQL> startup <=OPEN状態まで起動するコマンドを実行。 ORACLE instance started. パラメータファイルに記載されているメモリを掴んで起動している事が分かる。 Total System Global Area 1586708480 bytes Fixed Size 2144784 bytes Variable Size 788530672 bytes Database Buffers 788529152 bytes Redo Buffers 7503872 bytes Database mounted. <=データベースがMOUNT状態へ遷移した事が分かる。 Database opened.. <=データベースがOPEN状態へ遷移した事が分かる。 SQL> SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$ オラクルの起動時に出力されるシステムログを確認します。 オラクルのシステムのログはアラートログに出力されます。 以下はアラートログの出力内容を確認した際の結果です。 [oracle@localhost trace]$ cat /opt/oracle/app/diag/rdbms/itdb/itdb/trace/alert_itdb.log_immediate <=アラートログの内容を確認。 [oracle@localhost trace]$ cat /opt/oracle/app/diag/rdbms/itdb/itdb/trace/alert_itdb.log Sun May 03 07:11:58 2009 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Picked latch-free SCN scheme 3 Using LOG_ARCHIVE_DEST_1 parameter default value as /opt/oracle/app/product/11.1.0/db_1/dbs/arch Autotune of undo retention is turned on. IMODE=BR ILAT =18 LICENSE_MAX_USERS = 0 SYS auditing is disabled Starting up ORACLE RDBMS Version: 11.1.0.6.0. Using parameter settings in server-side spfile <=SPFILEを使用して起動 /opt/oracle/app/product/11.1.0/db_1/dbs/spfileitdb.ora System parameters with non-default values: processes = 150 nls_language = "AMERICAN" nls_territory = "JAPAN" memory_target = 1520M MOUNT時に必要な制御ファイルの場所情報が読込まれている。 control_files = "/opt/oracle/app/oradata/itdb/control01.ctl" control_files = "/opt/oracle/app/oradata/itdb/control02.ctl" control_files = "/opt/oracle/app/oradata/itdb/control03.ctl" db_block_size = 8192 compatible = "11.1.0.0.0" undo_tablespace = "UNDOTBS1" remote_login_passwordfile= "EXCLUSIVE" db_domain = "" dispatchers = "(PROTOCOL=TCP) (SERVICE=itdbXDB)" audit_file_dest = "/opt/oracle/app/admin/itdb/adump" audit_trail = "DB" db_name = "itdb" open_cursors = 300 diagnostic_dest = "/opt/oracle/app" Sun May 03 07:12:00 2009 NOMUT時にはバックグランドプロセスも起動されている。 PMON started with pid=2, OS id=30749 Sun May 03 07:12:00 2009 VKTM started with pid=3, OS id=30751 at elevated priority VKTM running at (20)ms precision Sun May 03 07:12:00 2009 DIAG started with pid=4, OS id=30755 Sun May 03 07:12:00 2009 DBRM started with pid=5, OS id=30757 Sun May 03 07:12:00 2009 PSP0 started with pid=6, OS id=30759 Sun May 03 07:12:00 2009 DSKM started with pid=7, OS id=30761 Sun May 03 07:12:00 2009 DIA0 started with pid=8, OS id=30763 Sun May 03 07:12:00 2009 MMAN started with pid=7, OS id=30765 Sun May 03 07:12:00 2009 DBW0 started with pid=9, OS id=30767 Sun May 03 07:12:00 2009 LGWR started with pid=10, OS id=30769 Sun May 03 07:12:00 2009 CKPT started with pid=11, OS id=30771 Sun May 03 07:12:00 2009 SMON started with pid=12, OS id=30773 Sun May 03 07:12:00 2009 RECO started with pid=13, OS id=30775 Sun May 03 07:12:01 2009 MMON started with pid=14, OS id=30777 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'... Sun May 03 07:12:01 2009 MMNL started with pid=15, OS id=30779 starting up 1 shared server(s) ... ORACLE_BASE from environment = /opt/oracle/app Sun May 03 07:12:01 2009 MOUTモードへ遷移させるコマンドが実行されている。 ALTER DATABASE MOUNT Setting recovery target incarnation to 2 Successful mount of redo thread 1, with mount id 2808467396 Database mounted in Exclusive Mode Lost write protection disabled Completed: ALTER DATABASE MOUNT Sun May 03 07:12:08 2009 OPENモードへ遷移させるコマンドが実行されている。 ALTER DATABASE OPEN Thread 1 opened at log sequence 37 Current log# 1 seq# 37 mem# 0: /opt/oracle/app/oradata/itdb/redo01.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set SMON: enabling cache recovery Successfully onlined Undo Tablespace 2. Verifying file header compatibility for 11g tablespace encryption.. Verifying 11g file header compatibility for tablespace encryption completed SMON: enabling tx recovery Starting background process SMCO Sun May 03 07:12:08 2009 SMCO started with pid=19, OS id=30791 Database Characterset is AL32UTF8 Opening with internal Resource Manager plan Starting background process FBDA replication_dependency_tracking turned off (no async multimaster replication found) Sun May 03 07:12:09 2009 FBDA started with pid=20, OS id=30793 Starting background process QMNC Sun May 03 07:12:09 2009 QMNC started with pid=21, OS id=30795 Completed: ALTER DATABASE OPEN <=正常にOPENモードでOracleは起動した。 [oracle@localhost trace]$ OPEN状態までオラクルをNOMOUNT,MOUNTと遷移させて起動させる場合 SQL>STARTUP NOMOUNT SQL>ALTER DATABASE MOUNT; ※セミコロンがいります。 SQL>ALTER DATABASE OPEN; ※セミコロンがいります。 通常、このように手間がかかる起動方法は行いませんが、データベースが起動しない場合は、一つ一つ遷移をさせ、どの箇所に問題があるかを確認しながら起動する事がありますので紹介します。 また、リカバリが必要な場合もNMOUNTモード、MOUNTモードでリカバリコマンドを実行する必要がありますので覚えておいて下さい。 [oracle@localhost ~]$ sqlplus / as sysdba <=SYSユーザにて接続 SQL*Plus: Release 11.1.0.6.0 - Production on Sun May 3 07:22:42 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. Connected to an idle instance. <= オラクルが起動していない事を確認。 SQL> startup nomount <=NOMOUNTモードまで起動。 ORACLE instance started. Total System Global Area 1586708480 bytes Fixed Size 2144784 bytes Variable Size 788530672 bytes Database Buffers 788529152 bytes Redo Buffers 7503872 bytes SQL> SQL> select * from V$instance; <=オラクルのステータス確認。 INSTANCE_NUMBER INSTANCE_NAME --------------- ---------------- HOST_NAME ---------------------------------------------------------------- VERSION STARTUP_ STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT ----------------- -------- ------------ --- ---------- ------- --------------- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO ---------- --- ----------------- ------------------ --------- --- 1 itdb localhost.localdomain 11.1.0.6.0 09-05-03 STARTED NO 0 STOPPED <=STARTED(NOMOUNT)モード ALLOWED NO ACTIVE UNKNOWN NORMAL NO SQL> SQL> alter database mount; <=MOUNTモードまで起動。 Database altered. SQL> SQL> select * from V$instance; <=オラクルのステータス確認。 INSTANCE_NUMBER INSTANCE_NAME --------------- ---------------- HOST_NAME ---------------------------------------------------------------- VERSION STARTUP_ STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT ----------------- -------- ------------ --- ---------- ------- --------------- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO ---------- --- ----------------- ------------------ --------- --- 1 itdb localhost.localdomain 11.1.0.6.0 09-05-03 MOUNTED NO 1 STOPPED <=MOUNTモードに遷移した。 ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO SQL> SQL> alter database open; <=MOUNTモードまで起動。 Database altered. SQL> SQL> select * from V$instance; INSTANCE_NUMBER INSTANCE_NAME --------------- ---------------- HOST_NAME ---------------------------------------------------------------- VERSION STARTUP_ STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT ----------------- -------- ------------ --- ---------- ------- --------------- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO ---------- --- ----------------- ------------------ --------- --- 1 itdb localhost.localdomain 11.1.0.6.0 09-05-03 OPEN NO 1 STOPPED <=OPENモードに遷移した。 ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO SQL> SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$ 特定のパラメータファイルを使用してOPEN状態までオラクルを起動させる場合 SQL>STARTUP PFILE=(PFILEのパス)/PFILE名 [oracle@localhost ~]$ sqlplus / as sysdba <=SYSユーザにて接続 SQL*Plus: Release 11.1.0.6.0 - Production on Sun May 3 07:32:39 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. Connected to an idle instance. SQL> startup pfile=/tmp/inititdb.ora <=パラメータファイルを特定場所に置いて起動 ORACLE instance started. Total System Global Area 1586708480 bytes Fixed Size 2144784 bytes Variable Size 788530672 bytes Database Buffers 788529152 bytes Redo Buffers 7503872 bytes Database mounted. Database opened. <=正常に起動しました。 SQL> SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$ Oracle社よりデータベースの起動停止方法のマニュアルが公開されています。 詳細は以下をご確認ください。 データベース起動停止方法のマニュアル
![]() |
|||||||||||||||||||||||||||||||||
| Copyright(C) IT業界の人を応援!!資格取得ガイド All Rights Reserved |