简答题
(1)简述Oracle数据库体系结构的构成。
一个oracle服务由一个DBMS和数据库组成,分别对应数据库的存储结构和软件结构
软件结构(即实例),分为内存结构和后台进程
恕我copy一张图
(2)简述Oracle数据库物理存储结构的组成。
物理存储结构
由一系列操作系统文件组成,存放于磁盘上,是数据库实际存储单元
这些文件主要包括数据文件,控制文件,重做日志文件,归档日志文件,初始化参数文件,跟踪文件,告警文件等
(3)简述Oracle数据库逻辑存储结构的组成及相互关系。
Oracle中逻辑存储结构分为
数据块 --> 区 --> 段 --> 表空间 --> 数据库
(4)简述Oracle数据库内存结构的组成及各个内存区的作用。
分为系统全局区(SGA)和程序全局区(PGA)
系统全局区主要由
- 数据高速缓冲区(存储最近从数据文件中检索出来的数据),
- 共享池(用于缓存最近执行过的sql或者plsql和数据字典信息),
- 重做日志区(缓存用户对数据库进行修改时生成的重做记录),
- 大型池(位Oracle共享服务器,服务器IO进程,数据库备份与恢复,执行具有大量排序操作的sql等操作提供内存空间),
- java池(对java的支持,可以存储java代码,语法分析等),
- 流池(为Oracle流数据的捕获处理和应用处理提供内存),
- 其他结构
程序全局区包括:
- 排序区(存放排序操作产生的临时文件)
- 游标信息区(存放执行游标操作时产生的数据)
- 会话信息区(保存用户会话所具有的权限,角色,性能统计信息)
- 堆栈区(保存会话过程中的绑定变量,会话变量等信息)
(5)简述Oracle数据库后台进程的组成及各个后台进程的功能。
进程类型:
- 用户进程 用户连接数据库执行应用时会创建一个进程
- 服务器进程 由Oracle创建,进行sql的解析
- 后台进程 在任意时刻都可以处理多用户的请求,进行复杂操作并优化性能
后台进程:
- 数据库写入进程
- 进程,日志写入进程
- 检查点进程
- 系统监控进程
- 进程监控进程
- 归档进程
- 恢复进程
- 锁进程
- 调度进程
- 等
(6)简述Oracle数据库后台进程DBWR何时启动。
DBWR 即数据库写入进程
启动条件:
- 服务器进程在数据库高速缓冲区中搜索一定数量的缓冲块后,仍然没有找到可用的空闲缓冲块
- 检查点发生时
- 数据高速缓冲区中LRU列表长度达到初始化参数
DB_BLOCK_WRITE_BATCH
指定值的一半 - DBWR发现超时
(7)简述Oracle数据库后台进程LGWR何时启动。
- 通过commit提交事务
- 重做日志缓冲区被写满三分之一
- DBWR进程开始将脏缓存块写入数据文件
- LGWR超时
(8)简述数据字典中存储内容及其作用。
数据库创建时创建,保存了数据库系统信息以及数据库中所有的对象信息
由一系列表和视图组成,这些表和视图都是无法被用户操作,只有Oracle才能操作
(9)简述数据字典的基本结构。
- 静态数据字典表
- 静态数据字段视图
- 动态数据字典表
- 动态数据字典视图
实训题
使用SQL命令创建一个本地管理方式下自动分区管理的表空间USERTBS1,其对应的数据文件大小为20MB。
create tablespace USERTBS1 datafile 'D:\app\windows\oradata\orcl\USERTBS1_DBF' size 20 M extent management local autoallocate;
使用SQL命令创建一个本地管理方式下的表空间 USERTBS2,要求每个分区大小为521k
create tablespace USERTBS2 datafile 'D:\app\windows\oradata\orcl\USERTBS2_DBF' size 20 M extent management local uniform size 512 k;
修改 USERTBS1表空间的大小,将该表空间的数据文件改为自动扩展方式,最大值为100M
alter database datafile 'D:\app\windows\oradata\orcl\USERTBS1_DBF' autoextend on next 5 M maxsize 100 M;
使用SQL命令创建一个本地管理方式下的临时表空间 TEMPTBS并将该表空间作为当前数据库实例的默认临时表空间。
create temporary tablespace TEMPTBS tempfile 'D:\app\windows\oradata\orcl\TEMPTBS.DBF' size 20 M extent management local uniform size 16 K;
使用SQL命令对 USERTBS1表空间进行联机和脱机状态转换。
alter tablespace USERTBS1 offline;
alter tablespace USERTBS1 online;
删除表空间 USERTBS2,同时删除该表空间的内容以及对应的操作系统文件
drop tablespace USERTBS2 including contents and datafiles;
查询当前数据库中所有的表空间及其对应的数据文件信息
select tablespace_name, file_name
from dba_data_files;
为 USERS表空间添加一个数据文件,文件名为 USERS05.dbf,大小为50MB。
alter tablespace USERS add datafile 'D:\app\windows\oradata\orcl\USERS05.DBF' size 50 M;
为 EXAMPLE表空间添加一个数据文件,文件名为 example05.dbf,大小为20MB。
alter tablespace EXAMPLE add datafile 'D:\app\windows\oradata\orcl\EXAMPLE05.DBF' size 20 M;
修改 USERS表空间中的 userdata05.dbf为自动扩展方式,每次扩展5MB,最大为100MB
alter database datafile 'D:\app\windows\oradata\orcl\USERDATA05.DBF' autoextend on next 5 M maxsize 100 M;
修改 EXAMPLE表空间中 example05.dbf文件的大小为40MB
alter database datafile 'D:\app\windows\oradata\orcl\EXAMPLE05.DBF' resize 40 M;
将表空间 USERS中的数据文件 USERS05.DBF更名为 userdata005.dbf,将表空间EXAMPLE中的数据文件 example05.dbf更名为 example005.dbf
alter database rename file 'D:\app\windows\oradata\orcl\USERS05.DBF','D:\app\windows\oradata\orcl\EXAMPLE05.DBF'
to 'D:\app\windows\oradata\orcl\USERDATA005.DBF','D:\app\windows\oradata\orcl\EXAMPLE005.DBF';
将数据库的控制文件以二进制文件的形式备份。
alter database backup controlfile to 'D:\app\windows\oradata\orcl\CONTROL.BKP';
为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo5a.log和redo5b.log,大小分别为5MB
alter database add logfile group 5
(
'D:\app\windows\oradata\orcl\redo5a.log','D:\app\windows\oradata\orcl\redo5b.log'
) size 5 M;
为新建的重做日志文件组添加一个成员文件,名称为redo5c.log
alter database add logfile member 'D:\app\windows\oradata\orcl\redo5c.log' to group 5;
将数据库设置为归档模式,并采用自动归档方式
shutdown immediate startup mount alter database archivelog;
alter database archivelog;
alter database open;
alter system archive log start;
设置数据库归档路径为D: \ORACLE\BACKUP
alter system set log_archive_dest = 'D:\ORACLE\BACKUP' scope = spfile;