oracle 表空间Tablespaces
作者:互联网
一、表空间
1、oracle创建的一个数据库fp可以包含多个表空间,一个表空间里可以有多张表,每个表空间对应多个数据文件。
结合着上面的pl/sql工具远程访问的fp数据库看到的即
oracle---->数据库fp--->实例fp2(sid)--->sh表空间---->a1表 a2表 B表空间----->b1表 b2表
引申一下,目前该oracle是单机版安装,有两个数据库,这里的模型就是
oracle---->数据库fp--->实例fp2(sid)--->sh表空间---->a1表 a2表 B表空间------>b1表 b2表
oracle---->数据库prd--->实例prd(sid)--->pr1表空间---->p表 d表 pr2表空间----->c表 r表
2、一个表空间包含多个数据文件
sql>select file_id,file_name,tablespace_name,AUTOEXTENSIBLE from dba_data_files; FILE_ID FILE_NAME TABLESPACE_NAME AUT 1 /u01/oracle/oradata/fp/system01.dbf SYSTEM YES 2 /u01/oracle/oradata/fp/sysaux01.dbf SYSAUX NO 3 /u01/oracle/oradata/fp/undotbs1.dbf UNDOTBS1 YES 4 /u01/oracle/oradata/fp/sh01.dbf SH YES
5 /u01/app/oracle/oradata/test/user01.dbf USERS YES
3、一个表空间只能属于一个数据库。一个数据文件只能属于一个表空间。
表空间就是存多个表的物理空间; 可以指定表空间的大小位置等。理解这个看下下面第7点的oracle创建语句就明白了
4、表空间的大小位置等设定。
创建表空间:CREATE TABLESPACE users DATAFILE '/u01/app/oracle/oradata/test/user01.dbf' SIZE 100M 自动扩展大小:
CREATE TABLESPACE users DATAFILE '/u01/app/oracle/oradata/test/user01.dbf' SIZE 100M
AUTOEXTEND ON;
ALTER DATABASE DEFAULT TABLESPACE users;
col file_name for a45
col tablespace_name for a10
5、oracle表。
从逻辑的角度来看,一个数据库(database)下面可以分多个表空间(tablespace); 一个表空间下面又可以分多个段(segment);一个数据表要占一个段(segment),一个索引也要占一个段(segment )。 一个段(segment)由多个 区间(extent)组成,那么一个区间又由一组连续的数据块(data block)组成。 这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散。 注:Segment(段) :段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。
6、一个表空间由多个数据文件组成。
那么从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在的磁盘上的文件。 这些文件是由oracle数据库操作系统的block 组成的
7、我们来看下手工来创建一个oracle库语句
create database fp USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle LOGFILE GROUP 1 ('/u01/oracle/oradata/fp/redo01.log') SIZE 100M, GROUP 2 ('/u01/oracle/oradata/fp/redo02.log') SIZE 100M, GROUP 3 ('/u01/oracle/oradata/fp/redo03.log') SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET AL32UTF8 DATAFILE '/u01/oracle/oradata/fp/system01.dbf' SIZE 350M REUSE //对应SYSTEM表空间 AUTOEXTEND ON NEXT 10240K EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/u01/oracle/oradata/fp/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE SH DATAFILE '/u01/oracle/oradata/fp/sh01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/u01/oracle/oradata/fp/temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs1 DATAFILE '/u01/oracle/oradata/fp/undotbs1.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; 对应产生的文件 oracle@prod:/u01/oracle/oradata/fp$ll drwxr-xr-x 2 oracle oinstall 10 Dec 2 10:23 archive -rw-r----- 1 oracle oinstall 9519104 Dec 3 13:35 control01.ctl -rw-r--r-- 1 oracle oinstall 0 Dec 2 19:29 control01.ctl.bak2 -rw-r----- 1 oracle oinstall 9977856 Dec 2 13:43 control01.ctl.prod -rw-r----- 1 oracle oinstall 52436992 Dec 3 09:25 fp2.dbf -rw-r----- 1 oracle oinstall 52436992 Dec 3 09:25 fp.dbf -rw-r----- 1 oracle oinstall 52436992 Dec 1 20:37 fp_temp.dbf -rw-r----- 1 oracle oinstall 104858112 Dec 3 13:33 redo01.log -rw-r----- 1 oracle oinstall 104858112 Dec 3 13:32 redo02.log -rw-r----- 1 oracle oinstall 104858112 Dec 3 13:32 redo03.log -rw-r----- 1 oracle oinstall 524296192 Dec 3 13:32 sh01.dbf -rw-r----- 1 oracle oinstall 340795392 Dec 3 13:32 sysaux01.dbf -rw-r----- 1 oracle oinstall 367009792 Dec 3 13:32 system01.dbf -rw-r----- 1 oracle oinstall 20979712 Dec 3 13:32 temp01.dbf -rw-r----- 1 oracle oinstall 209723392 Dec 3 13:32 undotbs1.dbf -rw-r----- 1 oracle oinstall 1073750016 Dec 3 09:25 users01.dbf -rw-r----- 1 oracle oinstall 1073750016 Dec 3 09:25 users02.dbf
1、SYSAUX表空间是在10g之后引入的一个新的表空间,主要用于减轻对SYSTEM表空间的压力而作为SYSTEM表空间的辅助表空间。
原来存放于SYSTEM表空间的很多组件以及一些数据库元数据在10g中被移植到SYSAUX表空间,所以这个是必须的
对应数据文件:/u01/oracle/oradata/fp/sysaux01.dbf
2、system表空间是个特殊的表空间,数据字典(包含数据库本身以及存储的所有对象的基本信息)存放在SYSTEM表空间中
对应数据文件:/u01/oracle/oradata/fp/system01.dbf
3、Oracle临时表空间主要是存储数据库的排序操作、临时表、中间排序结果等临时对象
对应数据文件: /u01/oracle/oradata/fp/temp01.dbf
8、我们对照着mysql来理解
1、Oracle有表空间,mysql没有表空间 2、Oracle提供的Sql Plus登录 3、MySQL在一个实例中可以创建多个数据库,但Oracle在一个实例中就只有一个数据库,但是一个oracle一个数据库对应多个实例,用实例sid来区分。 请看我的一篇 https://www.cnblogs.com/aozhejin/p/15859979.html 4、mysql是先建实例,后建库,oracle是先建库,后建实例(看看下面的模型) mysql--->实例1---》a库---》a1表 a1表 b库--->b1表 b2表 oracle---->数据库a--->a实例--->a表空间----》a1表 a2表 b表空间---->b1表 b2表 b实例--->c表空间----》c1表 c2表 d表空间---->d1表 d2表
标签:fp,Tablespaces,dbf,空间,oradata,oracle,u01 来源: https://www.cnblogs.com/aozhejin/p/16024307.html