Oracle tablespace 資料表空間建立和管理

來源:互聯網
上載者:User

標籤:write   resize   目標   使用   資訊   ffline   對象   區分   let   

1.資料表空間的概述

1. 資料表空間是資料庫的邏輯組成部分。2. 從物理上講,資料庫資料存放在資料檔案中;  3. 從邏輯上講,資料庫是存放在資料表空間中,資料表空間由一個或者多個資料檔案組成。

2.oracle的邏輯組成

1.oracle 的邏輯結構包含 表 空間 段 區 塊  2.資料庫是由資料表空間構成,資料表空間又是有段構成,段是由區構成,區是由 oracle的塊構成,這樣做是為了提高資料庫的效率  3.作用               A.控制資料庫佔用的磁碟空間                B dba 可以將不同資料類型部署到不同的位置,這樣 有利於i/0的效能,同時利於備份和恢複等管理  


3.查詢Oracle的資料表空間

select tablespace_name from dba_tablespaces;  


4.建立資料表空間的文法和步驟

1.建立資料表空間採用create tablespace命令完成  2.需要注意的是一般情況下,建立資料表空間,是特權使用者和dba來執行的。如果其他使用者要建立必須要有 create tablespace 的系統許可權 


5.案例: 建立一個資料表空間

crate tablesapce  data01 datafile ‘d:\test\data01.dbf‘ size  20m uniform size 128k;// 說明:建立一個名稱為 data01 的資料表空間,並為該資料表空間建立一個名稱為data.01.dbf的資料檔案,區的大小為128k

上面是關聯一個資料檔案,下面是關聯兩個資料檔案

create tablespace data02 datafile ‘d:\test\data021.dbf‘ size 20m,‘d:\test\data022.dbf‘ size 20m uniform size 128k; 


6.案例: 使用自訂的資料表空間

create table mydept(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace data01;//如果不指定資料表空間,就預設放在 SYSTEM 資料表空間下 create table emp(empno,ename) tablespace data01 as select empno,ename from scott.emp;//利用其他方案的表建立自己的表後放在自訂表格空間下  

7.什麼是資料表空間的狀態

當建立資料表空間的時候,資料表空間處於聯機的(online)狀態,此時資料表空間是可以訪問的,並且是可以讀寫,既可以在資料表空間上執行各種語句。但是在進行系統維護或者資料維護的時候,可能需要改變資料表空間的狀態(離線,聯機,唯讀)。 一般由特權使用者和dba來操作  

8.資料表空間離線

alter tablespace 資料表空間名 offline;  


9.使資料表空間聯機

alter tablespace 資料表空間名 online;  


10.唯讀資料表空間

alter tablespace 資料表空間 read only;// 當建立資料表空間時,資料表空間可以讀寫,如果不希望在資料表空間上執行update ,delete ,insert 操作,那麼可以將資料表空間修改為唯讀  


11.改為讀寫資料表空間

alter tablespace tbs001 read write;  

12.顯示資料表空間中的所有表

select * from user_tables where TABLESPACE_NAME=‘DATA01‘;//個人發現在oralce系統中 系統資料表 或者 視圖 是區分大寫)  

13.查看某表所在的資料表空間 (知道表名)

select tablespace_name,table_name from user_tables where table_name=‘EMP‘;

14.刪除資料表空間

drop tablespace DATA01 including contents and datafiles;// 說明: including contents 表示刪除資料表空間時候,刪除該資料表空間的所有資料對象,而datafiles 表示將資料庫檔案也刪除。  


15. 擴充資料表空間 oralce 有3中方法

1.添加資料檔案  alter tablespace TBS001 add datafile ‘d:\tbs002.dbf‘ size 20m;  2.增加資料檔案的大小 alter database datafile ‘d:\tbs001.dbf‘ resize 20m;  3.設定自動成長 alter database datafile ‘d:\tbs002.dbf‘ autoextend on next 10m maxsize 500m; //9i前每個資料檔案是有大小的.之後的版本有人說沒有大小限制(取決自己磁碟) 


16.移動資料檔案(處理磁碟損壞的時候,將資料檔案進行遷移)

1.找出資料檔案對應的 資料表空間      select tablespace_name from dba_data_files where file_name=‘D:\TBS001.DBF‘;  2.使資料表空間離線 確保資料檔案的一致性      alter tablespacce tbs001 offline;  3.使用命令移動資料檔案到指定的目標位置 (sqlplus中能成功,PL/Sql中不能成功 應是我不知道)      host move d:\tbs001.dbf c:\tbs001.dbf;  4.修改資料表空間對應的資料文體 為新磁碟下的資料檔案      alter tablespace TBS001 rename datafile ‘D:\TBS001.DBF‘ to ‘E:\TBS001.DBF‘;  5.使資料表空間聯機      alter tablespace TBS001 online;  


17.查詢資料表空間的資訊

select * from dba_tablespaces;  


18.查詢資料表空間的所有的資料檔案

select file_name,bytes from dba_data_files where tablesapce_name=‘TBS001  


19.資料表空間的狀態

offline,online, read only, read write;  


20.其他常用的資料表空間

1.索引資料表空間  2.undo資料表空間  3.暫存資料表空間  4.非標準塊的資料表空間  

有時候我們在建表的時候,會遇到如下的命令:

create table X_SMALL_AREA(SMALL_AREA_ID NUMBER(10) not null)tablespace TBSL_SDDQ --表段X_SMALL_AREA放在資料表空間TBSL_SDDQ中pctfree 10 --塊保留10%的空間留給更新該塊資料使用initrans 1 --初始化事務槽的個數maxtrans 255 --最大事務槽的個數storage --儲存參數(initial 64k --區段(extent)一次擴充64kminextents 1 --最小區段數maxextents unlimited --最大區段無限制);

關於pctfree的相關知識,可以查看文章“oracle pctfree和pctused詳解”

原文連結:Oracle tablespace 資料表空間建立和管理

Oracle tablespace 資料表空間建立和管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.