oracle資料表空間操作 & CREATE TABLESPACE命令

來源:互聯網
上載者:User

轉:http://blog.sina.com.cn/s/blog_49605b460100b1pi.html

elect *
from dba_tables
where OWNER='peter' CREATE TABLESPACE data01
DATAFILE 'D:\oracle\ora92\oradata\db\DATA01.dbf' SIZE 200M
UNIFORM SIZE 128k;
#指定區尺寸為128k,如不指定,區尺寸預設為64kCREATE TEMPORARY TABLESPACEtemp_data
TEMPFILE 'D:\oracle\ora92\oradata\db\TEMP_DATA.dbf' SIZE 100M
CREATE USER peter IDENTIFIED BY peter
DEFAULT TABLESPACE data01 TEMPORARY TABLESPACE temp_data;grantconnect,resource,dba to peter;

一、建立資料表空間

CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE128k;            #指定區尺寸為128k,如不指定,區尺寸預設為64k

二、建立UNDO資料表空間

CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

#注意:在OPEN狀態下某些時刻只能用一個UNDO資料表空間,如果要用建立的資料表空間,必須切換到該資料表空間:

ALTER SYSTEM SET undo_tablespace=UNDOTBS02;

三、建立暫存資料表空間

CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

四、改變資料表空間狀態

1.使資料表空間離線

ALTER TABLESPACE game OFFLINE;

如果是意外刪除了資料檔案,則必須帶有RECOVER選項

ALTER TABLESPACE game OFFLINE FOR RECOVER;

2.使資料表空間聯機

ALTER TABLESPACE game ONLINE;

3.使資料檔案離線

ALTER DATABASE DATAFILE 3 OFFLINE;

4.使資料檔案聯機

ALTER DATABASE DATAFILE 3 ONLINE;

5.使資料表空間唯讀

ALTER TABLESPACE game READ ONLY;

6.使資料表空間可讀寫

ALTER TABLESPACE game READ WRITE;

五、刪除資料表空間

