oracle存储结构_表空间-笔记

oracle数据库,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。
一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。

表空间的定义:存放数据的一个容器。表空间由一个数据文件或多个数据文件组成,一个数据文件只属于一个表
空间。
-----(这个容器会随着数据文件的增加而增大)

表空间的作用能帮助DBA用户完成以下工作:
    1.决定数据库实体的空间分配;
    2.设置数据库用户的空间份额;
    3.控制数据库部分数据的可用性;
    4.分布数据于不同的设备之间以改善性能;
    5.备份和恢复数据。

以oracle为准,oracle系统里有多少基本的表空间。
    select * from dba_tablespaces;

系统中默认创建的几个表空间:

SYSTEM       系统表空间

SYSAUX       系统辅助表空间

USERS         用户表空间

UNDOTBS1     回滚表空间

EXAMPLE

TEMP             临时表空间

系统中必须的表空间有那几个?

答案: SYSTEM、SYSAUX、TEMP、UNDO, 像USERS、EXAMPLE等表空间是可有可无的。

表空间的分类:(按存储时间分)

1.永久表空间             存放永久性的数据,如表,索引等。
2.临时表空间             存放临时数据,保存PGA内存溢出时的数据排序,分组产生的临时数据
3.UNDO表空间          保存数据修改前的镜像。(修改数据之前,oracle会拷贝一份到UNDO表空间)

表空间的管理方式:
A.本地管理表空间(LMT)
B.数据字典管理表空间(DMT)

A.本地管理表空间:一种比较先进的管理扩展(extent)的方式;当使用本地管理表空间时是使用6个块
(从第三个到第八个)来标识整个表空间里的每一个扩展(extent);

B.字典管理表空间:这种方式是为了与之前版本兼容而提供的。11g里是不能创建字典管理表空间的
,被强制推荐,只能倒入老版本中的字典管理表空间。

--------------------------------------------------------------------

表空间增删查改相关操作:

——创建表空间:
    1.创建包含一个初始大小为10M的数据文件,每次自增长1M,最大自增长为20M的表空间。
        SQL> create tablespace tbs
          2  datafile ‘/oracle/tbs01.dbf‘ size 10M autoextend on next 1M maxsize 20M;

2.创建包含两个数据文件的表空间,第一个数据文件初始大小为20m,每次自增长为1M,自增长最大为30M;
               第二个数据文件初始大小为10M,每次自增长为5M,无限制大小;
        SQL> create tablespace ts
          2  datafile ‘/oracle/ts01.dbf‘ size 20M autoextend on next 1M maxsize 30M,
          3  ‘/oracle/ts02.dbf‘ size 10M autoextend on next 5M;

——扩展表空间;
        当表超过表空间大小时,要对表空间进行扩充。(增加表空间大小的方法有三种)
    (1)添加数据文件。
    (2)改变数据文件大小。
    (3)允许数据文件自动扩展。

a.添加数据文件:
          语句:alter tablespace tablespace_name add datafiel ‘path_dbf‘ size 大小;
     --为ts表空间添加一个初始大小为3M不自增长的数据文件;    
        SQL> alter tablespace ts
          2  add datafile ‘/oracle/ts03.dbf‘ size 3M;
     思考——
            SQL> alter tablespace ts
            2  add datafile ‘/oracle/ts04.dbf‘ size 2M autoextend on next 2M maxsize 10M
            3  /

b. 改变数据文件的大小
        alter database datafile ‘path_.dbf‘ resze 大小;
       -为ts表空间的数据文件增加8m;
              SQL> alter database datafile ‘/oracle/ts04.dbf‘ resize 8M;

c.允许数据文件自动扩展
          alter database datafile ‘path_.dbf‘ autoextend on next size_大小 maxsize size_大小;
       -改变tbs表空间01号数据文件为自增长,每次自增长1M,最大限制为10M;
               SQL> alter database datafile ‘/oracle/tbs01.dbf‘ autoextend on next 1M maxsize 10M;

-------如何为新建表指定表空间;
     两个例子:
      SQL> create table c1(a int,b char)
      2  tablespace tbs
      3  /
    
                  
    SQL> create table c2
      2  tablespace ts
      3  as select * from dept;

----------把表迁移到另外一个表空间里;
               语句:alter table table_name move tablespace new_tablespace_name;
                    
                       SQL> alter table c2 move tablespace tbs;

----另------
                语句:alter table table_name move;
                    整理表空间碎片;

-------------删除表空间:
    删除ts表空间;
       SQL>drop tablespace tq;
    
    删除表空间,一并删除数据文件;
    语句:drop tabelpaces tablespace_name including contents and datafiles; 
    SQL> drop tablespace tq including contents and datafiles;

--------修改表空间名称
SQL> alter tablespace ts rename to ts1;

--------------查询表空间相关:
  
  稍微回顾一下:学习至今,学了几个oracle视图?
    1.user_constraint          约束相关视图
    2.recyclebin         回收站视图
    3.dba_tables                   表属性视图
    4.dba_tablespaces           表空间视图
      5.dba_data_files               数据文件视图

