検索
ホームページphp教程PHP开发Oracle テーブルスペースのクエリと操作方法

1つ。クエリ
1. oracle テーブルスペースの使用状況をクエリ
select b.file_id ファイルID、
b.tablespace_name テーブルスペース、
b.file_name 物理ファイル名、
b.bytes 総バイト数、
(b.bytes-sum (nvl(a.bytes,0))) Used,
sum(nvl(a.bytes,0)) Remaining, sum(nvl(a.bytes,0))/(b.bytes)*100 残りの割合
からdba_free_space a,dba_data_files b
a.file_id=b.file_id
b.tablespace_name,b.file_name,b.file_id,b.bytes でグループ化
b.tablespace_name で並べ替え
2. Oracle システム ユーザーのデフォルトのテーブル スペースをクエリします。および一時テーブルスペース
selectdefault_tablespace,temporary_tablespace from dba_users
3. 単一テーブルの使用状況をクエリする
selectsegment_name,bytes from dba_segments ここで、segment_name = 'RE_STDEVT_FACT_DAY' および owner = USER
RE_STDEVT_FACT_DAY はクエリするテーブルの名前です
4. すべてのユーザー テーブルの上位 30 件の使用量をクエリします。
select * from (selectsegment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum 5. 現在のユーザーのデフォルトの使用量をクエリします。テーブルスペース状況
select tablespacename,sum(totalContent),sum(usecontent),sum(sparecontent),avg(sparepercent)
from
(
SELECT b.file_id as id,b.tablespace_name as tablespacename,b.bytes as totalContent, (b .bytes-sum(nvl(a.bytes,0))) as usecontent,sum(nvl(a.bytes,0)) as sparecontent,sum(nvl(a.bytes,0))/(b.bytes )* 100 as sparepercent
FROM dba_free_space a,dba_data_files b
WHERE a.file_id=b.file_id および b.tablespace_name = (username = user の dba_users からdefault_tablespace を選択)
b.tablespace_name,b.file_name,b.file_id でグループ化,b .bytes
)
GROUP BY tablespacename
6. ユーザーテーブルスペースのテーブルをクエリします
select * from user_tables
================== ===== ============================================ ===== =====
1. テーブルスペースの作成
CREATE TABLESPACE テスト
DATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M
UNIFORM SIZE 1M #指定された領域サイズは 128k です。指定されていない場合、領域のデフォルトのサイズは 64k
または
CREATE TABLESPACE test
DATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M
MINIMUM EXTENT 50K EXTENT MANAGEMENT LOCAL
DEFAULT STORAGE (Initial 50K NEXT) 50K MAXEXTENTS 100 PC TINCREASE 0);
dba_tablespaces から新しく作成されたテーブルスペースの情報を表示できます
2. UNDO テーブルスペースを作成します
CREATE UNDO TABLESPACE test_undo
DATAFILE 'c:/oracle/oradata/db/test_undo.dbf'サイズ 50M
UNDO テーブルスペースの EXTENT はローカル管理で構成されており、作成時に SQL ステートメントで使用できるのは DATAFILE 句と EXTENT MANAGEMENT 句のみです。
ORACLE では、データベースにいつでも 1 つの復元テーブルスペースのみを割り当てることができます。つまり、1 つのインスタンス内に複数の復元テーブルスペースが存在できますが、アクティブにできるのは 1 つだけです。 ALTER SYSTEM コマンドを使用して、復元された表スペースに切り替えることができます。
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = test_undo;
3. 一時表スペースを作成します
CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE '/oracle/oradata/db/test_temp.dbf'
システムの現在のデフォルトの一時表スペースを表示します
select * from dba_properties where property_name like 'DEFAULT%'
システムのデフォルトの一時テーブルスペースを変更する
データベースのデフォルトの一時テーブルスペースを変更する
4. テーブルスペースをオフラインにする
ALTER TABLESPACE test
誤って削除された場合
ALTER TABLESPACE ゲーム テスト FOR RECOVER
2. テーブル スペースをオンラインにします
ALTER DATABASE DATAFILE 3 をオフラインにします。データ ファイルをオンラインにします
ALTER DATABASE DATAFILE 3 ONLINE; 5. テーブル スペースを読み取り専用にします
ALTER TABLESPACE テストを READ ONLY にします
5. テーブルを削除します。 space
DROP TABLESPACE test INCL ING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
DROP TABLESPACE テーブルスペース名 [INCL ING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]
1. INCL ING CONTENTS 句はセグメント
2 を削除するために使用されます。データファイルを削除するために使用されます
3. CASCADE CONSTRAINTS 句は、すべての参照整合性制約を削除するために使用されます

6. 拡張テーブルスペース
最初にテーブルスペースの名前とそれが属するファイルを確認します
tablespace_name、file_id、file_name、を選択します
round(bytes/(1024 *1024),0) total_space
dba_data_files から
tablespace_name で並べ替える
1. データ ファイルを追加します
ALTER TABLESPACE テスト
ADD DATAFILE '/oracle/oradata/db/test02.dbf' SIZE 1000M
2. データ ファイル サイズを手動で増加します
ALTER DATABASE DATAFILE 'c:/oracle/oradata/db/test01 .dbf'
RESIZE 100M;
3. データ ファイルを自動的に拡張するように設定します
ALTER DATABASE DATAFILE 'c:/oracle/oradata/db/test01.dbf'
AUTOEXTEND ON NEXT 100M
MAXSIZE 200M; dba_tablespace から設定します v$datafile でテーブルスペース情報を確認し、v$datafile で対応するデータファイル情報を確認します
========================= ======= ========================================== =======
テーブルスペース scgl を作成
データファイル 'E:ORACLEPROD T10.1.0ORADATAORCLscgl2.dbf'
サイズ 50m
自動拡張
次の 50m 最大サイズ 20480m
エクステント管理ローカル
テーブルスペース test_data を作成
ロギング
データファイル 'E :ORACLEPROD T10.1.0ORADATAORCLuser_data. dbf'
サイズ 50m
次の 50m 最大サイズ 20480m
エクステント管理ローカル;
デフォルトのテーブルスペース scgl
一時テーブルスペース scgl_temp;
一時ファイル 'E:ORACLEPROD T10.1 .0ORADATAORCLuser_temp.dbf'
一時表領域 scgl_temp を作成します
tempfile 'E:ORACLEPROD T10.1.0ORADATAORCLscgl_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
エクステント管理ローカル
grant connect,リソース、dba から scgl へ。 oracle create table Space sys user in cmd DBA としてログインします:
CMD に sqlplus /nolog と入力します
次に
conn / as sysdba
//一時表領域を作成します
一時表領域 user_temp を作成します
tempfile 'D:oracleoradataOracle9iuser_temp.dbf'
サイズ 50m
autoextend on
next 50m maxsize 20480m
エクステント管理 local;
//データテーブルスペースを作成
create tablespace test_data
logging
datafile 'D:oracleoradataOracle9iuser_data.dbf'
size 50m
autoextend on
next 50m 最大サイズ 20480m
ローカルのエクステント管理;
// ユーザーを作成し、テーブルスペースを指定します
create user username はパスワードで識別されます
default tablespace user_data
temporary tablespace user_temp;
テーブルスペースの使用状況をクエリします
SELECT UPPER(F.TABLESPACE_NAME) "テーブルスペース名",
D.TOT_GROOTTE_MB "Tableスペース サイズ (M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "使用済みスペース (M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99' ) || '%' "使用率",
F.TOTAL_BYTES "空き領域 (M)",
F.MAX_BYTES "最大ブロック (M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024) * 1024)、2) TOTAL_BYTES、
ROUND(MAX(BYTES) / (1024 * 1024)、2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F、
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD) .BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1
テーブルスペースの空き領域を問い合わせる
select tablespace_name,
count(*) as extends,
round(sum(bytes) / 1024 / 1024, 2) as MB,
sum(blocks) as block
from dba_free_space
group by tablespace_name
-- 合計容量をクエリします。テーブルスペースの数
select tablespace_name, sum(bytes) / 1024 / 1024 as MB
dba_data_files から
tablespace_name でグループ化
テーブルスペースの使用量をクエリ
total.tablespace_name,
round(total.MB, 2) as Total_MB,
round (total.MB - free.MB, 2) as Used_MB,
round((1 - free.MB / total.MB) * 100, 2) '%' as Used_Pct
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where free.tablespace_name = total.tablespace_name;
-- ----------------------------------------------- --- --------------------------------------------------- --- -----------------------
1. テーブルスペースの作成: テーブルスペース テスト データファイル '/u01/test.dbf' サイズ 10M 均一サイズ 128K を作成します
#デフォルトで領域サイズは128k、ブロックサイズは8Kを指定します
#ビッグファイルテーブルスペース create bigfile tablespace big_tbs datafile '/u01/big_tbs.dbf ' size 100G
2.建非标標準表showparameter db alter system set db_2k_cache_size=10M create tablespace test datafile '/u01/test.dbf' size 10M blocksize 2K unique size 128k
#常见错误
SQL>システムセット db_2k_cache_size=2M を変更します。 alter system set db_2k_cache_size=2M 行 1 でエラーが発生しました: ORA-02097: 指定された値が無効であるためパラメータを変更できません ORA-00384: キャッシュを拡張するにはメモリが不足しています
#解决
SQL>システムセット sga_max_size=400M スコープ=spfile を変更します。 SQL>即時にシャットダウンします。 SQL>起動SQL>システムセット db_2k_cache_size=10M を変更します。システムが変更されました。 
3.查看区大小与块大#区大小 conn y / 123 create table t(inumber) tablespace test; t 値 (10) に挿入し、user_segments からバイト/1024 を選択します (segment_name=upper('t');)。 
#块大小 パラメータブロックを表示(默认64K)
#非標準表空のブロックサイズ SQL> v$dbfile から * を選択; SQL> v$datafile から名前、ブロックサイズ、ステータスを選択します。 SQL> file#=14 の v$datafile から block_size を選択します。 
4. コンテンツとデータファイルを含むテーブルスペースのテストを削除します
5. テーブルスペース:#查データ据文 select * from v$dbfile; #すべての表空間 select * from v$tablespace; 
#表空のデータファイル select file_name,tablespace_name from dba_data_files; 
6.UNDO 表空の構築 UNDO 表領域 UNDOTBS01 データファイル '/u01/undoTBS01.dbf' サイズ 5M を作成します。 
#新しく構築されたundoテーブル空間への切り替え alter system set undo_tablespace=undotbs01; 
7. 構築時にテーブルスペースを作成します 一時テーブルスペース temp_data 一時ファイル '/u01/temp.db' サイズ 5M; bigfile 一時テーブルスペース bigtem 一時ファイル '/u01/bigtemp.db' サイズ 5M を作成します。 
8.変更表空间状態
(0.)查看状態
#表空间状態态 select tablespace_name,block_size,status from dba_tablespaces; 
#データ文件状態 v$datafile から名前、ブロックサイズ、ステータスを選択します。 
(1.)表空间脱机alter tablespace test offline
#如果意外删除了データ文件 alter tablespace test offline for Recovery
(2.)表空间脱机alter tablespace test online
(3.)data据置文件脱机select * v$dbfile から;データベース データファイル 3 をオフラインで変更します
(4.)データファイル 3 を回復します。データベース データファイル 3 をオンラインで変更します。 
(5.)テーブルスペーステストを変更する読み取り専用です
(6.)テーブルスペーステストを変更する読み取り書き込みのみを使用します。 
9. 表空間の展#最初先見表空間の名前と付属ファイルおよび空を選択 select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; #三种展方法
1.alter tablespace test add datafile '/u01/test02.dbf' size 10M(自動加一datafile)
2.alter datafile '/u01/test.dbf'size 20M; 
3.データベース データファイル '/u01/test.dbf' を変更し、次の 10M 最大サイズ 1G で自動拡張します。 
#設定後確認表空情報
select a.tablespace_name,a.bytes total,b.bytes used,c.bytes free,(b.bytes*100)/a.bytes "% used",(c.bytes *100)/a.bytes "% free" from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c ここで、a.tablespace_name=b.tablespace_name および a.tablespace_name=c.tablespace_name; 
10. 表空間に移動するデータ文ファイル
#先決定表空間のデータ文ファイル
SQL>select tablespace_name,file_name from dba_data_files where file_name='/u01/test.dbf'; 
#open状態态
SQL>テーブルスペースの変更テストをオフラインで実行します。 SQL>ホスト移動 /u01/test.dbf /u01/oracle/test.dbf; SQL>alter tablespace test データファイルの名前を '/u01/test.dbf' から '/u01/oracle/test.dbf' に変更します。 SQL>テーブルスペースの変更テストをオフラインで実行します。 
#マウント状態态 SQL>即時シャットダウン; SQL>startup mount SQL>host move /u01/test.dbf /u01/oracle/test.dbf; SQL>データベースを変更して、ファイル '/u01/test.dbf' を '/u01/oracle/test.dbf' に名前変更します。 
11. 表空とデータファイルの一般的なデータベース辞書とアニメーションのパフォーマンス図 v$dbfile v$datafile dba_segments user_segments dba_data_files v$tablespace dba_tablespaces user_tablespaces
--表空の使用状況
SELECT UPPER(F.TABLESPACE_NAME) "表空名前",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "既使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024) 、2) TOTAL_BYTES、
ROUND(MAX(BYTES) / (1024 * 1024)、2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
注文BY 1
--表空の空き領域
select tablespace_name,
count(*) as extends,
round(sum(bytes) / 1024 / 1024, 2) as MB,
sum(blocks) as block
from dba_free_space
tablespace_name ごとにグループ化します。 
--表空間の完全容量
tablespace_name、sum(bytes) / 1024 / 1024 を MB として選択
dba_data_files から
tablespace_name でグループ化します。 
--表空使用率
total.tablespace_name、
round(total.MB, 2) as Total_MB、
round(total.MB - free.MB, 2) as Used_MB、
round((1 - free. MB / 合計.MB) * 100、2) || Used_Pct としての「%」
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
tablespace_name でグループ化) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
tablespace_name でグループ化) total
where free.tablespace_name = total.tablespace_name; 
//给用户授予权制限
grant connect,resource to username; 
//以后以以该用户、创建、创建创建的任何数据库对象都user_temp ; 
删除用户コマンド
drop user user_name cascade; 

