ヘッダーをスキップ

Oracle Databaseプラットフォーム・ガイド 11gリリース1（11.1） for Microsoft Windows E05885-05 |
| 目次 | 索引

戻る | 次へ |

# D Oracle DatabaseのWindowsとUNIXでの相違点

この付録では、Oracle DatabaseのWindowsとUNIX上での主な相違点について説明します。UNIXプラットフォームからWindowsへ移行するOracle Database開発者およびデータベース管理者にとって、この情報は、Oracle Databaseに関連するWindowsの機能を理解するうえで役立ちます。

この章の項目は次のとおりです。

- 自動起動および停止

- バックグラウンド処理およびバッチ・ジョブ

- 診断およびチューニング・ユーティリティ

- ディスクへの直接書込み

- Dynamic Link Library（DLL）

- ホット・バックアップ

- 初期化パラメータ: 複数のデータベース・ライター

- アカウントおよびグループのインストール

- インストール

- メモリー・リソース

- Microsoft Transaction Server

- 複数のOracleホームおよびOFA

- プロセスおよびスレッド

- RAWパーティション

- サービス

## 自動起動および停止

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`です）。

関連項目: 第5章「Windowsでのデータベースの管理」 『Oracle Database 2日でデータベース管理者』

## バックグラウンド処理およびバッチ・ジョブ

UNIXには、バックグラウンド処理およびバッチ・ジョブ用の高度な制御メカニズムがあります。

Windowsで同様の機能を使用するには、ATコマンドまたはMicrosoftリソース キットのGUIバージョンを使用します。

## 診断およびチューニング・ユーティリティ

UNIXでは、`sar`や`vmstat`などのユーティリティを使用して、Oracle Databaseのバックグラウンド・プロセスおよびシャドウ・プロセスを監視します。これらのユーティリティは、Oracle Databaseとは統合されていません。

Windowsで使用可能なパフォーマンス・ユーティリティには、Oracle Counters for Windows Performance Monitor、タスク マネージャ、コントロール パネル、イベント ビューアおよびMicrosoft管理コンソール（Windows 2000のみ）があります。

Oracle Databaseは、これらのいくつかのツールと統合されています。次に例を示します。

- Oracle Counters for Windows Performance Monitorには、主要なOracle Database情報が表示されます。Oracle Databaseのパフォーマンス要素が組み込まれている点を除けば、Windowsのパフォーマンス モニタと、外観と操作は同じです。

- イベント ビューアには、Oracle Databaseの起動/停止メッセージ、監査証跡などのシステムの警告メッセージが表示されます。

- Windowsのタスク マネージャには、UNIXの`ps -ef`コマンドやHP OpenVMSの`SHOW SYSTEM`と同様、現在実行中のプロセスおよびリソース使用量が表示されます。ただし、タスク マネージャの方がわかりやすく、また列をカスタマイズできます。

  関連項目: 第2章「Windowsでのデータベース・ツール」 第6章「Windowsでのデータベースの監視」

## ディスクへの直接書込み

UNIXおよびWindowsの両プラットフォームとも、ファイル・システムのバッファ・キャッシュを使用しない場合、データはディスクに書き込まれます。

UNIXの場合、ファイル・システムのバッファ・キャッシュの使用を避けるために、Oracle Databaseでは`O_SYNC`フラグを使用します。フラグ名は、UNIXポートによって決まります。

Windowsの場合、Oracle Databaseではファイル・システムのバッファ・キャッシュはまったく使用されません。

## Dynamic Link Library（DLL）

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機能が組み込まれているため、通常は必要ありません。

関連項目: 第14章「Windows用のOracle Databaseの指定」

## アカウントおよびグループのインストール

UNIXでは、DBAグループの概念を使用します。rootアカウントを使用して、Oracle Databaseをインストールすることはできません。別のOracle Databaseアカウントを手動で作成する必要があります。

Windowsでは、管理グループのWindowsユーザー名でOracle Databaseをインストールする必要があります。ユーザー名は、Windowsのローカル・グループ`ORA_DBA`に自動的に追加され、SYSDBA 権限が与えられます。これで、ユーザーは、`CONNECT` `/` `AS SYSDBA`を使用してデータベースにログオンできます。パスワードの入力は求められません。

パスワード・ファイルは`ORACLE_BASE``\``ORACLE_HOME``\database`ディレクトリにあり、`pwd` `SID``.ora`という名前が付けられています。`SID`はOracle Databaseインスタンスです。

関連項目: 第5章「Windowsでのデータベースの管理」

## インストール

UNIXで実行する必要がある次のすべての手動セットアップ・タスクは、Windowsでは必要ありません。

- 環境変数の設定

- データベース管理者用DBAグループの作成

- Oracle Universal Installerを実行するユーザー・グループの作成

- Oracle Databaseコンポーネントのインストールおよびアップグレード専用アカウントの作成

関連項目: Oracle Databaseのインストレーション・ガイド

## メモリー・リソース

UNIXのデフォルト・カーネルが提供するリソースは、Oracle Databaseの中規模または大規模インスタンスには不十分な場合があります。共有メモリー・セグメントの最大サイズ（`SHMMAX`）および使用可能なセマフォの最大数（`SEMMNS`）が、Oracle Databaseの推奨値より低すぎることがあります。

Windowsでは、Oracle Databaseリレーショナル・データベース管理システムがプロセスベースではなくスレッドベースであるため、プロセス間通信（IPC）ではリソースはほとんど必要ありません。ユーザーが、共有メモリーとセマフォを含むこれらのリソースを調整することはできません。

## Microsoft Transaction Server

UNIXでは、Microsoft Transaction Serverはサポートされていません。

Windowsでは、Oracle8以降でMicrosoft Transaction Serverがサポートされています。Oracle Services for Microsoft Transaction Serverを使用して、COM/COM+ベースのアプリケーションを開発し、デプロイできます。Microsoft Transaction Serverは、Oracle Databaseのアプリケーション・トランザクションを調整します。

関連項目: 『Oracle Services for Microsoft Transaction Server開発者ガイド』

## 複数のOracleホームおよびOFA

OFAの目的はすべてのOracle Databaseソフトウェアを1つのORACLE_HOMEディレクトリ内に配置し、データベース・サイズの増加に応じて、異なる物理ドライブ間でデータベース・ファイルを分散することです。WindowsとUNIXでのOFAの実装方法は同じです。また両方のオペレーティング・システムにおいて主なサブディレクトリとファイル名は同じです。ただし、OFAディレクトリ・ツリーの最上位名と変数の設定方法は異なります。

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のインストレーション・ガイドの付録「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では、複数のデータベース管理スナップインがMMCに統合されています。

関連項目: Oracle Administration Assistant for Windowsオンライン・ヘルプ 第1章「WindowsでのOracle Databaseアーキテクチャ」

## RAWパーティション

表領域のデータファイルは、ファイル・システムまたはRAWパーティションに格納できます。RAWパーティションは、最下位レベルでアクセスされる物理ディスクの一部です。

UNIXではRAWパーティション（論理ドライブ）がサポートされています。ディスク・ドライブ数に制限はありません。

Windowsでは、ドライブ文字の使用はAからZに制限されていますが、RAWパーティションを作成することにより、ディスク・ドライブの制限を回避し、ディスクを小さなセクションに分割できます。

Windowsディスク管理ツールを使用すると、物理ドライブ上に拡張パーティションを作成できます。拡張パーティションとは、データベース・ファイル用の複数の論理パーティションを割り当てられる、ディスク上のRAW領域を示します。

拡張パーティションにより、論理パーティションを大量に定義して、Oracle Databaseを使用するアプリケーションに対応できるようになり、4つまでというWindowsのパーティションの制限を回避できます。また、論理パーティションには、ドライブ文字を使用しなくてすむようにシンボリック・リンク名を付けることができます。

Windows Vistaの場合は、プライマリ・パーティションと、「新しいシンプル ボリューム」オプションを選択して拡張パーティションの論理ドライブを作成します。RAWデバイスを作成するには、「ドライブ文字またはドライブ パスを割り当てない」を選択します。RAWデバイスをマウントするには、ドライブ文字を割り当てて削除します。スパン・ボリュームやストライプ・ボリュームは使用しないでください。これらのオプションは、ボリュームをダイナミック・ディスクに変換します。自動ストレージ管理は、ダイナミック・ディスクをサポートしていません。

注意: RAWパーティションは、Windowsで使用できるOracle RAC環境の共有データファイルに必要です。Oracle RACでは、Oracle Databaseインスタンスがすべてのノードで同時に実行され、クラスタ化と高可用性を提供します。Oracle RACは、Windows XPとWindows Vistaではサポートされません。

## サービス

Windowsのサービスは、UNIXのデーモンに似ています。

Oracle Databaseでは、データベース・インスタンスはサービス（OracleServiceSID）として登録されます。サービスはバックグラウンド・プロセスとして起動されます。

Oracle Databaseインスタンスに接続して、そのインスタンスを使用するには、データベースの作成中にOracle Databaseサービスを作成し、Oracle Databaseに関連付けます。Oracle Databaseにサービスが作成されると、ユーザーが誰もログオンしていない間でもサービスが実行されます。

デフォルトでは、サービスはSYSTEMアカウントで実行されます。「スタート」メニュー→「設定」→「コントロール パネル」→「サービス」を選択して、「サービス」ダイアログにアクセスします。

関連項目: 第5章「Windowsでのデータベースの管理」