Oracle大型数据库作业3

本文详细介绍了Oracle数据库的体系结构,包括软件结构、物理存储结构、逻辑存储结构、内存结构和后台进程。讨论了数据库写入(DBWR)和日志写入(LGWR)进程的启动条件,以及数据字典的内容和作用。此外,还提供了创建、修改和管理Oracle表空间的SQL命令示例。
摘要由CSDN通过智能技术生成

简答题

(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 即数据库写入进程

启动条件:

  1. 服务器进程在数据库高速缓冲区中搜索一定数量的缓冲块后,仍然没有找到可用的空闲缓冲块
  2. 检查点发生时
  3. 数据高速缓冲区中LRU列表长度达到初始化参数DB_BLOCK_WRITE_BATCH指定值的一半
  4. DBWR发现超时
(7)简述Oracle数据库后台进程LGWR何时启动。
  1. 通过commit提交事务
  2. 重做日志缓冲区被写满三分之一
  3. DBWR进程开始将脏缓存块写入数据文件
  4. 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;
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值