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

相关文章
|
11月前
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
在YMP校验过程中,从yashandb同步至Oracle的数据出现timestamp(0)字段不一致问题。原因是yashandb的timestamp(x)存储为固定6位小数,而Oracle的timestamp(0)无小数位,同步时会截断yashandb的6位小数,导致数据差异。受影响版本:yashandb 23.2.7.101、YMP 23.3.1.3、YDS联调版本。此问题会导致YMP校验数据内容不一致。
|
12月前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有 YashanDB 版本。原因是操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常源于 system() 函数调用失败,返回 -1,通常是因为 fork() 失败。未来 YashanDB 将优化日志信息以更好地诊断类似问题。
|
11月前
|
Oracle 关系型数据库 Java
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
本文介绍通过Flink CDC实现Oracle数据实时同步至崖山数据库(YashanDB)的方法,支持全量与增量同步,并涵盖新增、修改和删除的DML操作。内容包括环境准备(如JDK、Flink版本等)、Oracle日志归档启用、用户权限配置、增量日志记录设置、元数据迁移、Flink安装与配置、生成Flink SQL文件、Streampark部署,以及创建和启动实时同步任务的具体步骤。适合需要跨数据库实时同步方案的技术人员参考。
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
|
11月前
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
|
11月前
|
Oracle 关系型数据库 Linux
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
|
12月前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
某客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有版本。问题源于操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常原因为系统调用 fork() 失败。经验总结:优化日志记录,提供更多异常信息。
|
11月前
|
存储 Oracle 关系型数据库
【YashanDB知识库】YMP校验从yashandb同步到oracle的数据时,字段timestamp(0)出现不一致
【YashanDB知识库】YMP校验从yashandb同步到oracle的数据时,字段timestamp(0)出现不一致
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
326 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
SQL Oracle 关系型数据库
Oracle 从 DMP 文件中恢复指定表的步骤
Oracle 从 DMP 文件中恢复指定表的步骤
1297 7
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。

推荐镜像

更多