• (2)Oracle基础--表空间


    · 表空间概述

      <1> 理解表空间

        ① 表空间与数据库的关系:

          表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一块空间,用于存放数据库的对象。 一个数据库可以由多个表空间构成。Oracle的很多优化都是通过表空间实现的。

        ② 表空间与数据文件的关系:

          表空间是由一个或多个数据文件构成的,数据文件的大小和位置可以由用户来决定。表和其他数据库对象都是存放在表空间的数据文件中的。       

      <2> 表空间的分类

        ① 永久表空间

          存储需要被永久化存储的数据库对象,比如表,视图,存储过程等

        ② 临时表空间

          存储数据库操作中中间执行的过程,执行完之后会被自动删除,不会被永久存储。

        ③ UNDO表空间

          存储事务修改的数据的旧值,也就是说被修改之前的数据。例如对一张表修改,会对修改前的信息进行保存,这样就可以进行事务的回滚。

    · 查看用户的表空间

      <1> dba_tablespaces、user_tablespaces数据字典

         dba_tablespaces是系统管理员权限级别的用户进行查看的数据字典,usertablespaces是普通用户进行查看的数据字典。

        

         在系统管理员权限的用户下用 desc dba_tablespaces 查看 dba_tablespaces 的表结构

         

         使用 SELECT tablespace_name FROM dba_tablespaces; 查看当前系统管理员用户下的表空间名称。

         

         使用 SELECT tablespace_name FROM user_tablespaces; 查看当前普通用户下的表空间名称。

         

      <2> dba_users、user_users 数据字典

         dba_users是系统管理员权限级别的用户进行查看的数据字典,user_users 是普通用户进行查看的数据字典

         使用 SELECT tablespace_name FROM dba_users; 查看数据库中所有用户的名称。

         使用 SELECT tablespace_name FROM user_users; 查看当前用户的名称。

      <3> 设置用户的默认/临时表空间

         ALTER USER username DEFAULT | TEMPORARY TABLESPACE tablespace_name;

         注意: 普通用户没有权限修改默认/临时表空间

    · 创建、修改和删除表空间

      <1> 创建表空间

         创建永久表空间语法: CREATE TABLESPACE tablespace_name DATAFILE 'xxx.dbf' SIZExx;

         创建临时表空间语法: CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE 'xxx.dbf' SIZExx;

         查看表空间的文件路径可以使用:

          SELECT file_name FROM dba_data_files WHERE  tablespace_name = 'tablespace_name';

         注意: xxx.dbf为文件名,xx为文件大小。'tablespace_name' 需大写

      <2> 修改表空间

         设置表空间的联机/脱机状态(默认为联机状态):

         ALTER TABLESPACE tablespace_name ONLINE | OFFLINE;

         设置只读或可读写状态(默认为可读写状态):

         ALTER TABLESPACE tablespace_name READ ONLY | READ WRITE;

         增加数据文件:

         ALTER TABLESPACE tablespace_name ADD DATAFILE 'xxx.dbf' SIZE xx;

         删除数据文件:

         ALTER TABLESPACE tablespace_name DROP DATAFILE 'xxx.dbf' ;

      <3> 删除表空间

          DROP TABLESPACE tablespace_name [INCLUDING CONTENTS] ;

         注意: 加上INCLUDING CONTENTS 会将此表空间的内容同时删掉

    作者:caobotao
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
    作者:caobotao
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    linq 查询 过滤数据中某个值是否在数组中
    Nginx 摘要
    Unity调用外部摄像头,全屏显示摄像头画面
    Vuforia切换回识别场景后黑屏解决
    Unity3d通过脚本生成apk
    EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法
    UNITY_MATRIX_MVP和UnityObjectToClipPos
    Unity的stateMachineBehaviour
    U3D加载服务器上的assetbundle
    jquery解析xml,获取xml标签名
  • 原文地址:https://www.cnblogs.com/caobotao/p/4953212.html
Copyright © 2020-2023  润新知