1. 表空间的创建,修改和删除。 登陆sqlplus(以”SYS”用户,“SYSDBA”身份登陆或者SYSTEM用户登录)orcl数据库,创建名为 RSGLspace1的表空间: 【1】 创建数据库文件rsgl01.dbf( 要求文件大小150M,数据文件满后自动扩展 (AUTOEXTEND),增量为10M,最大文件为300M,可重用。 【2】 查询数据字典DBA_TABLESPACES,查看RSGLspace1表空间的相关信息 表空间数据文件管理: 【3】 修改表空间,添加数据文件rsgl02.dbf( 要求文件大小50M)。 【4】 查询数据字典DBA_DATA_FILES,查看RSGLspace1表空间中的数据文件信息 【5】 修改表空间,删除数据文件rsgl02.dbf。 【6】 查询数据字典DBA_DATA_FILES,查看RSGLspace1表空间中的数据文件信息 2. 表空间维护管理 修改表空间的可用性 【1】 将表空间RSGLspace1设置为OFFLINE状态。 【2】 查询数据字典DBA_TABLESPACES,查看RSGLspace1表空间的状态信息 思考:尝试往离线的表空间写入数据,能否写入成功?为什么?输入以下创建表代码,看看系统的提示 create table aa (aa char(10) ) tablespace RSGLspace1; 【3】 将表空间RSGLspace1设置为ONLINE状态。再次创建表,是否能创建成功。 【4】 再次查询数据字典DBA_TABLESPACES,查看RSGLspace1表空间的状态信息
时间: 2025-03-10 12:07:59 浏览: 63
### Oracle 表空间的创建、修改、删除及管理
#### 创建表空间
为了创建一个新的表空间,在SQL*Plus环境中作为SYSDBA角色登录后可以使用`CREATE TABLESPACE`语句。下面是一个例子,它展示了如何创建名为`example_tbs`的新表空间并指定其数据文件的位置和初始尺寸:
```sql
CREATE TABLESPACE example_tbs
DATAFILE '/u01/app/oracle/oradata/example_tbs.dbf'
SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
```
此命令会创建一个能够自动增长的数据文件[^3]。
#### 修改表空间属性
对于已经存在的表空间,可以通过`ALTER DATABASE DATAFILE`来调整特定数据文件的大小或者改变它们的增长特性。例如,要将某个数据文件重设为固定大小而不允许进一步扩展,则可执行如下指令:
```sql
ALTER DATABASE DATAFILE '/path/to/datafile.dbf' RESIZE 500M;
ALTER DATABASE DATAFILE '/path/to/datafile.dbf' AUTOEXTEND OFF;
```
这些更改会影响该数据文件未来的分配行为[^2]。
#### 将表空间置于离线或在线状态
有时可能需要暂时使某些表空间不可访问以便于维护工作;这时就可以把它们置为OFFLINE模式。当完成必要的操作之后再将其恢复成ONLINE即可恢复正常服务。具体做法如下所示:
```sql
-- 设置表空间为脱机状态
ALTER TABLESPACE example_tbs OFFLINE;
-- 让之前被标记为脱机的表空间重新上线
ALTER TABLESPACE example_tbs ONLINE;
```
上述过程有助于控制何时以及哪些部分应该对外提供读写权限[^1]。
#### 删除表空间及其相关内容
在决定移除不再使用的表空间前,请务必确认所有依赖于此资源的对象都已经被妥善处理完毕。按照正确的顺序依次执行以下步骤:先清理掉关联对象(如用户),接着才是整个表空间本身连同内部存储的信息项,最后才考虑物理层面的数据文件清除动作。
```sql
DROP USER test_user CASCADE; -- 清理相关联的用户账户
DROP TABLESPACE example_tbs INCLUDING CONTENTS AND DATAFILES; -- 移除表空间及相关内容
```
通过这种方式能有效防止残留垃圾影响系统的整体性能表现。
#### 查询现有表空间信息
管理员经常需要用到查询功能来获取当前环境下的各种统计资料。针对表空间而言,有两个非常有用的视图可以帮助我们快速掌握全局概况——分别是`DBA_TABLESPACES`用于查看逻辑结构上的定义详情,而`DBA_DATA_FILES`则提供了关于实际磁盘上所占用的空间情况说明。
```sql
SELECT tablespace_name, status FROM dba_tablespaces;
SELECT file_name, bytes/1048576 AS size_mb FROM dba_data_files;
```
这两条简单的查询语句可以让管理者轻松获得所需的关键指标[^4]。
阅读全文
相关推荐



















