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命令移动数据文件的方法。

相关文章
|
7天前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的还原数据
Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。
【赵渝强老师】Oracle的还原数据
|
7天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
3月前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
66 0
|
7天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
7天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
7天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据创建同义词
oracle数据创建同义词
47 0
|
3月前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
45 0