`
thomas0988
  • 浏览: 483970 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

Oracle表空间操作详解(备份)

阅读更多

建立表空间
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表空间操作详解.docx

    以下是关于Oracle表空间操作的详解: 1. **创建表空间** 创建表空间的语法如下: ```sql CREATE TABLESPACE DATAFILE '<filepath>' SIZE <filesize> AUTOEXTEND ON NEXT <autosize> MAXSIZE <maxsize> ...

    Oracle表空间操作详解.pdf

    请注意,这将永久删除表空间及其所有数据和对象,所以在执行此操作前一定要备份重要数据。 总之,Oracle表空间的管理和操作是数据库管理员日常维护的重要组成部分。正确地创建、扩展和调整表空间可以确保数据库高效...

    ORACLE 表空间的部分操作

    ### ORACLE 表空间的部分操作详解 在Oracle数据库管理中,表空间是数据逻辑存储的基本单位,用于组织和管理数据库中的数据。本文将详细介绍Oracle中关于表空间的一些关键操作,包括创建、修改、管理和删除表空间的...

    Oracle多个表空间合并成一个表空间,验证通过

    ### Oracle 多个表空间合并成一个表空间详解 #### 背景介绍 在进行数据库维护时,可能会遇到需要将多个表空间合并为一个的情况。这种情况通常发生在新项目的开发过程中,尤其是当新项目需要引用来自其他表空间的...

    Oracle表分区详解

    Oracle数据库中的表分区是数据库管理的一种高级技术,它允许我们将大型表分解成更小、更易管理和查询的部分,从而提高数据存储和检索的效率。在本文中,我们将深入探讨Oracle表分区的各个方面,包括其重要性、类型、...

    ORACLE表空间操作

    ### ORACLE表空间操作知识点详解 #### 一、表空间创建与管理 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据文件。通过不同的命令可以实现对表空间的操作,包括创建、调整大小、离线与在线状态切换等。 ##...

    oracle导入时表空间不一致解决方法

    ### Oracle导入时表空间不一致解决方法 在Oracle数据库管理中,经常会出现因表空间不一致而导致的数据导入失败的问题。本文将详细介绍如何解决这一常见问题,并确保数据能够顺利地从一个环境迁移到另一个环境中。 ...

    oracle 常用的备份方式及备份策略

    OS 备份是指备份操作系统文件,例如数据文件、日志文件等。 冷备份 冷备份是指数据库关闭时进行备份,冷备份可以确保数据库的一致性,防止数据丢失。 热备份 热备份是指数据库在线时进行备份,热备份可以在不...

    Oracle DBA必备技能详解

    3. **数据存储与表空间管理**:掌握数据块、区、段、表空间等概念,以及如何创建和管理表空间,确保数据库空间的有效利用。 4. **SQL与PL/SQL**:深入理解SQL语言,包括DML(数据操纵语言)如INSERT、UPDATE、...

    oracle数据库自动备份脚本带说明

    Oracle提供了多种备份方式,包括物理备份(如使用RMAN或操作系统级别的复制)和逻辑备份(如使用EXPDP或SQL*Plus的导出功能)。在这个场景中,`backup.bat`脚本很可能是一个使用RMAN(Recovery Manager)的物理备份...

    oracle误删除表空间后恢复

    综上所述,Oracle数据库中误删除表空间的恢复是一项复杂但有序的过程,需要结合控制文件、数据字典、RMAN备份以及系统的当前状态进行综合考虑和操作。掌握这些技巧不仅有助于及时应对数据丢失的紧急情况,也是提升...

    Oracle数据库创建表空间、建立用户、授权、还原备份.docx

    ### Oracle数据库创建表空间、建立用户、授权及备份恢复详解 #### 一、创建与管理表空间 在Oracle数据库中,表空间是物理空间分配的基本单位。为了有效地管理和使用存储资源,合理地创建和配置表空间是非常重要的...

    oracle备份及Oracle彻底删除大全

    使用RMAN进行基于表空间的恢复 - Oracle Life.files 使用RMAN进行基于时间点的不完全恢复 - Oracle Life.files 使用RMAN进行快速Dataguard数据库创建 - Oracle Life.files Oracle RMAN物理备份技术详解 Oracle RMAN...

    NBU对Oracle数据库的本地/异机备份及恢复操作

    《NBU对Oracle数据库的本地/异机备份及恢复操作详解》 NetBackup(NBU)是Veritas公司推出的一款专业的企业级数据备份与恢复软件,广泛应用于各种规模的组织中,尤其在处理大型数据库如Oracle时表现出强大的功能。...

    Oracle表空间传输步骤

    ### Oracle表空间传输步骤详解 #### 一、概述 在Oracle数据库管理中,表空间传输是一种常见的数据库迁移技术,主要用于将一个或多个表空间从一个数据库迁移到另一个数据库。这种技术特别适用于数据量较大的场景,...

    oracle增量备份

    RMAN提供了一系列命令来执行不同类型的备份操作,如`BACKUP AS COPY`用于创建备份副本,`INCREMENTAL`关键字则用于指定增量备份。以下是一个基本的RMAN命令示例,用于执行Level 0增量备份: ```sql RMAN> RUN { ...

    oracle数据库自动备份脚本

    1. **创建脚本文件**:编写一个名为`ora_auto_exp.sh`的shell脚本,用于执行具体的备份操作。此脚本会读取一个配置文件`ora_auto_exp.conf`,从中获取需要备份的用户名和密码等信息。 2. **配置文件设置**:`ora_...

Global site tag (gtag.js) - Google Analytics