1. 程式人生 > >資料庫管理 -- 管理表空間和資料檔案

資料庫管理 -- 管理表空間和資料檔案

 介紹
表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中;從邏輯上講,資料庫則是存放在表空間中,表
空間由一個或多個數據檔案組成。  
Oracle  筆記
26
資料庫的邏輯結構
 介紹
oracle 中邏輯結構包括表空間、段、區和塊。
說明一下資料庫由表空間構成,而表空間又是由段構成,而段又是由區構成,而區又是由 oracle 塊構成的這樣的一種結構,可
以提高資料庫的效率。
為了讓大家明白,我們畫圖說明邏輯關係:看圖:
表空間
 介紹
表空間用於從邏輯上組織資料庫的資料。資料庫邏輯上是由一個或是多個表空間組成的。通過表空間可以達到以下作用:
1. 控制資料庫佔用的磁碟空間
2. dba 可以將不同資料型別部署到不同的位置,這樣有利於提高 i/o 效能,同時利於備份和恢復等管理操作。
 建立表空間
建立表空間是使用 crate tablespace 命令完成的,需要注意的是,一般情況下,建立表空間是特權使用者或是 dba 來執行的,如
果用其它使用者來建立表空間,則使用者必須要具有 create tablespace 的系統許可權。
 建立資料表空間
在建立資料庫後,為便於管理表,最好建立自己的表空間
create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k;
說明:執行完上述命令後,會建立名稱為 data01 的表空間,併為該表空間建立名稱為 data01.dbf 的資料檔案,區的大小為 128k
 使用資料表空間
create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13)) tablespace data01;
 改變表空間的狀態
當建立表空間時,表空間處於聯機的(online)狀態,此時該表空間是可以訪問的,並且該表空間是可以讀寫的,即可以查詢
該表空間的資料,而且還可以在表空間執行各種語句。但是在進行系統維護或是資料維護時,可能需要改變表空間的狀態。一
般情況下,由特權使用者或是 dba 來操作。
1. 使表空間離線
alter tablespace 表空間名 offline;
2. 使表空間聯機
alter tablespace 表空間名 online;
3. 只讀表空間
當建立表空間時,表空間可以讀寫,如果不希望在該表空間上執行 update,delete,insert 操作,那麼可以將表空間修改為只

alter tablespace 表空間名 read only;
(修改為可寫是 alter tablespace 表空間名 read write;)
 改變表空間的狀態
我們給大家舉一個例項,說明只讀特性:
1. 知道表空間名,顯示該表空間包括的所有表
select * from all_tables where tablespace_name=’表空間名’;
2. 知道表名,檢視該表屬於那個表空間
select tablespace_name, table_name from user_tables where table_name=’emp’;
通過 2.我們可以知道 scott.emp 是在 system 這個表空間上,現在我們可以將 system 改為只讀的但是我們不會成功,因為 system
是系統表空間,如果是普通表空間,那麼我們就可以將其設為只讀的,給大家做一個演示,可以加強理解。
3.
4. 使表空間可讀寫
alter tablespace 表空間名 read write;
 刪除表空間  
Oracle  筆記
27
一般情況下,由特權使用者或是 dba 來操作,如果是其它使用者操作,那麼要求使用者具有 drop tablespace 系統許可權。
drop tablespace ‘表空間’ including contents and datafiles;
說明:including contents 表示刪除表空間時,刪除該空間的所有資料庫物件,而 datafiles 表示將資料庫檔案也刪除。
 擴充套件表空間
表空間是由資料檔案組成的,表空間的大小實際上就是資料檔案相加後的大小。那麼我們可以想象,假定表 employee 存放到
data01 表空間上,初始大小就是 2M,當資料滿 2M 空間後,如果在向 employee 表插入資料,這樣就會顯示空間不足的錯誤。
案例說明:
1. 建立一個表空間 sp01
2. 在該表空間上建立一個普通表 mydment 其結構和 dept 一樣
3. 向該表中加入資料 insert into mydment select * from dept;
4. 當一定時候就會出現無法擴充套件的問題,怎麼辦?
5. 就擴充套件該表空間,為其增加更多的儲存空間。有三種方法:
1. 增加資料檔案
SQL> alter tablespace sp01 add datafile ‘d:\test\sp01.dbf’ size 20m;
2. 增加資料檔案的大小
SQL> alter tablespace 表空間名 ‘d:\test\sp01.dbf’ resize 20m;
這裡需要注意的是資料檔案的大小不要超過 500m。
3. 設定檔案的自動增長。
SQL> alter tablespace 表空間名 ‘d:\test\sp01.dbf’ autoextend on next 10m maxsize 500m;
 移動資料檔案
有時,如果你的資料檔案所在的磁碟損壞時,該資料檔案將不能再使用,為了能夠重新使用,需要將這些檔案的副本移動到其
它的磁碟,然後恢復。
下面以移動資料檔案 sp01.dbf 為例來說明:
1. 確定資料檔案所在的表空間
select tablespace_name from dba_data_files where file_name=’d:\test\sp01.dbf’;
2. 使表空間離線
確保資料檔案的一致性,將表空間轉變為 offline 的狀態。
alter tablespace sp01(表空間名) offline;
3. 使用命令移動資料檔案到指定的目標位置
host move d:\test\sp01.dbf c:\test\sp01.dbf
4. 執行 alter tablespace 命令
在物理上移動了資料後,還必須執行 alter tablespace 命令對資料庫檔案進行邏輯修改:
alter tablespace sp01 rename datafile ‘d:\test\sp01.dbf’ to ‘c:\test\sp01.dbf’;
5. 使得表空間聯機
在移動了資料檔案後,為了使使用者可以訪問該表空間,必須將其轉變為 online 狀態。
alter tablespace sp01(表空間名) online;
 顯示錶空間資訊
查詢資料字典檢視 dba_tablespaces,顯示錶空間的資訊:
select tablespace_name from   dba_tablespaces;
 顯示錶空間所包含的資料檔案
查詢資料字典檢視 dba_data_files,可顯示錶空間所包含的資料檔案,如下:
select file_name, bytes from dba_data_files where tablespce_name=’表空間’;
 表空間小結
1. 瞭解表空間和資料檔案的作用  
Oracle  筆記
28
2. 掌握常用表空間,undo 表空間和臨時表空間的建立方法
3. 瞭解表空間的各個狀態(online, offline, read write, read only)的作用,及如何改變表空間的狀態的方法。
4. 瞭解移動資料檔案的原因,及使用 alter tablespace 和 alter datatable 命令移動資料檔案的方法。
 其它表空間
除了最常用的資料表空間外,還有其它型別表空間:
1. 索引表空間
2. undo 表空間
3. 臨時表空間
4. 非標準塊的表空間
這幾種表空間,大傢伙可以自己參考書籍研究,這裡我就不講。
 其它說明
關於表空間的組成部分 段/區/塊,我們在後面給大家講解

相關推薦

資料庫管理 -- 管理空間資料檔案

 介紹 表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中;從邏輯上講,資料庫則是存放在表空間中,表 空間由一個或多個數據檔案組成。   Oracle  筆記 26 資料庫的邏輯結構  介紹 oracle 中邏輯結構包括表空間、段、區和塊。 說明

管理空間資料檔案常用指令碼

1.新建表空間(本地管理方式) (1)普通表空間 create tablespace autotbs datafile '/oracle/autotbs01.dbf' size 100M extent management local autoallocate; (2)

重新命名資料庫空間資料檔案

一、重新命名資料庫表空間名 使用alter tablespace… rename to命令,可以重新命名一個永久或者臨時表空間。例如,下面重新命名users表空間: Alter tablespace tbs_name rename to new_tbs_name; 當你重新

Oracle 空間資料檔案之間的關係

首先,你需要明白的一點是:資料庫的物理結構是由資料庫的作業系統檔案所決定,每一個Oracle資料庫是由三種類型的檔案組成:資料檔案、日誌檔案和控制檔案。資料庫的檔案為資料庫資訊提供真正的物理儲存。  每一個Oracle資料庫有一個或多個物理的資料檔案(data file)。一個數據庫的資料

Oracle 11g R2 DBA 操作指南(13) 空間資料檔案管理

1.Oracle 資料庫的邏輯結構 (邏輯結構)一個數據庫有一個或多個表空間,一個表空間有一個或多個段,而一個段由一個或多個區段組成,一個區段由多個數據庫塊組成,一個數據庫塊由多個作業系統資料庫塊組成。 (物理結構)一個表空間有一個或多個數據檔案,一個數據檔

oracle-dba-空間資料檔案管理

