Oracle 表空间的日常维护与管理

Oracle 表空间的日常维护与管理

1、创建数据表空间

查询有关表和视图:【使用版本Oracle 11gR2】
1.查看表空间信息
dba_tablespaces
v$tablespace
2.查看数据文件
dba_data_files
v$datafile

3.查看临时表空间
dba_temp_files
v$tempfile

当前的数据文件位置

SQL> col file_name format a60;
SQL> select file_name from dba_data_files;
FILE_NAME
------------------------------------------------------------
+DGSYSTEM/kyeupdb/datafile/system.271.978829205
+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265
+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323
+DGSYSTEM/kyeupdb/datafile/users.275.978829391
+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421
+DGSYSTEM/kyeupdb/datafile/kye01.dbf
6 rows selected.
  • 创建单个数据文件的表空间
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TS_EXAMPLE
KYE_TBS01

7 rows selected.
SQL> create tablespace kye_tbs02 datafile '+DGSYSTEM/kyeupdb/datafile/kye02.dbf' size 2M
  2  autoextend off
  3  segment space management auto;

Tablespace created.

autoextend off —不自动扩展
segment space management auto —自动段管理 推荐

  • 创建多个数据文件
SQL> CREATE TABLESPACE kye_tbs03 LOGGING DATAFILE
 '+DGSYSTEM/kyeupdb/datafile/kye03_1.dbf' SIZE 2M AUTOEXTEND OFF, 
 '+DGSYSTEM/kyeupdb/datafile/kye03_2.dbf' SIZE 2M AUTOEXTEND OFF
  EXTENT MANAGEMENT LOCAL 
  SEGMENT SPACE MANAGEMENT AUTO;

Tablespace created.

SQL> create tablespace kye_tbs04 logging datafile
  2  '+DGSYSTEM/kyeupdb/datafile/kye04_1.dbf' size 2M autoextend on next 1M maxsize 20M,
  3  '+DGSYSTEM/kyeupdb/datafile/kye04_2.dbf' size 2M autoextend on next 1M maxsize 20M
  4  extent management local
  5  segment space management auto;

Tablespace created.

  • 创建大表空间
SQL> create bigfile tablespace kye_bigtbs1 datafile
  2  '+DGSYSTEM/kyeupdb/datafile/kye_bigfile1.dbf' size 1G;

Tablespace created.

2、创建临时表空间

SQL> create temporary tablespace kye_tmptbs1
  2  tempfile '+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1.dbf'
  3  size 5M autoextend off;

Tablespace created.

3、创建 UNDO 表空间

SQL> create undo tablespace kye_undotbs1
  2  datafile '+DGSYSTEM/kyeupdb/datafile/kye_undo1.dbf'
  3  size 10m autoextend off;

Tablespace created.

4、表空间的扩展与修改大小

  • 表空间的扩展
--- 查看此时创建的表空间

SQL> col name format a30;
SQL> select * from v$tablespace;

       TS# NAME 			  INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
	 0 SYSTEM			  YES NO  YES
	 1 SYSAUX			  YES NO  YES
	 2 UNDOTBS1			  YES NO  YES
	 3 TEMP 			  NO  NO  YES
	 4 USERS			  YES NO  YES
	 5 TS_EXAMPLE			  YES NO  YES
	 7 KYE_TBS01			  YES NO  YES
	 8 KYE_TBS02			  YES NO  YES
	 9 KYE_TBS03			  YES NO  YES
	10 KYE_TBS04			  YES NO  YES
	11 KYE_BIGTBS1			  YES YES YES

       TS# NAME 			  INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
	12 KYE_TMPTBS1			  NO  NO  YES
	13 KYE_UNDOTBS1 		  YES NO  YES

13 rows selected.
SQL> col file_name format a55;
SQL> select file_name from dba_data_files;

FILE_NAME
-------------------------------------------------------
+DGSYSTEM/kyeupdb/datafile/system.271.978829205
+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265
+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323
+DGSYSTEM/kyeupdb/datafile/users.275.978829391
+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421
+DGSYSTEM/kyeupdb/datafile/kye01.dbf
+DGSYSTEM/kyeupdb/datafile/kye02.dbf
+DGSYSTEM/kyeupdb/datafile/kye03_1.dbf
+DGSYSTEM/kyeupdb/datafile/kye03_2.dbf
+DGSYSTEM/kyeupdb/datafile/kye04_1.dbf
+DGSYSTEM/kyeupdb/datafile/kye04_2.dbf

FILE_NAME
-------------------------------------------------------
+DGSYSTEM/kyeupdb/datafile/kye_bigfile1.dbf
+DGSYSTEM/kyeupdb/datafile/kye_undo1.dbf

13 rows selected.

SQL> alter tablespace kye_tbs01 add datafile '+DGSYSTEM/kyeupdb/datafile/kye01_1.dbf' size 2m autoextend off;

Tablespace altered.

SQL> alter tablespace kye_tmptbs1 add tempfile '+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1_1.dbf' size 2m autoextend off;

Tablespace altered.

  • 修改大小

SQL> col name format a55;
SQL> select name,bytes/1024/1024 from v$tempfile;

NAME							BYTES/1024/1024
------------------------------------------------------- ---------------
+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379			   1024
+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1.dbf			      5
+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1_1.dbf			      2

SQL> alter database tempfile '+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1.dbf' resize 6m;

Database altered.

SQL> select name,bytes/1024/1024 from v$tempfile;

NAME							BYTES/1024/1024
------------------------------------------------------- ---------------
+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379			   1024
+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1.dbf			      6
+DGSYSTEM/kyeupdb/datafile/kye_tmptbs1_1.dbf			      2

5、表空间重命名

SQL> alter tablespace kye_bigtbs1 rename to kye_bigtbs;

Tablespace altered.

6、表空间的删除

drop tablespace 表空间名字;--直接删除表空间,而不删除对应的数据文件
drop tablespace 表空间名字 including contents and datafiles; --加上该选项 则连同数据文件 一起删除了(常用

SQL>  drop tablespace kye_tbs04 including contents and datafiles;

Tablespace dropped.

SQL> drop tablespace kye_bigtbs including contents and datafiles cascade constraints;

Tablespace dropped.

7、更改表空间的读写模式

SQL> alter tablespace kye_tbs03 read only;

Tablespace altered.

SQL> alter tablespace kye_tbs03 read write;

Tablespace altered.

也可以修改表:

SQL> create table kye001 (id int,name varchar2(22));

Table created.

SQL> alter table kye001 read only;

Table altered.

SQL> alter table kye001 read write;

Table altered.

8、更改表空间的在线模式

alter tablespace kye_tbs01 offline;

Tablespace altered.

SQL> alter tablespace kye_tbs01 online;

Tablespace altered.

在上面的测试中可以看出,直接可以设置表空间离线,但是在下面的操作中可以对数据文件直接设置成离线吗?
可以对数据文件进行操作:

alter database datafile 9 offline;
alter database datafile '+DGSYSTEM/kyeupdb/datafile/kye03_2.dbf' online;
alter database datafile 9 offline for drop;

在对数据文件操作的时候会出现错误:
除非启用了介质恢复, 否则不允许立即脱机.在NOARCHIVELOG模式,不可以立即离线数据文件。

posted @ 2018-07-09 23:24  数据库BOSS  阅读(277)  评论(0编辑  收藏  举报