建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
修改表空间大小
alter database datafile '/path/NADDate05.dbf' resize 100M
移动表至另一表空间
alter table move tablespace room1;
一、建立表空间
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;
4.设定后查看表空间信息
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_NAME;
2)修改表空间
需要注意的是:不能将本地管理的永久性表空间转换为本地管理的临时表空间,也不能修改本地管理表空间中段的管理方式。
1) 扩展表空间
a) 为表空间添加数据文件
通过ALTERTABLESPACE…ADD DATAFILE语句为永久表空间添加数据文件,通过ALTER TABLESPACE… ADD TEMPFILE语句为临时表空间添加临时数据文件。
举例:
为ORCL数据库的ORCLTBS1表空间添加一个大小为10 MB的新数据文件。
SQL>ALTER TABLESPACE ORCLTBS1ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'SIZE 10M;
为ORCL数据库的ORCLTEMP1表空间添加一个大小为10 MB的临时数据文件。
SQL>ALTER TABLESPACE ORCLTEMP1ADD TEMPFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_2.DBF'SIZE 20M;
b) 改变数据文件的大小
可以通过改变表空间已有数据文件的大小,达到扩展表空间的目的。
举例:
将ORCL数据库的ORCLTBS1表空间的数据文件ORCLTBS1_2.DBF大小增加到20 MB。
SQL>ALTER DATABASE DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'RESIZE 20M;
c) 改变数据文件的扩展方式
如果在创建表空间或为表空间增加数据文件时没有指定AUTOEXTENDON选项,则该文件的大小是固定的。如果为数据文件指定了AUTOEXTENDON选项,当数据文件被填满时,数据文件会自动扩展,即表空间被扩展了。
举例:
将ORCL数据库的ORCLTBS1表空间的数据文件ORCLTBS1_2.DBF设置为自动扩展,每次扩展5 MB空间,文件最大为100 MB。
SQL>ALTER DATABASE DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE100M;
2) 修改表空间可用性
离线状态的表空间是不能进行数据访问的,所对应的所有数据文件也都处于脱机状态。
一些表空间必须是在线状态:SYSTEM表空间,存放在线回退信息的撤销表空间,临时表空间。
语法:
ALTER TABLESPACE tablespace_nameONLINE|OFFLINE
举例:
在归档模式下,将USERS表空间中所有的数据文件脱机,但USERS表空间不脱机。然后再将USERS表空间中的所有数据文件联机。
SQL>ALTER TABLESPACE USERS DATAFILEOFFLINE;
SQL>RECOVER TABLESPACE USERS;
SQL>ALTER TABLESPACE USERS DATAFILEONLINE;
3) 修改表空间的读写性
语法:
ALTER TABLESPACE tablespace_nameREAD ONLY|READ WRITE
表空间只有满足下列要求才可以转换为只读状态:
a) 表空间处于联机状态;
b) 表空间中不能包含任何活动的回退段;
c) 如果表空间正在进行联机数据库备份,不能将它设置为只读状态。因为联机备份结束时,Oracle更新表空间数据文件的头部信息。
示例:
SQL>ALTER TABLESPACE ORCLTBS1 READ ONLY;
SQL>ALTER TABLESPACE ORCLTBS1 READ WRITE
4) 设置默认表空间
在Oracle10g数据库中,默认表空间为USERS表空间,默认临时表空间为TEMP表空间。
设置数据库的默认表空间:
ALTER DATABASE DEFAULT TABLESPACE
设置数据库的默认临时表空间:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE
示例:
SQL>ALTERDATABASE DEFAULT TABLESPACE ORCLTBS1;
SQL>ALTERDATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
5) 表空间重命名
语法:
ALTER TABLESPACE…RENAME TO
当重命名一个表空间时数据库会自动更新数据字典、控制文件以及数据文件头部中对该表空间的引用。在重命名表空间时,该表空间ID号并没有修改,如果该表空间是数据库默认表空间,那么重命名后仍然是数据库的默认表空间。
注意:
不能重命名SYSTEM表空间和SYSAUX表空间
不能重命名处于脱机状态或部分数据文件处于脱机状态的表空间。
(3)表空间的备份
语法:
ALTER TABLESPACE tablespace_name BEGIN|ENDBACKUP
在数据库进行热备份(联机备份)时,需要分别对表空间进行备份。
基本步骤为:
1)使用ALTERTABLESPACE…BEGIN BACKUP语句将表空间设置为备份模式。
2)在操作系统中备份表空间所对应的数据文件。
3)使用ALTERTABLESPACE…END BACKUP语句结束表空间的备份模式。
示例:备份ORCL数据库的ORCLTBS1表空间。
SQL>ALTER TABLESPACE ORCLTBS1 BEGINBACKUP;
复制ORCLTBS1表空间的数据文件ORCLTBS1_1.DBF和ORCLTBS1_2.DBF到目标位置。
SQL>ALTER TABLESPACE ORCLTBS1 END BACKUP;
(4)删除表空间
语法:
DROP TABLESPACE tablespace_name
如果表空间非空,应带有子句INCLUDING CONTENTS
若要删除操作系统下的数据文件,应带有子句AND DATAFILES
删除参照完整性约束,应带有子句CASCADE CONSTRAINTS
示例:
1)删除ORCL数据库的ORCLTBS1表空间及其所有内容。
SQL>DROP TABLESPACE ORCLTBS1 INCLUDINGCONTENTS;
2)删除ORCL数据库的ORCLUNDO1表空间及其所有内容,同时删除其所对应的数据文件。
SQL>DROP TABLESPACE ORCLUNDO1 INCLUDINGCONTENTS AND DATAFILES;
3)删除ORCL数据库的ORCLUNDO1表空间及其所有内容,同时删除其所对应的数据文件,以及其他表空间中与ORCLUNDO1表空间相关的参照完整性约束。
SQL>DROP TABLESPACE ORCLUNDO1 INCLUDINGCONTENTS AND DATAFILES CASCADE CONSTRAINTS;
(5)大文件表空间的管理
大文件表空间只包含一个数据文件,减少数据库中数据文件的数量,减少SGA中用于存放数据文件信息的内存需求,同时减小控制文件。
通过对大文件表空间的操作可以实现对数据文件的透明操作,简化了对数据文件的管理。
大文件表空间只能采用本地管理方式,其段采用自动管理方式。
如果在数据库创建时设置系统默认的表空间类型为BIGFILE,则使用CREATETABLESPACE语句默认创建的就是大文件表空间。如果要创建传统的小文件表空间,则需要使用CREATE SMALLFILE TABLESPACE语句。
1) 创建大文件表空间
语句:CREATE BIGFILE TABLESPACE
示例:创建一个大文件表空间ORCLTBS5。
SQL>CREATE BIGFILE TABLESPACEORCLTBS5 DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF'SIZE 20M;
2)大文件表空间的操作
将大文件表空间ORCLTBS5的数据文件D:\ORACLE\PRODUCT\10.2.0\ORADATA\ ORCL\ORCLTBS5_1.DBF 大小修改为30 MB。
SQL>ALTER TABLESPACE ORCLTBS5RESIZE 30M;
将大文件表空间ORCLTBS5的数据文件D:\ORACLE\PRODUCT\10.2.0\ORADATA\ ORCL\ORCLTBS5_1.DBF修改为可以自动扩展。
SQL>ALTER TABLESPACE ORCLTBS5AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
(6)表空间信息查询
V$TABLESPACE:从控制文件中获取的表空间名称和编号信息。
DBA_TABLESPACES:数据库中所有表空间的信息。
DBA_TABLESPACE_GROUPS:表空间组及其包含的表空间信息。
DBA_SEGMENTS:所有表空间中段的信息。
DBA_EXTENTS:所有表空间中区的信息。
DBA_FREE_SPACE:所有表空间中空闲区的信息。
V$DATAFILE:所有数据文件信息,包括所属表空间的名称和编号。
V$TEMPFILE:所有临时文件信息,包括所属表空间的名称和编号。
DBA_DATA_FILES:数据文件及其所属表空间信息。
DBA_TEMP_FILES:临时文件及其所属表空间信息。
DBA_USERS:所有用户的默认表空间和临时表空间信息。
DBA_TS_QUOTAS:所有用户的表空间配额信息。
V$SORT_SEGMENT:数据库实例的每个排序段信息。
V$SORT_USER:用户使用临时排序段信息。
示例:
查询表空间基本信息
SQL>SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,
SEGMENT_SPACE_MANAGEMENT, CONTENTS,NEXT_EXTENT FROM DBA_TABLESPACES;
查询表空间数据文件信息
SQL>SELECTFILE_NAME,BLOCKS,TABLESPACE_NAME FROM DBA_DATA_FILES;
查询表空间空闲空间大小
SQL>SELECT TABLESPACE_NAME,SUM(BYTES),FREE_SPACESFROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
统计表空间空闲空间信息
SQL>SELECT TABLESPACE_NAME "TABLESPACE",FILE_ID,COUNT(*) "PIECES", MAX(blocks) "MAXIMUM",MIN(blocks) "MINIMUM",
AVG(blocks) "AVERAGE",SUM(blocks) "TOTAL"
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME, FILE_ID;
分享到:
相关推荐
以下是关于Oracle表空间操作的详解: 1. **创建表空间** 创建表空间的语法如下: ```sql CREATE TABLESPACE DATAFILE '<filepath>' SIZE <filesize> AUTOEXTEND ON NEXT <autosize> MAXSIZE <maxsize> ...
请注意,这将永久删除表空间及其所有数据和对象,所以在执行此操作前一定要备份重要数据。 总之,Oracle表空间的管理和操作是数据库管理员日常维护的重要组成部分。正确地创建、扩展和调整表空间可以确保数据库高效...
### ORACLE 表空间的部分操作详解 在Oracle数据库管理中,表空间是数据逻辑存储的基本单位,用于组织和管理数据库中的数据。本文将详细介绍Oracle中关于表空间的一些关键操作,包括创建、修改、管理和删除表空间的...
### Oracle 多个表空间合并成一个表空间详解 #### 背景介绍 在进行数据库维护时,可能会遇到需要将多个表空间合并为一个的情况。这种情况通常发生在新项目的开发过程中,尤其是当新项目需要引用来自其他表空间的...
Oracle数据库中的表分区是数据库管理的一种高级技术,它允许我们将大型表分解成更小、更易管理和查询的部分,从而提高数据存储和检索的效率。在本文中,我们将深入探讨Oracle表分区的各个方面,包括其重要性、类型、...
### ORACLE表空间操作知识点详解 #### 一、表空间创建与管理 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据文件。通过不同的命令可以实现对表空间的操作,包括创建、调整大小、离线与在线状态切换等。 ##...
### Oracle导入时表空间不一致解决方法 在Oracle数据库管理中,经常会出现因表空间不一致而导致的数据导入失败的问题。本文将详细介绍如何解决这一常见问题,并确保数据能够顺利地从一个环境迁移到另一个环境中。 ...
OS 备份是指备份操作系统文件,例如数据文件、日志文件等。 冷备份 冷备份是指数据库关闭时进行备份,冷备份可以确保数据库的一致性,防止数据丢失。 热备份 热备份是指数据库在线时进行备份,热备份可以在不...
3. **数据存储与表空间管理**:掌握数据块、区、段、表空间等概念,以及如何创建和管理表空间,确保数据库空间的有效利用。 4. **SQL与PL/SQL**:深入理解SQL语言,包括DML(数据操纵语言)如INSERT、UPDATE、...
Oracle提供了多种备份方式,包括物理备份(如使用RMAN或操作系统级别的复制)和逻辑备份(如使用EXPDP或SQL*Plus的导出功能)。在这个场景中,`backup.bat`脚本很可能是一个使用RMAN(Recovery Manager)的物理备份...
综上所述,Oracle数据库中误删除表空间的恢复是一项复杂但有序的过程,需要结合控制文件、数据字典、RMAN备份以及系统的当前状态进行综合考虑和操作。掌握这些技巧不仅有助于及时应对数据丢失的紧急情况,也是提升...
### Oracle数据库创建表空间、建立用户、授权及备份恢复详解 #### 一、创建与管理表空间 在Oracle数据库中,表空间是物理空间分配的基本单位。为了有效地管理和使用存储资源,合理地创建和配置表空间是非常重要的...
使用RMAN进行基于表空间的恢复 - Oracle Life.files 使用RMAN进行基于时间点的不完全恢复 - Oracle Life.files 使用RMAN进行快速Dataguard数据库创建 - Oracle Life.files Oracle RMAN物理备份技术详解 Oracle RMAN...
《NBU对Oracle数据库的本地/异机备份及恢复操作详解》 NetBackup(NBU)是Veritas公司推出的一款专业的企业级数据备份与恢复软件,广泛应用于各种规模的组织中,尤其在处理大型数据库如Oracle时表现出强大的功能。...
### Oracle表空间传输步骤详解 #### 一、概述 在Oracle数据库管理中,表空间传输是一种常见的数据库迁移技术,主要用于将一个或多个表空间从一个数据库迁移到另一个数据库。这种技术特别适用于数据量较大的场景,...
RMAN提供了一系列命令来执行不同类型的备份操作,如`BACKUP AS COPY`用于创建备份副本,`INCREMENTAL`关键字则用于指定增量备份。以下是一个基本的RMAN命令示例,用于执行Level 0增量备份: ```sql RMAN> RUN { ...
1. **创建脚本文件**:编写一个名为`ora_auto_exp.sh`的shell脚本,用于执行具体的备份操作。此脚本会读取一个配置文件`ora_auto_exp.conf`,从中获取需要备份的用户名和密码等信息。 2. **配置文件设置**:`ora_...