1. 程式人生 > >Oracle數據庫的表空間基本管理

Oracle數據庫的表空間基本管理

12c 圖片 write sysaux 創建數據庫 9.png taf oracle數據庫 res

一、概述

Oracle數據庫是通過表空間來存儲物理表的,一個數據庫實例可以有N個表空間,一個表空間下可以有N張表。

有了數據庫,就可以創建表空間。

表空間(tablespace)是數據庫的邏輯劃分,每個數據庫至少有一個表空間(稱作SYSTEM表空間)。為了便於管理和提高運行效率,可以使用一些附加表空間來劃分用戶和應用程序。例如:USER表空間供一般用戶使用,RBS表空間供回滾段使用。一個表空間只能屬於一個數據庫。

技術分享圖片

表空間是數據庫中最大的邏輯單位, SYSTEM和SYSAUX表空間是在創建數據庫時創建的必須存在的表空間,還會有TEMP, USERS等
每個表空間是由一個或多個數據文件組成的,一個數據文件只能與一個表空間相關聯

表空間的大小等於構成該表空間的所有數據文件大小之和

-

安裝完 Oracle後自動創建的表空間主要包括

  • SYSTEM系統表空間,存放關於表空間名稱、控制文件、數據文件等管理信息,它屬於sys、 system模式。不能刪除或重命名。
  • SYSAUX輔助系統表空間,用於減少系統表空間的負荷,提高效率
  • TEMP臨時表空間,存放臨時表和臨時數據,用於排序
  • USERS用戶表空間,存放永久性用戶對象及私有信息,也稱數據表空間。註意:每一個數據庫都應該有一個用戶表空間,以便在創建用戶時分配給用戶,否則用戶的數據將會使用SYSTEM表空間。
  • UNDO重做表空間,用來幫助回退未提交的事物數據

二、實驗環境

主機 操作系統 IP地址 數據庫版本
Oracle CentOS 7 192.168.100.135 oracle 12c

三、表空間管理

首先切換為Oracle用戶

[root@HOSTNAMEoracle ~]# su - oracle

進入數據庫,並啟動Oracle

[oracle@HOSTNAMEoracle ~]$ sqlplus / as sysdba
SQL> startup

開啟三階段

啟動實例--》數據庫裝載完畢--》數據庫開啟
技術分享圖片
SQL> quit #退出

開啟監聽

[oracle@HOSTNAMEoracle ~]$ lsnrctl 

LSNRCTL> start

技術分享圖片

技術分享圖片

LSNRCTL> quit


進入Oracle

[oracle@HOSTNAMEoracle ~]$ sqlplus / as sysdba

技術分享圖片

--------------------創建表空間-----------------------

創建表空間school(大小10M 自動擴展)

SQL> create tablespace school
  2  datafile ‘/orc/app/oracle/oradata/school01.dbf‘
  3  size 10m autoextend on;

表空間已創建。

技術分享圖片

查看下是否有創建成功

[oracle@HOSTNAMEoracle ~]$ cd /orc/app/oracle/oradata
[oracle@HOSTNAMEoracle oradata]$ ls
orcl  school01.dbf

技術分享圖片

--------------------調整表空間大小------------------

修改大小

SQL> alter database datafile
  2  ‘/orc/app/oracle/oradata/school01.dbf‘
  3  resize 80M;

數據庫已更改。

技術分享圖片

查看下

技術分享圖片

添加文件

SQL> alter tablespace school
  2  add datafile
  3  ‘/orc/app/oracle/oradata/school02.dbf‘
  4  size 50M autoextend on;

表空間已更改。

技術分享圖片

查看下

技術分享圖片

---------------------表空間權限----------------------------

#更改表空間school權限只能可讀

SQL> alter tablespace school read only;

表空間已更改。
#更改表空間權限為可讀可寫

SQL> alter tablespace school read write;                

表空間已更改。

------------------刪除表空間----------------

SQL> drop tablespace school including contents;

表空間已刪除。(including contents 可選刪除有內容的表空間)

技術分享圖片

查看下

SQL> select tablespace_name from dba_tablespaces;

技術分享圖片

Oracle數據庫的表空間基本管理