oracle建立數據庫和用戶、表空間,管理表空間和數據文件簡介

介紹html

表空間是數據庫的邏輯組成部分mysql

從物理上將:數據庫數據存放在數據文件中sql

從邏輯上將:數據庫則是存放在表空間中數據庫

表空間由一個或是多個數據文件組成session

 

數據庫的邏輯結構

介紹:oracle

Oracle中邏輯結構包括表空間、段、區、塊app

說明:post

數據庫由表空間構成性能

而表空間又是由段構成spa

而段又是由區構成

而區又是由Oracle塊構成

 

 

這樣的一種結果,能夠提升數據庫的效率

 

表空間

介紹:

表空間用於從邏輯上組織數據庫的數據

數據庫邏輯上是由一個或是多個表空間組成的

 

表空間的做用:

一、控制數據庫佔用的磁盤空間

二、dba能夠將不一樣數據類型部署到不一樣的位置。這樣有利於提升i/o性能,同時利於備份和恢復等管理操做

 

 

oracle建立數據庫和用戶、表空間

oracle的使用方式和mysql和sql server他們不一樣,oracle在建立數據庫的時候要對應一個用戶,數據庫和用戶通常一一對應,

mysql和sql server 直接經過create databse 「數據庫名」 就能夠直接建立數據庫了,而oracle建立一個數據庫須要如下三個步驟

  1. 建立兩個表空間和對應的數據文件(.DBF),若已存在用戶和關聯的數據庫,則需先刪除用戶和數據庫
  2. 建立用戶與上面建立的文件造成映射關係
  3. 給用戶添加權限

 

1、建立兩個表空間和對應的數據文件(monitor.dbf 和monitor_temp.dbf 兩個文件)  ,若已存在用戶和關聯的數據庫,則需先刪除用戶和數據庫

CREATE TABLESPACE monitor LOGGING DATAFILE 'D:\app\owner\oradata\orcl\monitor.dbf' 
SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;

create temporary tablespace monitor_temp tempfile 'D:\app\owner\oradata\orcl\monitor_temp.dbf'
size 100m autoextend on next 32m maxsize 500m extent management local;

tablespace:表空間名

datafile:'數據文件路徑'

size:數據文件的大小

maxsize:表數據文件最大大小

uniform size 區的大小; 

 

2、建立用戶與上面建立的文件造成映射關係(用戶名爲monitor,密碼爲monitor)

CREATE USER monitor IDENTIFIED BY monitor DEFAULT TABLESPACE monitor TEMPORARY TABLESPACE monitor_temp;

 

3、添加權限

grant connect,resource,dba to monitor;
grant create session to monitor;

 

有時候也會用到刪除數據庫和刪除用戶的操做,這裏也給出刪除的語句

4、刪除數據庫

DROP TABLESPACE monitor INCLUDING CONTENTS AND DATAFILES;

 

5、刪除用戶

drop user monitor cascade;

 

 

管理表空間和數據文件簡介

創建表空間

創建表空間是使用create tablespace命令完成的,要注意時,通常狀況下,創建表空間是特權用戶或是dba來執行的,

若是用其它用戶來建立表空間,則用戶必需要具備create tablespace的系統權限

創建數據表空間

在創建數據庫後,爲便於管理表,最好創建本身的表空間

create tablespace tangtao001 datafile 'd:\t001.dbf' size 20m uniform size 128k;

 

使用數據表空間

向新建的表空間添加表:

create table myDept(deptno number(4),dname varchar2(15),loc varchar2(13)) tablespace tangtao001;

說明:執行完上述命令後,會創建名稱爲tangtao001 的表空間,併爲該表空間創建名稱爲t001.dbf的數據文件,區的大小爲128k

 

一、顯示錶空間信息

a) 查詢數據字典視圖dba_tablespaces。顯示錶空間信息

select tablespace_name from dba_tablespaces;

二、顯示錶空間所包含的數據文件

a) 查詢數據字典視圖dba_data_files,能夠顯示錶空間所包含的數據文件

select file_name,bytes from dba_data_files where tablespace_name='表空間名';

 

改變表空間的狀態

