设为首页 收藏本站
查看: 481|回复: 0

[经验分享] Oracleの表領域の管理

[复制链接]

尚未签到

发表于 2016-7-31 16:46:58 | 显示全部楼层 |阅读模式
  come from http://jibun.atmarkit.co.jp/lskill01/rensai/omsdb04/omsdb01.html
  小野寺智子
2004/11/12
  DBAの内容も表領域の管理について解説も、ちょうど半ばに差しかかってきました。ここから先は論理的な内容になります。若干ですが、ほかの回と比べて出題される問題が多い部分です。今回は表領域だけを集中的に解説いたします。表領域の構成をしっかり押さえれば、試験でも応用が効くはずです。
■表領域の構成
  Oracleのデータベースには、データ・ファイル、制御ファイル、REDOログ・ファイルの3つのファイルが存在することは前回までに紹介しました。いままで紹介してきたファイルの構成は、OS側からみた物理的な構成です。物理的な構成と対応しながらOracle側からみた構成が論理的な構成です。Oracleでは、データベースに格納されているすべてのデータに対して、「データブロック」「エクステント」「セグメント」といった単位で「表領域」を構成しています。このように、単位ごとに区切って領域を構成することによって、管理者がきめ細かい管理をすることができるのです。
  では、表領域の構成を具体的に図で紹介します。
  
DSC0000.gif
図1 表領域の構成
  表領域には表や索引といったオブジェクトを格納します。そして、表や索引に使用可能な領域を割り当てます。
■表領域の分類
  表領域は大きく分けると2つに分類できます。

  • SYSTEM表領域
  • 非SYSTEM表領域
  SYSTEM表領域はデータベース作成時に作成され、すべてのデータベースで必要な表領域です。SYSTEM表領域にはデータ・ディクショナリとストアド・プログラム・ユニットが含まれます。データ・ディクショナリが含まれるということは、表が作成されたり、削除されるといったことが発生すると、データ・ディクショナリに情報を書き込むため、頻繁にI/Oが発生します。SYSTEM表領域にユーザーデータを含むことは可能ですが、パフォーマンスの面からみても、SYSTEM表領域にはユーザーデータを格納しないようにしてください(実際は、パフォーマンスだけが原因ではありません。しかし、ほかの原因については各カテゴリにまたがるため、ここでは解説を割愛します)。
  もう1つの表領域、非SYSTEM表領域は、データベース作成後に作成します。非SYSTEM表領域はDBAが任意で作成します。ユーザーデータはこの非SYSTEM表領域に格納されます。
■表領域の領域管理
  表領域は次の方法によって管理されています。

  • ローカル管理
  • ディクショナリ管理
  ローカル管理表領域はOracle 8iからの機能で、データ・ファイルのヘッダ部分のビットマップにて管理をする方法です。ビット値で使用可能のエクステントを管理します。ローカル管理の利点は、以下のとおりです。

  • エクステントの情報を自分自身で管理するため、データ・ディクショナリへのI/Oが発生しない。
  • 隣接している空きエクステントを自動的に追跡し結合する。
  • ビットマップへの変更では、データ・ディクショナリが更新されない。よって、UNDOデータが発生しない。ただし、表領域のクォータの変更があった場合などは除く。
  
DSC0001.gif
図2 ローカル管理の仕組み。ローカル管理では、各表領域ごとに空き領域を管理している
  ディクショナリ管理は、エクステントの管理をデータ・ディクショナリで行います。表領域内の各セグメントに、異なるパラメータを指定できます。また、ディクショナリ管理では、表領域のエクステントのサイズを変更することができます。変更後は、新しく作成されたオブジェクトに対して適用されます。ローカル管理では、エクステントの変更はできません。SYSTEM表領域はデータ・ディクショナリ管理で管理されています。
  
DSC0002.gif
図3 ディクショナリ管理の仕組み。ディクショナリ管理はデータディクショナリで各表領域の空き領域を管理している
■表領域の種類
  非SYSTEM表領域は、使用目的によって任意に作成することができます。ユーザーデータを格納する表領域のほかに以下の表領域があります。

  • UNDO表領域
      Oracle 8iまでは、ロールバック・セグメントといわれていました。この表領域の目的はトランザクションが発生し、変更する前のデータを格納するために存在します。UNDO表領域により、読み取り一貫性の実現やロールバックが発生した場合に変更前のデータを戻すことができます。UNDO表領域の詳しい管理方法については次回、紹介する予定です。
  • 一時表領域
      ソート作業が発生すると、OracleはPGAのソート領域を使用してソートを行いますが、PGAだけでは処理しきれない場合は、この表領域を使用してソート作業を行います。ソート作業により、I/Oが多く発生するため一番断片化の多い表領域でもあります。
■表領域の操作
  表領域は、必要に応じてオンライン・オフラインにすることができます。DBAが任意に作成した表領域はオフラインにして、メンテナンスを行うことができます。ただし、以下の表領域は常にオンラインにする必要があります。

  • SYSTEM表領域
  • アクティブなUNDOセグメントがある表領域
  • 一時表領域
  表領域をオンライン/オフラインにする構文は以下のとおりです。
  
表領域のオンライン
ALTER TABLESPACE data1 ONLINE;

