==[[Oracle Database10g 表領域の管理]]==
[[Oracle]] | [[Oracle Database10g]] |
====SYSAUX 表領域====
SYSTEM 表領域の補助表領域として機能し、データベース作成時に常に作成されます。 この補助表領域には、様々なOracle この補助表領域には、様々な[[Oracle]] 製品および機能で使用される情報とスキーマが格納される。
===表領域情報を確認===
====DBA_TABLESPACE====
====表領域を作成する手順====
*オペレーティング・システムによって異なりますが、必ず最初に、オペレーティング・システムを使用して、データ・ファイルが割り当てられるディレクトリ構造を作成する必要があります。
*新しい表領域を作成するには、SQL 新しい表領域を作成するには、[[SQL]] 文CREATE TABLESPACE またはCREATE TEMPORARY TABLESPACE を使用*表領域を作成するには、CREATE 表領域を作成するには、C[[R]]EATE TABLESPACE システム権限が必要*後で、ALTER 後で、ALTE[[R]] TABLESPACE またはALTER またはALTE[[R]] DATABASE 文を使用して、この表領域を変更できます*そのためには、ALTER そのためには、ALTE[[R]] TABLESPACE またはALTER またはALTE[[R]] DATABASE システム権限が必要
====表領域の管理====
====表領域を作成する====
=====CREATE C[[R]]EATE TABLESPACE権限を持っているか確認=====
[[SQL]]> select * from session_privs 2 where privilege pri[[vi]]lege = 'CREATE TABLESPACE'
3 /
PRIVILEGEP[[R]]IVILEGE
---------------------------------------------
CREATE C[[R]]EATE TABLESPACE
=====既存表領域のデータファイルの場所を確認しておく=====
[[SQL]]> select file_name from dba_data_files;
FILE_NAME
|-
|EXTENT MANAGEMENT
|LOCAL:ビットマップ用に表領域の一部を確保。永続表領域のデフォルト、DICTIONARYビットマップ用に表領域の一部を確保。永続表領域のデフォルト、DICTIONA[[R]]Y:ディクショナリ表を使用して表領域を管理
|-
|SEGMENT SPACE MANAGEMENT
|}
[[SQL]]> create smallfile tablespace "EXAM_DAT"
2 datafile '/opt/oracle/app/oradata/oradb1/exam01.dbf'
3 size 20m autoextend on
=====ユーザのデフォルトテーブルスペースを変更し、クオータを変更=====
[[SQL]]> alter user exam default tablespace exam_dat;
ユーザーが変更されました。
[[SQL]]> alter user exam quota unlimited on exam_dat;
ユーザーが変更されました。
=====次のような場合にオフライン化=====
*データベースの一部のみを使用できないようにし、残りの部分には正常にアクセスできるようにする
*オフライン表領域のバックアップを実行する(ただし、表領域はオンラインで使用中の場合でもバックアップは可能)オフライン表領域の[[バックアップ]]を実行する(ただし、表領域はオンラインで使用中の場合でも[[バックアップ]]は可能)
*アプリケーションの更新時またはメンテナンス時に、アプリケーションとその表のグループを一時的に使用できないようにする
*表領域のデータ・ファイルを名前変更または再配置する
!内容
|-
|NORMALNO[[R]]MAL
|表領域のデータ・ファイルすべてのチェックポイントを取ってからオフライン化。デフォルト。
|-
|TEMPORARYTEMPO[[R]]A[[R]]Y
|データ・ファイルについてエラー条件が存在している場合でも、表領域を一時的にオフライン化できる。まだオフライン化されていないデータ・ファイルのチェックポイントを取ってから、オフライン化します。
|-
|IMMEDIATE
|即時にオフライン化。データ・ファイルのチェックポイントを取りません。表領域をオンライン化する前に表領域のメディア・リカバリが必要。NOARCHIVELOGモードで運用している場合は、表領域を即時にオフライン化することはできない。 即時にオフライン化。データ・ファイルのチェックポイントを取りません。表領域をオンライン化する前に表領域のメディア・リカバリが必要。NOA[[R]]CHIVELOGモードで運用している場合は、表領域を即時にオフライン化することはできない。
|-
|}
[[SQL]]> alter tablespace exam_dat offline normal;
表領域が変更されました。
=====オフラインの表にアクセス=====
[[SQL]]> select * from test;
select * from test
*
行1でエラーが発生しました。:
ORAO[[R]]A-00376: file 6 cannot be read at this time ORAO[[R]]A-01110: data file 6: '/opt/oracle/app/oradata/oradb1/exam01.dbf'
=====オンラインに戻す=====
[[SQL]]> alter tablespace exam_dat online;
表領域が変更されました。
=====読み取り専用にする=====
[[SQL]]> alter tablespace exam_dat read only;
表領域が変更されました。
=====更新してみる=====
*参照はできるが、更新はエラー
[[SQL]]> select * from test;
ID NAME
1 abc
[[SQL]]> update test set name = 'def' where id = 1;
update test set name = 'def' where id = 1
*
行1でエラーが発生しました。:
ORAO[[R]]A-00372: file 6 cannot be modified at this time ORAO[[R]]A-01110: data file 6: '/opt/oracle/app/oradata/oradb1/exam01.dbf'
=====元戻す=====
[[SQL]]> alter tablespace exam_dat read write;
表領域が変更されました。
----
{{include_html [[banner_html]], "!Oracle"}}