`
yanghuidang
  • 浏览: 950728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[Oracle 10g] 表空间更名

阅读更多

[Oracle 10g] 表空间更名

作者:Fenng
日期:24-Oct-2004 
出处:http://www.dbanotes.net
版本:0.1


简单介绍

在 Oracle 10g 以前的版本,更改表空间名字是几乎不可能的事情,除非删除,重新创建,大费周章。Oracle 10g 新添加了一项更改表空间名字的功能,使得更改表空间名字瞬间即可完成。是个较为人性化的功能。

SQL> COL FILE_NAME format a70
SQL> SET linesize 120
SQL> SET pagesize 99
SQL> COL TABLESPACE_NAME format a10
SQL>
SQL> SELECT file_name, tablespace_name FROM dba_data_files;

FILE_NAME                                                              TABLESPACE
---------------------------------------------------------------------- ----------
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbf           USERS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbf          SYSAUX
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbf         UNDOTBS1
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbf          SYSTEM
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbf         EXAMPLE
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf              FOO


6 rows selected.

该命令的语法很简单:

ALTER TABLESPACE tablespacename RENAME TO newtablespacename;

tablespacename 和newtablespacename 分别对应原来的表空间名字和更改后的表空间名字:

实战演练

注意:在操作前后都请做好控制文件的备份工作

SQL>ALTER TABLESPACE foo RENAME TO test;

Tablespace altered.

SQL> SELECT file_name, tablespace_name FROM dba_data_files;

FILE_NAME                                                              TABLESPACE
---------------------------------------------------------------------- ----------
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbf           USERS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbf          SYSAUX
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbf         UNDOTBS1
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbf          SYSTEM
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbf         EXAMPLE
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf              TEST

因为 system 和 sysaux 这两个表空间的特殊性,是不可以更名的:

SQL> ALTER TABLESPACE system RENAME TO mysystem;
ALTER TABLESPACE system RENAME TO mysystem
*
ERROR at line 1:
ORA-00712: cannot rename system tablespace

SQL> ALTER TABLESPACE sysaux RENAME TO mysysaux;
ALTER TABLESPACE sysaux RENAME TO mysysaux
*
ERROR at line 1:
ORA-13502: Cannot rename SYSAUX tablespace

可以对 undo tablespace 重新命名,如果使用的是 spfile ,而不是 pfile, Oracle 会自动对 spfile 中的 undo_tablespace 进行更改(不过要在数据库重新启动之后才可以观察到), 如果使用的是 pfile ,要对其进行手工更改。我们看看 spfile 的变化情况:

SQL> ALTER tablespace undotbs1 RENAME TO undotbs; 

Tablespace altered.

SQL> 
SQL> show parameter pfile 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/10.1.0
                                                 /db_1/dbs/spfileTEST.ora
SQL> show parameters undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  180355072 bytes
Fixed Size                   777996 bytes
Variable Size             128983284 bytes
Database Buffers           50331648 bytes
Redo Buffers                 262144 bytes
Database mounted.
Database opened.
SQL> show parameters undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS
SQL> 

对脱机表空间的更名是不允许的:

SQL> ALTER TABLESPACE TEST OFFLINE;

Tablespace altered.

SQL> ALTER TABLESPACE test RENAME TO testoffline;              
ALTER TABLESPACE test RENAME TO testoffline
*
ERROR at line 1:
ORA-01135: file 6 accessed for DML/query is offline
ORA-01110: data file 6:
'/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf'

给出的提示信息很有参考价值:更名操作是要对表空间进行 DML/query 操作的,表空间offline的话,则不可以。

那么如果表空间是只读的会怎么样呢?

SQL> ALTER TABLESPACE TEST ONLINE;

Tablespace altered.

SQL> ALTER TABLESPACE TEST READ ONLY;

Tablespace altered.

SQL> ALTER TABLESPACE test RENAME TO testreadonly;

Tablespace altered.

SQL> list
  1* SELECT file_name, tablespace_name FROM dba_data_files
SQL> /

FILE_NAME                                                              TABLESPACE
---------------------------------------------------------------------- ----------
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbf           USERS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbf          SYSAUX
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbf         UNDOTBS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbf          SYSTEM
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbf         EXAMPLE
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf              TESTREADONLY


6 rows selected.

SQL> 

看来数据字典已经更新,不过Oracle会向alert_SID.log 中写入类似如下的日志:

ALTER TABLESPACE test RENAME TO testreadonly                                                 
Sat Nov 13 16:15:21 2004                                                                     
Tablespace 'TEST' is renamed to 'TESTREADONLY'.                                              
Tablespace name change is not propagated to file headersbecause the tablespace is read only. 
Completed: ALTER TABLESPACE test RENAME TO testreadonly 

注意Log里有个细微的小Bug:headersbecause。这是两个词,应该空开的 :-)

限制条件

应用这个特性有个主要的限制条件:COMPATIBLE 初始化参数要求为 10.0 或者更高才可以

参考信息


Oracle Database Administrator's Guide 10g Release 1 (10.1) Part Number B10739-01 ( Note 62294.1 )


本文作者

Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
个人技术站点:http://www.dbanotes.net/ 。可以通过电子邮件 dbanotes@gmail.com 联系到他。

原文出处

http://www.dbanotes.net/Oracle/10g_Rename_Tablespace.htm

回上页<-|->回首页
分享到:
评论

相关推荐

    Oracle 10g应用指导

    第1章Oracle的安装卸载与使用环境,主要包括Oracle安装环境及方法,安装后的基本环境及服务,Oracle卸载,还包括验证数据库的安装,系统临时空间不足、监听服务无法启动以及Oracle默认帐户/口令等问题的精讲。...

    大型数据库Oracle 10g实验教程实验五实验报告.docx

    - 通过此次实验,可以深入理解Oracle 10g数据库中物理结构和逻辑结构的关系,掌握表空间和数据文件的创建、修改及删除等操作。 通过以上的总结,我们可以看出Oracle 10g数据库管理系统提供了丰富的功能和工具,使得...

    Oracle+11g+RAC运维培训文档

    CRS(Cluster Ready Service)是 Oracle 在 10g 版本开始引入的一种集群管理服务,用于管理 RAC 集群。它提供了一个统一的管理界面,简化了集群的部署、管理和监控过程。CRS 使得 RAC 的部署不再依赖于特定的硬件...

    Oracle_11g日常操作与维护手册

    - **表空间更名**: 使用命令`ALTER TABLESPACE [old_name] RENAME TO [new_name];`来更改表空间的名称。 - **表空间的数据文件更名**: 使用命令`ALTER DATABASE RENAME FILE '[old_file]' TO '[new_file]';`来更改...

    Oracle 11g 数据库日常维护指导书V1.0-20100331-B

    Oracle 11g数据库的日常维护涉及多个方面,包括但不限于数据库的启动与关闭、SPFILE的管理、自动内存管理、日志文件和表空间的维护、新功能的应用以及常见问题的处理。这些知识点对于确保数据库稳定运行、提高性能和...

    Oracle+10g应用指导与案例精讲

    第1章Oracle的安装卸载与使用环境,主要包括Oracle安装环境及方法,安装后的基本环境及服务,Oracle卸载,还包括验证数据库的安装,系统临时空间不足、监听服务无法启动以及Oracle默认帐户/口令等问题的精讲。...

    oracle常用操作语句

    - **表空间状态**:当表空间处于`OFFLINE`状态时,通常是因为数据文件需要改名、移动或正在进行部分数据库恢复工作。 ##### 特定表空间说明 - **UNDOTBS01.DBF**:存储回退信息,即执行数据修改语言(DML)操作后...

    数据库概述讲义Oracle发家史

    4. 2001年后,Oracle 9i、10g和11g的发布,分别引入了对网格计算的支持、信息生命周期管理和更多高级功能。 【Oracle的主要特点】 Oracle数据库的特点包括: 1. 支持大数据量、多用户事务处理,确保高并发性能。 2...

    Oracle课件

    具体而言,学习Oracle数据库的目标应包括掌握Oracle数据库的体系结构、DBA的数据库维护技能、SQL*PLUS工具的使用、表空间管理、PL/SQL语言编程、用户权限和角色管理,以及数据库备份和恢复技术。 为了达成这些目标...

    Oracle-10g数据库基础教程(XXXX) 第06章物理存储结构.pptx

    Oracle 10g数据库的物理存储结构是数据库系统的核心组成部分,它涉及到数据库在磁盘上的实际布局和管理。本章主要介绍了Oracle数据库的系统结构、数据文件、控制文件、重做日志文件以及归档重做日志文件的管理。 ...

    Oracle数据库语句大全.docx

    1. **创建表空间**:Oracle数据库允许创建表空间以组织数据文件。`CREATE TABLESPACE`语句用于创建一个新的表空间,例如: ```sql CREATE TABLESPACE schooltbs DATAFILE 'D:\oracle\datasource\schooltbs.dbf' SIZE...

    VirtualBox安装运行BackTrack3

    - **开发者**: VirtualBox 最初由德国公司 Innotek 开发,随后被 Sun Microsystems 收购并更名为 Sun VirtualBox。之后又被 Oracle 收购,现称为 Oracle VM VirtualBox Manager。 - **开源性**: 作为一款开源软件,...

    Maximo EAM平台开发笔记2

    在Oracle 10g环境中创建表空间和用户。 3. 使用`IMP`工具导入DMP文件至10g环境。 4. 处理任何版本不兼容的问题。 **1.6 数据库字符集的修改** - **修改方法**: 1. 创建一个新的数据库实例,并设置正确的字符集...

    UNIX(AIX)系统常用命令.doc

    * mv:文件/目录改名、转移 * rm:删除文件/目录 * ls:列出文件 * ls -aF:列出隐含文件,并适当分类 * ls -l:列出文件的详细信息 * cd:改变路径 系统信息 * prtconf:显示系统的各项主要配置 * svmon -G:查看...

    hp经典云架构方案

    - **Oracle WebLogic和11g数据库部署**:通过HP Operations Orchestration实现Oracle应用服务器和数据库的自动化部署。 - **客户代理**:在客户操作系统上部署代理程序,用于监控和管理。 - **数据清理**:提供数据...

    fipivy58.rar_Windows编程_C#_

    OPNET(现被Oracle收购,更名为Model Center)是一款高级的网络性能建模和仿真工具,适用于电信、数据中心、物联网等多个领域的网络设计和优化。它允许工程师模拟网络行为,预测性能,如延迟、带宽利用率、丢包率等...

    linux常用命令

    - **常用操作**:`mkdir –p /opt/oracle/product/10g` ##### 5. mv - **作用**:移动文件或目录,也可用于改名。 - **使用者**:所有用户。 - **命令格式**:`mv [源文件或目录] [目标文件或目录]` - **常用操作**...

    网管教程 从入门到精通软件篇.txt

    Oracle 8.1.x表格空间文件 DBX:DataBearn图像;Microsoft Visual FoxPro表格文件 DCT:Microsoft Visual FoxPro数据库容器 DCU:Delphi编译单元文件 DCX:Microsoft Visual FoxPro数据库容器;基于PCX的传真...

Global site tag (gtag.js) - Google Analytics