数据库系统之逻辑结构
11
管理实例和数据库
参数文件
Oracle 9i提供了200多个初始化参数,且每个 初始化参数都有默认值。在使用Oracle Server 时可以根据特定需求设臵相应的值,而大多数 都可以保留默认设臵。 修改或增加初始化参数的原则如下: 1)在修改或增加初始化参数之前,首先检查 该初始化参数是否存在,若存在则直接修改; 若不存在,那么在文件尾部增加一行。
7
常用段的类型
数据段:用于存放表的数据,表与数据段是一 一 对应的关系,并且段名与表名完全相同。 索引段:用于存放索引的数据,索引段与索引也 是一 一对应的关系,并且名称相同。 回滚段:用于存放事务所修改数据的旧值。
8
区(extent)
是Oracle空间分配的逻辑单位,由相邻的数 据块组成,一个区只能唯一地属于一个数据 文件。 当建立数据对象时,Oracle会为数据对象以 区为单位分配存储空间。 当建立段时,Oracle至少要为其分配一个区, 当段不足以容纳数据对象时,该段会自动扩 展一个区。
12
管理实例和数据库
2)每行只能设臵一个参数; 3)字符型参数的值可以用双引号引住,但数 字型参数则不能用引号引住。 4)如果一个初始化参数有多个值,则用逗号 隔开。 5)屏蔽参数可以使用“#”。 在构造Oracle Server之前,首先需要完成的 任务就是建立参数文件。Oracle建议将参数文 件放到Oracle主路径的database子目录下,并 将参数文件名称设臵为: init<SID>.ora 其中 SID为实例标识符。
使用UNIFORM SIZE选项建立局部管理表空间
CREATE TABLESPACE local1 DATAFILE ‘e:\test\local01.dbf’ size 2M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
说明:使用该选项建立的表空间所有区的尺寸都是 128K。
23
管理表空间
使用AUTOALLOCATE选项建立局部管理表空间
CREATE TABLESPACE local1 DATAFILE ‘e:\test\local01.dbf’ size 2M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
说明:使用该选项建立的表空间所有区的尺寸都是64K。
ALTER TABLESPACE users OFFLINE FOR RECOVER;
使表空间联机
ALTER TABLESPACE users ONLINE;
28
改变表空间状态
使数据文件脱机 为了恢复被损坏的数据文件,或使指定的数据文件不可用, 可以使数据文件脱机,命令如下ache_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
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>
ORACLE数据库的逻辑结构
1
数据库的逻辑结构
数据库
表空间 数据文件
逻辑
物理
段 区
Oracle块
2
O/S块
表空间(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;
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
27
改变表空间状态
使表空部脱机 当建立表空间时,默认状态为ONLINE。对表空间进行备 时应转为OFFLINE,使用如下命令: ALTER TABLESPACE users OFFLINE;
当表空间USERS的数据文件损坏时,为了执行RECOVER TABLESPACE恢复该表空间,必须首先将其转变为脱机状 态,但是在脱机时必须要带有FOR RECOVER选项。
26
改变表空间状态
当表空间损坏时,必须要对它进行修复,然后才能使用。表 空间有联机(ONLINE)和脱机(OFFLINE)两种状态,当表空 处于联机状态时,用户可以访问该表空间中的数据对象;而当 表空间处于脱机状态时,用户将无法访问其数据对象。 使表空间脱机的目的是为了对表空间进行维护。
改变表空间状态一般有DBA来完成,若用其它身份则要求用 户必须具有MANAGE TABLESPACE系统权限。
22
管理实例和数据库
(3)安装PROFILE 当运行SQL*PLUS或SQL*Worksheet访问Oracle 数据库时,这两个应用工具会访问同义词 PRODUCT_USER_PROFILE取得用户信息。如果未安 装PROFILE,则在登录时会显示警告错误。 安装此包必须以SYSTEM用户运行该脚本。 SQL>CONN system/manager SQL>@%oracle_home%\sqlplus\admin\pupbld.sql
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数据的方式。
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包。
25
建立临时表空间
CREATE TEMPORARY TABLESPACE temp02 TEMPFILE ‘e:\test\temp02.dbf ’ SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
用于排序操作 不能包含永久对象 区尺寸=SORT_AREA_SIZE*n
24
管理表空间
不指定EXTENT MANAGEMENT子句建立局部 管理表空间
CREATE TABLESPACE local1 DATAFILE ‘e:\test\local01.dbf’ size 2M;
说明:如果在建立表空间时不指定EXTENT MANAGEMENT子句时,在Oracle8i中默认为字典管理表 空间。因为局部管理表空间比字典管理表空间具有更好 的性能,所以从Oracle 9i开始不指定此子句时将默认为 局部管理表空间。 区尺寸的大小由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目录应手动建立。