表領域のオフライン
ALTER TABLESPACE data1 OFFLINE;
  表領域の削除には注意が必要です。構文は以下のとおりです。
  
表領域の削除
DROP TABLESPACE data1
INCLUDING CONTENTS;
  上記の構文だけでは、表領域のセグメントがすべて削除されたという情報だけがデータ・ディクショナリに送られます。ですから、対応するOSファイルまでは削除されません。以下のオプションを使用すると、対応するOSファイルまで削除します。
  
DROP TABLESPACE data1
INCLUDING CONTENTS AND DATAFILES;
  ほかにも、制約によって参照関係がある表領域を削除する場合は、以下のオプションを使用します(図4も参照のこと)。
  
DROP TABLESPACE data1
INCLUDING CONTENTS CASACADE CONSTRAINTS;

 
DSC0003.gif
図4 削除する表領域が制約によって参照されている場合。表領域data1を削除したいが、表領域data2に存在する表から制約によって参照されている。表領域data1を削除すると表領域data2に存在する表が表領域data1に存在する表を参照できなくなるため、表領域data2に参照されている表から参照関係の制約のみを削除する
  表を削除するときもそうですが、削除したい表がほかの表から参照されていると、参照関係が崩れてしまうので、参照している方の制約を削除するというオプションがあります。
■表領域のサイズ変更
  表領域は必要に応じて、表領域のサイズを変更することができます。領域不足によってトラブルが発生することは多くあります。表領域のサイズを変更する方法は以下のとおりです。
  
データ・ファイルの自動拡張
ALTER DATABASE DATAFILE
‘/HOME/ORADATA/u03/data01.dbf’
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

データ・ファイルを手動でサイズを変更する
ALTER DATABASE DATAFILE
‘/HOME/ORADATA/u03/data01.dbf’
RESIZE 200M;

データ・ファイルの追加
ALTER TABLESPACE data1
ADD DATAFILE ‘/HOME/ORADATA/u03/data01.dbf’
SIZE 200M;
■データ・ファイルの移動
  SYSTEM表領域と非SYSTEM表領域の違いを理解したうえで、データ・ファイルの移動を紹介します。データ・ファイルの移動方法は次の2種類です。
  ●ALTER TABLESPACE文を使用して移動
  ALTER TABLE SPACE文を使用して移動する場合の手順は以下のとおりです。
  (1)移動する表領域をオフラインにする。
  
ALTER TABLESPACE data1 OFFLINE;
  (2)OSコマンドを利用してファイルを移動またはコピーする。
  (3)移動先を指定する。
  
ALTER TABLESPACE data1
RENAME DATAFILE '/HOME/ORADADTA/u05/data01.dfb';
  (4)表領域をオンラインにする。
  
ALTER TABLESPACE data1 ONLINE;
  (5)必要に応じてOSコマンドを使用して元ファイルを削除する。
  ●ALTER DATABASE文を使用して移動
  ALTER DATABASE文を使用して移動する場合の手順は、次のとおりです。
  (1)インスタンスを停止する。
  
SHUTDOWN IMMEDIATE;
  (2)OSコマンドを利用してファイルを移動する。
  (3)データベースをマウントする。
  
STARTUP MOUNT;
  (4)移動先を指定する。
  
ALTER DATABAS
RENAME FILE 'HOME/ORACLEDATA/u01/system01.dbf'
TO '/HOME/ORADATA/u03/system01.dbf';
  この2つの違いは、SYSTEM表領域を移動するのか、非SYSTEM表領域を移動するのかという違いです。手順と構文もSYSTEM表領域か非SYSTEM表領域かで、それぞれ移動する手順が異なります。この手順はとても重要なので、構文と手順をしっかり押さえてください。
  なぜ、同じ表領域なのにSYSTEM表領域と非SYSTEM表領域では構文も手順も違うのでしょうか。それは、表領域をオフラインにできるかできないかという事がポイントです。SYSTEM表領域にはデータ・ディクショナリが存在しています。データベースがオープンしている間は、常にSYSTEM表領域にあるデータ・ディクショナリにアクセスしています。そのような状態で表領域の移動を行うということは、とても危険です。ですから、SYSTEM表領域は、オフラインにできません。1度、データベースをシャットダウンしてから作業を行います。
  非SYSTEM表領域は、データ・ディクショナリのように頻繁にアクセスする事はありません。よって、表領域をオフラインにできます。ですから、データベースをシャットダウンしなくとも、データ・ファイルを移動することができます。
■OMFでの表領域の作成
  OMFを使用して表領域を作成する場合は、以下のパラメータを使用します。
やり方は、REDOログ・ファイルや制御ファイルの回でも紹介した方法と同じです。

  • OMFのパラメータ→ db_create_file_dest
■表領域の情報を取得する
  表領域のさまざまな情報を取得する場合は、以下のデータ・ディクショナリ、動的パフォーマンス・ビューを使用します。
  
取得したい情報データ・ディクショナリ 動的パフォーマンス・ビュー
表領域の情報DBA_TABLESPACES V$TABLESPACE
データ・ファイルの情報DBA_DATA_FILES V$DATAFILE
一時ファイルの情報DBA_TEMP_FILES V$TEMPFILE

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251533-1-1.html 上篇帖子: ORACLE PL/SQL编程——过程与函数 下篇帖子: Oracle 时间以及数字格式化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表