1,oracle的表空间
表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成。
1.2数据库介绍;
oracle中逻辑结构包括表空间、段、区和块。
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。
看下图
1.2表空间的作用;提高i/o的性能,控制数据库占用的磁盘
1.3表空间的建立; create tablespace;建立表空间的权限一般是dba
1.4 system表空间;每个Oracle数据库都包含一个名为 SYSTEM 的表空间(tablespace),她在数据库创建时由Oracle自动创建。只要数据库处于开启(open)状态,SYSTEM 表空间就一定是联机(online)的。
SYSAUX 表空间;SYSAUX 表空间(tablespace)还被用来集中存储所有不应放在 SYSTEM 表空间的数据库元数据。不论是依据模版建立的数据库(seed database),还是用户定义的数据库(user-defined database),使用 SYSAUX 表空间可以减少默认创建的表空间数量,sysaux还是system的一个辅助空间
1.5 改变表空间的状态
当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以
查询该表空间的数据,而且还可以在表空间执行各种语句。但是进行系统维护时需要进行改变表空间的状态;由dba来操作;
1. 使表空间脱机
alter tablespace 表空间名 offline;
2. 使表空间联机
alter tablespace 表空间名 online;
3. 只读表空间
当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert操作,那么可以将表空间修改为只读
alter tablespace 表空间名 read only;
(修改为可写是 alter tablespace 表空间名 read write;)
1.6 表空间的修改;
1. 知道表空间名,显示该表空间包括的所有表
select * from all_tables where tablespace_name=’表空间名’;
2. 知道表名,查看该表属于那个表空间
select tablespace_name, table_name from user_tables where table_name=’emp’;
<!--EndFragment-->
1.7 删除表空间 ;
一般情况下,由特权用户或是dba来操作,如果是其它用户操作,那么要求用户具有drop tablespace系统权限。
drop tablespace ‘表空间’ including contents and datafiles;
说明:including contents表示删除表空间时,删除该空间的所有数据库对象,而datafiles表示将数据库文件也删除
2数据文件;
Oracle数据库中每个表空间(tablespace)都是由一个或多个物理数据文件(datafile)构成的。一个数据文件只能由一个数据库的一个表空间使用
2.1 表空间的扩展;增加数据文件,增加数据文件的大小,设置数据文件自动增长
<!--EndFragment-->
1. 增加数据文件
SQL> alter tablespace sp01 add datafile ‘d:\test\sp01.dbf’ size 20m;
2. 增加数据文件的大小
SQL> alter tablespace 表空间名 ‘d:\test\sp01.dbf’ resize 20m;
这里需要注意的是数据文件的大小不要超过500m。
3. 设置文件的自动增长。
SQL> alter tablespace 表空间名 ‘d:\test\sp01.dbf’ autoextend on next 10m maxsize 500m;
3,控制文件;
数据库控制文件(control file)是一个二进制文件,供数据库启动及正常工作时使用。在数据库运行过程中,控制文件会频繁地被Oracle修改,因此数据库处于开启(open)状态时控制文件必须可写。如果控制文件因故不能访问,数据库 也将无法正常工作。
每个数据库有一个控制文件
3.1控制文件的内容;
控制文件(control file)中包含了其所属数据库的信息,实例(instance)在启动,及正常工作期间都需要存取这些信息。控制文件的内容只能由Oracle修改,数据库管理员或用户都不应编辑控制文件。
3.2控制文件包含以下信息;
数据库名(database name)
- 数据库创建时的时间戳(timestamp)
- 属于此数据库的数据文件(datafile)及重做日志文件(redo log file)的名称与存储位置
- 表空间(tablespace)信息
- 脱机(offline)的数据文件
- 日志历史信息
- 归档日志(archived log)信息
- 备份集(backup set)与备份块(backup piece)信息
- 数据文件与重做日志的备份信息
- 数据文件复制信息
- 当前的日志序列号(log sequence number)
- 检查点(checkpoint)信息