表空间管理

Posted by Vincent on February 23, 2009

1.create tablespaces

     sql> create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,

sql> 'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k [logging/nologging]

sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)

sql> [online/offline] [permanent/temporary] [extent_management_clause]

2.locally managed tablespace

sql> create tablespace user_data datafile 'c:\oracle\oradata\user_data01.dbf'

sql> size 500m extent management local uniform size 10m;

3.temporary tablespace

sql> create temporary tablespace temp tempfile 'c:\oracle\oradata\temp01.dbf'

sql> size 500m extent management local uniform size 10m;

4.change the storage setting

sql> alter tablespace app_data minimum extent 2m;

sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);

5.taking tablespace offline or online

sql> alter tablespace app_data offline;

sql> alter tablespace app_data online;

6.read_only tablespace

sql> alter tablespace app_data read only|write;

7.droping tablespace

sql> drop tablespace app_data including contents;

8.enableing automatic extension of data files

sql> alter tablespace app_data add datafile 'c:\oracle\oradata\app_data01.dbf'size 200m

sql> autoextend on next 10m maxsize 500m;

9.change the size fo data files manually

sql> alter database datafile 'c:\oracle\oradata\app_data.dbf'resize 200m;

10.Moving data files: alter tablespace

sql> alter tablespace app_data rename datafile 'c:\oracle\oradata\app_data.dbf'

sql> to 'c:\oracle\app_data.dbf';

11.moving data files:alter database

sql> alter database rename file 'c:\oracle\oradata\app_data.dbf'

sql> to 'c:\oracle\app_data.dbf';

---from eygle :http://www.eygle.com/archives/2005/11/oracle_howto_move_datafile_readonly.html

在Oracle数据库中,有多种方式可以移动数据文件的位置,之前介绍过几种方法:Oracle HowTo:在非归档模式下如何更改数据文件位置Oracle HowTo:如何移动数据文件的位置?
以上两种方法,可能在要求较高的24x7系统中不适合采用,因为会使表空间长时间不可用。
特别是当表空间数据文件巨大时,物理拷贝可能需要较长的时间。

本文推荐另外一种方法,可以做一个折中,以下是一个简单的步骤说明:
1.将表空间置于只读
只读状态可以使数据仍然可为用户访问.
alter tablespace tablespace_name read only;
2.物理拷贝文件
3.将表空间offline
alter tablespace tablespace_name offline;
4.rename数据文件
alter database rename file 'old_dir_file' to 'new_dir_file';
5.将表空间联机
alter tablespace tablespace_name online;
6.将表空间置于read write模式
alter tablespace tablespace_name read write;


This work is licensed under a CC A-S 4.0 International License.