約 1,098,676 件
https://w.atwiki.jp/tm-mura/pages/36.html
■表領域のresize alter database datafile /data/undo01.dbf resize 1500M ■既存データファイルの自動拡張を停止 ALTER DATABASE DATAFILE /u01/oradata/pro/SYS01.ORA AUTOEXTEND OFF; ALTER DATABASE TEMPFILE /u01/oradata/pro/TMP01.ORA AUTOEXTEND OFF; ■デフォルト表領域の変更 alter database default tablespace 表領域名; ■表領域のデータファイルの追加 永続/UNDO表領域の場合 Alter tablespace 表領域名 add datafile size 4000m autoextend off; 一時表領域の場合 Alter tablespace 表領域名 add tempfile size 4000m autoextend off; ■表領域の削除 念のためオフラインに alter tablespace 表領域名 offline drop tablespace 表領域名 [including contents] [cascade constraints] ※データファイルも消したい場合は drop tablespace 表領域名 including contents and datafiles
https://w.atwiki.jp/tm-mura/pages/30.html
■表領域の新規作成 CREATE TABLESPACE tablespace_name DATAFILE E \oracle\oradata\MCFDEV\DATAFILE\USERS01.DBF --自動拡張 SIZE 500M AUTOEXTEND ON NEXT 246M --自動拡張しない SIZE 500M AUTOEXTEND OFF MAXSIZE UNLIMITED --通常はこっち EXTENT MANAGEMENT LOCAL AUTOALLOCATE --tempはこっちEXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M -- 自動セグメント領域管理SEGMENT SPACE MANAGEMENT AUTO ; ■表領域のデータファイルの追加 永続/UNDO表領域の場合 Alter tablespace 表領域名 add datafile size 4000m autoextend off; 一時表領域の場合 Alter tablespace 表領域名 add tempfile size 4000m autoextend off; 9i(OMFを使用しない)の場合 Alter tablespace 表領域名 add datafile /home/oracle/app/oracle/oradata/orcl/disk3/user.dbf size 32m autoextend off; ■表領域の削除 念のためオフラインに alter tablespace 表領域名 offline drop tablespace 表領域名 [including contents] [cascade constraints] ※データファイルも消したい場合は drop tablespace 表領域名 including contents and datafiles ■既存データファイルの自動拡張を停止 ・ALTER DATABASE DATAFILE /u01/oradata/pro/SYS01.ORA AUTOEXTEND OFF; ・ALTER DATABASE TEMPFILE /u01/oradata/pro/TMP01.ORA AUTOEXTEND OFF; ■デフォルト表領域の変更 alter database default tablespace 表領域名;
https://w.atwiki.jp/wiki2_chobi/pages/20.html
表領域の作成 CREATE TABLESPACE 表領域名 DATAFILE ファイル名 {SIZE サイズ} [AUTOEXTEND {OFF | ON [NEXT サイズ] [MAXSIZE {UNLIMITED | サイズ}]}] [MINIMUM EXTENT エクステント最小サイズ] [BLOCKSIZE サイズ] [DEFAULT STORAGE ( [INITIAL 初期エクステントサイズ] [NEXT 増分エクステントサイズ] [MINEXTENTS 作成時エクステント数] [MAXEXTENTS {最大エクステント数 | UNLIMITED}] [PCTINCREASE エクステントサイズ拡大率] ) ] [PERMANENT | TEMPORARY] [EXTENT MANAGEMENT {DICTIONARY | LOCAL {AUTOALLOCATE | UNIFORM [SIZE サイズ]}}] [ONLINE | OFFLINE] [SEGMENT SPACE MANAGEMENT {MANUAL | AUTO}]; デフォルト設定 AUTOEXTEND OFF (データファイル自動拡張OFF) PERMANENT (永続表領域) EXTENT MANAGEMENT LOCAL AUTOALLOCATE (ローカル管理表領域(エクステント自動管理)) ONLINE (オンライン) SEGMENT SPACE MANAGEMENT MANUAL (手動セグメント領域管理) 表領域の管理方法 ローカル管理表領域(デフォルト) データファイル内のエクステント割り当てをビットマップで表示し、不要ブロックを解放 EXTENT MANAGEMENT LOCAL AUTOALLOCATE エクステントをOracleサーバで自動管理 EXTENT MANAGEMENT LOCAL UNIFORM SIZE サイズ 均一サイズを指定 記憶領域設定の変更はできない ディクショナリ管理表領域 エクステントをデータディクショナリで管理 EXTENT MANAGEMENT DICTIONARY 各セグメントに対し、記憶領域パラメータの指定可 DEFAULT STORAGE句でのデフォルト指定可 記憶領域設定の変更可 ALTER TABLESPACE 表領域名 {MINIMUM EXTENT エクステント最小サイズ[K | M] | DEFAULT STORAGE ( ~ ) }; 一時表領域 ローカル管理表領域として作成される ファイル名を変更することはできない 表領域を読み取り専用に変更することはできない 明示的にセグメントを作成することはできない 一時表領域の作成 CREATE TEMPORARY TABLESPACE 表領域名 TEMPFILE データファイル名 {SIZE サイズ [K | M]} [EXTENT MANAGEMENT LOCAL [AUTOALLOCATE | UNIFORM [SIZE サイズ [K | M]]]]; デフォルト一時表領域の指定 ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 表領域名; 読み取り専用表領域 オブジェクトの作成はできない 表領域の削除はできる オブジェクトの削除はできる データの追加・更新・削除はできない 表領域の書き込みを禁止/許可する ALTER TABLESPACE 表領域名 READ {ONLY | WRITE}; 表領域の削除 DROP TABLESPACE 表領域名 [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]; INCLUDING CONTENTS 表領域にオブジェクトが含まれている場合 AND DATAFILES ファイルも削除 CASCADE CONSTRAINTS 削除する表領域内のオブジェクトを参照する整合性制約も別の表領域から削除 表領域のサイズ拡大 データファイルを表領域に追加 ALTER TABLESPACE 表領域名 ADD DATAFILE ファイル名 [SIZE サイズ [K | M]] [AUTOEXTEND {OFF | ON [NEXT サイズ [K | M]]}]; データファイルのサイズ変更 サイズを手動で変更 ALTER DATABASE DATAFILE ファイル名 RESIZE サイズ [K | M]; 自動拡張に変更 ALTER DATABASE DATAFILE ファイル名 AUTOEXTEND ON [NEXT サイズ [K | M]] MAXSIZE {UNLIMITED | サイズ [K | M]}; データファイルの移動 SYSTEM表領域以外 ALTER TABLESPACE 表領域名 OFFLINE ファイルコピー ALTER TABLESPACE 表領域名 RENAME DATAFILE ファイル名 TO ファイル名 ALTER TABLESPACE 表領域名 ONLINE SYSTEM表領域 SHUTDOWN ファイルコピー STARTUP MOUNT ALTER DATABASE RENAME FILE ファイル名 TO ファイル名 ALTER DATABASE OPEN OMF (Oracle-Managed Files) DB_CREATE_FILE_DEST デーファイルのデフォルトの作成ディレクトリ DB_CREATE_ONLINE_LOG_DEST_n REDOログファイルと制御ファイルのデフォルトの場所(最大5つまで) ALTER SYSTEM SETコマンドで動的変更可能 両方指定することも、一方のみ使用することも可能 デフォルトのサイズは100MB,上限なしの自動拡張に設定される 一部のファイルの管理のみに使用することもできる
https://w.atwiki.jp/lookworld/pages/47.html
論理データベース構造 論理的にデータベースの領域を分割することにより、より効率的できめ細かい管理を行うことが出来る。 データベースは以下のように構成されている。 物理的構成 ・ データファイル ・ 制御ファイル ・ REDOログファイル 論理的構成 ・ 表領域 ・ セグメント ・ エクステント ・ データブロック 論理的データベースについて 表領域について 1つのデータベースに属し、1つ以上のデータファイルで構成される。 データベース管理者は、表領域のオンライン/オフラインや、書き込み許可/禁止を切り替えて、表領域のアクセスを制御することができる。 セグメントについて 表領域内で、特定タイプの論理記憶構造に割り当てられる領域。 セグメントには、表セグメント、索引セグメント、一時セグメント、ロールバックセグメントなどの種類がある。セグメントは、同じ表領域に属する複数のファイルにまたがることもある。 エクステントについて セグメント内の一連の連続するブロック。 セグメントは1つ以上のエクステントで構成される。エクステントは複数のファイルにまたがることができず、1つのデータファイル内に存在しなければならない。 データブロックについて 論理データベース構造の最小単位。 1つのデータファイルに属する1つ以上のOSブロックで構成されている。エクステントは、1つ以上のデータブロックで構成されている。データブロックのサイズは、データベース作成時に初期化パラメータ「 DB_BLOCK_SIZE 」で指定する。 表領域の管理 表領域を効率的に構成したり、運用したりすればデータベースをより柔軟に管理することができる。 例えば表領域ごとに、ユーザー領域を割り当てる、アクセスを制限する、I/O分散を行う、部分的にバックアップやリカバリを行う・・・など。 表領域は、1つのデータベースに対して最大で64000個作成が可能。 また、1つの表領域に対して、最大で1023個のデータファイルを割り当てることができる。 表領域の種類 SYSTEM表領域 すべてのデータベース操作で必要とされる。 データディクショナリ情報とSYSTEMロールバックセグメントを含む。 非SYSTEM表領域 ロールバックセグメント、一時セグメント、アプリケーションデータ、アプリケーション索引を含む。 表領域の作成 CREATE TABLESPACE 表領域名 DATAFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } [ AUTOEXTEND { OFF | ON [ NEXT サイズ [ K | M ] ] } ] [ MAXSIZE { UNLIMITED | サイズ [ K | M ] } ] [ , データファイル名 { SIZE サイズ [ K | M ] | REUSE }... ] [ MINIMUM EXTENT エクステント最小サイズ [ K | M ] ] [ DEFAULT STORAGE ( [ INITIAL 初期エクステントサイズ [ K | M ] ] [ NEXT 増分エクステントサイズ [ K | M ] ] [ MINEXTENTS 作成エクステント数 ] [ MAXEXTENTS { 最大エクステント数 | UNLIMITED } ] [ PCTINCREATE エクステントサイズ拡大率 ] ) ] [ PERMANENT | TEMPORARY ] [ ONLINE | OFFLINE ] OEMから表領域を作成する場合 Storage Managerで[ 表領域 ]⇒[ 作成 ]を選択 プロパティシートの[ 一般ページ ]で表領域名を入力 [ 追加 ]⇒[ データファイル作成 ]を選択し、データファイルを指定する 記憶領域情報は、プロパティシートの[ エクステント ]ページで指定。 一時表領域 ( TEMPORARY句 ) ソート操作に使用する表領域のことをいう。この領域にはソートセグメントしか格納できない。 一時表領域を作成するには、CREATE TABLESPACE文で、TEMPORARY句を指定する。 OEMで作成する場合は、Storage Managerで表領域を作成するときに、[ 一時 ]ラジオボタンを選択してから、[ 作成 ]をクリックする。 ※PERMANENT句を指定した場合、永続オブジェクトを格納するための表領域を作成する。(DEFAULT値) DEFAULT STORAGE句 表領域内のセグメントで使用する記憶領域の割り当てに影響する。 次にキーワードとパラメータを示す。 INITIAL 最初のエクステンドサイズを指定する。 最小サイズは2データブロック(2×DB_BLOCK_SIZE) デフォルトは5データブロック(5×DB_BLOCK_SIZE) 上記の最小サイズより、小さいサイズを指定した場合、自動的に上記の最小サイズに変更される。 NEXT 2番目のエクステントのサイズを指定。 最小サイズは1データブロック、デフォルトは5データブロック(5×DB_BLOCK_SIZE) 上記の最小サイズより、小さいサイズを指定した場合、自動的に上記の最小サイズに変更される。 また、一時表領域の場合はINITIALと同じ値でなくてはならない。 MAXEXTENTS セグメントに含めることができる、エクステントの最大数を指定する。 最小値は1、最大値はデータブロックサイズにより異なる。 UNLIMITEDを指定すると、エクステントの最大数は2147483645になる。 MINEXTENTS セグメントの作成時に割り当てられるエクステント数。 省略した場合、エクステントが1つだけ割り当てられる。 PCTINCREASE エクステントのサイズ拡大率を指定する。 次のエクステントサイズは、前のエクステントサイズより、このパラメータで指定した割合だけ大きくなる。 デフォルト値は50。最小値は0、最大値は100。 エクステントのサイズは次の計算式を使って計算することができる。 n番目のエクステントサイズ = NEXT × { 1 + PCTINCREASE/100 }n-1 ※計算された値は、5×DB_BLOCK_SIZEの倍数になるように切り上げられる。 MINIMUM EXTENT句 これを設定した場合、指定した値の倍数に相当するエクステントが表領域内のセグメントに割り当てられる。これを設定することで表領域内の断片化を制御することができる。 DEFAULT STORAGE句の、INITIALとNEXTは、このMINIMUM EXTENTで指定された値の倍数でなくてはならない。 記憶領域設定の変更 ALTER TABLESPACE構文を使用することで、設定を変更できる。 ALTER TABLESPACE 表領域名 [ MINIMUM EXTENT エクステント最小サイズ [ K | M ] ] [ DEFAULT STORAGE ( [ INITIAL 初期エクステントサイズ [ K | M ] ] [ NEXT 増分エクステントサイズ [ K | M ] ] [ MINEXTENTS 作成エクステント数 ] [ MAXEXTENTS { 最大エクステント数 | UNLIMITED } ] [ PCTINCREATE エクステントサイズ拡大率 ] ) ] [ PERMANENT | TEMPORARY ] [ ONLINE | OFFLINE ] OEMから記憶領域設定を変更する場合、Storage Managerから[ 表領域 ]を選択し、データファイルを指定して、プロパティシートの[ エクステント ]ページに記憶領域情報を入力する。 表領域のアクセス制御 データベース管理者は、表領域へのアクセスを制御したい場合、ALTER TABLESPASE構文を使うことで、表領域をオフラインにすることができる。 (ただしSYSTEM表領域とアクティブロールバックセグメントが含まれる表領域はオフラインにすることができない。) 表領域をオフラインにすると、ユーザーがその表領域にアクセス出来なくなり、データファイルの移動などの管理作業を行うことができる。 表領域をオンライン/オフラインにする構文 ALTER TABLESPACE 表領域名 { ONLINE | OFFLINE [ NORMAL | TEMPORARY | IMMEDIATE ] }; OEMから表領域をオフラインにするには、Storage Managerで[ 表領域 ]を選択し、オフラインにする表領域を指定して、プロパティシートの[ 一般 ]ページで[ オフライン ]ラジオボタンを選択する。 表領域のデータ更新制御 表領域への書き込み許可/禁止をALTER TABLESPACE構文を使って、変更することが出来る。(ただし、アクティブロールバックセグメントが含まれる表領域は、読み込み専用に出来ない) ※Oracleサーバーより、表領域に属するファイルに対してチェックポイントが実行される。 表領域を読み込み専用にすると、その表領域をCD-ROMドライブなどの読み込み専用メディアに格納することができ、バックアップの必要もなくなる。 表領域へのデータ更新制御は、以下の構文を使用することで行える。 (コマンド実行中にデータの更新が行われないように、制限モードで起動する必要がある) ALTER TABLESPACE 表領域名 READ { ONLY | WRITE } ; OEMから表領域を読み取り専用にする場合、Storage Managerで[ 表領域 ]を選択し、読み取り専用にする表領域を指定して、[ 表領域 ]⇒[ 読み取り専用 ]を選択する。 表領域の削除 表領域と、その内容が不要になった場合、DROP TABLESPACE文を使用して表領域を削除することが出来る。 (実行中に、削除している表領域へのアクセスが発生しないよう、オフラインにする) 表領域の削除構文 DROP TABLESPACE 表領域名 [ INCLUDING CONTENTS [ CASCADE CONSTRAINTS ] ] ; INCLUDING CONTENTS句 表領域内にオブジェクトが含まれている場合に、このオプションを指定し、データを削除する。 CASCADE CONSTRAINTS句 削除する表領域内のオブジェクトを参照する整合性制約も、別の表領域内から削除する。 OMEから表領域を削除する場合、Storage Managerで[ 表領域 ]を選択し、削除にする表領域を指定して[ 表領域 ]⇒[ 削除 ]を選択する。 ※DROP TABLESPACE文を使用しても、制御ファイルのポインタが削除されるだけで、OS上のファイルは削除されない。 データファイル データファイルはOS上の物理的なファイルで、表領域は1つ以上のデータファイルで構成される。データベース管理者は、表領域内のオブジェクトの増減に応じて、データファイルのサイズを変更したり、数を増やしたりすることができる。 表領域を拡大するには データベース管理者は、データファイルを表領域に追加するか、データファイルのサイズを変更する必要がある。 追加する場合 ⇒ ALTER TABLESPACE文に、ADD DATAFILE句を指定する。 変更する場合 ⇒ ALTER DATABASE文に、RESIZE句を指定する。 データファイルの追加 データファイルを表領域へ追加する場合、以下の構文を使用する ALTER TABLESPACE 表領域名 ADD DATAFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } [ AUTOEXTEND { OFF | ON [ NEXT サイズ [ K | M ] ] } ] [ MAXSIZE { UNLIMITED | サイズ [ K | M ] } ] [ , データファイル名 { SIZE サイズ [ K | M ] | REUSE }... ]...; OEMからデータファイルを追加する場合、Storage Managerで[ 表領域 ]⇒[ データファイル ]を選択し、プロパティシートの[ 一般 ]ページでファイル情報を追加する。 データファイルの変更 データファイルのサイズ変更を変更して表領域を拡大する場合には、以下の方法がある。 AUTOEXTEND句を指定して、自動的に行う方法 以下の構文で指定が出来る。 ・ CREATE DATABASE文 ・ CREATE TABLESPACE DATAFILE文 ・ ALTER TABLESPACE ADD DATAFILE文 自動的に拡張されるデータファイルをOEMから追加する場合は、Storage Managerでデータファイルを作成するときに、プロパティシートの[ 自動拡張 ]ページに情報を入力する。 ALTER DATABASE文を使って、手動で変更する方法 ALTER DATABASE文にRESIZE句を使用することで手動で変更することが出来る。 ALTER DATABASE 表領域名 DATAFILE データファイル名 [ , データファイル名 ]... RESIZE サイズ [ K | M ]; データファイルの移動 ALTER TABLESPACE文か、ALTER DATABASE文を使用することで、データファイルの移動が行える。 また、それぞれ何が対象となるかで、異なってくる。 ALTER TABLESPACE アクティブロールバックセグメントや、一時セグメントが含まれていない非SYSTEM表領域のデータファイルを移動するときに使用する。 ALTER DATABASE オフラインにすることが出来ない表領域のデータファイルを移動する際に使用する。 ALTER TABLESPACE文を使用したデータファイルの移動 以下の順序を踏むことで、変更することができる。 表領域をオフラインにする 移動するデータファイルをOSコマンドでコピーする ALTER TABLESPACE文を実行する 表領域をオンラインにする データファイル移動の構文は以下の通り。 ALTER TABLESPASE 表領域名 RENAME DATAFILE ’データファイル名’ TO ’データファイル名’; ALTER DATABASE文を使用したデータファイルの移動 以下の順序を踏むことで、変更することができる。 データベースを停止する 移動するデータファイルをOSコマンドでコピーする データベースをマウントする ALTER DATABASE RENAME FILE文を実行する データベースをオープンする 表領域の領域管理方法 (Oracle8i) Oracle8iからの表領域の領域管理方法として、ディクショナリ管理とローカル管理の2種類がある。 この領域管理方法は、CREATE TABLESPACE文のEXTENT MANAGEMENT句で指定できる。 (後で変更することが出来ない) ローカル管理について ローカル管理とは、各データファイル内のエクステントの割り当て状況をビットマップで表示し、不要なブロックを解放するなどして自ら管理することをいう。 CREATE TABLESPACE文のEXTENT MANAGEMENT句で「 LOCAL 」を指定するとローカル管理となる。 ローカル管理の利点 ローカル管理は、ディクショナリ管理の表領域に比べ、次のような利点がある。 再帰的な領域管理操作の回避 再帰的な領域管理操作とは、表領域内の空き領域をOracleServerが内部的にデータディクショナリに対して発行するSQLのことをいう。 データディクショナリへの競合の軽減 ローカル管理領域では、データディクショナリ表において空き領域を記録しないため、エクステントの割り当てが同時に行われるような場合に、データディクショナリへの競合が現象する。 連続した空きエクステントを結合する必要がない ロールバックセグメントが不要 データディクショナリを更新するためのロールバックセグメントが不要となる。 ただし、表領域内のオブジェクトに対して行われる、トランザクションのロールバックセグメントは作成される。 ディクショナリ管理について エクステント内の表領域を消費/解放するたびに、ロールバックセグメントやデータディクショナリ表の領域を消費/解放する操作が発生する。 (ローカル管理の表領域の場合は、データディクショナリ表が更新されないため、ロールバック情報は生成されず、データディクショナリ表に対する競合が最小限で済む) 領域管理方法の設定 CREATE TABLESPACE 表領域名 DATAFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } EXTENT MANAGEMENT { DICTIONARY | LOCAL | { AUTOALLOCATE | UNIFORM [ SIZE サイズ [ K | M ] ] } }; EXTENT MANAGEMENT句のオプションは次の通り。 オプション 説明 DICTIONARY ディクショナリ管理領域にする場合。 (DEFAULT値) LOCAL ローカル管理領域にする場合。 AUTOALLOCATE ディクショナリ管理割り当てにする場合。 UNIFORM このキーワードが無い場合は、ブロック単位でビット管理される。 指定した場合は、均一サイズのエクステント管理となり、ビットはエクステント単位になる。サイズを指定しない場合は、デフォルトのエクステントサイズ1MBが適用される。 一時表領域 一時セグメントは、初期化パラメータ SORT_AREA_SIZE で指定したメモリ領域を超えるソート操作(ORDER BY、結合など)が行われた場合に必要となる。 ソート専用に指定した一時領域を使用することにより、ソート処理の効率を上げることが可能である。 CREATE TEMPORARY TABLESPACE 表領域名 TEMPFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } EXTENT MANAGEMENT { DICTIONARY | LOCAL | { AUTOALLOCATE | UNIFORM [ SIZE サイズ [ K | M ] ] } }; ※注意点 ソート専用の表領域なので、永続オブジェクト(表、索引など)を格納することは出来ない。 一時表領域を最適化するために「 UNIFORM SIZE 」は、パラメータSORT_AREA_SIZEの倍数に設定する。 一時セグメントについて ・TEMPORARY表領域のINITIALとNEXTのサイズは常に同じとなる。 ・PCTINCREASEは常に0に設定される。 ・断片化させないために( SORT_AREA_SIZEの倍数+DB_BLOCK_SIZE )でなければならない。 ・いくつかのトランザクションが同一の一時セグメントを同時に共有できる。 (エクステントを使用できるのは1つのトランザクションのみ) 表領域とデータファイルに関する情報の取得 表領域に関する情報は、データディクショナリビュー「 DBA_TABLESPACES 」から取得することができる。 また、動的パフォーマンスビュー「 V$TABLESPACE 」からも取得可能。 データファイルに関する情報は、データディクショナリビュー「 DBA_DATA_FILES 」から取得することができる。 また、動的パフォーマンスビュー「 V$DATAFILE 」からも取得可能。 V$SORT_SEGMENT ・ソートセグメントを含むTEMPORARY表領域に関する情報を表示する。 ・現在のインスタンス用のソート・エクステント・プールの状態を調べることができる。 V$SORT_USAGE 現在のインスタンス内のアクティブな ・ セッションアドレス ・ 表領域 ・ 内容 ・ エクステント ・ ブロック を表示するのに使用する。 ・V$SESSIONとの結合により、アクティブなソートに使用されるエクステント数が取得できる。 DBA_TABLESPACES 列名 説明 CONTENTS 表領域が一時表領域かどうか STATUS 表領域がオンラインかオフラインかどうか V$DATAFILE 列名 説明 ENABLE 表領域が読み込み専用かどうか DBA_SEGMENTS ・データベース内の全セグメントのサイズと記憶領域設定を表示できる。 暗記用。 表領域 Oracleデータベースを論理的にグループ分けする単位 1度に1つのデータベースに属することができる 1つ以上のデータファイルで構成される 1つ以上のセグメントから構成される SYSTEM表領域、アクティブロールバックセグメントが含まれる表領域を除き データベース稼動中にオフラインにすることが可能 読み書き専用、読み込み専用に切り替え可能 データファイル OracleServerが動作しているOSに準拠するファイル 1つの表領域にだけ属することが可能 作成後にサイズを変更したり、動的に拡張することが可能 セグメント 表領域内で特定タイプの論理記憶構造に割り当てられる領域 セグメントは1つ以上のエクステントで構成される セグメントは表領域をまたがることはできない セグメントは同じ表領域に属するデータファイルにまたがることはできる エクステント 1連の連続するデータブロック(Oracleブロック)で構成される セグメントが成長するに従い、エクステントがセグメントに追加される 手動でセグメントにエクステントを追加することができる 異なるデータファイルにまたがることはできない。 (1つのデータファイル内に存在する) データブロック Oracle Serverが割り当て、データベースで使用するI/Oの最小単位。 データベースの作成時、初期化パラメータ DB_BLOCK_SIZEで指定。 不要な入出力を避けるため、OSブロックサイズの倍数にする必要がある データブロックの最大サイズは、OSにより異なる。 既存の表領域に即時に追加領域を割り当てる方法 データファイルを追加する方法 ALTER TABLESPACE ADD DATAFILEコマンドを使用する。 データファイルのサイズを変更する方法 ALTER DATABASE DATAFILE RESIZEコマンドを使用する。 パーティション化 パーティション化とは、頻繁にアクセスされう表などに対して、アクセスの分散を目的として、データをいくつかのパーティションに分けて、別の表領域に配置するというもの。 パーティション・オブジェクト 複数の表領域にまたがることができるオブジェクトのこと。非パーティションオブジェクトとはその逆。 表領域がオフラインになった場合 表領域内のオブジェクトを参照するようなSQLは発行できない。 制御ファイルとデータディクショナリが更新される。
https://w.atwiki.jp/lookworld/pages/44.html
テンポラリ・セグメントは、インデックス作成、表の結合、集合関数の利用等のソートを伴う処理において、メモリ上で割り当て切れなかったデータに対して、一時的にディスクに格納するための領域です。このセグメントを格納するための表領域が一時表領域です。大きな領域を必要としないソート処理はパラメータsort_area_sizeによってメモリ上に確保された領域で処理され、それ以上についてはディスク上の一時表領域で処理されます。 Oracle上で以下の処理を行う時にテンポラリ・セグメントが使用される可能性があります。 ソートを伴う処理が発生したとき DISTINCT、UNION、MINUS、GROUP BY、ORDER BY など INDEX作成 SORT/MARGE・JOIN 表をJOINするSQL文の実行計画が「HASH_JOIN」を選択したとき 従って、メモリの許す範囲において、できるだけsort_area_sizeを大きく設定し、エクステントサイズの設定については、sort_area_sizeの整数倍に設定すれば効率的です。 5.5.1.一時表領域の必要性 Oracleでは、テンポラリ・セグメントを格納する領域として、一時表領域を作成することを推奨しています。一時表領域はユーザ作成時に明示的に定義します。ここで定義をしない場合は、SYSTEM表領域がテンポラリ・セグメントを格納する領域となります。SYSTEM表領域は、データディクショナリで使用される領域で、これ以外の用途に使用するべきではありません。 ユーザ表領域やインデックス表領域内に提示することも可能ですが、フラグメンテーションの原因となるため定義しません。 ユーザ作成時の一時表領域の定義例 SVRMGR create user SCOTT identified by TIGER 2 default tablespace USR_DATA 3 temporary tablespace TMP_DATA ; 5.5.2.一時表領域の見積もり 一時表領域の必要容量を正確に算出することは困難です。指針として、最大表のサイズの2倍とします。 5.5.3.一時表領域の作成 一時表領域を作成するに当たって、必要となる知識を示します。 テンポラリ・セグメントは削除されない。*1 1つのエクステントは、一人のユーザが占有します。 エクステントは自動的に全て同じ値になる。*2 エクステントの管理はSGAで行われる。 MAXEXTENTSはUNLIMITEDとする。 1 Oracle7 R7.3.x以前のバージョンでは、テンポラリ・セグメントは自動的に作成・拡張・削除が行われていました。Oracle8ではソート処理が終了して必要なくなっても削除されません。よって、全てのユーザで共有されます。 2 エクステントサイズ「INITIAL」の値は使用されず、「NEXT」の値のみが採用されます。「PCTINCREASE」は0になります。 SVRMGR create tablespace TMP_DATA 2 datafile ‘/opt/oracle/temp/tmp01.dbf’ size 10M 3 default storage (initial 1M next 1M maxextents unlimited) 4 temporary; 一時表領域の作成例 注意として、網掛け部「temporary」を必ず指定してください。Oracleで一時表領域という認識ができません。作成後は次のSQLで、「TEMPORARY」と表示されることを必ず確認してください。 SVRMGR select tablespace_name, contents from dba_tablespaces 2 where tablespace_name = ‘TMP_DATA’; 一時表領域モードの確認 「PARMANENT」と表示された場合は、次のSQL文で修正してください。 SVRMGR alter tablespace TMP_DATA temporary;
https://w.atwiki.jp/atyou/pages/60.html
Oracleデータベースで管理されるデータ(表データ、索引データなど)は、実際にはデータファイル内に格納されます。 ただし、データファイルと表や索引が対応付けられているのではありません。 データファイルは、表や索引を格納した表領域と対応付けられています 1つの表領域は、複数のデータファイルで構成できます。 表領域に格納される表や索引といったオブジェクトは 「セグメント」 と呼ばれます。セグメントは1つの表領域に格納されますが、表領域に対応付けられている複数のデータファイルにまたがることができます。 Oracleデータベースでは、データファイル内の領域割り当ての単位を 「エクステント」 と呼びます。セグメントの領域拡張(追加領域割り当て)にも対応します。 エクステントは「データブロック」で構成され、実際のレコードはデータブロックに格納されています。 エクステントの割り当て管理方法によって、表領域は2種類に分けられます。 ディクショナリ管理表領域 エクステントの管理は、データディクショナリによって行われます。エクステントの割り当て/解除が行われるとデータディクショナリが更新されるため、内部的なSQL(再帰的SQL)の発行が多くなります。 ローカル管理表領域 エクステントの管理は、データファイルのヘッダに格納されるビットマップという領域で行われます。ビットマップは、エクステントの割り当て/解除が行われると変化するようになっています。ディクショナリ管理表領域と異なり、ディクショナリアクセスがいらないため、内部的なSQL(再帰的SQL)は不要です。 デフォルトの表領域はローカル管理表領域です。 SYSTEM表領域がディクショナリ管理表領域として作成された場合に限り、ディクショナリ管理を使用することができます。 ローカル管理表領域の場合、さらにセグメント内の空き領域管理方法として次の2種類があります。 手動セグメント領域管理 セグメント内の空き領域管理に空きリストを使用する方法です。空きリストは、行が挿入されるデータブロックの決定のために使用されるリストです。空きリストの数は、セグメント属性FREELISTSとFREELIST GROUPSで決定されます。データブロック内の使用済み領域がセグメント属性PCTUSEDを下回ると、空きリストに登録されます。 自動セグメント領域管理 セグメント内の空き領域管理にセグメント内のビットマップブロックを使用する方法です。行の挿入時や削除時にメンテナンスされるため、空きリストを使用しません。従って、セグメント属性FREELISTS、FREELIST GROUPS、PCTUSEDは設定できません(設定しても無視されます)。 Oracle Database 10g Release1までは手動セグメント領域管理がデフォルトですが、 Oracle Database 10g Release 2より、自動セグメント領域管理がデフォルトになります。 ■表領域の変更 既存の表領域に対して、さまざまな変更を行うことができます。次のような特徴を覚えておきましょう。 <ステータス> READ WRITE(読み込みと書き込みが可能)、READ ONLY(読み込みのみ可能)、OFFLINEの3つがあります。 READ ONLYは、SYSTEM表領域とSYSAUX表領域に対して指定することはできません。 表領域をOFFLINEにする際、IMMEDIATE(即時)オプションを使用すると、次回ONLINEに戻すときにリカバリが必要になります。 <サイズ変更> 表領域のサイズを大きくする方法として、表領域にデータファイルを追加する方法と、既存のデータファイルサイズを大きくする方法の2つがあります。 既存のデータファイルを大きくする方法には、手動と自動(AUTOEXTEND ON)があります。 既存のデータファイルを小さくすることも可能ですが、使用されているサイズよりも小さくすることはできません。 ■表領域の削除 表領域を削除する場合、その表領域に格納されているセグメントも同時に削除する必要があります。 デフォルトでは空の表領域のみ削除することができます。次のようなオプションを使用することで、この動作を変更できます。 INCLUDING CONTENTS句 表領域に格納されているセグメントも同時に削除します。 NCLUDING CONTENTS AND DATAFILES句 表領域に格納されているセグメントと、表領域に対応付けられているデータファイルも同時に削除します。 SQL DROP TABLESPACE tbs01 INCLUDING CONTENTS; Database Configuration Assistant(DBCA)を使用して作成されたデータベースでは、次の表領域が作成されます。 表領域名 説明 SYSTEM データディクショナリや管理データなどを格納する SYSAUX SYSTEM表領域の補助表領域。関連ツールのリポジトリとして使用される TEMP 一時データ(セッション中に使用するメモリ上でソートしきれないときのソートデータなど)が格納される UNDOTBS1 UNDOデータ(変更前のデータのコピー)を格納する USERS 非システムユーザーが作成するセグメントを格納する。表や索引を作成するときに表領域が指定されないと、デフォルトでこの表領域が使用されるように構成されている EXAMPLE サンプルをインストールした場合に作成される。HR(人事)データやOE(注文)データなどが格納される オブジェクトを格納する理論的な領域 Oralceでは、最低ひとつの表領域(SYSYTEM)を必要とする。 表領域は、SYSTEMとそれ以外の2つに大別できる。 SYSYTEMには、一般ユーザのデータは格納しない。 表領域のサイズは、対応付けられたデータファイルのサイズの合計です。表領域のサイズを拡大させるには、次の3つの方法が使用できます。 新規にデータファイルを追加する ALTER TABLESPACE data1 ADD DATAFILE ‘/HOME/ORADATA/u03/data01.dbf’ SIZE 200M; 既存のデータファイルサイズを変更する ALTER DATABASE DATAFILE ‘/HOME/ORADATA/u03/data01.dbf’ RESIZE 200M; データファイルサイズが不足したときに自動拡張できるように設定する ALTER DATABASE DATAFILE /HOME/ORADATA/u03/data01.dbf’ AUTOEXTEND ON NEXT 10M MAXSIZE 500M; 表領域の作成や削除、変更などは、 Database Controlの「管理」タブ→「記憶域」リージョンの「表領域」から行えます。 このページに表示される内容を確認しておきましょう。 ※CREATE TABLESPACE http //jibun.atmarkit.co.jp/lskill01/rensai/sdba05/sdba01.html http //jibun.atmarkit.co.jp/lskill01/rensai/omsdb04/omsdb01.html
https://w.atwiki.jp/dai1357/pages/67.html
ユーザ作成 ユーザ作成時に指定する属性 認証方式 ユーザ/パスワードを管理する方法がデータベース、もしくは、それ以外の方法も可能 パスワード 認証方法がデータベースであれば、そのパスワードを指定 デフォルト表領域 オブジェクトを作成する場合のデフォルトの表領域を指定する 一時表領域 ソート操作などで使用される表領域 表領域割り当て制限 どの表領域にどれだけのセグメントを所有することができるかを指定 アカウント・ロック ユーザがログイン可能な状態かどうかの指定
https://w.atwiki.jp/ora_tips/pages/30.html
■スキーマ データベースオブジェクトの集合 スキーマ名はスキーマを所有するユーザ名と同じ ■ユーザに付与する権限 システム権限(ユーザがDBに対して特定操作を可能にするため付与する権限) ・CREATE TABLE ・CREATE USER ・SELECT ANY TABLE ・UNLIMITED TABLESPACE ※CREATE USERでユーザ作成時にはCONNECTロールは割り当てられないが、EMの場合は割り当てられる 文で作成した場合は、アクセス権限を付与しないと、DBアクセス操作はできない。 オブジェクト権限(特定のオブジェクトにアクセスを許可するとくに付与する権限) ・SELECT ・INSERT ・UPDATE ・DELETE ・EXECUTE ■ユーザ作成 create user ユーザ名 [identified by パスワード] [default tablespace 表領域]名 [temporary tablespace 一時表領域] [quota サイズ(k|m) on 表領域名] [profile プロファイル名] [account unlock|lock] [password expire] ■権限 ①付与 grant システム権限 to ユーザ名 grant オブジェクト権限名 on オブジェクト名 to ユーザ名 ②取り消し revoke システム権限 from ユーザ名 revike オブジェクト権限名 on オブジェクト名 from ユーザ名 ■ロール ①作成 create role ロール名 [NOT IDENTIFIED | IDENTIFIED BY パスワード] 例)create role select_role ②権限付与 grant システム権限 to ロール名 例)grant create session,select any table to select_role; ③ユーザに割り当て grant ロール名 to [ユーザ名 | public] [with admin optin] piblic:全てのユーザにロールを付与する with admin option:他のユーザへのロールの付与、取り消しの権限も与える 例)grant select_role to ito; create user ito identified by jo0821 default tablespace users temporary tablespace temp; CREATE TABLE ito( C_NUM NUMBER NOT NULL ); create role crate_role; grant create table to create_role; grant create_role to ito; ・ユーザが利用する一時表領域の優先順位 ①ユーザ作成時に割り当てられたもの ②データベースのデフォルト一時表領域 ③①~②にはまらない場合SYSTEM表領域 ・ユーザが作成するオブジェクトが格納される表領域の優先順位 ①オブジェクトを作成する際に指定した表領域 ②ユーザ作成時に割り当てられている表領域 ③データベースのデフォルト表領域 ④①~③にはまらない場合は、SYSTEM表領域 ユーザが表を作成するには以下の条件を満たす必要がある ①CREATE TABLEシステム権限を持っていること ②表を格納する表領域にクオータが与えられていること。 デフォルトは全ての表領域に0が割り当てされている。 ※CREATE TABLEシステム権限は、CONNECTロールに含まれる ●スキーマオブジェクトのネーミング規則 ①長さは30バイト以内 データベース名は、8バイト以内 データベースリンクは、128バイト以内 ②予約語は使用不可 ③先頭は文字で始める(数字は不可) ④以下のみ使用可能 英数、漢字、かな、カナ 「_」 「$」 「#」 ⑤一つのネームスペースで一意な名前を利用する ●スキーマオブジェクトに含まれないもの ・表領域 ・ロール ・プロファイル ・ユーザ
https://w.atwiki.jp/adsl243/pages/24.html
主なデータ・ディクショナリの種類 個別ユーザー user_users 含まれるもの 個別ユーザーのデフォルト表領域 一時表領域 個別ユーザーを作成した日時 user_ts_quotas 含まれるもの 個別ユーザーに対する各表領域の割り当て制限 全てのユーザー dba_users dba_ts_quotas VARCHAR2 4000byte 空白なし CHAR 2000byte 空白あり ユーザー山田のIDを削除 ALTER TABLE "YAMADA"."DEL_ME" DROP ( "ID") CASCADE CONSTRAINTS
https://w.atwiki.jp/ora_tips/pages/37.html
・データブロック データアクセスの最小単位(物理的なI/O) 初期化パラメータのDB_BLOCK_SIZEで設定。OS設定の倍数にする必要あり。 ・エクステント データブロックの一定連続のかたまり 表領域の最小単位 ・セグメント エクステントの集まり(スキーマオブジェクトへ割り当てる) データセグメント インデックスセグメント 一時セグメント UNDOセグメント 表領域 オンライン:アクセス可能 オフライン;アクセス不可、メンテナンス時に利用する。更新は出来ないがTableのDropは可能 一時表領域 セッションが利用される間だけで利用される一時的なデータが格納される 主にソートに利用される。 PGAのMemoryで収まらなかった場合に利用される。