DROP TABLESPACE data01 INCLUDING 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.增加資料檔案
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.BYTESFREE,
(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 ANDA.TABLESPACE_NAME=C.TABLESPACE_NAME;

-----------------------------------------------------------------------------------------------------------------------------------

CREATE TABLESPACE命令

CREATE [UNDO] TABLESPACE tablespace_name

[DATAFILE datefile_spec1 [,datefile_spec2] ......

[ {MININUM EXTENT integer [k|m] | BLOCKSIZE integer [k] |loggingclause|FORCE LOGGING |DEFAULT{data_segment_compression   }storage_clause

|[online|offline]|[PERMANENT|TEMPORARY]|extent_manager_clause|segment_manager_clause}]

1、undo

說明系統將建立一個復原資料表空間。

在9i中資料庫管理員可以不必管理復原段,只有建立了undo資料表空間,系統就會自動管理復原段的分配,回收的工作。當然,也可以建立一般的資料表空間,在上面建立復原段.不過對於使用者來說,系統管理比自己管理要好很多.如果需要自己管理,請參見復原段管理的命令詳解.

當沒有為系統指定復原資料表空間時,系統將使用system系統復原段來進行交易管理。

2、tablespace

   指出資料表空間的名稱。

3、datafile datefile_spec1

指出資料表空間包含什麼空間檔案。datefile_spec1 是形如 ['filename'] [SIZE integer [ K| M ]] [REUSE] [autoextend_clause]

[autoextend_clause]切穩紓?AUTOEXTEND { OFF | ON [ NEXT integer [ K| M ] ] [maxsize_clause] }

其中filename是資料檔案的全路徑名,size是檔案的大小,REUSE表示檔案是否被重用.

AUTOEXTEND表明是否自動擴充. OFF | ON 表示自動擴充是否被關閉.NEXT表示資料檔案滿了以後,擴充的大小.

maxsize_clause表示資料檔案的最大大小.形如MAXSIZE { UNLIMITED | integer [ K |M ] }.UNLIMITED 表示無限的資料表空間.integer是資料檔案的最大大小.

 

4、MININUM EXTENT integer [k|m]

指出在資料表空間中範圍的最小值。這個參數可以減小空間片段,保證在資料表空間的範圍是這個數值的整數倍。

5、BLOCKSIZE integer [k]

這個參數可以設定一個不標準的塊的大小。如果要設定這個參數,必須設定db_block_size,至少一個db_nk_block_size,並且聲明的integer的值必須等於db_nk_block_size.

注意:在暫存資料表空間不能設定這個參數。

6、logging clause

這個子句聲明這個資料表空間上所有的使用者物件的日誌屬性(預設是logging),包括表,索引,分區,物化視圖,物化視圖上的索引,分區。

7、FORCE LOGGING

使用這個子句指出資料表空間進入強制記錄模式。此時,系統將記錄資料表空間上對象的所有改變,除了臨時段的改變。這個參數高於對象的nologging選項。

注意:設定這個參數資料庫不行open並且出於讀寫入模式。而且,在暫存資料表空間和復原資料表空間中不能使用這個選項。

8、DEFAULT storage_clause

聲明預設的儲存子句。

9、online|offline

改變資料表空間的狀態。online使資料表空間建立後立即有效.這是預設值.offline使資料表空間建立後無效.這個值,可以從dba_tablespace中得到。

10、PERMANENT|TEMPORARY

指出資料表空間的屬性,是永久資料表空間還是暫存資料表空間。永久資料表空間存放的是永久對象,暫存資料表空間存放的是session生命期中存在的臨時對象。這個參數產生的暫存資料表空間建立後一直都是字典管理,不能使用extentmanagement local選項。如果要建立本地管理資料表空間,必須使用create temporary tablespace

注意,聲明了這個參數後,不能聲明block size

11、extent_management_clause

這是最重要的子句,說明了資料表空間如何管理範圍。一旦你聲明了這個子句,只能通過移植的方式改變這些參數。

如果希望資料表空間本地管理的話,聲明local選項。本地管理資料表空間是通過位元影像管理的。autoallocate說明資料表空間自動分配範圍,使用者不能指定範圍的大小。只有9.0以上的版本具有這個功能。uniform說明資料表空間的範圍的固定大小,預設是1m。

不能將本地管理的資料庫的system資料表空間設定成字典管理。

oracle公司推薦使用本地管理資料表空間。

如果沒有設定extent_management_clause,oracle會給他設定一個預設值。如果初始化參數compatible小於9.0.0,那麼系統建立字典管理資料表空間。如果大於9.0.0,那麼按照如下設定:

如果沒有指定default storage_clause,oracle建立一個自動分配的本地管理資料表空間。

否則,如果指定了mininum extent,那麼oracle判斷mininum extent、initial、next是否相等,以及pctincrease是否=0.如果滿足以上的條件,oracle建立一個本地管理資料表空間,extentsize是initial.如果不滿足以上條件,那麼oracle將建立一個自動分配的本地管理資料表空間。

如果沒有指定mininumextent。initial、那麼oracle判斷next是否相等,以及pctincrease是否=0。如果滿足oracle建立一個本地管理資料表空間並指定uniform。否則oracle將建立一個自動分配的本地管理資料表空間。

注意:本地管理資料表空間只能儲存永久對象。如果你聲明了local,將不能聲明defaultstorage_clause,mininum extent、temporary.

12、segment_management_clause

 

建立資料表空間

CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE128k;            #指定區尺寸為128k,如不指定,區尺寸預設為64k

刪除資料表空間

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

 

--------------------------------------------------------------------------------------------------------------------------------

1.建立角色
CREATE ROLE "QIUDINGROLE" NOT IDENTIFIED;

GRANT "CONNECT" TO "QIUDINGROLE";
GRANT "DBA" TO "QIUDINGROLE";
GRANT "RESOURCE" TO "QIUDINGROLE";

2.建立資料表空間
CREATE SMALLFILE TABLESPACE "DIAOCHA" DATAFILE 'D:\oracle\product\10.1.0\oradata\qiuding\diaocha' SIZE 100M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

BEGIN DBMS_SERVER_ALERT.SET_THRESHOLD(9000,NULL,NULL,NULL,NULL,1,1,NULL,5,'DIAOCHA'); END;

CREATE SMALLFILE TEMPORARY TABLESPACE "DIAOCHA_TEMP" TEMPFILE 'D:\oracle\product\10.1.0\oradata\qiuding\diaocha_temp' SIZE 100M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

BEGIN DBMS_SERVER_ALERT.SET_THRESHOLD(9000,NULL,NULL,NULL,NULL,1,1,NULL,5,'DIAOCHA_TEMP'); END;

 3.建立使用者
create user QIUDING
  identified by "QIUDING"
  default tablespace "DIAOCHA"
  temporary tablespace "DIAOCHA_TEMP"
  profile DEFAULT
  ACCOUNT UNLOCK;

grant QIUDINGROLE to QIUDING;
grant unlimited tablespace to QIUDING

4.建立備份目錄並且付相應許可權
create directory dump_dir as 'D:\oracle\backup';
grant read,write on directory dump_dir to QIUDING;

 

-------------------------------------------------------------------------------------------------------------------------

要使用Oracle還需要做一些前期工作.

使用Oracle使用者
# su - oracle

建立資料表空間 -> 建立新使用者 -> 使用者授權

一 建立資料表空間
SQL> CREATE TABLESPACE test01
DATAFILE '/data/oracle/oradata/db/test01.dbf' SIZE 1024M UNIFORM SIZE 128k; 

1) DATAFILE: 資料表空間資料檔案存放路徑
2) SIZE: 起初設定為1G就可以
3) UNIFORM: 指定區尺寸為128k,如不指定,區尺寸預設為64k
4) 空間名稱 test01 與 資料檔案名稱 test01.dbf 不要求相同,可隨意命名.

通過ALTER DATABASE修改空間擴充大小

SQL > ALTER DATABASE DATAFILE '/data/oracle/oradata/db/test01.dbf' ' AUTOEXTEND ON;

1)AUTOEXTEND ON:在Oracle10g中,需要手動開機磁碟分割自動擴充功能.
二 建立新使用者
SQL> CREATE USER test IDENTIFIED BY 123456 DEFAULT TABLESPACE test01;

1) 建立使用者同時分配資料表空間

三 使用者授權
1)使用者角色授權
SQL> CRANT CONNECT,RESOURCE TO test;

a) 我這裡將CONNECT和RESOURCE角色賦給新使用者test,test將擁有這兩個角色的操作許可權.

2)直接授權
多使用者
SQL> CRANT SELECT,INSERT,UPDATE,DELETE,ON USERS TO test,test1;

下面我們可以使用兩種方式登入Oracle db
一 SQLPLUS
1)本地登入
SQL> sqlplus test/123456

2)遠程登入
假設db在另一台伺服器
SQL> sqlplus test/123456@db

二 PLSQL Developer
上篇中也有講述,輸入帳號口令就可以了.


下面說些和上面相關,且工作中會需要用到的.
一 刪除使用者
SQL> DROP USER test CASCADE;

二 刪除資料表空間
SQL> DROP TABLESPACE test01 INCLUDING CONTENTS AND DATAFILES;

1) 刪除資料表空間內容和資料檔案.
2) 一般無效資料表空間佔用磁碟空間,所以這個應該很常用.

 

查看使用者角色許可權

select * from user_role_privs;

查看使用者表許可權

select * from user_tab_privs;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.