搜尋
首頁php教程PHP开发Oracle 表空間查詢與操作方法

一。查詢篇 
1.查詢oracle表空間的使用情況 
select b.file_id  檔案ID, 
  b.tablespace_name  表空間, 
  b.tablespace_name  表空間,        總位元組數, 
  (b.bytes- sum(nvl(a.bytes,0)))   已使用, 
  sum(nvl(a.bytes,0))       〜〠,@     〜〠), 剩餘)百分比 
  from dba_free_space a,dba_data_files b 
  where a.file_id=b.file_id 
  group by b.tablespace_name,b.file_id 
  group by b.tablespace_name,b.file_id 
 〔group by b.tablespace_name,b.file_spacename,b.file, 2.查詢oracle系統用戶的默認表格空間與暫存資料表空間 
select default_tablespace,temporary_tablespace from dba_users 
3.查詢單張資料表的使用 
select segment_name,bytes from dba_segments where segment_name = 'RE_STDEVT_FFRE_STDEPL_FRE_STDAY_FFRE_STDEVT_FFRE_STDEPL_REDDAY_Fet_FRE_ST表名 
4.查詢所有使用者表使用大小的前三十名 
select * from (select segment_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,Contbytes, as tablespaces, as tablespacename,Contbytes) 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 and b.tablespace_name = (select default_tablespace from dba_users where username = user) c,by b. bytes 

GROUP BY tablespacename 
6.查詢用戶表空間的表 
select * from user_tables 
================================ ================================================== ==== 
一、建立表空間 
CREATE TABLESPACE test 
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 MANAGEAGEMENT 5 ENTS 100 PCTINCREASE 0); 
可從dba_tablespaces檢視剛建立的資料表空間的資訊 
二、建立UNDO資料表空間 
CREATE UNDO TABLESPACE test_undo 
DATAFILE 'c:/oracle/oradata/db/test_undo.dbf' SIZE 50MUNDOENTT管理的,而且在建立時的SQL語句中只能使用DATAFILE和EXTENT MANAGEMENT子句。 
ORACLE規定在任何時刻只能將一個還原表空間賦予資料庫,也就是在一個實例中可以有多個還原表空間存在,但只能有一個為活動的。可以使用ALTER SYSTEM指令進行還原表空間的切換。
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = test_undo; 
三、建立臨時表空間 
CREATE TEMPORARY TABLESPACE test_temp 
TEMPFILE '/oracle/oradata/db/testPACE test_temp 
TEMPFILE '/oracle/oradata/db/testPACE test_temp 
TEMPFILE '/oracle/oradata/db/testPACE test_temp 
TEMP from dba_properties where property_name like 'DEFAULT%' 
改變系統預設臨時表空間 
alter database default temporary tablespace test_temp; 
四、改變表運了資料文件,則必須有RECOVER選項 
ALTER TABLESPACE game test FOR RECOVER; 
2.使表空間聯機 
ALTER TABLESPACE test ONLINE; 
3.使資料檔脫機 
ALDATA LINE資料檔案聯機 
ALTER DATABASE DATAFILE 3 ONLINE; 
5.讓表空間唯讀 
ALTER TABLESPACE test READ ONLY; 
6.把表空間test INCL ING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; 
DROP TABLESPACE 表空間名[INCL ING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]] 
1. INCL ING CONTENTS〠用子句資料檔案 
3. CASCADE CONSTRAINTS 子句用來刪除所有引用完整的約束 

