数据库系统之逻辑结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
23
管理表空间
使用AUTOALLOCATE选项建立局部管理表空间
CREATE TABLESPACE local1 DATAFILE ‘e:\test\local01.dbf’ size 2M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
说明:使用该选项建立的表空间所有区的尺寸都是64K。
7
常用段的类型
数据段:用于存放表的数据,表与数据段是一 一 对应的关系,并且段名与表名完全相同。 索引段:用于存放索引的数据,索引段与索引也 是一 一对应的关系,并且名称相同。 回滚段:用于存放事务所修改数据的旧值。
8
区(extent)
是Oracle空间分配的逻辑单位,由相邻的数 据块组成,一个区只能唯一地属于一个数据 文件。 当建立数据对象时,Oracle会为数据对象以 区为单位分配存储空间。 当建立段时,Oracle至少要为其分配一个区, 当段不足以容纳数据对象时,该段会自动扩 展一个区。
19
管理实例和数据库
注意事项:
1)数据库名必须要与参数db_name一致; 2)当建立数据库时,至少要包含两个或两个以上的 重做日志组。 3)必须要注意选择字符集,创建后将无法修改。 4)当启动Oracle server时,如果参数 undo_management=TRUE, 则undo_tablespace所对应的 UNDO表空间必须存在,否则会导致Oracle server无法 启动。 5)在参数文件中指定的:background_dump_dest、 core_dump_dest、user_dump_dest目录应手动建立。
25
建立临时表空间
CREATE TEMPORARY TABLESPACE temp02 TEMPFILE ‘e:\test\temp02.dbf ’ SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
用于排序操作 不能包含永久对象 区尺寸=SORT_AREA_SIZE*n
3
表空间的作用
通过表空间,可以近制数据库所占 用的磁盘空间。 通过表空间,管理员可以将不同类 型的数据分布到不同磁盘上,降低 I/O冲突,从而提高I/O性能 。
4
数据文件(data file)
是表空间的物理组成部分,表空间与 数据文件是一对多的关系。 一个数据文件只能属于一个表空间 。 数据对象(表、索引等)的数据逻辑 上存放在表空间中,而物理上则是存 放在数据文件中的。
20
管理实例和数据库
3、字装数据字典视图
(1)字装数据字典视图 数据字典视图用于解码数据字典基表所存放的信息, 运行catalog.sql 脚本可以安装大多数数据字典视图。运 行该脚本必须以sys用户运行。 SQL>conn sys/test as sysdba
SQL>@%oracle_home%\rdbms\admin\catalog.sql
9
数据块
数据块也称为Oracle块,是Oracle在数据文 件上执行I/O操作的最小单位。 数据块尺寸是由初始化参数db_block_size 确定的,取值一般为2K、4K、8K、16K、 32K、64K等。 数据块的大小应是OS块的整数倍。
10
表空间
SYSTEM表空间 自动建立。 存放数据字典。 包含SYSTEM回滚段。 非SYSTEM表空间 分离回滚段、临时段、数据段和索引段。 易于备份和恢复。 易于空间管理。
22
管理实例和数据库
(3)安装PROFILE 当运行SQL*PLUS或SQL*Worksheet访问Oracle 数据库时,这两个应用工具会访问同义词 PRODUCT_USER_PROFILE取得用户信息。如果未安 装PROFILE,则在登录时会显示警告错误。 安装此包必须以SYSTEM用户运行该脚本。 SQL>CONN system/manager SQL>@%oracle_home%\sqlplus\admin\pupbld.sql
26
改变表空间状态
当表空间损坏时,必须要对它进行修复,然后才能使用。表 空间有联机(ONLINE)和脱机(OFFLINE)两种状态,当表空 处于联机状态时,用户可以访问该表空间中的数据对象;而当 表空间处于脱机状态时,用户将无法访问其数据对象。 使表空间脱机的目的是为了对表空间进行维护。
改变表空间状态一般有DBA来完成,若用其它身份则要求用 户必须具有MANAGE TABLESPACE系统权限。
17
管理实例和数据库
建立数据库
1、启动实例
18
2、建立数据库
CREATE DATABASE test MAXINSTANCES 1 MAXLOGHISTORY 1000 MAXLOGFILES 32 MAXLOGMEMBERS 5 MAXDATAFILES 100 LOGFILE GROUP 1 (‘e:\test\redo1a.log’) SIZE 5M, GROUP 2 (‘e:\test\redo2a.log’) SIZE 5M, DATAFILE ‘e:\test\system01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M UNDO TABLESPACE undotbs DATAFILE ‘e:\test\undotbs01.dbf’ SIZE 10M DEFAULT TEMPORARY TABLESPACE temp TEMPFILE ‘e:\test\temp.dbf’ SIZE 10M CHARACTER SET ZHS16GBK;
21
管理实例和数据库
(2)安装PL/SQL包 该包用于封装相关的PL/SQL过程和函数,Oracle提 供了许多系统包。运行catproc.sql脚本会安装所有 PL/SQL系统包,同时也会安装部分数据字典视图,必 须以SYS用户运行该脚本。
SQL>CONN sys/test as sysdba SQL>@%oracle_home%\rdbms\admin\catproc.sql 系统PL/SQL包扩展了数据库的功能,开发人员 可直接在应用程序中引用这些PL/SQL包。
使用UNIFORM SIZE选项建立局部管理表空间
CREATE TABLESPACE local1 DATAFILE ‘e:\test\local01.dbf’ size 2M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
说明:使用该选项建立的表空间所有区的尺寸都是 128K。
5
数据文件
从性能角度考虑,应将数据文件和重 做日志文件分布到不同磁盘上。 从数据安全角度上考虑也应将数据文 件和重做日志文件尽可能分布到不同 的磁盘上 。
6
段(segment)
用于存储特定逻辑结构的所有数据。当建立数据对 象(表、索引等)时, Oracle会自动给这些数据对 象分配相应的存储空间,以存放它们的 数据信息, 这些为数据对象分配的存储空间称为段。 在一个表空间上可以包含一个或多个段。 一个段只能存放在一个表空间上,并且段是由一个 或多个区组成的。
ALTER TABLESPACE users OFFLINE FOR RECOVER;
使表空间联机
ALTER TABLESPACE users ONLINE;
28
改变Leabharlann Baidu空间状态
使数据文件脱机 为了恢复被损坏的数据文件,或使指定的数据文件不可用, 可以使数据文件脱机,命令如下:
11
管理实例和数据库
参数文件
Oracle 9i提供了200多个初始化参数,且每个 初始化参数都有默认值。在使用Oracle Server 时可以根据特定需求设臵相应的值,而大多数 都可以保留默认设臵。 修改或增加初始化参数的原则如下: 1)在修改或增加初始化参数之前,首先检查 该初始化参数是否存在,若存在则直接修改; 若不存在,那么在文件尾部增加一行。
16
管理实例和数据库
建立实例服务
ORADIM -NEW -SID test -INTPWD test -STARTMODE auto -pfile c:\oracle\ora92\database\inittest.ora
连接到实例
1)在DOS提示符下设臵要连接的实例: set oracle_sid=test 2)在DOS提示符下运行: sqlplus /nolog 3)以特权用户连接:connect sys/test as sysdba 已连接到空例程 SQL>
14
管理实例和数据库
db_cache_size = 25M shared_pool_size = 25165824 log_buffer = 32768 background_dump_dest = e:\test\bdump user_dump_dest = e:\test\udump remote_login_passwordfile = EXCLUDSIVE undo_management = AUTO undo_tablespace = UNDOTBS
27
改变表空间状态
使表空部脱机 当建立表空间时,默认状态为ONLINE。对表空间进行备 时应转为OFFLINE,使用如下命令: ALTER TABLESPACE users OFFLINE;
当表空间USERS的数据文件损坏时,为了执行RECOVER TABLESPACE恢复该表空间,必须首先将其转变为脱机状 态,但是在脱机时必须要带有FOR RECOVER选项。
15
管理实例和数据库
db_block_size 指定标准数据块尺寸,数据库建立之后 该参数不能修改。 db_cache_size 数据高速缓存所对应的尺寸。 log_buffer 重做日志缓冲区的尺寸。 shared_pool_size 共享池的尺寸。 background_dump_dest 指定后台进程跟踪文件所在目 录。 user_dump_dest 指定用户进程跟踪文件所在目录。 remote_login_password_file 指定特权用户的认证方式。 Undo_management 指定UNDO数据的方式。
13
管理实例和数据库
建立参数文件
1)复制参数文件 将文件 d:\oracle\admin\oracle\pfile\init.ora复制 到 d:\oracle\ora92\database\inittest.ora 2)编辑初始化参数 db_name = test instance_name = test control_files = e:\test\test01.ctl db_block_size = 8192
24
管理表空间
不指定EXTENT MANAGEMENT子句建立局部 管理表空间
CREATE TABLESPACE local1 DATAFILE ‘e:\test\local01.dbf’ size 2M;
说明:如果在建立表空间时不指定EXTENT MANAGEMENT子句时,在Oracle8i中默认为字典管理表 空间。因为局部管理表空间比字典管理表空间具有更好 的性能,所以从Oracle 9i开始不指定此子句时将默认为 局部管理表空间。 区尺寸的大小由Oracle自动分配。
12
管理实例和数据库
2)每行只能设臵一个参数; 3)字符型参数的值可以用双引号引住,但数 字型参数则不能用引号引住。 4)如果一个初始化参数有多个值,则用逗号 隔开。 5)屏蔽参数可以使用“#”。 在构造Oracle Server之前,首先需要完成的 任务就是建立参数文件。Oracle建议将参数文 件放到Oracle主路径的database子目录下,并 将参数文件名称设臵为: init<SID>.ora 其中 SID为实例标识符。
ORACLE数据库的逻辑结构
1
数据库的逻辑结构
数据库
表空间 数据文件
逻辑
物理
段 区
Oracle块
2
O/S块
表空间(tablespace)
表空间用于组织数据库数据。 从逻辑上讲,数据库是由一个或多 个表空间组成的。 一个表空间只能属于一个数据库。 从物理上讲表空间是由一个或多个 数据文件组成的。