9-4 Oracle管理表空间和数据文件

简介: 9-4 Oracle管理表空间和数据文件

Oracle基础知识整理:C站下载链接

文章目录

10.9 管理表空间和数据文件 --介绍

·介绍

**表空间:**是数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或是多个数据文件组成。

表空间可以自己创建,也可以使用默认的表空间

10.9.1 管理表空间和数据文件 --数据库的逻辑结构

·介绍

oracle中逻辑结构包括表空间、段、区和块。

说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。

10.9.2 管理表空间和数据文件 --表空间

·介绍

表空间用于从逻辑上组织数据库的数据,数据库逻辑上是由一个或是多个表空间组成的。通过表空间可以达到以下作用:

(1)控制数据库占用的磁盘空间

(2)dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时利用备份和恢复等管理操作

·建立表空间

建立表空间是使用create tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限。

·建立数据表空间

在建立数据库后,为便于管理表,最好建立自己的表空间

create tablespace tsp01 datafile 'd:\test\tsp01.dbf' size 20m uniform size 128k

说明:执行完上述命令后,会建立名称为tsp01 的表空间,并为该表空间建立名称为tsp01.dbf的数据文件,区的大小为128K

·使用数据表空间
create table mypart(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace tsp01;
·改变表空间的状态

当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句。但是在进行系统维护或是数据维护时,可能需要改变表空间的状态。一般情况下,由特权用户或是dba来操作。

(1)使表空间脱机

alter tablespace 表空间名 offline;

(2)使表空间联机

alter tablespace 表空间名 online;

(3)只读表空间

当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert操作,那么可以将表空间修改为只读(sys用户或者特权用户来修改此权限)

alter tablespace 表空间名 read only

(4)使表空间可读写

alter tablespace 表空间名 read write

我们给大家举一个实例,说明只读特性

1) 知道表空间名,显示该表空间包括的所有表

select * from all_tables where tablespace_name='表空间名(大写)';

2)知道表名,查看该表属于那个表空间

select tablespace_name,table_name from all_tables where table_name='EMP';
·删除表空间

一般情况下,由特权用户或是dba来操作,如果是其它用户操作,那么要求用户具有drop tablespace系统权限。

drop tablespace '表空间' including contents and datafiles;

说明:including contents表示删除表空间时,删除该空间的所有数据库对象,而datafiles表示将数据库文件也删除。

·扩展表空间

表空间是由数据文件组成的,表空间的大小实际上就是数据文件相加后的大小,那么我们可以想象。假定表employee存放到tsp01表空间上,初始大小就是2m,当数据满2m空间后,如果在向employee表插入数据,这样就会显示空闲不足的错误。

案例说明:

1.建立一个表空间 sp001

2.在该表空间上建立一个普通表 mydemo 其结构和dept一样

3.向该表中加入数据 insert into mydemo select * from dept;

4.当一定时候就会出现无法扩展的问题,怎么办?

5.就口占该表空间,为其增加更多的存储空间,有三种方法:

(1)增加数据文件

alter tablespace 表空间名 add datafile 'e:\tsp01.dbf' size 20m

(2)增加数据文件的大小

alter tablespace 表空间名'e:\tsp01.dbf' resize 20m;

(3)设置文件的自动增长

alter tablespace 表空间名 'e:\tsp01.dbf' autoextend on next 10m maxsize 500m; 
·移动表空间

有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不能再使用,为了能够重新使用,需要将这些文件的副本移动到其它的磁盘,然后恢复。

下面以移动数据文件tsp01.dbf为例来说明:

1)确定数据文件所在的表空间

select tablespace_name from dba_data_files where file_name='e:\tsp01.dbf'

2)使表空间脱机

确保数据文件的一致性,将表空间转变为offline的状态。

alter tablespace 表空间名 offline;

3)使用命令移动数据文件到指定的目标位置

host move e:\tsp01.dbf c:\test\tsp01.dbf

4)执行alter tablespace命令

在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改:

alter tablespace 表空间名 rename datafile 'e:\tsp01.dbf' to 'c:\tsp01.dbf'

5)使得表空间联机

在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为online状态:

alter tablespace 表空间名 online;
·显示表空间信息

查询数据字典视图dba_tablespaces,显示表空间的信息:

select tablespace_name from dba_tablespaces;

·显示表空间所包含的数据文件

查询数据字典视图dba_data_files,可显示表空间所包含的数据文件,如下:

select file_name,bytes from dba_data_files where tablespace_name='表空间名';
.表空间小结

1)了解表空间和数据文件的作用

2)掌握常用表空间,undo表空间和临时表空间的简历方法

3)了解表空间的各个状态

(online,offline,read write,read only)的作用,及如何改变表空间的状态的方法

4)了解移动数据文件的原因,及使用alter tablespacealter datatable命令移动数据文件的方法。

相关文章
|
8天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
2天前
|
SQL Oracle 关系型数据库
不小心删除表或数据后,如何利用Oracle的闪回进行恢复
不小心删除表或数据后,如何利用Oracle的闪回进行恢复
|
8天前
|
Oracle 安全 关系型数据库
Oracle数据守卫(DG):数据的“守护者”与“时光机”
【4月更文挑战第19天】Oracle Data Guard保障数据安全,通过实时维护备库实现故障切换,保证业务连续性。它使用日志传输和应用保持数据同步,如同“时光机”,借助闪回技术能恢复误操作数据。此外,它还提供数据压缩、加密和故障转移等功能,提升数据库安全性与性能。作为数据管理员,理解并善用Data Guard是确保企业数据安全的关键。
|
8天前
|
存储 NoSQL Oracle
Oracle 12c的内存列存储:数据的“闪电侠”
【4月更文挑战第19天】Oracle 12c的内存列存储以超高速度革新数据处理,结合列存储与内存技术,实现快速查询与压缩。它支持向量化查询和并行处理,提升效率,但需合理配置以平衡系统资源。作为数据管理员,应善用此功能,适应业务需求和技术发展。
|
8天前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
8天前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据"瘦身";热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的"透视"工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
8天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
8天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
8天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
8天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。