四、修改表空间
不论是字典管理表空间还是本地管理表空间,在表空间被创建之后都可以进行修改。可以使用ALTER TABALESPACE来修改表空间。相应的,用户
必须拥有ALTER TABLESPACE或ALTER DATABASE系统权限才能够修改表空间。
(一)扩展表空间
表空间在物理上是由保存在磁盘上的数据文件组成的。创建数据文件时会指定大小,因此表空间是有大小的。为了给用户提供更大的表空间,
以便使其可以继续增加数据,就必须能够扩展表空间,即增加更多存储空间。通常扩展表空间的方法有添加数据文件、改变数据文件的大小、
允许数据文件自动扩展这三种方式。
(1)添加数据文件
因为表空间的大小实际上就是它所包含的各个数据文件的大小和,所以为表空间增加新的数据文件是最常用的扩展表空间的办法。
注意:不能为大文件表空间增加第二个数据文件。
ALTER TABLESPACE mytbs01 ADD DATAFILE 'e:\mytbs01_2.dbf' SIZE 3M;
与普通表空间不同,如果要为临时表空间添加新的临时数据文件,就必须使用ALTER TABLESPACE...ADD TEMPFILE语句。
ALTER TABLESPACE mytmptbs01 ADD TEMPFILE 'e:\mytmptbs01_2.dbf' SIZE 3M;
(2)改变数据文件的大小
通过增加表空间中已有数据文件的大小,也可以增加表空间的存储空间。
ALTER DATABASE DATAFILE 'e:\mytbs01_2.dbf' RESIZE 4M;
与普通表空间不同,如果要改变临时表空间的临时文件的大小,就必须使用ALTER DATABASE TEMPFILE...RESIZE语句。
当数据文件中的可用空间未使用完时,允许减小它的大小,即进行压缩。
(3)允许数据文件自动扩展
如果在创建表空间或为表空间增加数据文件时,没有在数据文件子句中指定AUTOEXTEND选项,则该数据文件的大小是不会自动扩展或增加的。
为了是数据文件可以自动扩展,就必须指定AUTOEXTEND ON选项。在指定了AUTOEXTEND ON选项后,当表空间被填满时,数据文件就会自动扩展
,从而就间接的增加了表空间的存储空间。
ALTER DATABASE DATAFILE 'e:\mytbs01_2.dbf' AUTOEXTEND ON NEXT 1M MAXSIZE 20M;
(二)修改属性、状态
(1)修改表空间的可用性
新创建的表空间都处于联机(ONLINE)状态。此时该表空间是可以被访问的。但当表空间处于脱机(OFFLINE)状态时,该表空间就不能被SQL语句
访问了。因此,表空间是否联机,表明了表空间是否可用。
修改表空间可用性的语法是:
ALTER TABLESPACE ONLINE|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER];
使表空间脱机
为了提高数据文件的I/O性能,可能需要移动特定表空间的数据文件。为了确保表空间中数据文件的一致性,在移动数据文件之前,需要将该表
空间修改为脱机状态,以防止其中的数据文件被修改。
SYSTEM,SYSAUX,TEMP,UNDOTBS1表空间是不能被脱机的,因为ORACLE要随时使用这几个表空间。
当表空间修改为脱机状态后,与其相关的数据文件的SCN值和内容都不会发生任何变化。
ALTER TABLESPACE mytbs01 OFFLINE;
当表空间处于脱机状态时,就不能访问该表空间了,否则会有错误的提示。
ALTER TABLESPACE mytbs01 ONLINE;
ALTER TABLESPACE mytbs01 OFFLINE TEMPORARY;
ALTER TABLESPACE mytbs01 ONLINE;
要在ARCHIVELOG模式下执行立即脱机模式。
使表空间联机
完成其他对表空间的维护操作后,应该立即将表空间转变为ONLINE状态,以便该表空间可以被访问。
ALTER TABLESPACE mytbs01 ONLINE;
(2)修改表空间的可读写性
修改表空间的可读写包括使表空间只读和使表空间可读写。
使表空间只读
如果表空间值用于存放静态数据,或者要将表空间移动到其他数据库,就应该先将表空间修改为只读状态。
SYSTEM,SYSAUX,TEMP,UNDOTBS1这几个表空间不能被只读,因为ORACLE要随时向这几个表空间写入数据。
将表空间吸怪为只读状态后,与其相关的数据文件中的SCN值和内容都不会发生任何变化。
ALTER TABLESPACE mytbs01 READ ONLY;
当表空间处于READ ONLY状态时,就不能对该表空间操作了,否则会有错误提示。
当表空间处于只读状态时,仍然允许执行DROP 操作删除该表空间上的对象。
DROP TABLE personal CASCADE CONSTRAINTS;
表空间的可读写状态在脱机之后仍然保留,换句话说就是练级后的其可读写性仍然存在。
如果表空间处于脱机状态,就不能修改它的可读写状态,否则将会有错误提示信息。
使表空间可读写
正常情况下,表空间是可读写的,即可以在该表空间上执行正常的DDL和DML操作。
ALTER TABLESPACE mytbs01 READ WRITE;
(3)修改表空间的备份模式
如果执行非RMAN(RON-RECOVERY MANAGER)联机备份,即在ARCHIVELOG模式下的热备份,则需要修改表空间的备份模式。
首先执行ALTER TABLESPACE tablespace_name BEGIN BACKUP语句,将表空间tablespace_name设置成备份模式,类似于系统给需要备份的表空
间加锁,防止在备份过程中用户对此表空间进行操作。当表空间处于备份模式时,数据库继续写数据到数据文件(当检查点出现时),但这些检
查点的出现不被记录到数据文件的头部块中。这就告诉数据库,图过数据库例程被突然中断,就可能需要恢复。如果有必要,一些附加的信息
会被写入重做日志文件,以便有助于恢复。
然后使用一些操作系统的命令程序,将该表空间中的各个数据文件都备份到某些文件夹中或存储设备上。
最后执行ALTER TABLESPACE tablespace_name END BACKUP语句,将表空间tablespace_name设置成结束备份模式,类似于系统给正在备份的表
空间解锁,以便用户对此空间进行操作。如果忘记了将表空间设置成结束备份模式,则下一次启动数据库时,数据库将会看到控制文件中的检
查点号晚于数据文件头部块中的检查好,并提示一个需要进行介质恢复的信息。
(4)修改表空间的名称
通过使用ALTER TABLESPACE的RENAME选项,DBA就可以修改表空间的名称。在ORACLE 9I之前,移动表空间时,如果在目标数据库中存在同名表
空间,那么该表空间将不能被移动到目标数据库;而在ORACLE 10G中,如果目标数据库存在同名表空间,可以先使用ALTER TABLESPACE命令修
改源数据库或目标数据库的相应表空间名,然后再移动表空间。
SYSTEM,SYSAUX,TEMP,UNDOTBS1表空间的名称不能被移动。
ALTER TABLESPACE mytbs01 RENAME TO mytbs01_new;
当表空间或其任何数据文件爱你处于OFFLINE状态时,不能修改表空间的名称。
(5)设置、查询默认表空间
在创建数据库用户时,如果没有用DEFAULT TABLESPACE选项指定默认表空间,则使用数据库的默认表空间。如果没有用DEFAULT TEMPORARY
TABLESPACE选项指定临时表空间,则使用数据库的默认临时表空间。在ORACLE 10G中,初始的默认临时表空间是TEMP,而默认表空间随用户的
不同而不同。
设置数据库默认表空间
可以使用ALTER DATABASE DEFAULT TABLESPACE语句,修改数据库的默认表空间。
ALTER DATABASE DEFAULT TABLESPACE mytbs01;
设置数据库默认临时表空间
可以使用ALTER DATABASE DEFAULT TEMPORARY TABLESPACE语句,修改数据库的默认临时表空间按。
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE mytmptbs01;
查询数据库的默认表空间
可以使用以下语句查询当前数据库的默认表空间。
SELECT username,default_tablespace,temporary_tablespae FROM DBA_UERS;
永久表空间与临时表空间是有区别的,所以如果就爱你个一个永久表空间设置为数据库的临时表空间就会有错误提示。
相关推荐
"指针引用和动态空间管理" 指针是计算机编程中的一种重要概念,它用于存储特定类型数据的地址。指针的类型就是指针所指向的数据类型。指针可以分为两种特殊的指针:void指针(无类型指针)和空指针(NULL)。 指针...
管理表空间有助于合理分配和扩展数据库的存储资源。 **同义词**: 同义词是数据库中用于提供别名的对象。它们可以指向表、视图、存储过程或其他数据库对象,使得在不同环境下或者为提高可读性时,可以使用相同的...
实验报告涉及的是数据库的创建和管理,主要涵盖了创建数据库与表空间的相关操作,这是数据库管理系统(DBMS)的基础知识。数据库是存储数据的系统,而表空间则是数据库中存储数据的逻辑划分,用于组织和管理数据库...
链表是计算机科学中一种基础且重要的数据结构,它不同于数组,不依赖于连续的内存空间,而是通过节点之间的引用连接来存储数据。 链表的核心概念是节点,每个节点包含两部分:数据和指向下一个节点的指针。这样的...
5. 保存更改,现在你应该可以在代码中正常使用`System.Data.Linq`命名空间了。 `System.Data.Linq`命名空间包含了一些关键类,例如: - `DataContext`: 这是LINQ to SQL的主要入口点,它代表与数据库的连接,并...
在Oracle 10g数据库管理系统中,创建表空间、数据链路、同义词、序列号和视图是管理和操作数据库的重要环节。下面将详细解释这些概念及其创建语句。 **1. 创建表空间(Tablespaces)** 表空间是Oracle数据库中存储...
在C语言程序设计中,动态存储空间管理和链表是两个重要的概念。动态存储空间管理允许程序在运行时根据需要分配和释放内存,而链表是一种高效的数据结构,它通过节点间的指针链接来存储和组织数据。 动态存储空间...
VisionPro工具中文含义与对应编程命名空间路径列表
空间数据库管理及属性编辑是GIS(地理信息系统)中至关重要的环节,主要涉及到如何组织、管理和操作地理空间数据。本实验围绕ArcGIS软件的ArcCatalog和ArcMap组件进行,旨在帮助用户掌握空间数据库的管理和属性编辑...
### Excel命名空间无法引用 在开发过程中,尤其是涉及到Excel的操作时,可能会遇到“Excel命名空间无法引用”的问题。这个问题通常发生在使用.NET Framework(如C#)进行Excel导入导出操作时。本文将针对这一问题,...
根据提供的信息,我们可以深入探讨Linux操作系统中的虚拟地址空间管理机制,特别是从用户态空间管理和内核态空间管理两个维度进行详细解析。 ### 用户态空间管理 #### 1.1 `task_struct` 结构体 在Linux中,每一...
VS项目整体重命名工具 不再为项目重命名和修改命名空间而烦恼 一.介绍 1.虽然说我们平常不会经常出现项目重命名的情况,但是一旦出现,修改起来还是一项比较大的工程,并且还不一定修改完整。 2.当团队发展到一定...
Oracle数据库管理系统是企业级广泛应用的关系型数据库,其中表管理是其核心部分,涉及到表空间、数据类型、数据完整性约束以及对数据的基本操作如创建、读取、更新和删除(CRUD)。下面将详细阐述这些概念。 **表...
在Oracle数据库管理中,基本表的定义、删除与修改是日常操作的重要组成部分。这些操作涉及到数据库的结构管理和数据完整性维护,对于确保数据的准确性和一致性至关重要。以下将详细阐述这些概念。 1. 定义基本表: ...
主键约束用于唯一标识表中的每一行,外键约束则保证了表间引用的完整性。此外,还可以设置检查约束(CHECK)来限制列中允许的值。 管理数据表的操作包括插入、更新和删除数据,以及查询和索引的建立。索引可以显著...
空间钢结构在现代建筑中扮演着至关重要的角色,其复杂性和设计灵活性使得参数化计算与分析成为必不可少的技术手段。本文将深入探讨如何利用ANSYS APDL(ansa通用编程语言)进行空间钢结构的参数化分析,旨在提供一个...
页式存储管理是一种常见的内存管理方式,它将内存分割成固定大小的块,称为“页”,并将程序的逻辑地址空间也划分为相同大小的页。地址转换是页式存储管理中的关键环节,它负责将程序中的逻辑地址转换为实际物理地址...
管理表空间和数据文件是数据库管理员的重要职责之一,包括创建、修改、删除表空间,以及调整数据文件的大小。 - **创建表空间**:通过`CREATE TABLESPACE`语句创建,指定表空间名称、数据文件位置、初始大小和最大...
- 对于引用,编译器也会将其记录在符号表中,但记录的是引用对象的地址值,而非引用自身的地址。这意味着一旦符号表生成后,指针可以改变指向的对象,而引用则不可以。 #### 六、更深层次的区别 - **访问方式**:...
- **封装**:将类的属性设为私有,只能通过类的方法进行访问和修改,这样可以确保类的内部状态不被外部代码非法修改。 - **好处**: - 提高了数据的安全性。 - 通过方法控制对外暴露的操作,增强了系统的灵活性。 ...