表空间的体系结构
Oracle中主要的表空间分类:永久表空间、撤销表空间UNDO、临时表空间。
1、永久表空间包含一些段,这些段在超出会话或事务的持续时间后持续存在。如:SYSTEM表空间及SYSAUX表空间
(1)SYSTEM表空间:用户段绝对不应该驻留在SYSTEM表空间中。Oracle10g开始可以指定默认的永久表空间,
如果手动创建数据库,则要确保指定默认永久表空间和默认临时表空间,
DEFAULT TABLESPACE USERS DATAFILE '/U03/ORACLE11G/ORADATA/DB1/USERS01.DBF' SIZE 50M REUSE
DEFAULT TEMPORARY TABLESPACE TEMPTS1 TEMPFILE '/U01/ORACLE11G/ORADATA/DB1/TEMP01.DBF' SIZE 20M REUSE
完整语句:
CREATE DATABASE DB1
USER SYS IDENTIFIED BY PWD1
USER SYSTEM IDENTIFIED BY PWD2
LOGFILE GROUP 1 ('/U02/ORACLE11G/ORADATA/DB1/REDO01.LOG') SIZE 100M,
GROUP 2 ('/U04/ORACLE11G/ORADATA/DB1/REDO02.LOG') SIZE 100M,
GROUP 3 ('/U06/ORACLE11G/ORADATA/DB1/REDO03.LOG') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIOANL CHARACTER SET AL16UTF16
DATAFILE '/U01/ORACLE11G/ORADATA/DB1/SYSTEM01.DBF' SIZE 325M REUSE EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/U01/ORACLE11G/ORADATA/DB1/SYSAUX01.DBF' SIZE 325M REUSE
DEFAULT TABLESPACE USERS DATAFILE '/U03/ORACLE11G/ORADATA/DB1/USERS01.DBF' SIZE 50M REUSE
DEFAULT TEMPORARY TABLESPACE TEMPTS1 TEMPFILE '/U01/ORACLE11G/ORADATA/DB1/TEMP01.DBF' SIZE 20M REUSE
UNDO TABLESPACE UNDOTBS DATAFILE '/U02/ORACLE11G/ORADATA/DB1/USERS01.DBF' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
从Oracle 10g开始,SYSTEM表空间默认为本地管理,由位图段管理,位图段在表空间的第一个数据文件的第一部分中。
(2)SYSAUX表空间,不应该有任何用户段
2、撤销表空间
(1)多个撤销表空间可以存在于一个数据库中,但在任何给定的时间内只有一个撤销表空间可以是活动的。
(2)撤销表空间用于回滚事务,以及提供与DML语句同时运行在相同的表或表集上的SELECT语句的读一致性,并支持大量ORACLE闪回特性,如闪回查询(FLASH QUERY)
(3)UNDO_RETENTION参数:分配撤销表空间的大小
3、临时表空间
数据库中可以有多个临时表空间联机并处于活动状态,oralce10g可支持临时表空间组。之前两个会话都使用相同的临时表空间,从而潜在地造成性能问题。
临时表空间组向具有多个会话的单个用户提供如下功能:对每个会话使用不同的实际临时表空间。
查看临时表空间数据文件位置:select file_name from dba_temp_files;
1:创建临时表空间
create temporary tablespace user_temp
tempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
2:创建数据表空间
create tablespace user_data
logging
datafile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
第3步:创建用户并指定表空间
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
第4步:给用户授予权限
grant connect,resource,dba to username;
创建临时表空间组,将建vb的临时表空间化分到组。
alter tablespace user_temp tablespace group tempgrp;
alter tablespace user_temp2 tablespace group tempgrp;
alter tablespace user_temp3 tablespace group tempgrp;
将数据库的默认临时表空间改为tempgrp
alter database default temporary tablespace tempgrp;
删除表空间
alter tablespace user_temp tablespace group '';
创建用户并指定临时表空间组
create user username identified by password
default tablespace user_data
temporary tablespace tempgrp;
查看用户所属表空间
select username,default_tablespace,temporary_tablespace from dba_users where username='username';
查看临时表空间组内成员
select group_name,tablespace_name from dba_tablespace_groups;
4、大文件表空间
大文件表空间减轻了数据库管理,因为它只包含一个数据文件。最多可以为128T
优化灵活体系结构(OFA)
提供了减轻Oracle软件和数据库文件维护工作的指导原则,并且改进了数据库的性能,即适当地放置数据库文件,从而最小化I/O瓶颈。
(1)非ASM环境,单独的物理设备上至少要有3个文件系统才能实现OFA的推荐标准。
从顶层开始,安装点的推荐格式是,/<string const><numeric key>,其中<string const>可以是一个或多个字母,<numeric key>是两个或三个数字。
如:/u01,/u02,/u03,/u04
软件可执行文件:每个单独产品名的软件可执行文件驻留在目录/<string const><numeric key>/<directory type>/<product owner>中,
如:/u01/app/oracle或/u01/app/apache
(2)ASM环境
ASM文件名:+<group>/<dbname>/<file type>/<tag>.<file>.<incarnation>
select file#,name from v$datafile;
name: +DATA/dw/datafile/system.256.622426913
select file#,name from v$controlfile;
name: +DATA/dw/controlfile/current.260.622427059
select file#,name from v$logfile;
name: +DATA/dw/onlinelog/group_3.263.622427143
Oracle安装表空间
系统中默认创建的几个表空间:
SYSTEM 必需安装 永久表空间
SYSAUX 必需安装 永久表空间
USERS 可不安装 永久表空间
UNDOTBS1 必需安装 永久表空间
EXAMPLE 可不安装 永久表空间
TEMP 必需安装 临时表空间