この付録では、Oracle DatabaseのWindowsとUNIX上での主な相違点について説明します。UNIXプラットフォームからWindowsへ移行するOracle Database開発者およびデータベース管理者にとって、この情報は、Oracle Databaseに関連するWindowsの機能を理解するうえで役立ちます。
この章の項目は次のとおりです。
UNIXでは、インスタンスを自動的に起動するには、異なるディレクトリの複数のファイルおよびスクリプトを使用します。コンピュータを停止するときは、別のスクリプトを使用して、Oracle Databaseなどのアプリケーションを完全に停止します。
Windowsで自動起動を行うには、ORADIMなどのOracle Databaseツールを使用して、レジストリ・パラメータORA_
SID
_AUTOSTART
をtrue
に設定します。コマンド・プロンプトに、パラメータを含めて次のように入力します。
C:\> oradim options
リスナーを自動的に起動するには、サービスの起動の種類を「自動」に設定します。
Windowsで自動停止を行うには、レジストリ・パラメータORA_SHUTDOWN
およびORA_
SID
_SHUTDOWN
を、関連するOracleServiceSIDを停止し、データベースを停止するように設定します。レジストリ・パラメータORA_
SID
_SHUTDOWNTYPE
を設定して、停止モードを制御します(デフォルトはi
、つまりimmediate
です)。
UNIXには、バックグラウンド処理およびバッチ・ジョブ用の高度な制御メカニズムがあります。
Windowsで同様の機能を使用するには、ATコマンドまたはMicrosoftリソース キットのGUIバージョンを使用します。
UNIXでは、sar
やvmstat
などのユーティリティを使用して、Oracle Databaseのバックグラウンド・プロセスおよびシャドウ・プロセスを監視します。これらのユーティリティは、Oracle Databaseとは統合されていません。
Windowsで使用可能なパフォーマンス・ユーティリティには、Oracle Counters for Windows Performance Monitor、タスク マネージャ、コントロール パネル、イベント ビューアおよびMicrosoft管理コンソールがあります。
Oracle Databaseは、これらのいくつかのツールと統合されています。次に例を示します。
Oracle Counters for Windows Performance Monitorには、主要なOracle Database情報が表示されます。Oracle Databaseのパフォーマンス要素がロードされている点を除けば、Windowsのパフォーマンス モニタと、外観と操作は同じです。
イベント ビューアには、Oracle Databaseの起動/停止メッセージ、監査証跡などのシステムの警告メッセージが表示されます。
Windowsのタスク マネージャには、UNIXのps -ef
コマンドやHP OpenVMSのSHOW SYSTEM
と同様、現在のプロセスとそのプロセスのリソース使用量が表示されます。ただし、タスク マネージャの方がわかりやすく、また列をカスタマイズできます。
UNIXおよびWindowsの両プラットフォームとも、ファイル・システムのバッファ・キャッシュを使用しない場合、データはディスクに書き込まれます。
UNIXの場合、ファイル・システムのバッファ・キャッシュの使用を避けるために、Oracle DatabaseではO_SYNC
フラグを使用します。フラグ名は、UNIXポートによって決まります。
Windowsの場合、Oracle Databaseではファイル・システムのバッファ・キャッシュはまったく使用されません。
UNIXの共有ライブラリは、Windowsの共有DLLと似ています。オブジェクト・ファイルおよびアーカイブ・ライブラリがリンクされて、Oracle Database実行可能プログラムが生成されます。パッチのインストールなど、特定の操作後には再リンクが必要です。
Windowsでは、Oracle Database DLLは、実行時に実行可能ファイルの一部となるため、サイズは小さくなります。DLLは、複数の実行可能ファイルで共有できます。ユーザーによる再リンクはサポートされていませんが、実行可能ファイルのイメージは、ORASTACKを使用して変更できます。
Windowsで実行可能ファイルのイメージを変更すると、大規模なSGAを使用する場合や多数の接続をサポートする場合に、仮想メモリー不足が発生する可能性は低くなります。ただし、この変更は、必ずOracleサポート・サービスの指示に従って実行してください。
(手動)ホット・バックアップは、オフライン・バックアップ・モードの表領域をバックアップすることと同じです。
UNIXのバックアップ計画では、表領域をバックアップ・モードに設定し、ファイルをバックアップ先にコピーし、表領域のバックアップ・モードを解除します。
Windowsでも同じバックアップ計画がサポートされていますが、通常のWindowsユーティリティでは、使用中のファイルはコピーできません。オープン状態のデータベース・ファイルをディスクの別の場所にコピーするには、OCOPYを使用します。その後、ファイルをテープにコピーするユーティリティを使用します。
UNIXでは、初期化パラメータDB_WRITERSを使用して、多数のデータベース・ライター・プロセスを指定できます。たとえば、UNIXポートが非同期I/Oをサポートしない場合は、複数のデータベース・ライターを使用すると便利です。
WindowsでもDB_WRITERS
はサポートされていますが、独自の非同期I/O機能が組み込まれているため、通常は必要ありません。
UNIXでは、DBAグループの概念を使用します。root
アカウントを使用して、Oracle Databaseをインストールすることはできません。別のOracle Databaseアカウントを手動で作成する必要があります。
Windowsの場合は、管理者グループに所属しているWindowsユーザー名でOracle Databaseをインストールする必要があります。ユーザー名は自動的にWindowsのローカル・グループORA_DBA
に追加されます。このグループにはSYSDBA権限が付与されます。これにより、ユーザーはパスワードの入力要求を受けることなく、CONNECT
/
AS SYSDBA
を使用してデータベースにログインできます。
ORA_OPER
グループを作成し、SYSOPER
権限を他のWindowsユーザーに付与することもできます。
パスワード・ファイルは、ORACLE_HOME
\database
ディレクトリにあり、pwd
SID
.ora
という名前が付けられています。SID
はOracle Databaseインスタンスを示します。
次の手動設定作業は、UNIXではすべて必須ですが、Windowsでは必須ではありません。
環境変数の設定
データベース管理者用DBAグループの作成
Oracle Universal Installer用のユーザー・グループの作成
Oracle Databaseコンポーネントのインストールおよびアップグレード専用アカウントの作成
関連項目: 『Oracle Databaseインストレーション・ガイドfor Microsoft Windows』 |
UNIXのデフォルト・カーネルが提供するリソースは、Oracle Databaseの中規模または大規模インスタンスには不十分な場合があります。共有メモリー・セグメントの最大サイズ(SHMMAX
)および使用可能なセマフォの最大数(SEMMNS
)が、Oracle Databaseの推奨値より低すぎることがあります。
Windowsでは、Oracle Databaseリレーショナル・データベース管理システムがプロセスベースではなくスレッド・ベースであるため、プロセス間通信(IPC)ではリソースはほとんど必要ありません。ユーザーが、共有メモリーとセマフォを含むこれらのリソースを調整することはできません。
UNIXでは、Microsoft Transaction Serverはサポートされていません。
Windowsでは、Oracle8以降でMicrosoft Transaction Serverがサポートされています。Oracle Services for Microsoft Transaction Serverを使用して、COMベースのアプリケーションを開発し、デプロイできます。Microsoft Transaction Serverは、Oracle Databaseのアプリケーション・トランザクションを調整します。
関連項目: 『Oracle Services for Microsoft Transaction Server開発者ガイド』 |
OFAの目的は、すべてのOracle Databaseソフトウェアを1つのORACLE_HOMEディレクトリの下に置き、データベースのサイズが大きくなるに従い、異なる物理ドライブにデータベース・ファイルを分散させることにあります。OFAはWindowsでもUNIXでも同じ方法で実装され、主要なサブディレクトリ名とファイル名は、どちらのオペレーティング・システムでも同じです。ただし、OFAディレクトリ・ツリーのトップレベルの名前と、変数の設定方法は、WindowsとUNIXでは異なります。
UNIXでは、ORACLE_BASE
はユーザーの環境に関連付けられます。ORACLE_HOMEおよびORACLE_SID
は、システムまたはユーザーのログイン・スクリプトで設定する必要があります。シンボリック・リンクがサポートされています。すべてのファイルは同じハード・ディスク・ドライブの1つのディレクトリ内にあるように見えますが、ハード・ディスク・ドライブがシンボリックにリンクしているか、またはディレクトリがマウント・ポイントである場合には、ファイルが異なるハード・ディスク・ドライブに配置されていることがあります。
Windowsでは、ORACLE_BASE
はレジストリ(たとえば\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
)で定義します。ORACLE_HOME
およびORACLE_SID
は、レジストリで定義する変数です。Microsoft社は、UNIXで使用されているようなシンボリック・リンクをサポートする意向を発表していますが、現在のところはサポートされていません。
関連項目: Oracle Databaseのインストレーション・ガイドの付録B「Optimal Flexible Architecture」 |
UNIXでは、プロセスを使用して、データベース・ライター(DBW0
)、ログ・ライター(LGWR
)、共有サーバー・プロセス・ディスパッチャおよび共有サーバーなどの各バックグラウンド・タスクを実装します。データベースへの各専用接続により、そのセッション用に別のオペレーティング・システム・プロセスが作成されます。
Windowsでは、各バックグラウンド・プロセスは、1つの大きなプロセス内のスレッドとして実装されます。Oracle Databaseインスタンスまたはシステム識別子のそれぞれには、対応するOracle Databaseのプロセスが1つあります。たとえば、UNIX上の1つのデータベース・インスタンスに対する100のOracle Databaseプロセスは、Windowsでは1つのプロセス内の100のスレッドとして処理されます。
すべてのOracle Databaseバックグラウンド、専用サーバーおよびクライアント・プロセスは、マスターであるOracle Database Windowsプロセスのスレッドであり、Oracle Databaseプロセスのすべてのスレッドでリソースは共有されます。このマルチスレッド・アーキテクチャは非常に効率的で、低いオーバーヘッドでコンテキストのスイッチングを高速に実行できます。
プロセスの表示、各スレッドの終了には、Oracle Administration Assistant for Windowsを使用します。「スタート」メニュー→「プログラム」→「Oracle - HOME_NAME」→「Configuration and Migration Tools」→「Administration Assistant for Windows」を選択します。SID
を右クリックし、「プロセス情報」を選択します。
注意: Microsoft管理コンソール(MMC)は、Oracle Administration Assistant for Windowsの起動時に起動されます。Oracle Databaseでは、複数のデータベース管理スナップインがMicrosoft管理コンソールに統合されています。 |
表領域のデータファイルは、ファイル・システムまたはRAWパーティションに格納できます。RAWパーティションは、最下位レベルでアクセスされる物理ディスクの一部です。
UNIXではRAWパーティション(論理ドライブ)がサポートされています。ディスク・ドライブ数に制限はありません。
Windowsでは、ドライブ文字の使用はAからZに制限されていますが、RAWパーティションを作成することにより、ディスク・ドライブの制限を回避し、ディスクを小さなセクションに分割できます。
Windowsディスク管理ツールを使用すると、物理ドライブ上に拡張パーティションを作成できます。拡張パーティションとは、データベース・ファイル用の複数の論理パーティションを割り当てられる、ディスク上のRAW領域を示します。
拡張パーティションにより、論理パーティションを大量に定義して、Oracle Databaseを使用するアプリケーションに対応できるようになり、4つまでというWindowsのパーティションの制限を回避できます。また、論理パーティションには、ドライブ文字を使用しなくてすむようにシンボリック・リンク名を付けることができます。
Windows Vista、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012およびWindows Server 2012 R2では、「新しいシンプル ボリューム」オプションを選択して、プライマリ・パーティションおよび論理ドライブを拡張パーティションに作成します。RAWデバイスを作成するには、「ドライブ文字またはドライブ パスを割り当てない」を選択します。RAWデバイスをマウントするには、ドライブ文字を割り当てて削除します。スパン・ボリュームやストライプ・ボリュームは使用しないでください。これらのオプションは、ボリュームをダイナミック・ディスクに変換します。自動ストレージ管理は、ダイナミック・ディスクをサポートしていません。
注意: Oracle RACは、Windows XP、Windows Vista、Winodws 7およびWindows(32-bit)オペレーティング・システムではサポートされません。 |
Windowsのサービスは、UNIXのデーモンに似ています。
Oracle Databaseでは、データベース・インスタンスはサービス(OracleServiceSID)として登録されます。サービスはバックグラウンド・プロセスとして起動されます。
Oracle Databaseインスタンスに接続して、そのインスタンスを使用するには、データベースの作成中にOracle Databaseサービスを作成し、Oracle Databaseに関連付けます。Oracle Databaseにサービスが作成されると、ユーザーが誰もログオンしていない間でもサービスが実行されます。
デフォルトでは、サービスはSYSTEMアカウントで実行されます。「スタート」メニュー→「設定」→「コントロール パネル」→「サービス」を選択して、「サービス」ダイアログにアクセスします。