• Oracle表空间


    一个数据库被分成一个个的逻辑单元,这些逻辑单元叫:表空间。

    表空间用于存放数据库象(表、索引等),一个数据库逻辑上由一个或者多个表空间组成。 表空间由一个或多个数据文件(物理结构)组成。

    表空间用于存放数据库对象。而这些对象实际上存放在数据文件中。数据文件是数据的物理载体。

    每个数据库都有一个系统表空间(system  tablespace)和一个辅助表空间(Sysaux tablespace).创建数据库时,Oracel会自动创建这两个表空间。

    数据库有以下类型的表空间:永久表空间(Permanent Tablespaces)、临时表空间(Temporary Tablespace)、回滚表空间(Undo Tablespace)。

    表空间中, 区 (extent)的管理方式:

    字典管理(dictionary,使用数据字典来跟踪表空间中区的使用。放分配一个新的区、使用一个区、或释放一个区的时候,Oracle都会更新数据字典FET$与UET$,

    通过数据字典来反映去的状态,当更新数据字典时,会产生回滚信息,Oracle会存储这些回滚信息。(这也是字典管理的表空间被逐渐淘汰的根源)。

    本地管理(locally Managed Tablespaces), 它通过本地表空间来管理区的使用。表空间中的每个数据文件都有一个位图(Bitmap),位图存放在数据文件头,位图中的每个位(bit)与一个或者一组数据块(block)相对应,当分配一个区或者释放一个区的时候,Oracle 将更新位图以反映这种改变。

    特别的,对于本地管理的表空间,Oracle不会更新数据字典,也不会产生回滚信息。

    ============

    概念区分:

    ============

    数据库:
    Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。

    实例:  
    一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有n个实例。

    用户:
    用户是在实例下建立的。不同实例可以建相同名字的用户。

    表空间:
    表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。

    数据文件(dbf、ora):
     数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

    网上找了个图片:

     建表空间是在实例下建,在EM web页面,先登录dabook实例,再创建表空间)

    1 CREATE SMALLFILE TABLESPACE "TESTDB" DATAFILE 'E:APPDINGQIORADATATESTDABOOK	estdb' SIZE 100M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO 

    使表空间离线/在线:

    ALTER DATABASE testdb OFFLINE;//使表空间的数据不可访问。
    ALTER DATABASE  testdb ONLINE; //在数据库打开的情况下,SYSTEM 表空间永远在线,因为oracle需要访问存放在SYSTEM表空间中的数据字典。

    重命名表空间:

    ALTER TABLESPACE testdb TO userdb2;// 不能重命名表空间SYSTEM SYSAUX.
    ALTER TABLESPACE testdb READ ONLY;//只读

    删除表空间:

    DROP TABLESPACE testdb  INCLUDING CONTENTS AND DATAFILES;//删除表空间及其数据文件
    DROP TABLESPACE testdb INCLUDING CONTENTS;//删除表空间

    表空间加密:可以使用的算法:3DES168,AES128,AES1192,AES256

    CREATE TABLESPACE securespace
    DATAFILE ' d:data' SIZE 100M
    ENCRUPTION USING 'AES256'
    DEFAULT STORAGE ( ENCRYPT);
    SELECT tablespace_name FROM DBA_TABLESPACES;//列出数据库中有哪些表空间
    SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='MYUNDOTBS'//数据字典DBA_DAT
    A_FILES 存放数据文件的信息,从该视图中,可以知道一个表空间由哪些数据文件组成。

    得到创建表空间的SQL语句:

    首先以system的身份登录数据库 conn system;设置SQL*Plus的环境变量: set long 10000(如果不进行设置,执行DBMS_METADATA.GET_DDL将产生错误)

    1 SELECT DBMS_METADAT.GET_DDL('TABLESPACE','MYSPACE') FROM dual;

    使用户a拥有访问表空间 USERS的权限:

    alter user item quota unlimited on USERS;

    扩展表空间:

    ALTER DATABASE  DATAFILE 'D:data‘ RESIZE 1000M




  • 相关阅读:
    机器学习的模型泛化
    机器学习中的过拟合和欠拟合及交叉验证
    sklearn中的多项式回归算法
    PCA算法提取人脸识别特征脸(降噪)
    sklearn中调用PCA算法
    python实现PCA算法原理
    PCA主成分分析算法的数学原理推导
    python表白实现代码(可视化与动画版)
    《C++ Primer Plus》第7章 函数——C++的编程模块 学习笔记
    C++函数指针
  • 原文地址:https://www.cnblogs.com/happinessqi/p/3280616.html
Copyright © 2020-2023  润新知