標籤: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 資料表空間建立和管理