数据库逻辑结构
1. 表空间tablespace
1. 理论
| 表空间分类 |
名称 |
描述 |
| EXAMPLE |
示例表空间 |
示例表空间,存放示例数据库的方案对象信息及其培训资料 |
| SYSAUX |
辅助系统表空间 |
辅助系统表空间,用于减少system表空间的负荷,提高系统的工作效率。是oracle 10g新增加的表空间 |
| SYSTEM |
系统表空间 |
系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,存放着方案对象(如表,索引,同义词,序列)的定义信息,存放着所有pl/sql 程序(如过程,函数,包,触发器)的源代码,是oracle数据库中最重要的表空间。它属于SYS和SYSTEM方案,仅被SYS和SYSTEM或其他具有足够权限的用户使用。即使是SYS 和SYSTEM用户也不能删除或重命名该空间。他是用户的默认表空间,即当用户在创建一个对象时,如果没有指定特定的表空间,该对象的数据也会被保存在SYSTEM表空间中。 |
| TEMP |
临时表空间 |
存储数据库的中间执行过程,如:保存order by数据库排序,分组时产生的临时数据。操作完成后存储的内容会被自动释放。临时表空间是通用的,所的用户都使用TEMP作为临时表空间。一般只有tmp一个临时表空间,如果还需要别的临时表空间时,可以自己创建。 |
| UNDO |
UNDO表空间 |
保存数据修改前的副本。存储事务所修改的旧址,即被修改之前的数据。当我们对一张表中的数据进行修改的同时会对修改之前的信息进行保存,为了对数据执行回滚、恢复、撤销的操作。 |
SQL> select DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username='SYSTEM';
用户在登陆后创建数据库对象时,如果没有指定表空间,那么这些数据就会存储到默认表空间。
注意:如果创建用户时,不指定其永久表空间,则会使用默认的表空间。
SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES;
针对某个用户的:
SQL> alter user user_name default tablespace tbs_name;
设置数据库的默认临时表空间:
SQL> alter database default tablespace temp_tbs_name;
系统管理员:
SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
SQL> SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS
针对系统
SQL> alter database default temporary tablespace temp_grp;
针对用户
SQL> Alter user test temporary tablespace temp1;
SQL> show parameter undo;
2. 表空间/临时表空间操作
SQL> alter system set DB_CREATE_FILE_DEST='/oracle/oradata' scope=both;
create tablespace mytablespace datafile '/home/oracle/oradata/mytablespace.dbf' size 200m autoextend on next 512k maxsize unlimited
logging
online
extent management local autoallocate
blocksize 8k
segment space management manual
flashback on