六、擴充表空間 
先檢視資料表空間的名字與所屬檔案 
select tablespace_name, file_id, file_name,nid, file_name) *1024),0) total_space 
from dba_data_files 
order by tablespace_name; 
1.增加資料檔 
ALTER TABLESPACE test 
ADD DATAFILE '/oracle/oradata/db/test02.dbf' SIZE 1000M; 
2.手動增加資料檔案尺寸 
ALTER DATABASEBASEFILE 'cid .dbf' 
RESIZE 100M; 
3.設定資料檔案自動擴充 
ALTER DATABASE DATAFILE 'c:/oracle/oradata/db/test01.dbf' AUTOEXTEND ON NEXT 100M中查看表空間信息,從v$datafile查看對應的數據文件信息 
================================== ==================================================
create tablespace scgl 
datafile 'E:ORACLEPROD T10.1.0ORADATAORCLscgl2.dbf' 
size 50m 
autoextend on 
next 50mspace maxsize 2038 test_data 
logging 
datafile 'E:ORACLEPROD T10.1.0ORADATAORCLuser_data. dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
create user scgl identified by qwer1234 
tempfile 'E:ORACLEPROD T10.1.0ORADATAORCLuser_temp.dbf' 
create temporary tablespace scgl_temp 
tempfile 'E:ORACLEPROD T10.1.0ORADATAORCLscgl_temp.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m ba to scgl; 
oracle建立表空間SYS使用者在CMD下以DBA身分登陸: 
在CMD中打sqlplus /nolog 
接著再 
conn / as sysdba 
//建立暫存表空間 
create temporary tablespace tempuser_temp 化的表空間 
create temporary
autoextend on 
next 50m maxsize 20480m 
extent management local; 
//建立資料表空間 
create tablespace test_data 
logging 
datafile 'D:oracleoradataOracle9ius_ooo5ocleoradataOracle9;
next 50m maxsize 20480m 
extent management local; 
//建立使用者並指定表格空間 
create user username identified by password 
default tablespace user_data 
temporary tablespace user_temp; 
查詢表空間使用情況 
SELECT UPPER(F.B.B.D. (M)", 
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)", 
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB)'1099. || '%' "使用比", 
F.TOTAL_BYTES "空閒空間(M)", 
F.MAX_BYTES "最大區塊(M)" 
FROM (SELECT TABLESPACE_NAME, 
ROUND(MSUM(BYTES)/SUSUM(1024) SU 1024), 2) TOTAL_BYTES, 
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES 
FROM SYS.DBA_FREE_SPACE 
GROUP BY TABLESP. ROUND(SUM(DD. 。
查詢表空間的free space 
select tablespace_name,
count(*) as extends, 
round(sum(bytes) / 1024 / 1024, 2) as MB, 
sum(blocks) as blocks 
from dba_free_space select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files 
group by tablespace_name; 
查詢表單. MB - free.MB, 2) as Used_MB, 
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct 
from (select tablespace_name, sum(bytes) / 10244/10244 1024 as MB 
from dba_free_space 
group by tablespace_name) free, 
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
fromtables_p space_name = total.tablespace_name; 
-- -------------------------------------------------- -------------------------------------------------- ----------------------- 
1.建立表格空間:create tablespace test datafile '/u01/test.dbf' size 10M uniform size 128k 
#指定區尺寸為128k ,區塊大小為預設8K 
#大檔案表空間create bigfile tablespace big_tbs datafile '/u01/big_tbs.dbf ' size 100G 
2.建非標準表showparameterdbaltersystemsetdb_2k_cache_size=10Mcreatetablespacetestdatafile'/u01/test.dbf'size 10Mblocksize2Kuniformsize128k
#pache
#gache db_SQL2kache_acheter 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(i number) 表空間test;插入t 值(10) 從user_segments 中選擇位元組/1024 其中segment_name=upper('t') ; 
#區塊大小顯示參數區塊(預設64K) 
#非標準表空間的blocksize SQL>從v$dbfile 選擇*; SQL>從v$datafile 中選擇名稱、區塊大小、狀態; SQL>從v$datafile中選擇block_size,其中file#=14; 
4.刪除表空間drop表空間測試,包括內容和資料檔
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;otbs01資料檔案'/u01/undotbs01.dbf'大小5M; undo表空間alter system set undo_tablespace=undotbs01; 
7.建立臨時表空間create temp_data tempfile '/u01/temp.db' size 5M;建立bigfile臨時表空間bigtem tempfile'/u01/bigtemp.db'大小5M; 8.改變表格空間狀態
(0.)檢視狀態
#表格空間狀態select tablespace_name,block_size,status from dba_tablespaces; 
#資料檔案狀態select name,block_size,status from v$datafile; 
(1.)表格空間離線alter tablespace測試離線
#如果意外刪除了資料檔案alter tablespace test離線復原
(2.)表空間連線alter tablespace測試線上
(3.)資料檔案離線select *來自v$dbfile;更改資料庫資料檔案3 離線
(4.)資料檔案線上復原資料檔案3;線上變更資料庫資料檔案3; 
(5.)讓資料表空間唯讀
(6.)使表格空間可讀寫alter tablespace test 讀寫;
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 database datafile '/u01/test.dbf' resize 20M; 
3.alter 資料檔案'/u01/test .dbf' 自動擴充至下一個10M maxsize 1G; 
#設定後查看表格空間資訊
select a.tablespace_name,a.bytes Total,b.bytesused,c.bytesfree,(b.bytes*100)/a.bytes "%used",(c.bytes *100)/a.bytes "% free" 來自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>alter tablespace 測試離線; SQL>主機移動/u01/test.dbf /u01/oracle/test.dbf; SQL>alter tablespace test 將資料檔'/u01/test.dbf'重新命名為'/u01 /oracle/test.dbf'; SQL>alter tablespace 離線測試; 
#mount狀態SQL>立即關閉; SQL>啟動掛載SQL>主機移動/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), 130D.使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比", OTA
F.休閒空間(M)",
F.MAX_BYTES "最大塊(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024) , 2) TOTAL_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 DDP. AME = F.TABLESPACE_NAME 
訂購BY 1 
--查詢表空間的可用空間 
select tablespace_name, 
count(*) 作為擴展,
round(sum(bytes) / 1024 / 1024, 2) 作為MB,free
sum( 
sum(
按表格空間名稱分組; 
--查詢表空間的總容量
select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files 
group by tablespace_nameselecttable) ,
round(total.MB, 2) as Total_MB,
round(total.MB - free.MB, 2) asused_MB,
round((1 - free.MB) MB / 總計.MB) * 100, 2) | | '%' asused_pct
from(select tablespace_name,sum(bytes)/ 1024 / 1024 as MB 
from dba_free_space 
group by tablespace_name)空閒,
(select tables_group) _data_files 
以表格空間名稱分組) 總計
其中free.tablespace_name = Total.tablespace_name; 
//賦予使用者權限
grant connect,resource to username; 
//以後以該使用者登入,建立的任何資料庫物件都屬於user_temp 和user_data
//以後以該使用者登入,建立的任何資料庫物件都屬於user_temp 和user_data
//以後以該使用者登入,建立的任何資料庫物件都屬於user_temp 和user_data表空間,
這就不用在每個物件給其指定表空間了
撤銷權限:
從使用者名稱撤銷權限... ; 
刪除使用者指令
drop user user_name 級聯; 

建立表空間
CREATE TABLESPACE data01 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定區尺寸為128k,如不指定,區尺寸AND DATAFILES; 
一、建立表空間
CREATE TABLESPACE data01 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #64k,128k;
二、建立UNDO表空間 
CREATE UNDO TABLESPACE UNDOTBS02 
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M 
#的表空間,必須切換到該表空間:
ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 
三、建立臨時表空間 
CREATE TEMPORARY TABLESPACE temp_data 
TEMPFILE '/oracle/A/ora改變表空間狀態 
1.使表空間脫機 
ALTER TABLESPACE game OFFLINE; 
如果意外刪除了資料文件,則必須帶有RECOVER選項
ALTER TABLESPACE game OFFLINE FOR RECOVER; 
2.使線上空間連接表格空間遊戲; 
3.將資料檔案離線
ALTER DATABASE DATAFILE 3 OFFLINE; 
4.將資料檔案連接
ALTER DATABASE DATAFILE 3 ONLINE; 
5.使手錶空間只讀遊戲時只讀遊戲;
6.使表空間可讀寫
ALTER TABLESPACE 遊戲讀寫; 
五、刪除表空間
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES; 

六、表機表
六、表機表
。 select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0)total_space
from dba_data_files
order by tablespace_name 
1.增加資料檔案ALTERUpABLESPm/U5; GAME02.dbf' SIZE 1000M; 
2.手動增加資料檔案大小
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' 
RESIZE 4000M; 
3.dbf' 
RESIZE 4000M; /oradata/db/GAME.dbf 
AUTOEXTEND ON NEXT 100M 
MAXSIZE 10000M; 

設定後查看表空間資訊
SELECT A.TABLESPACE_Nac
設定後查看表空間資訊
SELECT A.TABLESPACE_NAME,A.B. .BYTES*100)/A.BYTES "% USED",(C. BYTES*100)/A.BYTES "% FREE" 
來自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。表空間

更多Oracle表空間查詢與操作方法相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)