Oracle Serverにおけるインスタンスは、SGA(メモリ)とバックグラウンドプロセスから構成され、データベースとは物理的なファイル群を指します。また、インスタンス対データベースは1対1(RACの場合はn対1)の関係です。 一方、SQL Serverにおけるインスタンスとデータベースの関係は、Oracle Serverのそれとは大きく異なります。インスタンスとはサービスそのものを指し、「既定のインスタンス」と「名前付きインスタンス」の2種類があります。 また、データベースはインスタンスに対して複数作成され、「システムデータベース」と「ユーザーデータベース」の2種類があります。 ☆さらに詳細はこちら→
Oracle Serverの初期化パラメータファイルは、インスタンス起動時に読み込まれるファイルです。このファイルには、データベースの名前やメモリの大きさ、制御ファイルの情報などが格納されています。 SQL Serverには、初期化パラメータファイルは存在しません。それに相当するのはシステムデータベースの1つである「masterデータベース」です。このmasterデータベースの情報はサービス起動時に自動的に読み込まれます。また、メモリの大きさは自動的に最適化されるので、通常は管理者が指定する必要がありません。
Oracleでは、変更記録がREDOログファイルに書き込まれます。1つのデータベースに対して2つ以上のREDOログファイルが用意され、それらは循環して使用されます。障害時にデータが紛失した場合などは、このREDOログファイルに書き込まれた変更記録をもとに復旧が可能です。 SQL Serverでは「トランザクションログファイル」がOracleのREDOログファイルにあたり、さらにトランザクションの復旧にも使用されます。通常は1つのデータベースに1つのトランザクションログファイルを用意します。トランザクションログファイルの中は「仮想ログ」と呼ばれる複数のブロックに自動的に分けられ、この仮想ログがREDOログファイルのように循環して使われます。
Oracleの表や索引は、記憶域として表領域を使用します。表領域には1つ以上の物理データファイルが割り当てられます。 SQL Serverには「ファイルグループ」という考え方があり、Oracleと同様、テーブルやインデックスの格納先として指定できます。OracleのSYSTEM表領域と似ているのが「プライマリファイルグループ」で、このプライマリファイルグループに割り当てられた物理データファイルに「システムテーブル」(データディクショナリのようなもの)が格納されます。プライマリファイルグループは、データベースの作成時に必ず作成されます。ユーザーはバックアップの頻度を変えたり、読み取り専用のファイルグループを作成するなど、管理作業を軽減する目的で新たにユーザー定義のファイルグループを作成することができます。
データベースにログインするには、何らかの形で認証されたユーザー名を使う必要があります。SQL Serverにおける認証は、「Windows認証」と「SQL Server認証」の2つの方法があります。 Windows認証はオペレーティングシステム上のユーザーにSQL Serverへログインする権限を与える方法で、Oracle ServerのOS認証にあたります。ユーザー名の確認やパスワード管理にはWindowsの機能を使います。一方、SQL Server認証はログイン可能なユーザー名およびパスワードをデータベースに登録する方法で、Oracle Serverのデータベース認証にあたります。この認証方法では、パスワードの有効期限設定などの機能はありません。SQL ServerではWindows認証を推奨しています。ただしWindows以外のOSやインターネットからの接続の場合、Windows認証が使えないことがあります。この場合はSQL Server認証を使う必要があります。
SQL Serverのインスタンスを構成するメモリ構造は、ほぼOracle Serverと同じです。Oracle ServerではSGAやPGAという名前を特定のメモリ領域の集まりに対してつけていますが、SQL Serverでは、使用するメモリ全体を通称「メモリプール」と呼んでいます。メモリプールには、「データバッファキャッシュ」、「プロシージャキャッシュ」および「ログキャッシュ」などの領域があります。 データバッファキャッシュは、データファイルから読み取ったテーブルのデータを格納する領域です。この領域はOracle Serverでいうデータブロックに該当する、「ページ」という単位でデータを読み込みます。プロシージャキャッシュは、SQLを実行する際の実行プランを格納する領域です。実行プランとは実行計画のことです。ログキャッシュは、DMLを発行したときの変更履歴(ログレコード)を格納するための領域です。SQL Serverではメモリプール内の各領域は自動調整されますので、Oracle Serverのようにパラメータを使って各領域を個別にチューニングする必要はありません。SQL Serverが使う実メモリ領域の最小値と最大値を指定するだけです。