構築表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' サイズ 500M
均一サイズ 128k; #指定区尺寸は128k,如不指定,区尺寸默认は64k

删除表空间
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES; 
一、構築表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸は128k、如不指定、区尺寸默认は64k
二、建立UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
#注意:在OPEN状態の下の特定の時刻では、1 つの UNDO テーブル空間のみを使用できます。新しく作成されたテーブル空間を使用する場合は、そのテーブル空間に切り替える必要があります:
ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 
三、建立時表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
四、表空间状態変更
1.表空间脱机する
ALTER TABLESPACE ゲームをオフラインにする。 
結果は予期せぬデータ文ファイルの削除、回復のためにテーブルスペースゲームをオフラインに変更する必要があります。 
2.表空间机を使用する
TABLESPACE ゲームをオンラインで変更します。 
3.データファイルを脱机する
ALTER DATABASE DATAFILE 3 をオフラインで実行します。 
4.データベース文件联机を使用する
データベースDATAFILE 3をオンラインで変更します。 
5.表空间只读
ALTER TABLESPACE ゲームを読み取り専用にします。 
6.表空可读写
ALTER TABLESPACE ゲーム 読み取り/書き込み; 
五、删除表空间
DROP TABLESPACE data01 INCLING CONTENTS AND DATAFILES; 

六、扩展表空間
最初に表空間の名前と関連ファイルを見る
tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
dba_data_files から
tablespace_name で並べる; 
1.データファイルを追加
テーブルスペースゲームを変更
データファイルを追加 '/oracle/oradata/db/GAME02.dbf' サイズ 1000M; 
2.手動增追加データ文文尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M; 
3.設定データベース文件自動扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
次の 100M で自動拡張
MAXSIZE 10000M; 

設定後に表空情報を見る
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES used, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% used",(C. BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME および A.TABLESPACE_NAME=C。 TABLESPACE

さらに多くのOracle表空間の操作方法関連文章请关注PHP中文网!

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター