Oracle的表空间

一 表空间概述

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
 

猜你喜欢

转载自cakin24.iteye.com/blog/2388437
今日推荐