Oracle 11g自习笔记(一)


目录:
一、关系型数据库基本理论-范式
二、Oracle管理工具
三、启动与关闭数据库实例-showdown和startup
四、Oracle 11g服务器结构



一、关系型数据库基本理论-范式

第一范式:

定义:
当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。

理解:
保证每一列属性都不可再分,确保每一列的原子性

第二范式:

定义:
如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。

理解:
每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。一个人同时订几个房间,就会出来一个订单号多条数据,这样子联系人都是重复的,就会造成数据冗余。我们应该把他拆开来。(类比提取公因式)

第三范式:

定义:
设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF。(关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性)

理解:
数据不能存在传递关系,每个属性都跟主键有直接关系而非间接关系,即不存在a–(b–c)的关系。
e.g.
不符合第三范式:
Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)
符合第三范式:
(学号,姓名,年龄,性别,所在院校)–(所在院校,院校地址,院校电话)

二、Oracle管理工具

SQL*Plus工具

用户区别参考博客
1、sys用户:
sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
2、system用户:
system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager
3、对比sys用户和system用户:
对于数据库维护,一般使用system用户登录。
sys和system这两个用户最大的区别是在于有没有create database的权限。

登录参考博客(注:该博客最后所附两个问题挺有意思)
登录命令:
1、sys 用户:

sqlplus 账户名/密码 as sysdba(sqlplus 账户名/密码@orcl as sysdba 该账号指定登录“orcl”实例)

2、普通用户(scott登录):
默认普通用户是被锁定的 不允许登录。可以用管理员去解锁 ,管理员可以重新设置密码

2.1、管理员登陆
sqlplus sys/oracle as sysdba
2.2、解锁,重新设置密码
解锁:“alter user scott account unlock ; ”
设置scott的密码是123:“alter user scott identified by 123 ; ”(密码默认tiger)
2.3、scott登录
conn scott/oracle
scott登录、Oracle账户相关拓展

Oracle企业管理工具
数据库配置助手

三、启动与关闭数据库实例-showdown和startup

showdown与start参考博客

一、showdown:

SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。

二、startup:

STARTUP OPEN:STARTUP缺省的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。
STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。
STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。
STARTUP PFILE= filename:以filename为初始化文件启动数据库,不是采用缺省初始化文件。
STARTUP FORCE:中止当前数据库的运行,并开始重新正常的启动数据库。
STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。
STARTUP RECOVER:数据库启动,并开始介质恢复。

showdown与start更详细与拓展

四、Oracle 11g服务器结构

Oracle 11g服务器结构:
Oracle 11g服务器结构
内存结构:
在这里插入图片描述

1、系统全局区SGA(System Global Area)

由所有服务进程和后台进程共享。
SGA主要由高速缓冲区、共享池、重做日志缓存区,java池和大型池等内存结构组成。
SGA随着数据库实例的启动而加载到内存中,当数据库关闭时,SGA区域消失。

2、程序全局区PGA

由每个服务进程、后台进程专有;
每个进程都有一个PGA。

3、前台进程

用户进程:
指能够产生或执行SQL语句的应用程序,无论是SQL*Plus,还是其他的应用程序,只要能生成或执行SQL语句,都被称为用户进程。
服务器进程:
指处理用户回话过程中数据库实例发出的SQL语句或SQL Plus命令,它可以分为专用服务器模式和共享服务器模式。

4、后台进程

Oracle后台进程十一组运行于Oracle服务器端的后台程序,是Oracle实例的重要组成部分。后台进程有若干个,分工明确,完成不同的系统功能。进程包括DBWR、CKPT、LGWR、ARCH、SMON、PMON、LCKN、RECO、DNNN、SNPN。其中SMON,PMON,DBWR,LGWR,CKPT这五个后台进程必须正常启动,否则数据库实例崩溃。

五个必须正常启动的进程

1) SMON:系统监控进程

在数据库启动时执行恢复工作的强制性进程。比如,在并行服务器模式下,SMON可以恢复另一个处于失败的数据库,使系统切换到另外一台正常的服务器上。

2) PMON:进程监控进程
进程监控进程用于监控其他进程的状态,当有进程启动失败时,PMON会清除失败的用户进程,用于数据不一致时进行恢复工作

3) DBWR:数据写入进程

数据写入进程的主要任务是负责将内存中的“脏”数据块回写到数据文件中。“脏”数据块是指高速数据缓冲区中的被修改过的数据块,这些数据块的内容与数据文件的数据块内容不一致。但DBWR并不是随时将所有的“脏”数据块都写入数据文件,只有满足一定的条件时,DBWR进程才开始成批量的将“脏”数据块写入数据文件Oracle这样做的目的是为了尽量减少I/O操作,提高Oracle服务器性能。通常在以下几种情况发生时,DBWR进程会将“脏”数据块写入数据文件:

4) LGWR:日志写入进程

用于将重做日志缓冲区中的数据写入重做日志文件。Oracle系统将用户所做的修改日志信息写入日志文件,然后将修改结果写入数据文件。Oracle实例在运行中会产生大量日志信息,这些日志信息首先被记录在SGA的重做日志缓冲区中,当发生提交命令、或者重做日志缓冲区的信息满1/3、或者日志信息存放超过3秒钟时,LGWR进程就将日志信息从重做日志缓冲区中读出并写入日志文件组中序号较小的文件中,一个日志组写满后接着写另外一组。当LGWR进程将所有䣌日志文件都写过一遍后,它将再次转向第一个日志文件组重新覆盖。

5) CKPT:检查点进程

检查点进程可以看作一个事件,当检查点事件发生时,CKPT会要求DBWR将某些“脏”数据块回写到数据文件。当用户进程发出数据请求时,Oracle系统从数据文件中读取需要的数据并存放到高速数据缓冲区中,用户对数据的操作时在缓冲区中进行的。当用户操作数据时,就会产生大量的日志信息并存储在重做日志缓冲区,当Oracle系统满足一定条件时,日志写入进程(LGWR)会将日志信息写入到重做日志文件组中,当发生日志切换时(写入操作正要从一个日志文件组切换到另一组时),就会启动检查点进程,DBA还可以通过修改初始化参数文件SPFILE中的CHECKPOINT_PROCESS参数为TRUE来启动检查点进程。

剩下的五个

ARCH:归档进程

可选择的进程,只有当Oracle数据库处于归档模式时,该进程才可能起到作用。若Oracle数据库处于归档模式,当各个日志文件组都被写满即将被覆盖之前,先由归档进程(ARCH)把即将覆盖的日志文件中的日志信息读出,然后再把这些“读出的日志信息”写入到归档日志文件中。

LCKN:锁定进程

一个可选进程,并行服务器模式下可以出现多个锁定进程以利于数据库通信

RECO:恢复进程

在分布式数据库模式下使用的一个可选进程,用于数据不一致时进行恢复工作

DNNN:调度进程

这是一个可选进程,在共享服务器模式下使用,可以启动多个调度进程。

SNPN:快照进程

用于处理数据库快照的自动刷新,并通过DBMS_JOB包运行预定的数据库存储过程

Oracle之内存结构(SGA、PGA) 详细讲解与拓展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值