Oracle 12c: 表空间管理、用户角色与临时Undo详解

需积分: 15 0 下载量 21 浏览量 更新于2024-08-12 收藏 836KB PDF 举报
"Oracle 12c中的表空间管理、用户和角色、临时Undo功能" 在Oracle 12c数据库中,表空间管理是数据库架构的重要组成部分,它用于组织和管理数据库的数据存储。表空间是数据库逻辑存储结构的最高级别,可以包含一个或多个数据文件。以下是关于Oracle 12c中表空间管理、用户和角色以及临时Undo功能的详细说明: 一、创建表空间 创建表空间是分配物理存储空间给数据库对象的第一步。表空间由一个或多个数据文件组成,这些数据文件实际存储数据。一般创建表空间的语句如下: ```sql CREATE TABLESPACE ts_test1 DATAFILE '/u01/app/oracle/oradata/PRODCDB/PDBPROD2/ts_test101.dbf' SIZE 100M; ``` 如果使用Oracle Managed Files (OMF) 格式,可以简化创建过程: ```sql ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/app/oracle/oradata/PRODCDB/PDBPROD2/'; CREATE TABLESPACE ts_test2; ``` 查询表空间的详细信息,可以使用`DBMS_METADATA.GET_DDL`包: ```sql SELECT dbms_metadata.get_ddl('TABLESPACE', 'TS_TEST2') FROM DUAL; ``` 二、管理表空间 管理表空间包括添加数据文件、设置默认表空间以及查看数据库属性。例如,添加数据文件到已存在的表空间: ```sql ALTER TABLESPACE ts_test2 ADD DATAFILE '/u01/app/oracle/oradata/PRODCDB/PDBPROD2/ts_test202.dbf' SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 30G; ``` 将表空间设置为数据库或Pluggable Database (PDB) 的默认表空间: ```sql ALTER DATABASE DEFAULT TABLESPACE ts_test2; ALTER PLUGGABLE DATABASE pdb1 DEFAULT TABLESPACE pdb1_tbs; ``` 通过查询`CDB_PROPERTIES`视图,可以查看默认表空间设置: ```sql COL PROPERTY_NAME FORMAT A30 COL PROPERTY_VALUE FORMAT A30 COL DESCRIPTION FORMAT A50 SELECT * FROM cdb_properties WHERE PROPERTY_NAME LIKE '%DEFAULT%TABLESPACE' ORDER BY con_id; ``` 三、用户和角色 在Oracle 12c中,用户分为公用用户和本地用户。公用用户可以在多租户容器数据库 (CDB) 中创建,并在整个CDB中可见。而本地用户则只在特定的PDB中可见。 1. 公用用户通常以“c##”前缀标识,但可以通过以下方式创建不以“c##”开头的公用用户: ```sql CREATE USER my_public_user IDENTIFIED BY password DEFAULT TABLESPACE my_tablespace; GRANT CONNECT TO my_public_user; ``` 2. 本地用户创建时不需要“c##”前缀: ```sql CREATE USER my_local_user IDENTIFIED BY password DEFAULT TABLESPACE my_tablespace; GRANT CONNECT TO my_local_user; ``` 四、临时Undo功能 临时Undo是Oracle 12c引入的新特性,允许在执行临时操作(如排序、并行查询等)时,为临时表和索引分配单独的Undo空间。通过设置`temp_undo_enabled`参数,可以启用这个功能: ```sql ALTER SYSTEM SET temp_undo_enabled=TRUE SCOPE=BOTH; ``` 启用后,系统会自动为每个会话分配临时Undo空间,以优化性能并防止临时操作对常规Undo表空间的影响。 总结来说,Oracle 12c的表空间管理涉及创建、扩展和配置表空间,用户和角色管理涉及公用和本地用户的创建及权限分配,临时Undo功能则提供了一种优化性能的手段,特别适合处理大量临时数据的场景。理解并熟练掌握这些概念对于管理和维护Oracle 12c数据库至关重要。