<オブジェクトとデータ管理>
□表名の規則
・長さは1~30バイト
・Oracleの予約語(SELECT,CREATE,GRANT)は使用できない
・1文字目は英字で指定する
・英数字以外にアンダースコア(_)、ドル記号($)、シャープ記号(#)が使用できる
□同一スキーマ内の同一名オブジェクトについて
・通常は同じ名前のオブジェクトは作成できない
・ネームスペースが異なれば同一スキーマ内でも同じ名前のオブジェクトが作成可能
●ネームスペースを共有する主なオブジェクト①
(オブジェクトタイプが異なっても同一名称をつけることができない)
・表
・ビュー
・順序
・プライベートシノニム
・ストアドプロシージャ
・ストアドファンクション
・パッケージ
●ネームスペースを共有する主なオブジェクト②
(オブジェクトタイプが異なれば同一名称をつけることができる)
・索引
・制約
・データベーストリガー
・データベースリンク
□フラッシュバックドロップ
・削除した表を簡単にリカバリできる機能
・SYSTEM表領域に格納されている表には適用できない
□表の削除
・表に対応付けされている索引、トリガーは自動で削除される
・ビュー、シノニムは削除されない
□制約
・表に制約を追加する場合、CONSTRAINT句で制約に名称をつけられる
・制約名を省略すると、SYS_Cxxxxxxが自動で割り当てられる
・USER_CONSTRAINTSビューで確認できる
□参照整合性制約
・ON DELETE CASCADEオプション
親表のレコードを削除すると、対応する子表のレコードが削除される
□Data Pumpユーティリティ
データおよびメタデータをデータベース間で高速に移動するためのユーティリティ。
●Data Pump Export
・expdpコマンドもしくはEnterprise Manager(EM)で実行する
・SCHEMASパラメータを使用する事によりスキーマモードでエクスポートするスキーマを
指定することが可能。このオプションは、EXP_FULL_DATABASEロールがある場合に
自分のスキーマ以外の単一のスキーマまたはスキーマ名リストを指定できる。
●Data Pump Import
・impdpコマンドもしくはEMをしようし実行する
□ディレクトリオブジェクト
・OSのディレクトリパスに名前を対応付けたもの
・ディレクトリオブジェクトに対するREAD権限およびWRITE権限をユーザやロールに付与して、データベースから
OSファイルシステムへのアクセスに対するセキュリティを制御します
・Data Pumpユーティリティでは、ディレクトリオブジェクトを使用してダンプファイルの出力先を指定する必要がある
●ディレクトリオブジェクトの作成
・CREATE DIRECTORY ディレクトリ名 AS 'OSのディレクトリパス';
●ディレクトリオブジェクトに対するアクセス権の付与
・GRANT READ,WRITE ON DIRECTORY ディレクトリ名 TO ユーザ名,ール名;
□REMAP_SCHEMA=ソーススキーマ名:ターゲットスキーマ名
□SQL*Loaderの出力ファイル
●ログファイル
●不良ファイル
・入力形式が不適切、表の制約に違反したためSQL*LoaderやOracleにより拒否されたレコードを記録するファイル
●廃棄ファイル
・制御ファイルに指定されているレコード選択基準を満たさなかったため、ロード対象から除外されたレコードが
記録されるファイル
2009年1月25日日曜日
2009年1月24日土曜日
Silver DBA 10g (1Z0-042J)その13
<ユーザの管理>
□新規ユーザ作成
・CREATE USER ユーザ名
IDENTIFIED 認証方式
[DEFAULT TABLESPACE 表領域]
[TEMPORARY TABLESPACE 一時表領域名]
[QUOTA サイズ ON 表領域]
[PASSWORD EXPIRE]→→→→→→→→→→→SQL*Plusで最初にログインした時に
パスワードの変更を要求される指定
[ACCOUNT ロック状態]
[PROFILE プロファイル];
□ユーザが作成するオブジェクトの格納表領域の優先順位
①ユーザがオブジェクトを作成するときにTABLESPACE句で指定した表領域
②ユーザ作成時にDEFAULT TABLESPACE句で指定された表領域
③データベースのDEFAULT TABLESPACEに指定されている表領域
④SYSTEM表領域
□ユーザが使用する一時表領域の優先順位
①ユーザ作成時にTEMPORARY TABLESPACE句で指定した表領域
②データベースのDEFAULT TEMPORALY TABLESPACEに指定されている表領域
③SYSTEM表領域
□DBA_USERSビューによるパスワードの確認
・select username ,password from dba_users;
□ユーザが表領域を作成するためには!!
・CREATE TABLEシステム権限が付与されている
・表を格納する表領域に対するクォータが与えられている
(表領域に対するクォータはデフォルトではすべての表領域に対して0となっている)
□CONNECTロールに付与されている権限
権限 |説明
-----------------------------------|---------------------------------------
ALTER SESSION |セッションのパラメータを変更できる
CREATE CLUSTER |クラスタセグメントを作成できる
CREATE DATABASE LINK|データベースリンクを作成できる
CREATE SEQUENCE |順序オブジェクトを作成できる
CREATE SESSION |セッションを確立できる
CREATE SYNONYM |シノニム(別名オブジェクト)を作成できる
CREATE TABLE |表を作成できる
CREATE VIEW |ビューを作成できる
●ロールに付与されている権限の確認
・SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CONNECT'
□ユーザプロファイル
・ユーザのリソースやパスワードの制限を設け名前をつけたもの
・CREATE PROFILE プロファイル名 LIMIT
パスワード制限のパラメータ指定
リソース制限のパラメータ指定
[パスワード制限のパラメータ]
・FAILED_LOGIN_ATTEMPTS:アカウントがロックされるまでのログイン執行回数を指定
・PASSWORD_LIFE_TIME:同じパスワードを使用できる期間(日数)を指定
・PASSWORD_REUSE_TIME:同じパスワードを再利用できるまでの期間(日数)を指定
・PASSWORD_REUSE_MAX:同じパスワードを再利用できるまでの変更回数を指定
・PASSWORD_LOCK_TIME:FAILED_LOGIN_ATTEMPTS制限によりロックされたアカウントをロック
する期間(日数)を指定
・PASSWORD_GRACE_TIME:PASSWORD_LIFE_TIMEで指定した期間の経過後、変更が促されてから
パスワードを変更せずにログインが許可される期間(日数)
・PASSWORD_VERIFY_FUNCTION:パスワードの複雑さを検証するファンクション名を指定
[リソース制限パラメータ]・・・セッションレベルとコールレベルの2種類がある
●セッションレベル・・・各セッションに対する制限を設定する。
制限を超えた場合、現行トランザクションをロールバックし、セッションが切断される
●コールレベル・・・・・各SQL文のコールに対する制限を設定する。
制限を超えた場合、実行中のSQL文が取り消され、現行トランザクションとセッション
はそのまま保持される
・SESSIONS_PER_USER:1ユーザあたりの同時セッション数を指定
・CPU_PER_SESSION:1セッションあたりの合計CPU時間(1/100秒)を指定
・CONNECT_TIME:セッションの連続接続時間(分)を指定
・IDLE_TIME:セッションのアイドル時間(分)を指定
・LOGICAL_READS_PER_SESSION:1セッションあたりの読み込みブロック数を指定
・COMPOSITE_LIMIT:1セッションあたりで複数リソースを組み合わせたコストを指定
セッションあたりのCPU時間
セッションあたりの読み込みブロック数
接続時間
プライベートSGA
・CPU_PER_CALL:1コールあたりの合計CPU時間(1/100秒)を指定
・LOGICAL_READS_PER_CALL:1コールあたりの読み込みブロック数を指定
□プロファイルの削除
・DROP PROFILE プロファイル名 [CASCADE]
・CASCADEオプションを指定し、すでにユーザに割り当てられているプロファイルを削除する
ユーザにはDEFAULTプロファイルが自動で割り当てられる
・プロファイルの確認
SELECT PROFILE FROM DBA_USERS
※プロファイルを使用したリソース制限を行うためにはRESOURCE_LIMIT初期化パラメータを
TRUEにする必要がある。RESOURCE_LIMIT初期化パラメータがFALSEの場合、
プロファイルの制限は無効になります。
□スキーマオブジェクト
・データベースリンク
・データベーストリガー
・索引
・順序
・ストアドファンクション、プロシージャおよびパッケージ
・シノニム
・表および索引構成表
・ビュー
-----------------
いかのオブジェクトはスキーマオブジェクトではない
・プロファイル
・ロール
・表領域
・ユーザ
□権限
●システム権限
・ユーザがデータベースに対して特定の操作を可能にするために管理者が付与する権限
<例>CREATE TABLE
CREATE USER
SELECT ANY TABLE
UNLIMITED TABLESPACE
・GRANT システム権限名 TO ユーザ名[WITH ADMIN OPTION];
※WITH ADMIN OPTIONを使用して権限を付与されたユーザは、その権限を他のユーザに付与できる
※SYSTEMユーザ→(権限A付与:WITH ADMIN OPTION)→DEMOUSER
DEMOUSER→(権限A付与)→HR
DEMOUSERから権限A削除 でもHRには権限Aは付与されたまま
●オブジェクト権限
・特定のオブジェクトに対してアクセスを許可するときに付与する権限
<例>SELECT
INSERT
UPDATE
DELETE
EXECUTE
・GRANT オブジェクト権限名 ON オブジェクト名 TO ユーザ名 [WITH GRANT OPTION]
※WITH GRANT OPTIONを使用して権限を付与されたユーザは、その権限を他のユーザに付与できる
※SYSTEMユーザ→(権限B付与:WITH GRANT OPTION)→DEMOUSER
DEMOUSER→(権限B付与)→HR
DEMOUSERから権限B削除 HRからも権限Bが削除される
□システム権限の取り消しコマンド
・REVOKE システム権限名 FROM ユーザ名;
□オブジェクト権限の取り消しコマンド
・REVOKE オブジェクト権限名 ON オブジェクト名 FROM ユーザ名;
□ユーザがオブジェクトを作成するためには下記いずれかの方法で使用可能な領域サイズを
割り当てる必要がある
●クォータサイズの指定
・CREATE USER文もしくはALTER USER文によりQUOTAを指定する
・SELECT TABLESPACE_NAME,BYTES FROM USER_TS_QUOTASでユーザに割り当てられているクォータサイズを
確認できる
●UNLIMITED TABLESPACE権限の付与
・UNLIMITED TABLESPACE権限が付与されている場合、クォータの設定に関わらず全ての表領域に対して
無制限で領域が使用可能
・SELECT * FROM SESSION_PRIVSで現行セッションの権限を確認できる
□ユーザのデフォルトロールの変更方法
・ALTER USER ユーザ名 DEFAULT ROLE ロール名;
※デフォルトロール以外は、SETコマンドで使用可能にする必要がある
□定義済みのユーザー
SYS :データベースの管理ユーザー。データディクショナリの実表やビューを所有する
SYSTEM:データベースの管理ユーザー。ツールや製品で使用される内部表などを所有する
SYSMAN:OEM(Oracle Enterprise Manager)の管理ユーザー。OEMに接続して管理作業を行う
DBSNMP:OEMの内部ユーザー。データベースを管理する際、内部的に接続して操作を行う
□新規ユーザ作成
・CREATE USER ユーザ名
IDENTIFIED 認証方式
[DEFAULT TABLESPACE 表領域]
[TEMPORARY TABLESPACE 一時表領域名]
[QUOTA サイズ ON 表領域]
[PASSWORD EXPIRE]→→→→→→→→→→→SQL*Plusで最初にログインした時に
パスワードの変更を要求される指定
[ACCOUNT ロック状態]
[PROFILE プロファイル];
□ユーザが作成するオブジェクトの格納表領域の優先順位
①ユーザがオブジェクトを作成するときにTABLESPACE句で指定した表領域
②ユーザ作成時にDEFAULT TABLESPACE句で指定された表領域
③データベースのDEFAULT TABLESPACEに指定されている表領域
④SYSTEM表領域
□ユーザが使用する一時表領域の優先順位
①ユーザ作成時にTEMPORARY TABLESPACE句で指定した表領域
②データベースのDEFAULT TEMPORALY TABLESPACEに指定されている表領域
③SYSTEM表領域
□DBA_USERSビューによるパスワードの確認
・select username ,password from dba_users;
□ユーザが表領域を作成するためには!!
・CREATE TABLEシステム権限が付与されている
・表を格納する表領域に対するクォータが与えられている
(表領域に対するクォータはデフォルトではすべての表領域に対して0となっている)
□CONNECTロールに付与されている権限
権限 |説明
-----------------------------------|---------------------------------------
ALTER SESSION |セッションのパラメータを変更できる
CREATE CLUSTER |クラスタセグメントを作成できる
CREATE DATABASE LINK|データベースリンクを作成できる
CREATE SEQUENCE |順序オブジェクトを作成できる
CREATE SESSION |セッションを確立できる
CREATE SYNONYM |シノニム(別名オブジェクト)を作成できる
CREATE TABLE |表を作成できる
CREATE VIEW |ビューを作成できる
●ロールに付与されている権限の確認
・SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CONNECT'
□ユーザプロファイル
・ユーザのリソースやパスワードの制限を設け名前をつけたもの
・CREATE PROFILE プロファイル名 LIMIT
パスワード制限のパラメータ指定
リソース制限のパラメータ指定
[パスワード制限のパラメータ]
・FAILED_LOGIN_ATTEMPTS:アカウントがロックされるまでのログイン執行回数を指定
・PASSWORD_LIFE_TIME:同じパスワードを使用できる期間(日数)を指定
・PASSWORD_REUSE_TIME:同じパスワードを再利用できるまでの期間(日数)を指定
・PASSWORD_REUSE_MAX:同じパスワードを再利用できるまでの変更回数を指定
・PASSWORD_LOCK_TIME:FAILED_LOGIN_ATTEMPTS制限によりロックされたアカウントをロック
する期間(日数)を指定
・PASSWORD_GRACE_TIME:PASSWORD_LIFE_TIMEで指定した期間の経過後、変更が促されてから
パスワードを変更せずにログインが許可される期間(日数)
・PASSWORD_VERIFY_FUNCTION:パスワードの複雑さを検証するファンクション名を指定
[リソース制限パラメータ]・・・セッションレベルとコールレベルの2種類がある
●セッションレベル・・・各セッションに対する制限を設定する。
制限を超えた場合、現行トランザクションをロールバックし、セッションが切断される
●コールレベル・・・・・各SQL文のコールに対する制限を設定する。
制限を超えた場合、実行中のSQL文が取り消され、現行トランザクションとセッション
はそのまま保持される
・SESSIONS_PER_USER:1ユーザあたりの同時セッション数を指定
・CPU_PER_SESSION:1セッションあたりの合計CPU時間(1/100秒)を指定
・CONNECT_TIME:セッションの連続接続時間(分)を指定
・IDLE_TIME:セッションのアイドル時間(分)を指定
・LOGICAL_READS_PER_SESSION:1セッションあたりの読み込みブロック数を指定
・COMPOSITE_LIMIT:1セッションあたりで複数リソースを組み合わせたコストを指定
セッションあたりのCPU時間
セッションあたりの読み込みブロック数
接続時間
プライベートSGA
・CPU_PER_CALL:1コールあたりの合計CPU時間(1/100秒)を指定
・LOGICAL_READS_PER_CALL:1コールあたりの読み込みブロック数を指定
□プロファイルの削除
・DROP PROFILE プロファイル名 [CASCADE]
・CASCADEオプションを指定し、すでにユーザに割り当てられているプロファイルを削除する
ユーザにはDEFAULTプロファイルが自動で割り当てられる
・プロファイルの確認
SELECT PROFILE FROM DBA_USERS
※プロファイルを使用したリソース制限を行うためにはRESOURCE_LIMIT初期化パラメータを
TRUEにする必要がある。RESOURCE_LIMIT初期化パラメータがFALSEの場合、
プロファイルの制限は無効になります。
□スキーマオブジェクト
・データベースリンク
・データベーストリガー
・索引
・順序
・ストアドファンクション、プロシージャおよびパッケージ
・シノニム
・表および索引構成表
・ビュー
-----------------
いかのオブジェクトはスキーマオブジェクトではない
・プロファイル
・ロール
・表領域
・ユーザ
□権限
●システム権限
・ユーザがデータベースに対して特定の操作を可能にするために管理者が付与する権限
<例>CREATE TABLE
CREATE USER
SELECT ANY TABLE
UNLIMITED TABLESPACE
・GRANT システム権限名 TO ユーザ名[WITH ADMIN OPTION];
※WITH ADMIN OPTIONを使用して権限を付与されたユーザは、その権限を他のユーザに付与できる
※SYSTEMユーザ→(権限A付与:WITH ADMIN OPTION)→DEMOUSER
DEMOUSER→(権限A付与)→HR
DEMOUSERから権限A削除 でもHRには権限Aは付与されたまま
●オブジェクト権限
・特定のオブジェクトに対してアクセスを許可するときに付与する権限
<例>SELECT
INSERT
UPDATE
DELETE
EXECUTE
・GRANT オブジェクト権限名 ON オブジェクト名 TO ユーザ名 [WITH GRANT OPTION]
※WITH GRANT OPTIONを使用して権限を付与されたユーザは、その権限を他のユーザに付与できる
※SYSTEMユーザ→(権限B付与:WITH GRANT OPTION)→DEMOUSER
DEMOUSER→(権限B付与)→HR
DEMOUSERから権限B削除 HRからも権限Bが削除される
□システム権限の取り消しコマンド
・REVOKE システム権限名 FROM ユーザ名;
□オブジェクト権限の取り消しコマンド
・REVOKE オブジェクト権限名 ON オブジェクト名 FROM ユーザ名;
□ユーザがオブジェクトを作成するためには下記いずれかの方法で使用可能な領域サイズを
割り当てる必要がある
●クォータサイズの指定
・CREATE USER文もしくはALTER USER文によりQUOTAを指定する
・SELECT TABLESPACE_NAME,BYTES FROM USER_TS_QUOTASでユーザに割り当てられているクォータサイズを
確認できる
●UNLIMITED TABLESPACE権限の付与
・UNLIMITED TABLESPACE権限が付与されている場合、クォータの設定に関わらず全ての表領域に対して
無制限で領域が使用可能
・SELECT * FROM SESSION_PRIVSで現行セッションの権限を確認できる
□ユーザのデフォルトロールの変更方法
・ALTER USER ユーザ名 DEFAULT ROLE ロール名;
※デフォルトロール以外は、SETコマンドで使用可能にする必要がある
□定義済みのユーザー
SYS :データベースの管理ユーザー。データディクショナリの実表やビューを所有する
SYSTEM:データベースの管理ユーザー。ツールや製品で使用される内部表などを所有する
SYSMAN:OEM(Oracle Enterprise Manager)の管理ユーザー。OEMに接続して管理作業を行う
DBSNMP:OEMの内部ユーザー。データベースを管理する際、内部的に接続して操作を行う
Silver DBA 10g (1Z0-042J)その12
<表領域の管理>
□表領域の作成
●CREATE TABLESPACE 表領域名
[DATAFILE 'データファイル名' SIZE サイズ
{AUTOEXTEND OFF | ON}]
[{LOGGING | NOLOGGING}]
[EXTENT MANAGEMENT {DICTIONARY | LOCAL}]
[SEGMENT SPACE MANAGEMENT {MANUAL | AUTO}]
・AUTOEXTEND :データファイルがいっぱいになった時に自動拡張
するかどうか
・LOGGING :表領域内の全てのオブジェクトに対する変更を
REDOログファイルに記録するかどうか
LOGGING ⇒表や索引の作成時およびデータ挿入時にREDOログを
生成するように設定する
NOLOGGING⇒オブジェクトに変更が加えられてもREDOログは生成されない
パフォーマンスが改善されるが、メディアリカバリは実行できない
・EXTENT MANAGEMENT:表領域内のエクステントの管理方法を指定する
・SEGMENT SPACE MANAGEMENT:表領域内のセグメントの空き領域の
管理方法を指定する
□表領域のエクステント管理
●ローカル管理
・エクステントの割り当てや解除が発生しても、データディクショナリ表への更新が
発生しないためパフォーマンスが改善する
・隣接した空きエクステントを結合する必要が無い
・自動的に適切なエクステントサイズが選択されるため、領域割り当てが簡素化
される
●ディクショナリ管理
・SYSTEM表領域がディクショナリ管理で管理されている必要がある
・エクステントの割り当てや解除が発生すると、Oracleサーバによって自動的に
適切なデータディクショナリ表が更新される
・表領域内に格納するオブジェクトに対してデフォルト記憶域パラメータを
指定することができる
□データファイルの自動拡張の確認
・DBA_DATA_FILESビューのAUTOEXTENSIBLE列で確認
・select file_name,tablespace_name,autoextensible
from dba_data_files
where tablespace_name in ('XXXXX');
□ディクショナリ管理表領域←→ローカル管理表領域の変更
●ディクショナリ管理→ローカル管理
・TABLESPACE_MIGRATE_TO_LOCALプロシージャ
●ローカル管理→ディクショナリ管理はできるのかな?(要調査)
□セグメント内の空き領域管理方法(ローカル管理表領域の場合)
●手動セグメント領域管理
・セグメント内の空き領域管理に空きリストを使用する方法
・空きリストは、行が挿入されるデータブロックの決定のために使用されるリスト。
・空きリストの数は、セグメント属性FREELISTSとFREELIST GROUPSで決定される。
・データブロック内の使用済み領域がセグメント属性PCTUSEDを下回ると、
空きリストに登録される
●自動セグメント領域管理
・セグメント内の空き領域管理にセグメント内のビットマップブロックを使用する方法
・行の挿入時や削除時にメンテナンスされるため、空きリストを使用しない。
従って、セグメント属性FREELISTS、FREELIST GROUPS、PCTUSEDは
設定できない(設定しても無視される)。
□表領域の名前を変更するコマンド
・ALTER TABLESPACE 変更前の表領域 RENAME TO 変更後の表領域名;
・表領域内のデータファイルがオフライン、表領域がオフラインの場合エラーとなる
・SYSYEM表領域、SYSAUX表領域の名前は変更できない
□オフライン
●以下の表領域は、オフライン化できない
・SYSTEM表領域
・UNDO表領域
・一時表領域
●alter tablespace~offlineコマンド
・ALTER TABLESPACE 表領域名 OFFLINE
{NOMAL | TEMPORARY | IMMEDIATE}
・NOMAL ・・・いずれのデータファイルにもエラーが存在しない場合に
オフライン化することができる。安全性が保障される。
・TEMPORARY ・・・いずれかのデータファイルにエラーが存在してもオフライン
化することができる。
Oracleはデータファイルのチェックポイントを処理してから
オフラインにする。
・IMMEDIATE ・・・即時にオフライン化する。
この指定でオフラインにすると、データの整合性が
保証されなくなるため、オンライン前にリカバリ処理が必要となる
□表領域を読み取り専用に変更するコマンド
・alter tablespace XXXXX read only
・オブジェクトの削除は可能
※オブジェクトの削除は、データディクショナリの更新により完了し、表領域を
構成しているデータファイルは更新されないため。
□データファイルのサイズ変更
・ALTER DATABASE DATAFILE 'データファイル名' RESIZE 変更後のファイルサイズ
□表領域の削除
・DROP TABLE SPACE 表領域名 オプション指定
・表領域がオンラインでも、オフラインでも削除可能
・INCLUDING CONTENS:表領域にセグメントが格納されているばあいにセグメントも
含め削除する
OS上からはデータファイルは削除されない
・INCLUDING CONTENS AND DATAFILES:表領域の削除と同時にセグメント
および対応するデータファイルをOS上から削除する
・CASCADE CONSTRAINTS:表領域内の表を参照する別の表領域の表から、全ての
参照整合性制約を削除する
□DATA_TABLESPACES
・表領域の詳細情報
□DBA_DATA_FILES
・データファイルの詳細情報
□V$TABLESPACE
・制御ファイルから取得した表領域情報
□V$DATABASE
・制御ファイルから取得したデータベース情報
□データファイル名を変更する手順
①名前を変更するデータファイルに対応する表領域をオフラインにする
②OSコマンドを使用してデータファイルの名前を変更する
③ALTER TABLESPACE 表領域 RENAME DATAFILEコマンドを実行する
④名前を変更したデータファイルに対応する表領域をオンラインに戻す
□表領域の作成
●CREATE TABLESPACE 表領域名
[DATAFILE 'データファイル名' SIZE サイズ
{AUTOEXTEND OFF | ON}]
[{LOGGING | NOLOGGING}]
[EXTENT MANAGEMENT {DICTIONARY | LOCAL}]
[SEGMENT SPACE MANAGEMENT {MANUAL | AUTO}]
・AUTOEXTEND :データファイルがいっぱいになった時に自動拡張
するかどうか
・LOGGING :表領域内の全てのオブジェクトに対する変更を
REDOログファイルに記録するかどうか
LOGGING ⇒表や索引の作成時およびデータ挿入時にREDOログを
生成するように設定する
NOLOGGING⇒オブジェクトに変更が加えられてもREDOログは生成されない
パフォーマンスが改善されるが、メディアリカバリは実行できない
・EXTENT MANAGEMENT:表領域内のエクステントの管理方法を指定する
・SEGMENT SPACE MANAGEMENT:表領域内のセグメントの空き領域の
管理方法を指定する
□表領域のエクステント管理
●ローカル管理
・エクステントの割り当てや解除が発生しても、データディクショナリ表への更新が
発生しないためパフォーマンスが改善する
・隣接した空きエクステントを結合する必要が無い
・自動的に適切なエクステントサイズが選択されるため、領域割り当てが簡素化
される
●ディクショナリ管理
・SYSTEM表領域がディクショナリ管理で管理されている必要がある
・エクステントの割り当てや解除が発生すると、Oracleサーバによって自動的に
適切なデータディクショナリ表が更新される
・表領域内に格納するオブジェクトに対してデフォルト記憶域パラメータを
指定することができる
□データファイルの自動拡張の確認
・DBA_DATA_FILESビューのAUTOEXTENSIBLE列で確認
・select file_name,tablespace_name,autoextensible
from dba_data_files
where tablespace_name in ('XXXXX');
□ディクショナリ管理表領域←→ローカル管理表領域の変更
●ディクショナリ管理→ローカル管理
・TABLESPACE_MIGRATE_TO_LOCALプロシージャ
●ローカル管理→ディクショナリ管理はできるのかな?(要調査)
□セグメント内の空き領域管理方法(ローカル管理表領域の場合)
●手動セグメント領域管理
・セグメント内の空き領域管理に空きリストを使用する方法
・空きリストは、行が挿入されるデータブロックの決定のために使用されるリスト。
・空きリストの数は、セグメント属性FREELISTSとFREELIST GROUPSで決定される。
・データブロック内の使用済み領域がセグメント属性PCTUSEDを下回ると、
空きリストに登録される
●自動セグメント領域管理
・セグメント内の空き領域管理にセグメント内のビットマップブロックを使用する方法
・行の挿入時や削除時にメンテナンスされるため、空きリストを使用しない。
従って、セグメント属性FREELISTS、FREELIST GROUPS、PCTUSEDは
設定できない(設定しても無視される)。
□表領域の名前を変更するコマンド
・ALTER TABLESPACE 変更前の表領域 RENAME TO 変更後の表領域名;
・表領域内のデータファイルがオフライン、表領域がオフラインの場合エラーとなる
・SYSYEM表領域、SYSAUX表領域の名前は変更できない
□オフライン
●以下の表領域は、オフライン化できない
・SYSTEM表領域
・UNDO表領域
・一時表領域
●alter tablespace~offlineコマンド
・ALTER TABLESPACE 表領域名 OFFLINE
{NOMAL | TEMPORARY | IMMEDIATE}
・NOMAL ・・・いずれのデータファイルにもエラーが存在しない場合に
オフライン化することができる。安全性が保障される。
・TEMPORARY ・・・いずれかのデータファイルにエラーが存在してもオフライン
化することができる。
Oracleはデータファイルのチェックポイントを処理してから
オフラインにする。
・IMMEDIATE ・・・即時にオフライン化する。
この指定でオフラインにすると、データの整合性が
保証されなくなるため、オンライン前にリカバリ処理が必要となる
□表領域を読み取り専用に変更するコマンド
・alter tablespace XXXXX read only
・オブジェクトの削除は可能
※オブジェクトの削除は、データディクショナリの更新により完了し、表領域を
構成しているデータファイルは更新されないため。
□データファイルのサイズ変更
・ALTER DATABASE DATAFILE 'データファイル名' RESIZE 変更後のファイルサイズ
□表領域の削除
・DROP TABLE SPACE 表領域名 オプション指定
・表領域がオンラインでも、オフラインでも削除可能
・INCLUDING CONTENS:表領域にセグメントが格納されているばあいにセグメントも
含め削除する
OS上からはデータファイルは削除されない
・INCLUDING CONTENS AND DATAFILES:表領域の削除と同時にセグメント
および対応するデータファイルをOS上から削除する
・CASCADE CONSTRAINTS:表領域内の表を参照する別の表領域の表から、全ての
参照整合性制約を削除する
□DATA_TABLESPACES
・表領域の詳細情報
□DBA_DATA_FILES
・データファイルの詳細情報
□V$TABLESPACE
・制御ファイルから取得した表領域情報
□V$DATABASE
・制御ファイルから取得したデータベース情報
□データファイル名を変更する手順
①名前を変更するデータファイルに対応する表領域をオフラインにする
②OSコマンドを使用してデータファイルの名前を変更する
③ALTER TABLESPACE 表領域 RENAME DATAFILEコマンドを実行する
④名前を変更したデータファイルに対応する表領域をオンラインに戻す
2009年1月21日水曜日
Silver DBA 10g (1Z0-042J)その11
<データベースの制御>
□SYSTEMユーザでEnterprize Managerにログインするには
・EMの管理対象であるデータベースがオープンされている
・EMの管理対象であるデータベースをリスニングするリスナーが起動されている
・Database Controlが起動している
□Database Control
・起動 :emctl start dbconsole
・URL :http//ホスト名:5500/em
・起動すると、自動的にSYSMANとDBNMPでセッションが作成される。
□SYSOPER権限
●PUBLIC スキーマ に接続
・STARTUP およびSHUTDOWN 操作の実行
・CREATE SPFILE
・ALTER DATABASE OPEN/MOUNT/BACKUP
・ALTER DATABASE ARCHIVELOG
・ALTER DATABASE RECOVER(完全リカバリのみ)
・RESTRICTED SESSION 権限
□SYSDBA権限
●SYS スキーマ に接続 (接続時にユーザー名を指定しても SYS に接続される)
●SYSOPER の権限に加えて以下の権限がある
・ALTER DATABASE CHARACTER SET
・CREATE DATABASE
・DROP DATABASE
・ALTER DATABASE RECOVER (UNTIL TIME|CHANGE|CANCEL|CONTROLFILE などの不完全リカバリが可能)
□OPEN、MOUNT時の可能操作
●データファイル中のデータディクショナリにアクセスする操作→OPEN状態で実行可能
・データディクショナリビューへのアクセス
・データベースユーザの作成
・表領域の操作
●制御ファイル内の情報を書き換える操作→MOUNT状態で実行可能
・REDOログファイルのアーカイブ化
・データファイル名の変更
□動的パフォーマンスビュー
・V$DATABASE :データベースの名前などデータベースに関わる様々な情報を提供する
・V$INSTANCE :現行インスタンスに関する様々な情報
・V$SYSSTAT :現行インスタンスの統計情報
・V$SESSTAT :ユーザセッションごとの統計情報
□アラートファイル
・初期化パラメータbackground_dump_destで指定されたディレクトリに出力される
・ディレクトリの確認コマンド:sho parameter ground
□SHUTDOWNコマンド
・NOMAL
・IMMEDIATE
・TRANSACTION
・ABORT
□サーバーパラメータファイル(SPFILE)
□初期化パラメータファイル(PFILE)
●SPFILEからPFILEを作成する
・CREATE PFILE = 'PFILE名' FROM SPFILE = 'SPFILE名'
●PFILESからPFILEを作成する
・CREATE SPFILE = 'SPFILE名' FROM PFILE = 'PFILE名'
□自動共有メモリー管理
●管理対象のSGAコンポーネント
・共有プール
・データベースキャッシュ
・Javaプール
・ラージプール
●管理対象外のSGAコンポーネント
・REDOログバッファ
・KEEPおよびRECLEプール
・デフォルト以外のブロックサイズに対するバッファキャッシュ
□SYSTEMユーザでEnterprize Managerにログインするには
・EMの管理対象であるデータベースがオープンされている
・EMの管理対象であるデータベースをリスニングするリスナーが起動されている
・Database Controlが起動している
□Database Control
・起動 :emctl start dbconsole
・URL :http//ホスト名:5500/em
・起動すると、自動的にSYSMANとDBNMPでセッションが作成される。
□SYSOPER権限
●PUBLIC スキーマ に接続
・STARTUP およびSHUTDOWN 操作の実行
・CREATE SPFILE
・ALTER DATABASE OPEN/MOUNT/BACKUP
・ALTER DATABASE ARCHIVELOG
・ALTER DATABASE RECOVER(完全リカバリのみ)
・RESTRICTED SESSION 権限
□SYSDBA権限
●SYS スキーマ に接続 (接続時にユーザー名を指定しても SYS に接続される)
●SYSOPER の権限に加えて以下の権限がある
・ALTER DATABASE CHARACTER SET
・CREATE DATABASE
・DROP DATABASE
・ALTER DATABASE RECOVER (UNTIL TIME|CHANGE|CANCEL|CONTROLFILE などの不完全リカバリが可能)
□OPEN、MOUNT時の可能操作
●データファイル中のデータディクショナリにアクセスする操作→OPEN状態で実行可能
・データディクショナリビューへのアクセス
・データベースユーザの作成
・表領域の操作
●制御ファイル内の情報を書き換える操作→MOUNT状態で実行可能
・REDOログファイルのアーカイブ化
・データファイル名の変更
□動的パフォーマンスビュー
・V$DATABASE :データベースの名前などデータベースに関わる様々な情報を提供する
・V$INSTANCE :現行インスタンスに関する様々な情報
・V$SYSSTAT :現行インスタンスの統計情報
・V$SESSTAT :ユーザセッションごとの統計情報
□アラートファイル
・初期化パラメータbackground_dump_destで指定されたディレクトリに出力される
・ディレクトリの確認コマンド:sho parameter ground
□SHUTDOWNコマンド
・NOMAL
・IMMEDIATE
・TRANSACTION
・ABORT
□サーバーパラメータファイル(SPFILE)
□初期化パラメータファイル(PFILE)
●SPFILEからPFILEを作成する
・CREATE PFILE = 'PFILE名' FROM SPFILE = 'SPFILE名'
●PFILESからPFILEを作成する
・CREATE SPFILE = 'SPFILE名' FROM PFILE = 'PFILE名'
□自動共有メモリー管理
●管理対象のSGAコンポーネント
・共有プール
・データベースキャッシュ
・Javaプール
・ラージプール
●管理対象外のSGAコンポーネント
・REDOログバッファ
・KEEPおよびRECLEプール
・デフォルト以外のブロックサイズに対するバッファキャッシュ
2009年1月20日火曜日
Silver DBA 10g (1Z0-042J)その10
<データベースの操作>
□SQLの分類
・データ操作言語(DML)
・データ定義言語(DDL)
・トランザクション制御
・セッション制御
・システム制御
・埋め込みSQL
□REDOログファイルの追加
・ALTER DATABASE文(DDL)
□ALTER SYSTEM文
・システム制御文
・現行インスタンスのプロパティを動的に変更する
□ALTER SESSION文
・セッション制御文
・現行セッションのプロパティを動的に変更する
※どちらも暗黙的にCOMMITはされない。
□Oracle Call Interface(OCI)
・Application Program Interface(API)の1つである。
・OCIを使用することにより、Oracleデータベースにサーバにアクセスし
SQL文の実行を制御するアプリケーションを作成できる。
□SQLの分類
・データ操作言語(DML)
・データ定義言語(DDL)
・トランザクション制御
・セッション制御
・システム制御
・埋め込みSQL
□REDOログファイルの追加
・ALTER DATABASE文(DDL)
□ALTER SYSTEM文
・システム制御文
・現行インスタンスのプロパティを動的に変更する
□ALTER SESSION文
・セッション制御文
・現行セッションのプロパティを動的に変更する
※どちらも暗黙的にCOMMITはされない。
□Oracle Call Interface(OCI)
・Application Program Interface(API)の1つである。
・OCIを使用することにより、Oracleデータベースにサーバにアクセスし
SQL文の実行を制御するアプリケーションを作成できる。
2009年1月19日月曜日
Silver DBA 10g (1Z0-042J)その9
<Oracleデータベースの構造と管理>
□制御ファイルの名前を確認する方法
・V$CONTROLFILEビュー
select name from v$controlfile;
・SHOW parameterコマンド
sho parameter control_files
□REDOログファイルの構成情報を確認する
・V$LOGFILEビュー:使用されているREDOログファイルの名前
・V$LOGビュー:現在書き込み対象になっているREDOロググループ
select l.group#,l.status,lf.member
from v#log l,v$logfile lf
where l.group# = lf.group#
□ブロックサイズ
・データベース中に複数のブロックサイズを持つことは可能。
・1つの表領域では同じブロックサイズを持つ必要がある。
□ORA-1536 space quote exceeded for tablespace string
・ユーザーが自分に割り当てられている表領域内のスペース割当制限
(クォータ)を超過しました。
・解決方法→表領域に対する領域使用制限を拡張する
□SGA(システムグローバル領域)の構成要素
データベースバッファキャッシュ
・データファイルから読み込んだデータブロックのコピーをキャッシュする領域。
共有プール
下記情報が保持される
・ライブラリキャッシュ:SQL分の解析結果、実行計画
・ディクショナリキャッシュ:OracleがSQLを解析する場合などに使用する
データディクショナリ情報
REDOログバッファ
・データベースに加えられた変更情報を保持する領域
ラージプール
・オプションのメモリー領域で以下の情報を保持する
・共有サーバー時のセッションメモリー
・Recovery Manager(RMAN)使用時のバックアップ・リストアに使用する情報
Javaプール
・Java仮想マシン(JVM)に含まれるセッション固有のJavaコードやデータを格納
するために使用されるオプションのメモリー領域
□SGAコンポーネントのサイズを確認する
・V$SGAINFO
select * from v$sgainfo;
※V$SGA_DYNAMIC_COMPONENTS:各コンポーネントに関する詳細な情報を確認できる
※V$SGA:SGAのサマリー情報
※V$INSTANCE:現行インスタンスの状態
□バックグラウンドプロセス
SMON
・インスタンス障害が発生した後の起動時にインスタンスリカバリを行う
PMON
・ユーザプロセスに障害が発生した時に、トランザクションのロールバックや
リソースの開放をする
DBWn
・データベースバッファキャッシュ上の変更されたブロックをデータファイルに書き込む
LGWR
・REDOログバッファに生成されたREDO情報をREDOログファイルに書き込む
CKPT
・チェックポイントイベント発生時に、DBWnに対して書き込み指示を出す
ARCn
・REDOログファイルをアーカイブファイルとしてコピーする
□サーバプロセス数
・サーバの構成方法により異なる
□専用サーバ:1つのユーザプロセスに対して1つのサーバプロセスが割り当てられる。
□共有サーバ:複数のユーザプロセスに対して1つのサーバプロセスが割り当てられる。
□データディクショナリビュー名の一覧の確認
・DICTIONARYビューで確認
□データベース管理方法
・Database Control
単一のOracleデータベースインスタンスまたはクラスタ化されたデータベースが管理できる
・Grid Control
ネットワーク上の1つの場所から複数のデータベース、リスナー、アプリケーションサーバなどを集中管理できる
□V$PARAMETERビュー
・現行セッションで有効になっているパラメータ値を確認する
□V$SYSTEM_PARAMETER
・現行インスタンスで有効になっているパラメータ値を確認する
□制御ファイルの名前を確認する方法
・V$CONTROLFILEビュー
select name from v$controlfile;
・SHOW parameterコマンド
sho parameter control_files
□REDOログファイルの構成情報を確認する
・V$LOGFILEビュー:使用されているREDOログファイルの名前
・V$LOGビュー:現在書き込み対象になっているREDOロググループ
select l.group#,l.status,lf.member
from v#log l,v$logfile lf
where l.group# = lf.group#
□ブロックサイズ
・データベース中に複数のブロックサイズを持つことは可能。
・1つの表領域では同じブロックサイズを持つ必要がある。
□ORA-1536 space quote exceeded for tablespace string
・ユーザーが自分に割り当てられている表領域内のスペース割当制限
(クォータ)を超過しました。
・解決方法→表領域に対する領域使用制限を拡張する
□SGA(システムグローバル領域)の構成要素
データベースバッファキャッシュ
・データファイルから読み込んだデータブロックのコピーをキャッシュする領域。
共有プール
下記情報が保持される
・ライブラリキャッシュ:SQL分の解析結果、実行計画
・ディクショナリキャッシュ:OracleがSQLを解析する場合などに使用する
データディクショナリ情報
REDOログバッファ
・データベースに加えられた変更情報を保持する領域
ラージプール
・オプションのメモリー領域で以下の情報を保持する
・共有サーバー時のセッションメモリー
・Recovery Manager(RMAN)使用時のバックアップ・リストアに使用する情報
Javaプール
・Java仮想マシン(JVM)に含まれるセッション固有のJavaコードやデータを格納
するために使用されるオプションのメモリー領域
□SGAコンポーネントのサイズを確認する
・V$SGAINFO
select * from v$sgainfo;
※V$SGA_DYNAMIC_COMPONENTS:各コンポーネントに関する詳細な情報を確認できる
※V$SGA:SGAのサマリー情報
※V$INSTANCE:現行インスタンスの状態
□バックグラウンドプロセス
SMON
・インスタンス障害が発生した後の起動時にインスタンスリカバリを行う
PMON
・ユーザプロセスに障害が発生した時に、トランザクションのロールバックや
リソースの開放をする
DBWn
・データベースバッファキャッシュ上の変更されたブロックをデータファイルに書き込む
LGWR
・REDOログバッファに生成されたREDO情報をREDOログファイルに書き込む
CKPT
・チェックポイントイベント発生時に、DBWnに対して書き込み指示を出す
ARCn
・REDOログファイルをアーカイブファイルとしてコピーする
□サーバプロセス数
・サーバの構成方法により異なる
□専用サーバ:1つのユーザプロセスに対して1つのサーバプロセスが割り当てられる。
□共有サーバ:複数のユーザプロセスに対して1つのサーバプロセスが割り当てられる。
□データディクショナリビュー名の一覧の確認
・DICTIONARYビューで確認
□データベース管理方法
・Database Control
単一のOracleデータベースインスタンスまたはクラスタ化されたデータベースが管理できる
・Grid Control
ネットワーク上の1つの場所から複数のデータベース、リスナー、アプリケーションサーバなどを集中管理できる
□V$PARAMETERビュー
・現行セッションで有効になっているパラメータ値を確認する
□V$SYSTEM_PARAMETER
・現行インスタンスで有効になっているパラメータ値を確認する
Silver DBA 10g (1Z0-042J)その8
オプティマイザ統計について
<種類>
表統計
行数
ブロック数
行の平均長さ
列統計情報
列内の個別値(NDV)数
列内のNULL数
データ配分(ヒストグラム)
拡張統計
索引統計
リーフ・ブロック数
レベル
クラスタ化係数
システム統計
I/Oパフォーマンスと使用率
CPUパフォーマンスと使用率
<種類>
表統計
行数
ブロック数
行の平均長さ
列統計情報
列内の個別値(NDV)数
列内のNULL数
データ配分(ヒストグラム)
拡張統計
索引統計
リーフ・ブロック数
レベル
クラスタ化係数
システム統計
I/Oパフォーマンスと使用率
CPUパフォーマンスと使用率
登録:
投稿 (Atom)