經(jīng)過(guò)長(zhǎng)時(shí)間學(xué)習(xí)創(chuàng)建Oracle表空間,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
1、先查詢空閑空間
- select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;
2、增加Oracle表空間
先查詢數(shù)據(jù)文件名稱、大小和路徑的信息,語(yǔ)句如下:
- select tablespace_name,file_id,bytes,file_name from dba_data_files;
3、修改文件大小語(yǔ)句如下
- alter database datafile
- '需要增加的數(shù)據(jù)文件路徑,即上面查詢出來(lái)的路徑
- 'resize 800M;
4、創(chuàng)建Oracle表空間
- create tablespace test
- datafile '/home/app/oracle/oradata/oracle8i/test01.dbf' size 8M
- autoextend on
- next 5M
- maxsize 10M;
-
- create tablespace sales
- datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
- autoextend on
- next 50M
- maxsize unlimited
- maxsize unlimited 是大小不受限制
-
- create tablespace sales
- datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
- autoextend on
- next 50M
- maxsize 1000M
- extent management local uniform;
- unform表示區(qū)的大小相同,默認(rèn)為1M
-
- create tablespace sales
- datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
- autoextend on
- next 50M
- maxsize 1000M
- extent management local uniform size 500K;
- unform size 500K表示區(qū)的大小相同,為500K
-
- create tablespace sales
- datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
- autoextend on
- next 50M
- maxsize 1000M
- extent management local autoallocate;
- autoallocate表示區(qū)的大小由隨表的大小自動(dòng)動(dòng)態(tài)改變,大表使用大區(qū)小表使用小區(qū)
-
- create tablespace sales
- datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
- autoextend on
- next 50M
- maxsize 1000M
- temporary;
- temporary創(chuàng)建字典管理臨時(shí)表空間
-
- create temporary tablespace sales
- tempfile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
- autoextend on
- next 50M
- maxsize 1000M
- 創(chuàng)建本地管理臨時(shí)表空間,如果是臨時(shí)表空間,所有語(yǔ)句中的datafile都換為tempfile
-
- 8i系統(tǒng)默認(rèn)創(chuàng)建字典管理臨時(shí)表空間,要?jiǎng)?chuàng)建本地管理臨時(shí)表空間要加temporary tablespace關(guān)鍵字
- 創(chuàng)建本地管理臨時(shí)表空間時(shí),不得使用atuoallocate參數(shù),系統(tǒng)默認(rèn)創(chuàng)建uniform管理方式
-
- 為表空間增加數(shù)據(jù)文件:
- alter tablespace sales add
- datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M
- autoextend on next 50M
- maxsize 1000M;
創(chuàng)建本地管理臨時(shí)Oracle表空間,如果是臨時(shí)表空間,所有語(yǔ)句中的datafile都換為tempfile8i系統(tǒng)默認(rèn)創(chuàng)建字典管理臨時(shí)表空間,要?jiǎng)?chuàng)建本地管理臨時(shí)表空間要加temporary tablespace關(guān)鍵字創(chuàng)建本地管理臨時(shí)表空間時(shí),不得使用atuoallocate參數(shù),系統(tǒng)默認(rèn)創(chuàng)建uniform管理方式
為表空間增加數(shù)據(jù)文件:
- alter tablespace sales add
- datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M
- autoextend on next 50M
- maxsize 1000M;
5、更改自動(dòng)擴(kuò)展屬性:
- alter database datafile
- '/home/app/oracle/oradata/oracle8i/sales01.dbf',
- '/home/app/oracle/oradata/oracle8i/sales02.dbf'
- '/home/app/oracle/oradata/oracle8i/sales01.dbf
- autoextend off;
6. 創(chuàng)建用戶及授權(quán)
當(dāng)然也可以用圖形界面進(jìn)行操作。一般在創(chuàng)建表空間時(shí)選擇表空間自增AUTOEXTEND并指定大小。一般表空間創(chuàng)建之后,我們也需要?jiǎng)?chuàng)建新用戶并將相關(guān)權(quán)限賦予該用戶。比如表空間是HHSCINFO,用戶InfoManager,如下:
- CREATE USER InfoManager IDENTIFIED BY admin
- DEFAULT TABLESPACE HHSCINFO;
- GRANT CONNECT TO InfoManager;
- GRANT DBA TO InfoManager;
- GRANT resource TO InfoManager;
以上介紹創(chuàng)建Oracle表空間,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。
另一篇:七步詳細(xì)分析Oracle表空間
Oracle表空間是數(shù)據(jù)管理的基本方法,所有用戶的對(duì)象要存放在表空間中,也就是用戶有空間的使用權(quán),才能創(chuàng)建用戶對(duì)象。否則是不充許創(chuàng)建對(duì)象,因?yàn)榫褪窍雱?chuàng)建對(duì)象,如表,索引等,也沒(méi)有地方存放,Oracle會(huì)提示:沒(méi)有存儲(chǔ)配額。因此,在創(chuàng)建對(duì)象之前,首先要分配存儲(chǔ)空間。分配存儲(chǔ),就要?jiǎng)?chuàng)建表空間:
創(chuàng)建Oracle表空間示例如下:
- CREATE TABLESPACE "SAMPLE"
- LOGGING
- DATAFILE
- 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M
- EXTENT
- MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT
- AUTO
上面的語(yǔ)句分以下幾部分:
第一:CREATE TABLESPACE"SAMPLE" 創(chuàng)建一個(gè)名為 "SAMPLE"的表空間。對(duì)表空間的命名,遵守Oracle 的命名規(guī)范就可了。
Oracle可以創(chuàng)建的表空間有三種類型:
(1)TEMPORARY: 臨時(shí)表空間,用于臨時(shí)數(shù)據(jù)的存放;創(chuàng)建臨時(shí)表空間的語(yǔ)法如下:CREATE TEMPORARY TABLESPACE "SAMPLE"。。。。。。
(2)UNDO : 還原表空間。用于存入重做日志文件。創(chuàng)建還原表空間的語(yǔ)法如下:CREATE UNDOTABLESPACE "SAMPLE"。。。。。。
(3)用戶表空間: 最重要,也是用于存放用戶數(shù)據(jù)表空間可以直接寫(xiě)成: CREATE TABLESPACE"SAMPLE"TEMPORARY 和 UNDO 表空間是Oracle 管理的特殊的表空間。只用于存放系統(tǒng)相關(guān)數(shù)據(jù)。
第二: LOGGING
有 NOLOGGING和 LOGGING兩個(gè)選項(xiàng),NOLOGGING:創(chuàng)建表空間時(shí),不創(chuàng)建重做日志。LOGGING 和NOLOGGING正好相反, 就是在創(chuàng)建表空間時(shí)生成重做日志。用NOLOGGING時(shí),好處在于創(chuàng)建時(shí)不用生成日志,這樣表空間的創(chuàng)建較快,但是沒(méi)能日志,數(shù)據(jù)丟失后,不能恢復(fù),但是一般我們?cè)趧?chuàng)建表空間時(shí),是沒(méi)有數(shù)據(jù)的,按通常的做法,是建完表空間,并導(dǎo)入數(shù)據(jù)后,是要對(duì)數(shù)據(jù)做備份的,所以通常不需要表空間的創(chuàng)建日志,因此,在創(chuàng)建表空間時(shí),選擇NOLOGGING,以加快表空間的創(chuàng)建速度。
第三: DATAFILE 用于指定數(shù)據(jù)文件的具體位置和大小。
如: DATAFILE 'D:\Oracle\ORADATA\ORA92\LUNTAN。ora' SIZE 5M說(shuō)明文件的存放位置是'D:\Oracle\ORADATA\ORA92\LUNTAN。ora' ,文件的大小為5M。如果有多個(gè)文件,可以用逗號(hào)隔開(kāi):
- DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M,
- 'D:\ORACLE\ORADATA\ORA92\dd.ora' SIZE 5M
但是每個(gè)文件都需要指明大小。單位以指定的單位為準(zhǔn)如 5M 或 500K。對(duì)具體的文件,可以根據(jù)不同的需要,存放大不同的介質(zhì)上,如磁盤(pán)陣列,以減少I(mǎi)O竟?fàn)?。指定文件名時(shí),必須為絕對(duì)地址,不能使用相對(duì)地址。
第四: EXTENTMANAGEMENT LOCAL存儲(chǔ)區(qū)管理方法
在Oracle 8i以前,可以有兩種選擇,一種是在字典中管理(DICTIONARY),另一種是本地管理(LOCAL ),從9I開(kāi)始,只能是本地管理方式。因?yàn)長(zhǎng)OCAL 管理方式有很多優(yōu)點(diǎn)。在字典中管理(DICTIONARY): 將數(shù)據(jù)文件中的每一個(gè)存儲(chǔ)單元做為一條記錄,所以在做DM操作時(shí),就會(huì)產(chǎn)生大量的對(duì)這個(gè)管理表的Delete和Update操作。做大量數(shù)據(jù)管理時(shí),將會(huì)產(chǎn)生很多的DM操作,嚴(yán)得的影響性能,同時(shí),長(zhǎng)時(shí)間對(duì)表數(shù)據(jù)的操作,會(huì)產(chǎn)生很多的磁盤(pán)碎片,這就是為什么要做磁盤(pán)整理的原因。本地管理(LOCAL): 用二進(jìn)制的方式管理磁盤(pán),有很高的效率,同進(jìn)能最大限度的使用磁盤(pán)。 同時(shí)能夠自動(dòng)跟蹤記錄臨近空閑空間的情況,避免進(jìn)行空閑區(qū)的合并操作。
第五:SEGMENT SPACE MANAGEMENT
磁盤(pán)擴(kuò)展管理方法:
◆SEGMENT SPACE MANAGEMENT: 使用該選項(xiàng)時(shí)區(qū)大小由系統(tǒng)自動(dòng)確定。由于 Oracle 可確定各區(qū)的最佳大小,所以區(qū)大小是可變的。
◆UNIFORM SEGMENT SPACE MANAGEMENT:指定區(qū)大小,也可使用默認(rèn)值 (1 MB)。
第六: 段空間的管理方式:
◆AUTO: 只能使用在本地管理的表空間中。 使用LOCAL管理Oracle表空間時(shí),數(shù)據(jù)塊中的空閑空間增加或減少后,其新?tīng)顟B(tài)都會(huì)在位圖中反映出來(lái)。位圖使 Oracle 管理空閑空間的行為更加自動(dòng)化,并為管理空閑空間提供了更好的性,但對(duì)含有LOB字段的表不能自動(dòng)管理。
◆MANUAL: 目前已不用,主要是為向后兼容。
第七: 指定塊大小。 可以具體指定表空間數(shù)據(jù)塊的大小。