Ⅰ 如何為ORACLE表空間或臨時表空間增加數據文件
這個錯誤信息暗示表空間大小不夠,需要為表空間增加數據文件。
分析:
1.
查詢表空間剩餘位元組大小
select
tablespace_name,
sum(bytes)/1024/1024
as
free
space(m)
from
dba_free_space
where
tablespace_name
=
'&tablespace_name'
group
by
tablespace_name;
註:如果是臨時表空間,請查詢dba_temp_free_space
select
tablespace_name,
free_space/1024/1024
as
free
space(m)
from
dba_temp_free_space
where
tablespace_name
=
'&tablespace_name';
2.
如果不知道表空間數據文件目錄規劃,可以先查詢出表空間所有數據文件
select
tablespace_name,
file_id,
file_name,
bytes/1024/1024
as
bytes(m)
from
dba_data_files
where
tablespace_name
=
'&tablespace_name';
註:如果是臨時表空間,請查詢dba_temp_files
select
tablespace_name,
file_id,
file_name,
bytes/1024/1024
as
space(m)
from
dba_temp_files
where
tablespace_name
=
'&tablespace_name';
3.
為空間不足的表空間增加數據文件
Ⅱ 如何為ORACLE表空間或臨時表空間增加數據文件
查看錶空間對應數據文件所在的位置
SQL> SELECT tablespace_name,file_name FROM dba_data_files where TABLESPACE_NAME = '&tablespace_name';
--如果是查臨時表空間,dba_data_files換_TEMP_SPACE
TABLESPACE_NAME FILE_NAME
------------------------------ --------------------------------------------------------------------------------
USERS D:ORACLE11GORACLE_11GORADATAORCLUSERS01.DBF
2.假設我要對USERS表空間加數據文件,為方便管理數據文件盡量放在同一個目錄下。
ALTER TABLESPACE users ADD DATAFILE 'D:ORACLE11GORACLE_11GORADATAORCLUSERS02.DBF' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 20M;
參數說明:SIZE 數據文件初始大小為10Mb, AUTOEXTEND ON自動擴展,下一個extend的大小為5m,數據文件最大設置為20MB。再去搜索第一步的sql就會發現user表空間數據文件增加了一個。
臨時表空間增加數據文件:
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:ORACLE11GORACLE_11GORADATAORCLTEMP02.DBF' SIZE 100M;
Ⅲ ORA-25153臨時表空間為空
ORA-25153錯誤信息表明臨時表空間邏輯名存在,但找不到對應臨時文件。具體解決步驟如下:
首先,查詢當前所有表空間狀態,通過執行SQL命令查看錶空間的名稱及狀態。
結果展示,所有表空間為在線狀態,表明資料庫環境基礎信息正常。
接著,查詢臨時表空間的物理文件,若未返回任何行,則說明臨時表空間文件已丟失。
執行命令alter database default temporary tablespace temp,若出現ORA-12907錯誤,則說明臨時表空間數據文件已丟失。
針對數據文件丟失問題,通過alter tablespace temp add tempfile命令添加新臨時文件,同時設置大小為512MB並開啟自動擴展功能。
最後,再次查詢dba_temp_files,驗證新添加的臨時文件是否已成功建立。
Ⅳ oracle資料庫擴表空間
開始~程序~Oracle~Enterprise Manager Console
這個軟體就是給你准備的~
如果你的Oracle有這個功能~
進去登陸,直接創建表空間~或者臨時表空間~
1.連接資料庫
2.存儲~表空間~查看
3.存儲~數據文件~創建
4.存儲~表空間~添加數據文件~
最好用這個創建~方便~
或者沒有的話就用sql創建表空間~
一、建立表空間
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定區尺寸為128k,如不指定,區尺寸默認為64k
三、建立臨時表空間
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
六、擴展表空間
首先查看錶空間的名字和所屬文件
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 game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
2.手動增加數據文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;
3.設定數據文件自動擴展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 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 AND A.TABLESPACE_NAME=C.TABLESPACE
Ⅳ oracle怎麼查看臨時表空間具體存放的數據
1、查看臨時表空間 (dba_temp_files視圖)(v_$tempfile視圖)
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用戶查看
2、縮小臨時表空間大小
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;
3、擴展臨時表空間:
方法一、增大臨時文件大小:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 resize 100m;
方法二、將臨時數據文件設為自動擴展:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 autoextend on next 5m maxsize unlimited;
方法三、向臨時表空間中添加數據文件:
SQL> alter tablespace temp add tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 size 100m;
4、創建臨時表空間:
SQL> create temporary tablespace temp1 tempfile 『/u01/app/oracle/oradata/orcl/temp11.dbf』 size 10M;
5、更改系統的默認臨時表空間:
--查詢默認臨時表空間
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默認臨時表空間
alter database default temporary tablespace temp1;
所有用戶的默認臨時表空間都將切換為新的臨時表空間:
select username,temporary_tablespace,default_ from dba_users;
--更改某一用戶的臨時表空間:
alter user scott temporary tablespace temp;
6、刪除臨時表空間
刪除臨時表空間的一個數據文件:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 drop;
刪除臨時表空間(徹底刪除):
SQL> drop tablespace temp1 including contents and datafiles cascade constraints;
7、查看臨時表空間的使用情況(GV_$TEMP_SPACE_HEADER視圖必須在sys用戶下才能查詢)
GV_$TEMP_SPACE_HEADER視圖記錄了臨時表空間的使用大小與未使用的大小
dba_temp_files視圖的bytes欄位記錄的是臨時表空間的總大小
SELECT temp_used.tablespace_name,
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name
ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS;
希望能幫到您!