Objectives:

List the major architectural components of Oracle Database
Explain the memory structures
Describe the background processes
Correlate the logical and physical storage structures
Describe ASM storage components

三种连接方式

直接登录server
Client(PL/SQL Developer)-->Server
Client-->Middle Tier(WebLogical)-->Server

Connection: User process-->Server process
一次确定的连接:会话(身份权限认证)

进程间通信方式:
共享内存段:(SGA)
信号量
管道

Shared Pool
父游标--SQL语句转换后形成的二进制代码,解析
通过字符集转换

子游标--执行计划

语法语义检查
在数据字典中查询对象是否存在

Database Buffer Cache
select * from emp;
如果内存不存在emp,则需要读取数据文件。
需要读取一行数据,需要将该行所在数据快读入内存。
缓存最近访问过的数据块,供当前所有用户共享,减少I/O。

Redo Log Buffer
保存DML和DDL进行更改所产生的日志,而不是语句本身。

以上三种是必须的。

Large Pool
提供大的内存分配
RMAN备份恢复
并行查询
不是必须的,当没有的时候,使用shared pool.

Java Pool
在oracle中使用java时才用。

Streams Pool
只被流使用,流复制。公安部--人口信息表。分部更改之后同步到总部数据库。

class 2 started
--------------------------------------------
用户进程
数据库进程:
--服务器进程,为用户进程服务
--后台进程,当oracle实例启动时启动
守护进程(应用进程)
--网络监听
--网格基础架构监听

后台进程
--必须的进程(DBWn, CKPT, LGWR, SMON, PMON, RECO)
--可选的进程(ARCn, ASMB, RBAL, Others)

DBWn:
异步写脏数据(增,删,改产生的数据),提交时也不一定写。

LGWR
将redo log buffer写到redo log file
什么时候写?
用户提交
日志缓冲区1/3满
DBWn写脏块之前
每隔3秒钟

CKPT
通知数据库写进程写脏块
记录检查点信息到控制文件和每个文件的文件头
scn: system change number

演示:获取数据库当前scn
select current_scn from v$database;
select scn_to_timestamp() from dual;

SMON
当实例启动时执行恢复(实例恢复)
清除不再使用的临时段,如排序使用过的临时段空间

PMON
当用户进程失败时,执行进程恢复
--清除数据库buffer cache
--释放用户进程使用的资源,使其不成为僵尸进程
监控空闲会话的超时
动态注册数据库服务到监听器

RECO
recover 进程,但数据中不用,主要用户分布式

演示:查看进程以及关闭进程
select status from v$instance;
exit
ps -ef | grep ora
kill -9 进程号

sqlplus / as sysdba;
startup;(重启数据库则进程启动起来)

ARCn:
备份redo log
select group#, status from v$log;
查看日志文件:
select a.group#, a.sequence#, a.status, b.member, a.bytes/1024/1024 MB, a.first_change# from v$log a, v$logfile b where a.group#=b.group#;
select current_scn from v$database;

alter system switch logfile;
归档
执行检查点
select a.group#, a.sequence#, a.status, b.member, a.bytes/1024/1024 MB, a.first_change# from v$log a, v$logfile b where a.group#=b.group#;
最近一次检查点
select checkpoint_change# from v$database;
看检查点位于日志文件对应的区间。
实例恢复一般使用active和current状态的日志文件,inactive一般用不上。

查看SGA大小:
[oracle@ ~]ipcs -m
当前通信机制,-m共享内存段

查看SGA各部分内存大小
desc v$memory_dynamic_components;
select component, current_size from v$memory_dynamic_components;

desc v$process;
select pname, background from v$process;
background 为1的是后台进程。

数据库存储结构
控制文件
select name from v$controlfile;
alter database backup controlfile to trace as '/u01/app/oracle/control.trace' reuse;
vi control.trace

数据文件
select name from v$datafile;

日志文件
select member from v$logfile;

参数文件
show parameter spfile;
cd $ORACLE_HOME/dbs
echo $ORACLE_HOME
改错参数之后
create pfile from spfile(二进制文件);
vi initorcl.ora(文本文件)
vi init.ora
在initoracl.ora上进行修改,然后进入数据库运行如下命令
create spfile from pfile;

口令文件
select * from v$pwfile_users;

grant sysdba to scott;
select * from v$pwfile_users;
revoke sysdba from scott;

告警和跟踪文件
11g之前 adump, bdump, cdump, udump
11g:
cd $ORACLE_BASE
cd diag/rdbms/orcl/orcl
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
/u01/app/oracle/diag/rdbms/orcl/orcl/alert/log.xml

逻辑和物理数据库结构
表空间:
select name from v$tablespace;

数据文件
desc dba_data_files;
select tablespace_name, file_name from dba_data_files;

占用空间的数据库对象叫做数据段。
select distinct object_type from dba_objects;
select distinct segment_type from dba_segments;

conn scott/tiger;
select segment_name, segment_type from user_segments;
11g延迟分配空间。

create table t(id number);
select * from t;

查看段
select segment_name, segment_type from user_segments;
insert into t values (1);
select segment_name, segment_type from user_segments;

数据块
数据库分配数据块按照区(Extent)来进行分配。多个数据块打包成为段进行分配。
演示
drop table e purge;
drop table t purge;

create table t as select * from emp;
desc dba_extents;
select segment_name, file_id, extent_id, blocks from dba_extents where segment_name='T' and owner='SCOTT';

