1. 程式人生 > 資料庫 >Oracle表空間設定和管理淺析

Oracle表空間設定和管理淺析

前言

表空間是 Oracle 特有的一種邏輯結構,是管理和組織 Oracle 資料檔案一種方式,一個Oracle 資料庫能夠有一個或多個表空間,而一個表空間則對應一個或多個物理的資料庫檔案。Oracle 的表空間分為永久空間和臨時表空間,同時又分為 smallfile tablespace和 bigfile tablespace。表空間管理是 Oracle dba的一項重要日常工作。

今天小編就從永久表空間管理和臨時表空間管理兩個維度,詳細介紹 Oracle表空間管理的具體操作。

永久表空間管理

1.1 建立表空間

引數說明:

  • EXTENT MANAGEMENT LOCAL AUTOALLOCATE:區大小由系統自動分配。
  • BLOCKSIZE 8K:塊大小為8K。
  • SEGMENT SPACE MANAGEMENT AUTO:段管理是自動的。
  • FLASHBACK ON:開啟閃回。

1.2 修改表空間

1、修改資料檔案大小

SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/TSH1/users01.dbf'
RESIZE 10M;

2、增加表空間資料檔案

ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/TSH1/users02.dbf' SIZE 20M AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED;

注:日常工作中建議通過增加資料檔案的方式給表空間擴容,因為對於線上業務系統來說,通過修改資料檔案大小的方式,對業務會產生一定的影響。

1.3 重命名錶空間

1) 設定表空間離線

SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;

2) 用一個作業系統實用程式重新命名此檔案如UNIX的cp或mv,或者windows的copy命令

$cp /u01/app/oracle/test01.dbf /u02/app/oracle/test01.dbf

3) 在資料檔案線上之前使用以下命令重新命名資料庫中的資料檔案

SQL> ALTER TABLESPACE USERS RENAME DATAFILE
'/u01/app/oracle/oradata/TSH1/users01.dbf'
TO
'/u02/app/oracle/oradata/TSH1/users01.dbf'

4)設定表空間online

SQL> ALTER TABLESPACE USERS ONLINE ;

1.4 設定表空間只讀

1) 設定表空間只讀

SQL> ALTER TABLESPACE USERS READ ONLY;

2) 設定表空間再次可寫

SQL> ALTER TABLESPACE USERS READ WRITE;

1.5 設定表空間離線、聯機

1)設定表空間離線

SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;

2)設定表空間聯機

SQL> ALTER TABLESPACE USERS ONLINE;

1.6 刪除表空間

SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;

1.7 修改表空間為預設永久表空間

1)修改表空間為預設永久表空間

SQL>ALTER DATABASE DEFAULT TABLESPACE users;

2)查詢當前資料庫預設的永久表空間

SQL>SELECT property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';

臨時表空間管理


2.1 建立臨時表空間

SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE 
 '/u01/app/oracle/oradata/TSH1/temp01.dbf' SIZE 31M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

引數說明:

  • EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M:區管理為本地管理,且區大小為1M。

2.2 修改臨時表空間

SQL> ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/TSH1/temp01.dbf'
RESIZE 60M;

2.3 刪除臨時表空間

SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

2.4 臨時表空間組管理

2.4.1 建立臨時表空間組

SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE 
 '/u01/app/oracle/oradata/TSH1/temp01.dbf' SIZE 31M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
TABLESPACE GROUP tmpgrp1;

說明:

增加一個名為tmpgrp1的臨時表空間組。

2.4.2 給臨時表空間組增加表空間

SQL> ALTER TABLESPACE temp02 TABLESPACE GROUP tmpgrp2;

2.4.3 將一個組設定為預設臨時表空間

SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmpgrp1;

表空間管理涉及的檢視

為了管理ORACLE資料庫的表空間,要熟悉幾個關鍵的字典檢視:

  • DBADATAFILES
  • DBA_TABLESPACES
  • DBAFREESPACE
  • DBA_SEGMENTS

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。