欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle的表空间 博客分类: 数据库 Oracle表空间 

程序员文章站 2024-02-18 20:26:40
...

一 表空间概述

1、理解表空间
表空间是数据库的逻辑存储空间
一个数据库可以有多个表空间构成
表空间是由一个或者多个数据文件构成,数据文件的位置和大小可以由用户自己来定义。
2、表空间分类
永久表空间:永久存储对象,例如:表、视图、存储过程
临时表空间:数据库操作过程中中间执行过程,执行完成后,存放的内容就会被自动释放掉,不进行永久性地保存。
UNDO表空间:保存事务修改数据前的数据,用于事务回滚撤销操作。
 
二 查看用户的表空间
1、数据字典
dba_tablespaces:针对系统管理员级别的用户登录之后查看的数据字典。
user_tablespaces:普通用户登录之后查看的数据字典。
dba_users:针对系统管理员级别的用户登录之后查看的数据字典。
user_users:普通用户登录之后查看的数据字典。
实例1:表空间实战
  1. SQL> connect system
  2. 输入口令:
  3. 已连接。
  4. SQL> desc dba_tablespaces
  5. 名称是否为空?类型
  6. -----------------------------------------------------------------------------
  7. TABLESPACE_NAME NOT NULL VARCHAR2(30)
  8. BLOCK_SIZE NOT NULL NUMBER
  9. INITIAL_EXTENT NUMBER
  10. NEXT_EXTENT NUMBER
  11. MIN_EXTENTS NOT NULL NUMBER
  12. MAX_EXTENTS NUMBER
  13. MAX_SIZE NUMBER
  14. PCT_INCREASE NUMBER
  15. MIN_EXTLEN NUMBER
  16. STATUS VARCHAR2(9)
  17. CONTENTS VARCHAR2(9)
  18. LOGGING VARCHAR2(9)
  19. FORCE_LOGGING VARCHAR2(3)
  20. EXTENT_MANAGEMENT VARCHAR2(10)
  21. ALLOCATION_TYPE VARCHAR2(9)
  22. PLUGGED_IN VARCHAR2(3)
  23. SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
  24. DEF_TAB_COMPRESSION VARCHAR2(8)
  25. RETENTION VARCHAR2(11)
  26. BIGFILE VARCHAR2(3)
  27. PREDICATE_EVALUATION VARCHAR2(7)
  28. ENCRYPTED VARCHAR2(3)
  29. COMPRESS_FOR VARCHAR2(12)
  30. SQL>select tablespace_name from dba_tablespaces;
  31. TABLESPACE_NAME
  32. ------------------------------
  33. SYSTEM
  34. SYSAUX
  35. UNDOTBS1
  36. TEMP
  37. USERS
  38. EXAMPLE
  39. 已选择6行。
SYSTEM:存储system用户的表,视图,存储过程数据对象。也被称为系统表空间。
SYSAUX:作为EXAMPLE的辅助表空间,
UNDOTBS1:存储撤销信息,属于UNDO类型的表空间。
TEMP:属于临时表空间。
USERS:是永久性表空间,用于存储用户创建的数据库对象。
EXAMPLE:安装数据库示例使用的表空间。
实例2:系统用户和普通用户查看表空间的权限不一样
系统用户有查看dba_tablespaces和user_tablespaces数据字典的权限。
普通用户只有查看user_tablespaces数据字典的权限。
  1. SQL> desc user_tablespaces
  2. 名称是否为空?类型
  3. -----------------------------------------------------------------------------
  4. TABLESPACE_NAME NOT NULL VARCHAR2(30)
  5. BLOCK_SIZE NOT NULL NUMBER
  6. INITIAL_EXTENT NUMBER
  7. NEXT_EXTENT NUMBER
  8. MIN_EXTENTS NOT NULL NUMBER
  9. MAX_EXTENTS NUMBER
  10. MAX_SIZE NUMBER
  11. PCT_INCREASE NUMBER
  12. MIN_EXTLEN NUMBER
  13. STATUS VARCHAR2(9)
  14. CONTENTS VARCHAR2(9)
  15. LOGGING VARCHAR2(9)
  16. FORCE_LOGGING VARCHAR2(3)
  17. EXTENT_MANAGEMENT VARCHAR2(10)
  18. ALLOCATION_TYPE VARCHAR2(9)
  19. SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
  20. DEF_TAB_COMPRESSION VARCHAR2(8)
  21. RETENTION VARCHAR2(11)
  22. BIGFILE VARCHAR2(3)
  23. PREDICATE_EVALUATION VARCHAR2(7)
  24. ENCRYPTED VARCHAR2(3)
  25. COMPRESS_FOR VARCHAR2(12)
  26. SQL>select tablespace_name from user_tablespaces;
  27. TABLESPACE_NAME
  28. ------------------------------
  29. SYSTEM
  30. SYSAUX
  31. UNDOTBS1
  32. TEMP
  33. USERS
  34. EXAMPLE
  35. 已选择6行。
  36. SQL> connect scott
  37. 输入口令:
  38. 已连接。
  39. SQL>select tablespace_name from dba_tablespaces;
  40. select tablespace_name from dba_tablespaces
  41. *
  42. 1行出现错误:
  43. ORA-00942:表或视图不存在
  44. SQL>select tablespace_name from user_tablespaces;
  45. TABLESPACE_NAME
  46. ------------------------------
  47. SYSTEM
  48. SYSAUX
  49. UNDOTBS1
  50. TEMP
  51. USERS
  52. EXAMPLE
  53. 已选择6行。
实例3:普通用户无法查看dba_users
  1. SQL> desc dba_users;
  2. ERROR:
  3. ORA-04043:对象"SYS"."DBA_USERS"不存在
实例4:某一个用户对应着默认表空间和临时表空间
  1. SQL> connect system
  2. 输入口令:
  3. 已连接。
  4. SQL> desc dba_users;
  5. 名称是否为空?类型
  6. -----------------------------------------------------------------------------
  7. USERNAME NOT NULL VARCHAR2(30)
  8. USER_ID NOT NULL NUMBER
  9. PASSWORD VARCHAR2(30)
  10. ACCOUNT_STATUS NOT NULL VARCHAR2(32)
  11. LOCK_DATE DATE
  12. EXPIRY_DATE DATE
  13. DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
  14. TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
  15. CREATED NOT NULL DATE
  16. PROFILE NOT NULL VARCHAR2(30)
  17. INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
  18. EXTERNAL_NAME VARCHAR2(4000)
  19. PASSWORD_VERSIONS VARCHAR2(8)
  20. EDITIONS_ENABLED VARCHAR2(1)
  21. AUTHENTICATION_TYPE VARCHAR2(8)
  22. SQL>select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';
  23. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  24. ------------------------------------------------------------
  25. SYSTEM TEMP
实例5:设置用户的默认或临时表空间
ALTER USER username 
DEFAULT|TEMPORARY
TABLESPACE tablespace_name
  1. SQL> ALTER USER system
  2. 2 DEFAULT TABLESPACE system;
  3. 用户已更改。
  4. SQL>select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';
  5. DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
  6. ------------------------------------------------------------
  7. SYSTEM TEMP
 
相关标签: Oracle 表空间