select tablespace_name, file_name from dba_data_files where file_id=4;

不停插入数据
insert into t select * from t;

select segment_name, file_id, extent_id, blocks from dba_extents where segment_name='T' and owner='SCOTT';
show parameter db_block_size;
继续插入:
块的大小会调整,8-128-896-1024-8192.区的自动管理

转载于:https://www.cnblogs.com/thlzhf/p/3357781.html

OCA读书笔记(1) - 浏览Oracle数据库架构相关推荐

  1. OCA读书笔记(11) - 实现Oracle数据库审计

    11 Implementing Oracle Database Auditing 描述DBA对于安全和审计的职责 使能标准的数据库审计 安全审计选项 查看审计信息 维护审计路径 最小权限原则 只在计算 ...

  2. OCA读书笔记(6) - 配置Oracle网络环境

    6.Configuring the Oracle Network Environment su - grid 装grid时自动创建了监听 netca--创建新的监听 vi $ORACLE_HOME/n ...

  3. 读书笔记之 大型网站技术架构(核心原理与案例分析)

    前言 坚持看了十几天的书,终于完成了毕业后第一次静下心来,利用业务时间看书并做笔记的成就了.废话不多说,这回看的是一直很膜拜的李智慧大神写的大型网站技术架构-核心原理与案例分析. 简短的读后感 极其推 ...

  4. 关于高性能mysql的读书报告_《高性能MySQL》读书笔记:第一章[MySQL架构与历史]...

    <高性能MySQL>读书笔记:第一章[MySQL架构与历史] MySQL逻辑架构 MySQL最优秀的一点就是它的存储架构,将查询处理,系统任务,数据存储/提取相分离 并发控制 通过读写锁实 ...

  5. oracle数据库有哪些文件构成,Oracle数据库架构中包括几层?每层都有什么元素?...

    Oracle数据库架构中包括几层?每层都有 什么元素? 1 PL/SQL代表 A PROCEDURAL LANGUAGE/SQL B PROGRAM LANGUAGE SQL C POWER LANG ...

  6. 《大型网站技术架构》读书笔记一:大型网站架构演化

    来源:http://www.cnblogs.com/edisonchou/p/3773891.html 此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. ...

  7. [读书笔记]大型分布式网站架构设计与实践.分布式缓存

    前言:本书是对分布式系统架构涉及到的相关技术的一本科普书籍.由于很难作为开发参考,只能但求了解.所以通篇浅读,对分布式系统进行大致的了解.因为写的非常好,感觉非常有意思,自己也做不出总结.所谓的读书笔 ...

  8. Oracle数据库笔记(基于oracle数据库的PLSQL编程以及存储过程的创建和使用)

    PLSQL编程 概念和目的 程序结构 Hello World 变量普通变量 引用型变量 记录型变量 流程控制 条件分支 循环 游标 什么是游标 语法 游标的属性 创建和使用 带参数的游标 存储过程 概 ...

  9. OCA读书笔记(9) - 管理数据同步

    9.Managing Data Concurrency 描述锁机制以及oracle如何管理数据一致性 监控和解决锁冲突 管理数据的并发--管理锁 数据的不一致: 脏读 更改丢失 幻影读 脏读: 数据是 ...

最新文章

  1. Unity3d中角色模型和角色名字保持相对位置
  2. 使用 Java 配置进行 Spring bean 管理--转
  3. sap abap在表VBAP和VBAK上增加新字段的标准BAPI
  4. 多个asp.net程序共用Session(sso程序的外设接口)
  5. 执行Bean 实例化
  6. LeetCode 32. Longest Valid Parentheses
  7. 装逼神器,5 行 Python 代码 实现一键批量扣图,你get到了吗
  8. php判断绝对路径文件是否存在,php – 如何确定文件路径是否绝对?
  9. sql查询出的字段切割_SPL 简化 SQL 案例详解:多层固定分组
  10. 使用linux实验总结及心得,实验心得
  11. 分类问题的评估指标一览
  12. 计算机设备耗材管理系统,实验室耗材管理方法、系统、计算机设备和存储介质与流程...
  13. RAM与ROM的特点和区别
  14. 数字图像处理——大家来找茬(Python)
  15. 机器学习基石 5.1 Recap and Preview
  16. SIP协议之代理服务器
  17. 第三章 part3 几个小知识点
  18. 通信原理眼图画法_四川大学通信原理眼图实验
  19. CocosCreator项目学习系列lt;三gt;BattleCity_90tank坦克大战项目的学习
  20. 如何区分企业邮箱是哪个?电子邮箱域名是什么?真的好用吗?

热门文章

  1. 2个红外传感器循迹原理_红外线光学气体浓度传感器作用原理
  2. 关于主机的思维导图_读《思维导图》系列丛书----我用思维导图做什么?
  3. django 后台日期_Django中的日期和时间格式 DateTimeField
  4. 小米6指主板图示_小米MIX2手机不开机,修过没修好,通病问题教你一坨锡就能搞定...
  5. ora03135连接失去联系 进程id 0_进程组、会话、控制终端概念,如何创建守护进程?...
  6. android广告sdk破例,ADT bundle和Android SDK是什么?(能否说的通俗一些,谢谢)
  7. Linux多网卡不通网段,[转载]linux环境下,双网卡配置不同网段后,路由问题
  8. linux用户组建立,查看等
  9. springmvc rest风格化案例
  10. VUE data传值