2016-03-24 6 views
0

データベース内のすべての表領域を表示する問合せを作成してdbとし、それに対応するデータ・ファイルがSCOTTユーザーに属しているとします。私はSCOTTアカウントに接続して見ることができますが、sysdbaとしてsysに接続して、すべての表領域とデータファイルがSCOTTに属していることを確認します。データベースおよびデータファイル内のすべての表領域を照会する問合せ

+0

http://docs.oracle.com/database/121/REFRN/GUID-B28A7D79- 24E3-49B5-B948-7C2277CB1FB8.htm#REFRN23287およびhttp://docs.oracle.com/database/121/REFRN/GUID-0FA17297-73ED-4B5D-B511-103993C003D3.htm#REFRN23049 –

+0

データベースも表スペースも表領域もデータファイルは任意のユーザーに属します。あなたはMSのSQLの背景からこれに来ていますか? – EdStevens

答えて

0

データベース、表領域、データファイルのいずれも、どのユーザーにも属していません。あなたはMSのSQLの背景からこれに来ていますか? Oracleで

select tablespace_name, 
     file_name 
from dba_tablespaces 
order by tablespace_name, 
     file_name; 
0

、一般的に言って、私は次のセクションで言及されます事実の数があります

  • 各データベースには、多くのスキーマ/ユーザー(論理区画)を持つことができます。
  • 各データベースには、多くの表領域(論理区画)を割り当てることができます。
  • スキーマは、ユーザーに属するオブジェクト(表、索引、ビューなど)の集合です。
  • Oracleでは、ユーザーはスキーマと同じと見なすことができます。
  • データベースは、関連する論理構造をまとめてグループ化する表領域と呼ばれる論理記憶単位に分割されます。たとえば、表領域は一般に、アプリケーションのすべてのオブジェクトをグループ化して、管理操作を簡素化します。アプリケーション・データ用の表領域と、アプリケーション索引用の表領域があります。

したがって、「すべての表領域とデータファイルがSCOTTに属していることを確認する」という質問は少し間違っています。

ただし、一部のDBAビューには、所有者に関係なく、すべてのデータベースオブジェクトに関する情報が含まれています。 DBA権限を持つユーザーのみ、これらのビューにアクセスできます。 DBA_DATA_FILES、DBA_TABLESPACES、DBA_FREE_SPACE、DBA_SEGMENTS。

したがって、DBにsysdbaとして接続し、これらの有益なビューを通してクエリを実行してください。 たとえば、このクエリは、ユーザーのオブジェクトが配置されているすべての表領域とデータファイルを見つけるためにあなたを助けることができます。

SELECT DISTINCT sgm.TABLESPACE_NAME , dtf.FILE_NAME 
FROM DBA_SEGMENTS sgm 
JOIN DBA_DATA_FILES dtf ON (sgm.TABLESPACE_NAME = dtf.TABLESPACE_NAME) 
WHERE sgm.OWNER = 'SCOTT' 
関連する問題