表空間與資料檔案管理 ORACLE資料庫應用系統ORACLE中介軟體DBMS資料檔案 邏輯結構:一個數據庫有多個表空間,一個表空間有多個段,一個段有多個區段,一個區段有多個數據塊,一個數據塊有多個作業系統資料庫塊 物理結構:一個表空間有多個數據

ORACLE資料庫空間資料檔案之間的關係

完整的Oracle資料庫通常由兩部分組成:Oracle資料庫和資料庫例項。 1) 資料庫是一系列物理檔案的集合(資料檔案,控制檔案,聯機日誌,引數檔案等); 2) Oracle資料庫例項則是一組Oracle後臺程序/執行緒以及在伺服器分配的共享記憶體區。 在啟動

oracle資料庫空間資料檔案的關係

資料庫,表空間,及資料檔案關係密切,但同時又有很多區別: 一個Oracle資料庫是由一個或多個表空間(tablespace)的邏輯儲存單位構成的,這些表空間共同來儲存資料庫的資料 Oracle資料庫

Oracle建立資料庫空間資料字典的概念

(一)Oracle建立資料庫不同於MySQL Oracle建立資料庫主要有一下幾種方法: 第一種方法:使用Oracle的Database Configuration Assistant(資料庫配置助手

關於undo空間資料檔案非自動擴充套件問題

      我這邊生產環境,一般undo表空間都會預先設定一個大小,並且保留資料檔案的自動擴充套件,一直也相安無事。最近有套系統的undo表空間一直報警,使用率超過85%。看了下表空間大小,才5個G,以後確實是undo表空間過小了,於是擴到10G。結果第二天又報警了

oracle建立臨時空間資料空間以及刪除

-----建立臨時表空間----- create temporary tablespace zhangmingchaotemp tempfile 'd:\oracle\zhangmingchaotemp.dbf' -----初始化大小----- size 50m

Oracle 空間增加資料檔案 修改資料檔案容量上限

查詢已存在表空間資訊 col "表空間名" for a20 col "資料檔案全路徑" for a50 set linesize 150 set pagesize 1000 select f.ta

oracle 空間資料檔案丟失或損壞的恢復

表空間的資料檔案丟失或損壞的恢復 select ts#,file#,name from v$datafile; 查看錶空間和編號 刪除一個表空間檔案 此時關閉資料庫 再開

Oracle 11g筆記——調整表空間資料檔案的大小、移動資料檔案、聯機重做日誌檔案、控制檔案

一、調整表空間和資料檔案的大小    1、調整表空間大小    alter database datafile '/u01/app/oracle/oradata/rmanrep/users01.dbf' resize 15m;    2、調整表空間大小為允許自動擴充套件

空間資料檔案、schema、的關係

首先,你需要明白的一點是:資料庫的物理結構是由資料庫的作業系統檔案所決定,每一個Oracle資料庫是由三種類型的檔案組成:資料檔案、日誌檔案和控制檔案。資料庫的檔案為資料庫資訊提供真正的物理儲存。 每一個Oracle資料庫有一個或多個物理的資料檔案(data file)。一個

PostgreSQL在不同的空間移動資料檔案

## 一、背景 在工作中,可能會遇到將表從一個表空間移動另一個表空間。例如 * 對資料進行冷處理 * 表空間所在的磁碟空間不足 * 建表時分配錯了表空間 以上等等,可能需要你將一個表移動表空間。 ## 二、表空間介紹 [PostgreSQL的表空間](https://www

Oracle中查詢當前資料庫中的所有空間對應的資料檔案語句命令

--轉載路徑:http://www.cnblogs.com/wangsaiming/p/3573917.html --------------------------------------------------------------------------------

本地管理空間字典管理空間的特點,ASSM有什麼特點

字典管理表空間(Dictionary-Managed Tablespace簡稱DMT),8i以前包括以後都還可以使用的一種表空間管理模式,通過資料字典管理表空間的空間使用。 Oracle使用兩個字典來記錄Extents的使用情況:SYS.FET$記錄空閒的Extents

建立一個本地管理空間之AUTOALLOCATEUNIFORM

官方文件解釋: Create a locally managed tablespace by specifying LOCAL in the EXTENT MANAGEMENT clause of the CREATE TABLESPACE statement. Th

本地管理空間--資料字典管理空間

6.5資料字典表空間 --建立資料字典表空間 CREATE TABLESPACE JINLINA DATAFILE 'C:\Disk2\MOON\JINLIAN01.DBF' SIZE 50M,          'C:\Disk4\MOON\JINLIAN02.DBF'