當創建表空間時,表空間處於聯機的(online)狀態,此時該表空間是能夠訪問的,而且該表空間是能夠讀寫的,便可以查詢該表空間的數據,並且還能夠在表空間執行各類語句。

可是在進行系統維護或是數據維護時,可能須要改變表空間的狀態,通常狀況下,由特權用戶或是dba來操做

一、使表空間脫機

alter tablespace 表空間名 offline;

 

二、使表空間聯機

alter tablespace 表空間名 online;

 

三、只讀表空間

a) 當創建表空間時,表空間能夠讀寫,若是不但願在該表空間上執行update、delete、insert操做,那麼能夠將該表空間修改成只讀

alter tablespace 表空間名 read only;

 

案例:

一、知道表空間名。顯示該表空間的全部表

select * from tall_tables where tablespace_name='表空間名';

二、知道代表,查看該表屬於哪一個表空間

select tablespace_name,table_name from user_tables where table_name='emp';

 

注意:

經過2,能夠知道scott.emp是在system這個表空間上,如今能夠將system改成只讀,可是不會成功。由於system是系統表空間,若是是普通表空間,能夠將其設爲只讀

 

刪除表空間

通常狀況下,有特權用戶或是dba來操做,若是是其它用戶操做,那麼要求用戶具備drop tablespace系統權限

drop tablespace 表空間名 including contents and datafiles;

 

說明:

Including contents 表示刪除表空間,刪除該表空間的全部數據庫對象,而datafiles表示將數據庫文件也刪除

 

擴展表空間

表空間是由數據文件組成的,表空間的大小實際上就是數據文件相加後的大小。那麼咱們能夠想象。假定表employee存放到tangtao001表空間上,初始大小就是2m。

當數據滿2m空間後,若是在向employee表插入數據,這樣就會顯示空間不足的錯誤

 

案例說明:

一、創建一個表空間tangtao001

二、在該表空間上創建一個普通標mydment 其結構和dept同樣

三、向該表中加入數據insert into mydment select * from dept;

四、當必定時候就會出現沒法擴展的問題,怎麼辦?

五、就擴展該表空間,爲其增長更多的存儲空間。有三種方法:

 

 

一、增長數據文件

alter tablespace 表空間名 add datafile '數據文件存放路徑' size 數據文件大小;

 

二、增長數據文件的大小

alter tablespace 表空間名 add datafile '數據文件存放的路徑' resize 數據文件新的大小;

這裏需注意,數據文件的大小不要超過500m

 

三、設置文件的自動增加

alter tablespace 表空間名 add datafile '數據文件存放路徑' autoextend on next 每次增長的大小 maxsize 數據文件大小的最大值;

 

移動數據文件

有時,若是數據文件所在的磁盤損壞時,該數據文件不能再使用,爲了可以從新使用,須要將這些文件的副本移動到其它的磁盤,而後恢復

 

案例說明:

一、肯定數據文件所在的表空間

select tablespace_name from dba_data_files where file_name='d:\t01.dbf';

二、使表空間脫機

a) 確保數據文件的一致性,將表空間轉變爲offline的狀態

alter tablespace tangtao001 offline;

三、使用命令移動數據文件到指定的目標位置

host move d:t01.dbf c:t01.dbf;

四、執行alter tablespace命令

a) 在物理上移動了數據後,還必須執行alter tablespace命令對數據庫文件進行邏輯修改

alter tablespace tangtao001 rename datafile 'd:t01.dbf' to 'c:t01.dbf';

五、使得表空間聯機

a) 在移動了數據文件後,爲了使用戶能夠訪問該表空間,必須將其轉變爲online的狀態

alter tablespace tangtao001 online;

 

表空間小結

一、瞭解表空間和數據文件的做用

二、掌握經常使用表空間,undo表空間和臨時表空間的創建方法

三、瞭解表空間的各個狀態

a) Online

b) Offline

c) Read write

d) Read only

四、瞭解移動數據文件的緣由,即便用alter tablespace和alter datatable命令移動數據文件的方法

 

參考博文:

https://www.cnblogs.com/qintangtao/archive/2012/11/04/2753549.html

https://www.cnblogs.com/0201zcr/p/4669548.html

相關文章
相關標籤/搜索