需要在創(chuàng)建的時(shí)候就設(shè)置為自動(dòng)擴(kuò)展,語句如下:
創(chuàng)新互聯(lián)建站專注于卡若企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)??ㄈ艟W(wǎng)站建設(shè)公司,為卡若等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
create??tablespace?shopping?--創(chuàng)建shopping的表空間
datafile?'shopping.dbf'??--物理文件名
size?50m??--初始大小為50M
autoextend?on??--自動(dòng)擴(kuò)展
next?50m?maxsize?20480m??--每次自動(dòng)擴(kuò)展50M,最大可到20480M
extent?management?local;
表空間:
表空間是數(shù)據(jù)庫(kù)的邏輯劃分,一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù)。所有的數(shù)據(jù)庫(kù)對(duì)象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。
Oracle數(shù)據(jù)庫(kù)中至少存在一個(gè)表空間,即SYSTEM的表空間。
SQL Server數(shù)據(jù)庫(kù)與Oracle數(shù)據(jù)庫(kù)之間最大的區(qū)別要屬表空間設(shè)計(jì)。Oracle數(shù)據(jù)庫(kù)開創(chuàng)性地提出了表空間的設(shè)計(jì)理念,這為Oracle數(shù)據(jù)庫(kù)的高性能做出了不可磨滅的貢獻(xiàn)??梢赃@么說,Oracle中很多優(yōu)化都是基于表空間的設(shè)計(jì)理念而實(shí)現(xiàn)的。
oracle10g數(shù)據(jù)庫(kù)擴(kuò)充表空間是通過增加數(shù)據(jù)文件的大小來實(shí)現(xiàn)的。
如果發(fā)現(xiàn)某個(gè)表空間存儲(chǔ)空間不足時(shí),可以為表空間添加新的數(shù)據(jù)文件,擴(kuò)展表空間大小。但是一般建議預(yù)先估計(jì)表空間所需的存儲(chǔ)空間大小,然后為它建立若干適當(dāng)大小的數(shù)據(jù)文件。
以下是擴(kuò)大TBS_TR_IND這個(gè)表空間的sql命令:
ALTER
TABLESPACE
TBS_TR_IND
ADD
DATAFILE
'/oradata/rTBS_TR_IND_002.dbf'
--給rTBS_TR_IND_002.dbf這個(gè)數(shù)據(jù)文件增加32G空間
SIZE
32G
AUTOEXTEND
OFF;
SQL
ALTER
TABLESPACE
TBS_EDS_DAT
ADD
DATAFILE
'G:\datafile\TBS_EDS_DAT01.DBF'
--給TBS_EDS_DAT01.DBF增加100M空間
SIZE
100M
表空間在初始建立的時(shí)候最好設(shè)置成自動(dòng)擴(kuò)展的,如果沒有設(shè)置成擴(kuò)展的,則有四種方法可以增加表空間的大小,其中增加數(shù)據(jù)文件是經(jīng)常用的一種。四種方法如下:
Meathod1:給表空間增加數(shù)據(jù)文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
Meathod2:新增數(shù)據(jù)文件,并且允許數(shù)據(jù)文件自動(dòng)增長(zhǎng)
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允許已存在的數(shù)據(jù)文件自動(dòng)增長(zhǎng)
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改變已存在數(shù)據(jù)文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;
處理方法有兩種,
一是添加undo 表空間的數(shù)據(jù)文件,
二是切換undo tablespace. 這種情況下多用在undo 表空間已經(jīng)非常大的情況。
增加數(shù)據(jù)文件:sql alter tablespace undo add datafile 'D:\undo02.dbf' size 100m reuse;
表空間已更改。然后切換undo 表空間。
1、建立新的表空間undotbs2
sql create undo tablespace undotbs2 datafile 'D:\undo03.dbf' size 100m reuse;
表空間已創(chuàng)建。
2、切換到新建的undo表空間上來,操作如下
sql alter system set undo_tablespace=undotbs2 scope=both;
系統(tǒng)已更改。
3、將原來的undo表空間,置為脫機(jī):
sql alter tablespace undo offline;
表空間已更改。
4、刪除原來的undo表空間:
sql drop tablespace undo including contents and datafiles cascade constraints ?
表空間已刪除。
oracle表空間擴(kuò)充有幾種方法,一種通過語句擴(kuò)充;第二種通過客戶端去擴(kuò)充;第三種設(shè)置表空間為自動(dòng)擴(kuò)展的那種;
擴(kuò)充時(shí)可增加數(shù)據(jù)文件;可修改原數(shù)據(jù)文件的大??;
擴(kuò)充時(shí)要考慮數(shù)據(jù)文件所在磁盤的物理空間大??;
根據(jù)需求進(jìn)行表空間設(shè)置,如果數(shù)據(jù)變化量不是很大建議一次不要設(shè)置太大,浪費(fèi)空間,1年過去了才用了5%不到,這樣就浪費(fèi)空間,別的表空間卻用不了;
建議每次都增加新的數(shù)據(jù)文件,而且數(shù)據(jù)文件的大小一致,不要一個(gè)1G,另一個(gè)5G這樣子設(shè)置,對(duì)于物理磁盤會(huì)造成很多碎片浪費(fèi);
1、BLOCKSIZE決定了datafile的最大值;
一個(gè)表空間數(shù)據(jù)文件存64G
2、alter system set db_16k_cache_size=16M scope=both;
BLOCKSIZE 16k;一個(gè)表空間數(shù)據(jù)文件可以存64G
3、一個(gè)表空間可以增加多個(gè)datafile,以擴(kuò)展表空間
4、實(shí)例
nm=`date +%Y%m`
vts_src=VDATA_TS_${nm}
vdata_ts1=/data1/oracle/vdata_ts_${nm}_1.dbf
vdata_ts2=/data1/oracle/vdata_ts_${nm}_2.dbf
CREATE TABLESPACE $vts_src DATAFILE '$vdata_ts1' SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED BLOCKSIZE 16k;
alter TABLESPACE $vts_src add DATAFILE '$vdata_ts2' SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED;