`
chineseoa
  • 浏览: 102932 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ORACLE表空间及其维护

阅读更多

基本概念


ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一
个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库
文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引
、聚簇、回退段和临时段等。
每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间
必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字
典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE
软件产品要求的表)。
一个小型应用的ORACLE数据库通常仅包括SYSTEM表空间,然而一个稍大型应用的ORACL
E数据库采用多个表空间会对数据库的使用带来更大的方便。


作用
表空间的作用能帮助DBA用户完成以下工作:
1.决定数据库实体的空间分配;
2.设置数据库用户的空间份额;
3.控制数据库部分数据的可用性;
4.分布数据于不同的设备之间以改善性能;
5.备份和恢复数据。
用户创建其数据库实体时其必须于给定的表空间中具有相应的权力,所以对一个用户来
说,其要操纵一个ORACLE数据库中的数据,应该:
1.被授予关于一个或多个表空间中的RESOURCE特权;
2.被指定缺省表空间;
3.被分配指定表空间的存储空间使用份额;
4.被指定缺省临时段表空间。
维护
表空间的维护是由ORACLE数据库系统管理员DBA通过SQL*PLUS语句实现的,其中表空间
创建与修改中的文件名是不能带路径的,因此DBA必须在ORACLE/DBS目录中操作。
1.新表空间的创建
语法格式:CREATE TABLESPACE 表空间名
DATAFILE 文件标识符[,文件标识符]...
[DEFAULT STORAGE(存储配置参数)]
[ONLINE\OFFLINE];
其中:文件标识符=’文件名’[SIZE整数[K\M][REUSE]
2.修改表空间配置
语法格式:ALTER TABLESPCE 表空间名
(ADD DATAFILE 文件标识符[,文件标识符]...
\RENAME DATAFILE ’文件名’[,’文件名’]...
TO ’文件名’[,’文件名’]...
\DEFAULT STORAGE(存储配置参数)
\ONLINE\OFFLINE[NORMAL\IMMEDIATE]
\(BEGIN\END)BACKUP);
3.取消表空间
语法格式:DROP TABLESPACE表空间名[INCLUDING CONTENTS];
4.检查表空间使用情况
(1)检查当前用户空间分配情况
SELECT tablespace_name,SUM(extents),SUM(blocks),SUM(bytes)
FROM user_segments
GROUP BY tablespace_name
(2)a.检查各用户空间分配情况
SELECT owner,tablespace_;
(2)b.检查各用户空间分配情况
SELECT owner,tablespace_name,SUM(extents),SUM(blocks),SUM(bytes)
FROM dba_segments
GROUP BY owner,tablespace_name;
(3) 检查当前用户数据库实体空间使用情况
SELECT tablespace_name,segment_name,segment_type,
COUNT(extent_id),SUM(blocks),SUM(bytes)
FROM user_extents
GROUP BY tablespace_name,segment_name,segment_type;
(4)检查各用户空间使用情况
SELECT owner,tablespace_name,COUNT(extent_id),SUM(blocks),
SUM(bytes) FROM user_extents
GROUP BY owner,tablespace_name;
(5)检查数据库空间使用情况
SELECT tablespace_name,COUNT(extent_id),SUM(blocks),SUM(bytes)
FROM user_extents
GROUP BY tablespace_name;
(6)检查当前用户自由空间情况
SELECT tablespace_name,COUNT(block_id),SUM(blocks),SUM(bytes)
FROM user_free_space
GROUP BY tablespace_name;
(7)检查数据库自由空间情况
SELECT tablespace_name,COUNT(block_id),SUM(blocks),SUM(bytes)
FROM dba_free_space
GROUP BY tablespace_name;
四、结论
表空间是ORACLE数据库系统维护的主要对象,通过本文能详细了解它的基本概念与作用
,并掌握其日常维护知识,从而保证ORACLE数据库系统的正常运行。

 

 

删除用户:

 

方法一:

 

drop user zs cascade;

连接相关对象等一并删除;

 

方法二:

 

conn /as sysdba
delete from user$ where name='dzysc';
commit;
alter system flush shared_pool;

 

oracle 删除用户命令和部分命令

drop user user_name cascade;

建立表空间

CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k

删除表空间

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

一、建立表空间

CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k

二、建立UNDO表空间

CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:

ALTER SYSTEM SET undo_tablespace=UNDOTBS02;

三、建立临时表空间

CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

四、改变表空间状态

1.使表空间脱机

ALTER TABLESPACE game OFFLINE;

如果是意外删除了数据文件,则必须带有RECOVER选项

ALTER TABLESPACE game OFFLINE FOR RECOVER;

2.使表空间联机

ALTER TABLESPACE game ONLINE;


3.使数据文件脱机

ALTER DATABASE DATAFILE 3 OFFLINE;

4.使数据文件联机

ALTER DATABASE DATAFILE 3 ONLINE;

5.使表空间只读

ALTER TABLESPACE game READ ONLY;

6.使表空间可读写

ALTER TABLESPACE game READ WRITE;

五、删除表空间

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

六、扩展表空间

首先查看表空间的名字和所属文件

select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;

1.增加数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;

2.手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;

3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M;

设定后查看表空间信息

SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE

分享到:
评论
1 楼 joy_yg 2008-12-15  
设定后查看表空间信息

SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE  

注红色的写错了,应该改为:C.TABLESPACE_NAME ; LZ可能笔误.

总结的非常不错,学习中.

相关推荐

    获取oracle表空间脚本

    在进行数据库备份与恢复的过程中,经常需要获取当前Oracle数据库中的表空间信息及其创建脚本。这样做的目的是为了确保在恢复过程中能够快速重建原有的数据库环境,包括表空间、用户以及其他数据库对象。本文将详细...

    Oracle表空间

    Oracle 表空间 Oracle 表空间是 Oracle 数据库中用于存储表、索引、约束、...Oracle 表空间是 Oracle 数据库中用于存储数据的逻辑存储单元,通过创建、管理和删除表空间,可以对数据库中的数据进行有效的管理和维护。

    oracle表空间变动注意事项

    在Oracle数据库管理与维护过程中,表空间(tablespace)的操作是一项非常重要的工作。表空间是Oracle数据库中的逻辑存储单元,用于组织和管理数据文件。本文将详细介绍关于Oracle表空间变动时需要注意的关键点,特别...

    ORACLE 表空间的部分操作

    删除表空间是一项敏感操作,通常在确定不再需要该表空间及其所有内容时执行。使用`DROPTABLESPACE`命令,结合`INCLUDING CONTENTS AND DATAFILES`选项可以同时删除表空间及其中的所有数据文件。 ```sql DROP ...

    oracle查看表空间表信息

    通过本文的学习,我们不仅掌握了如何使用`ALL_TABLES`视图来查询特定表空间内的表信息,还详细了解了该视图包含的各种字段及其含义。这对于进行Oracle数据库管理和优化具有重要意义。在实际工作中,根据具体需求灵活...

    ORACLE表空间的回收脚本.rar

    综上所述,Oracle表空间的回收是数据库维护的重要环节,涉及到一系列复杂操作。通过有效的回收策略和适当的脚本,可以显著提高数据库的性能和存储效率。具体到`ORACLE表空间的回收脚本.sql`,其具体内容应根据实际...

    Oracle数据库表空间的维护.pdf

    1. 系统表空间:包括SYSTEM和SYSAUX表空间,主要用于存放Oracle数据库的数据字典及其相关数据。 2. 用户表空间:包括大表空间和小表空间,主要用于存放用户创建的数据对象,如表和索引。 3. 临时表空间:用于处理...

    Oracle表空间详解

    在Oracle 10g中,本地化管理表空间(Uniform AutoAllocate)成为主流,它允许更精细的空间管理和自动扩展,降低了管理员的维护负担。 总之,理解Oracle表空间的基本概念及其管理方式是数据库设计和优化的关键。通过...

    Oracle表空间操作命令

    Oracle表空间的管理和维护对于确保数据库高效稳定运行至关重要。本文介绍了一些基本的表空间操作命令,包括查看表空间信息、创建表空间以及调整表空间大小的方法。这些知识对于Oracle数据库管理员来说是非常实用的。...

    oracle 数据库表空间巡检步骤

    使用以下SQL查询可以获取所有表空间及其总大小(以MB为单位): ```sql SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t....

    查看Oracle表空间使用情况

    ### Oracle表空间使用情况查询知识点 #### 一、概述 在Oracle数据库管理中,了解表空间的使用情况是非常重要的。这有助于我们优化存储资源、预防空间不足等问题。本篇文章将详细介绍如何通过SQL语句来查询Oracle表...

    Oracle表空间命令

    这条命令可以列出数据库中所有的数据文件及其相关信息,包括表空间名称、文件ID、文件名、状态等。 2. **计算表空间使用率**: ```sql SELECT a.tablespace_name, a.bytes / 1024 / 1024 "SumMB", (a.bytes ...

    Oracle数据库_实例_用户_表空间之间的关系.doc

    ### Oracle数据库、实例、用户、表空间的关系解析 #### 一、Oracle数据库概述 Oracle数据库是一种高度复杂的数据库管理系统,主要用于企业级数据...了解这些概念及其相互作用对于高效管理和维护Oracle数据库至关重要。

    oracle查看表空间使用情况

    ### Oracle 查看表空间使用情况 在Oracle数据库管理中,了解和...对于大型或关键业务系统的数据库来说,定期检查并维护表空间是必不可少的。希望本文提供的方法能够帮助到正在处理类似问题的Oracle数据库管理员们。

    ORACLE quota 表空间限制

    从 Oracle 10g R2 版本开始,提供了更为简洁的方式来同时删除表空间及其配额信息。例如: ```sql DROP TABLESPACE myts INCLUDING CONTENTS AND DATAFILES DROP QUOTA; ``` 这条命令会在删除表空间的同时移除与其...

    oracle数据库扩展表空间代码

    这条命令将返回所有数据文件的文件名及其所属的表空间名称。 #### 九、总结 本文介绍了Oracle数据库中关于表空间的一些基本操作,包括创建表空间、查询表空间使用情况、扩展表空间、重命名表空间等。通过这些操作...

    oracle表空间入门.doc

    - **删除表空间**:使用`DROP TABLESPACE`命令可以删除表空间及其内容。例如: ```sql DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES; ``` - **修改表空间大小**:可以通过`ALTER DATABASE DATAFILE`...

    oracle创建表空间、用户

    ### Oracle 创建表空间与用户详解 #### 一、创建表空间 在Oracle数据库中,表空间是物理存储单元的逻辑容器。每个表空间都由一个或多个数据文件组成,用于存储数据库中的各种对象(如表、索引等)。创建表空间是...

    建立oracle表空间

    这将删除表空间及其所有内容和数据文件。 2. **创建表空间** - **语法**: `CREATE TABLESPACE 表空间名 DATAFILE '数据文件路径' SIZE 数据文件大小;` - **示例**: 创建名为`BBS`的新表空间,数据文件为`e:\bbs....

    Oracle数据库表空间巡检指令

    在Oracle数据库管理中,表空间巡检是一项重要的维护工作,它可以帮助DBA(数据库管理员)及时发现并解决表空间使用情况中的问题。通过执行特定的SQL查询与系统命令,可以获取到关于表空间使用率、数据文件状态以及...

Global site tag (gtag.js) - Google Analytics