以几个常用查询为例:
----查询该表属于哪个表空间;
SQL>select table_name,tablespace_name from dba_tables where table_name=‘‘;

--包含数据库中所有表空间的描述信息
SQL> select * from dba_tablespaces;

--包含当前用户的表空间的描叙信息
SQL> select * from user_tablespaces;

--包含从控制文件中获取的表空间名称和编号信息
SQL> select * from v$tablespace;

查看数据文件

--包含数据文件以及所属的表空间的描述信息
SQL> select * from dba_data_files;

--包含临时数据文件以及所属的表空间的描述信息
SQL> select * from dba_temp_files;

--包含从控制文件中获取的数据文件的基本信息,包括它所属的表空间名称、编号等
SQL> select * from dba_temp_files;

--包含所有临时数据文件的基本信息
SQL> select * from v$datafile;

时间: 2024-11-14 05:58:45

oracle存储结构_表空间-笔记的相关文章

Oracle存储结构深入分析与管理_超越OCP精通Oracle视频教程培训07

课程目标 Oracle视频教程,风哥本套oracle教程培训学习BBED.数据块,内容包括Oracle数据存储结构的深入分析,表空间(tablespace),段(segments),区(Extent),数据库块( Database Block),表,索引,SYSTEM与SYSAUX及temp临时表空间的日常管理与维护. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 课程地址: http://edu.51cto.com/course/course_id-38

详解Oracle存储结构 掌握基本操作管理

2018.10.14那天我写了Oracle12C 的安装并初步了解了一下Oracle体系结构中数据库和实例.从中我们知道: 数据库是磁盘上数据的集合,位于收集和维护相关信息的数据库服务器上的一个或多个文件中.数据库由各种物理和逻辑结构组成,而表则是数据库中最重要的逻辑结构.表由包含数据的相关行和列组成. 组成数据库的文件主要分为两类:数据库文件和非数据库文件.两者之间的区别在于存储何种数据.数据库文件包含数据和元数据,非数据库文件则包含初始参数和日志记录信息等.数据库文件对于每时每刻正在进行的数

Oracle 存储结构一

了解块中表行数据的存储 Oracle数据存储模型 逻辑结构在左,物理结构在右 有一个关系使用虚线绘制,表示段与数据文件的多对多关系.之所以使用虚线表示关系,是因为这种多对多关系不应存在. 表空间实体消除了段与数据文件之间的多对多关系.一个表空间可以包含多个段,而且可以由多个数据文件组成.这意味着,一个段可以分布在多个数据文件中,而任一数据文件可以包含多个段的全部或一部分. “段”实体表示存储数据从而需要表空间中的空间的任何数据库对象.典型的段是表,但也存在其他段类型,主要是索引段和撤销段.任何一

Oracle bigfile 大文件表空间

Database 是由一个或多个被称为表空间(tablespace)的逻辑存储单位构成.表空间内的逻辑存储单位为段(segment),段又可以继续划分为数据扩展(extent).而数据扩展是由一组连续的数据块(datablock)构成. 大文件表空间 在Oracle中用户可以创建大文件表空间(bigfile tablespace).这样Oracle数据库使用的表空间(tablespace)可以由一个单一的大文件构成,而不是若干个小数据文件.这使Oracle可以发挥64位系统的能力,创建.管理超大

Oracle数据导入指定表空间

Oracle数据导入指定表空间 1. 打开工具Oracle SQL Plus 以dba身份登录sys用户sqlplus /nologconn [email protected] as sysdba 2. 创建用户并指定表空间 使用客户端工具或者Web管理控制台创建表空间以及用户给用户赋予connect.resource.dba权限grant connect,resource,dba to username; 注意:给oracle用户分配connect.resource角色时,此时connect

实例讲解Oracle数据库设置默认表空间问题

实例讲解Oracle数据库设置默认表空间问题 实例讲解Oracle数据库设置默认表空间问题,阅读实例讲解Oracle数据库设置默认表空间问题,DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,所以这个用户就会采用默认的表空间——system表空 DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,所以这个用户就会采用默认的表空间——system表空间.导致系统

oracle 所有查询和表空间,以及其关系

select * from dba_users;   查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system select * from all_users;     查看你能管理的所有用户 select * from user_users; 查看当前用户信息 查询用户的表空间: select username,default_tablespace from dba_users;  查询数据库所有用户所在表空间 select username,default_tablesp

Linux下Oracle启动、建立表空间、用户、授权、数据库导入导出

1.1进入到sqlplus启动实例 [[email protected] ~]$ su - oracle                                 --“切换到oracle用户”[[email protected] ~]$ lsnrctl start                               --“打开监听”[[email protected] ~]$ sqlplus /nolog                                --“进入到

Oracle 创建用户,表空间

1.首先,创建(新)用户: create user username identified by password; username:新用户名的用户名 password: 新用户的密码 也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户 2.创建表空间: create tablespace tablespacename datafile 'd:\data.dbf' size xxxm; tablespacename:表空间的名字 d:\data.dbf':表空间的存储位置 xx