00940 oracle,如何管理Oracle的表空间和数据文件

本文详细介绍了如何在Oracle数据库中管理表空间和数据文件,包括查看表空间、数据文件,创建、更改、删除表空间,管理数据文件,以及设置表空间的offline、readonly状态等操作。此外,还讨论了系统表空间、非系统表空间、Undo表空间、临时表空间的用途和管理。
摘要由CSDN通过智能技术生成

如何管理Oracle的表空间和数据文件

[日期:2011-12-23]

来源:Linux社区

作者:Linux

[字体:大 中 小]

SQL> conn sys/xin as sysdba

已连接。

SQL> set wrap off

SQL> set linesize 100

1. 一些基本的操作

(1) 查看表空间:

SQL> select * from v$tablespace;

(2) 查看数据文件:

SQL> select * from v$datafile;

(3) 查看tablespace 和data files之间的对应关系(通过表空间的号连接在一起):

SQL> select t1.name,t2.name

2 from v$tablespace t1, v$datafile t2

3 where t1.ts#=t2.ts#

4 ;

(4) 更改表空间

SQL> alter tablespace users

2 add datafile 'E:\Oracle\ORADATA\XINER\USERS02.DBF' size 10m;

表空间已更改。

2. 管理表空间

在oracle 里将表空间分为系统表空间和非系统表空间。

(1) 系统表空间包括系统表,数据字典,以及系统回滚段等信息。

查看系统回滚段:

SQL> select * from dba_rollback_segs;

(2) 非系统表空间用来分离段(分开临时数据和永久性数据,索引和表放在不同的表空间等等)可以给系统的性能带来

好处,同时可以控制分配给用户的空间限额。

控制用户对空间的使用:

SQL> alter user HR

2 quota 10m on users;

用户已更改。

(3) 如何创建表空间:([]均表示可选)

create tablespace xxx

[datafile 'xxx']---OMF时可以不指定

[size xxx--kb,mb]

[extent management local/dictionary]

[default storage(xxx)]

dictionary-managed tablespaces在oracle 9i 里已经不建议使用。

SQL> create tablespace ice

2 datafile 'e:\oracle\oradata\xiner\ice.dbf' size 5m

3 extent management dictionary

4 default storage(

5 initial 100k

6 next 100k

7 pctincrease 10)

8 offline;

表空间已创建。

如果表空间管理指定为Local型,则不能使用default storage。此时不会和数据字典表打交道,不会和系统表产生

资源争用,也不会产生回滚数据(因为不涉及修改系统表),其次也不会有递归的资源争用。

SQL> create tablespace ice1

2 datafile 'e:\oracle\oradata\xiner\ice1.dbf' size 5m

3 extent management local

4 uniform size 1m;

表空间已创建。

SQL> create tablespace ice2

2 datafile 'e:\oracle\oradata\xiner\ice2.dbf' size 5m

3 extent management local autoallocate;

表空间已创建。

(4) Undo 表空间用来存储undo段,不能包括其他的数据对象,使用locally管理。

undo 段主要用来保存数据改变的旧值,可以回滚transcation(rollback)。

SQL> show parameter undo

SQL> create undo tablespace ice3

2 datafile 'e:\oracle\oradata\xiner\ice3.ora' size 5m

3 extent management local

4 uniform size 1m; //此时不能定义uniform size

uniform size 1m

*

ERROR 位于第 4 行:

ORA-30024: CREATE UNDO TABLESPACE 的说明无效

SQL> del 4

SQL> run

1 create undo tablespace ice3

2 datafile 'e:\oracle\oradata\xiner\ice3.ora' size 5m

3* extent management local

表空间已创建。

不能在回滚表空间建立表对象(不能放其他的数据对象):

SQL> create table tt1

2 (id int)

3 tablespace ice3;

create table tt1

*

ERROR 位于第 1 行:

ORA-30022: 无法在撤消表空间中创建段

(5) 临时表空间用来支持排序,不能包括永久的数据对象,建议使用locally管理。

SQL> create temporary tablespace ice4

2 tempfile 'e:\oracle\oradata\xiner\ice4.ora' size 5m

3 extent management local;

表空间已创建。

SQL> create table tt1

2 (id int)

3 tablespace ice4;

create table tt1

*

ERROR 位于第 1 行:

ORA-02195: 尝试创建的PERMANENT对象在TEMPORARY表空间中

(6) 缺省的临时表空间:

SQL> alter database default temporary tablespace ice4

数据库已更改。

临时表空间不可以被置为offline,也不能指定为read only,不可以被删除,除非用另外一个表空间代替它。

SQL> alter talbespace ice4 offline

alter talbespace ice4 offline

*

ERROR 位于第 1 行:

ORA-00940: 无效的 ALTER 命令

SQL> alter tablespace ice4

2 read only;

alter tablespace ice4

*

ERROR 位于第 1 行:

ORA-03217: 变更 TEMPORARY TABLESPACE 无效的选项

(7) offline状态:对数据文件改名or搬动数据文件的位置or对数据库进行部分的修复

(7) offline状态:对数据文件改名or搬动数据文件的位置or对数据库进行部分的修复

SQL> alter tablespace users offline;

表空间已更改。

SQL> alter tablespace users online;

表空间已更改。

不可以置为offline状态的表空间包括:system表空间(如果要对系统表空间的文件进行改变则要关闭数据库);

包括active undo 段的表空间;缺省的临时表空间

(8) read only 表空间:对表空间只能进行读操作;数据对象可以从表空间删除

SQL> alter tablespace users read only;

表空间已更改。

(9) 删除表空间:

SQL> create table tt1

2 (id int)

3 tablespace ice;

表已创建。

SQL> drop tablespace ice1;

表空间已丢弃。

SQL> drop tablespace ice2

2 including contents and datafiles;

表空间已丢弃。

(10) resize表空间:自动扩张(autoextend on)、手动(resize)

3. 管理数据文件

(1) 移动data files:

表空间必须是offline(使用alter tablespace xxx rename datafile 'xx' to 'xx');

目标数据文件必须已经存在;

如果是不能处于offline状态的表空间则要关闭数据库,将其启动到mount状态,同时目标数据文件必须已经存在。

(使用alter database rename file 'xx' to 'xx')

(2) 配置OMF文件来创建表空间的时候DB_CREATE_FILE_DEST会将数据文件存放在缺省的位置。如果想要更改位置则用

alter system set db_create_file_dest='xx';

用OMF创建表空间:create tablespace xxx; 删除:drop tablespace xxx;  0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值