`

Oracle原理笔记(待续)[转]

阅读更多
Oracle原理笔记(待续)

博客分类: Oracle数据库
OracleSQL Server数据结构SQL配置管理
图例:
蓝色:Oracle命令
红色:概念
黄色:动态性能视图
加粗:一段的开始



---------------------------第一章 Oracle体系结构概述-----------------------------------------------------
一、概述 什么是Oracle server
Oracle Server是一个系统,包括两个部分Oracle instance与Oracle database

二、Oracle的内存结构

2.1、Oracle instance
instance 有两部分组成,由内存与后台进程组成
 
...... 内存
包括一个SGA,
多个PGA,一个Server Process对应一个PGA
一个instance只能对应一个database,一个database可以对应多个instance
...... 后台进程
下面有说明








2.2Oracle database 就是一堆硬盘上的文件

有三种文件: Data files Control files Redo Log files

 
查看SGA区信息的命令:show sga



2.3  SGA区的组成:一个数据库实例只有一个SGA
Shared Pool
        Library Cache                     存储编译后的SQL,PL/SQL语句
        Data Dictionary Cache        数据字典,存储着数据库的控制信息,比如动态性能视图
Database Buffer Cache          占内存最大的,存储数据的缓存
Redo Log Buffer                      存储对表的修改,事务日志
java Pool(可选)
Large Pool(可选)


SGA增长的最小单位叫granule
查看granule: select component,granule_size from v$sga_dynamic_components;

SGA的最大值由参数 SGA_MAX_SIZE决定



2.4 PGA的组成:一个Server Process对应一个PGA,什么是Server Process下面的说明。



三、Oracle的进程结构

User Process (用户进程) 如sql plus就是一个用户进程
Server Process (服务进程) 负责与用户连接的进程
background  Process (后台进程) DBWn , LGER, PMON,SMON,CKPT
    DBWn (必有)Database Writer 最多可有20个,负责把Database Buffer Cache 中被修改的数据写的data files中。IO任务繁重可配置多个DBWn 进程
    LGER   (必有)Log Wriger 负责把Redo Log Buffer中的数据写到Redo Log files中。
    PMON  (必有)Process Monitor 用于释放,清理进程级的资源,如进程出错时销毁进程,重新生成进程。
    SMON  (必有)System Monitor 用于释放,清理系统级的资源
    CKPT   (必有)CheckPoint 是轻量级的进程,写入更新检查点信息。
    ARCn   (可选)Archiver 负责写归档日志

四、Oracle的逻辑结构
Oracle Server上只有一个Oracle Database。
一个Oracle Database可以有多个表空间组成。
一个表空间有多个segment组成。
一个segment有多个Extent组成。
一个Extent是一组连续的blocks(块)。

五、Oracle的物理结构
一个表空间有多个Data file组成。
一个segment可以跨Data file



------------------------第二章 Oracle 服务器入门---------------------------------
一、Oracle的管理工具
OUI(Oracle Universal Installer)                             安装删除数据库
DBCA(Oracle Database Configuration Assistant)  创建管理数据库
SQL Plus                                                               不用说了吧
OEM(Oracle Enterprise Manager)                          管理企业中多个数据库
Oracle Net Manager                                              网络助手
Recvoery Manager                                                RMAN
Date Pump


------------------------第三章   管理Oracle实例-----------------------------------

一、oracle的初始化参数
oracle的初始化参数(pfile,spflie中的参数)都保存在v$parameter视图中,可以使用sql查具体参数的值

方便快速查看参数的命令:
show parameter 参数名(可简写),例如show parameter pga_ag 是查pga_aggregate_targer参数的值

查看oracle的SID, 看linux下的oracle的环境变量,(linux命令) :env | grep ORACL
SID的讲解


二、pfile,spfile讲解
1 pfile,spfile的说明与命名规范
     这两个文件保存在OracleHome/dbs目录
     pfile命名规范 :int + SID +.ora
     spfile命名规范 :spfile + SID +.ora
2 使用一个例子pfile修改成一个当前数据库能使用的pfile
3 使用pfile创建spfile
     create spfile='spfile文件名' form pfile='pfile文件名';
     create spfile form pfile ; 使用默认值 
4 pfile的修改,直接使用文本编辑器修改。

---spfile---
1、修改spfile中的内容:<这是可选部分>
     alter system set parameter=value <comment='说明' > <deferred> <scope=memory|spfile|both> <sid='sid|*'>;
2、把spfile中的参数改回默认值
     alter system reset parameter scope=both sid='*';

3 使用spfile 创建pfile
     create pfile='pfile文件名' form  spfile='spfile文件名' ;
     create pfile  form spfile ;  使用默认值

4 使用strings命令(Linux命令)查看二进制文件中的文字
     strings 二进制文件名 | more


三、Oralce的启动
启动oracle  startup
启动监听进程  lsnrctl start   远端的用户可以通过网络连到数据库

3.1、Oralce的启动的顺序:
1、先找spfileSID.ora
2、如果没有,再找Default spfile  (spfile.ora文件)
3、如果没有,再找initSID.ora
 
3.2、使用指定的pfile或spfile来启动当前Oralce的数据库
startup后面可加参数 srartup pfile=$ORACLE_HOME/dbs/init*.ora ,指定使用pfile来启动当前数据库

srartup spfile=''  这是不可以的, 也就是说,不能用直接指定的spflie来启动当前数据库,
但我们可以可以写一个pfile指向一个spfile,
pfile文件  123.ora 的内容:
Sql代码 
spfile=$ORACLE_HOME/dbs/spfileABC.ora 
spfileABC.ora是一个存在的,有效的spfile文件。
再srartup pfile='$ORACLE_HOME/dbs/123.ora ' 命令来启动当前数据库,就可以使用我们指定的spfile



3.3、Oracle 启动的4个阶段:
1 shutdown 状态,关闭状态
2 nomount 状态,instance启动阶段,读初始化参数,分配内存,启动后台进程,但没挂载数据库(dataFile)
3 mount 状态,打开控件文件,日志文件,挂载数据库(dataFile),一般用户不能访问, 只有管理员能访问, 可做备份恢复工作。管理员使用的命令是有限的.
4 open  状态,可以正常对外提供服务
5 restrict   状态,一般用户(无restrict权限)不能连接到数据库,管理员可以做一些维护工作,管理员可以使用所有的命令
6 read only 状态 ,只读状态,用户可查数据,管理员又可以做一些离线的操作.

startup nomount  , 进入nomount 状态
alter database mount ; , 进入mount 状态
startup mount ,直接进入mount 状态
alter database open ;  , 进入open  状态
startup restrict  , 直接进入restrict  状态
alter system enable restricted session; 可从open 状态进入restrict  状态

startup mount; alter database open read only; 进入read only状态


3.4、把已连接上来的用户踢下去:
1 查看在线用户 : select sid,serial#,username from v$session;
2 通过用户名,找出相应的sid,serial# 值,为下一步做准备
3 alter system kill session   ' sid值 , serial#值 ' ;


四、Oralce的关闭的顺序:
1 colse a database    把SGA中的数据写到硬盘上,关闭redo log files,数据文件.
2 Unmount a Datebase 关控制文件
3 ShutDown an Instance  关实例,放内存


停止oracle  shutdown abort  最狠的,强断开session,回滚未完成的事务,没能关数据文件,会留垃圾,下次再启动时SMON进程再来清理这些垃圾(没能及时写入数据文件的数据).
停止oracle  shutdown immediate  最常用的,强断开session,回滚未完成的事务, 会正常关数据文件,不留垃圾.
停止oracle  shutdown transactional  强断开session, 等所有事务提交, 会正常关数据文件,不留垃圾.
停止oracle  shutdown normal   等session自己断开, 等所有事务提交, 会正常关数据文件,不留垃圾.



五、诊断文件  Diagnostic Files

5.1 诊断文件的类型:
1 alert_SID.log  文件 。      
2 Background trace 文件。 
3 User trace 文件。              文件名:SID_ora_PID.trc


5.2 alertSID.log  文件
文件名:alert_SID.log
文件只有一个。
记录你的操作,重大事件的结果,记录每次启动的初始化参数。文件很大
本文件存放在位置,要查询background_dump_dest参数,show parameter dump;
可以使用VI 来查看文件的内容。

5.3 Background trace 文件
文件名:SID_processname_PID.trc
每个PID相同的进程一个文件。
如果后台进程出现错误,就会写这类文件, 这种情况较少。

5.4 User trace 文件
文件名:SID_ora_PID.trc
server process 进程出现错误, 你想主动记录用户的操作时,就会写这类文件
本文件存放在位置,要查询user_dump_dest参数,show parameter dump;

5.5 手工控制记录 User trace 文件
在session级别记录
alter session set sql_trace=true;
修改成功后,用show parameter sql_trace查看, 10G版本可以看到变化,9I版本看不到,但实际已修改成功



在instance 级别记录
修改初初始化参数文件  sql_trace=true


这时远端用户,执行的SQL语句,都会被记录下来, 记在user_dump_dest参数指定的目录下的SID_ora_PID.trc文件中。



------------------------------第四章 创建数据库--------------------------------------------------------
用DBCA创建
手动创建
手动删除以有数据库
------------------------------第五章 数据字典和动态性能视图----------------------------------


一、数据字典(DD)(静态,不常变化)
1.1 数据字典是
是只读的表和视图,存储在 system 表空间,所有者是SYS用户,数据字典用来保存以下信息:
1 数据据库的物理与逻辑结构
2 数据库对的定义与空间分配
3 数据完整性的约束
4 用户信息
5 角色信息
6 特权信息
7 审计信息

创建数据字典时,使用catalog.sql 脚本来创建的。

1.2  分类
DBA_XXX   是“所有”,是DBA能访问的schema
ALL_XXX    不是“所有”,是当前用户的全部能访问schema,  比USER_XXX 多了一些被授权访问的其它用户的schema
USER_XXX 用户自己的schema

1.3 常用的数据字典
dba_tables  记录数据中所有的表。
all_tables    记录当前用户的全部能访问的表,可能有一些是被授权访问的其它用户的表。
user_tables 记录当前用户所有的表,就是当前用户“拥有”的表。

dba_objects  记录数据中所有的数据对象
all_objects    记录当前用户的全部能访问的数据对象,可能有一些是被授权访问的其它用户的数据对象
user_objects 记录当前用户所有的数据对象,就是当前用户“拥有”的数据对象。

dictionary 总揽表,记录着全部的数据字典与动态性能视图
select * from dictionary 10.2G版本中大约有1870条记录



二、动态性能视图 (动态,常变化)

是虚表,不是真表, 是内存中的信息,只是以“表”的形式来展示,记录数据库当前的活动情况,如现在数据库有几个事务没有提交,是常变化的。用于监控与调优数据库。所有者是SYS用户。

v$fixed_table  动态性能视图的一揽表,存储所有的动态性能视图名称。10.2g版本大约有1383条录,9i版本大约有900多条
v$controlfile    此时控制文件信息
v$database    此时数据库信息
v$datafile       此时数据文件信息
v$instance      此时实例信息
v$parameter   此时初始化参数信息,是存储在内存中的。  (重要)
v$session        此时远端用户与数据库建立的session信息
v$sga              此时SGA的信息
v$spparameter  此时spfile中的参数信息,是存储在spfile文件中的
v$tablespace     此时表空间信息
v$thread            redo log信息
v$version           版本



------------------------------第六章 管理控制文件-----------------------------------------------------

------------------------------第七章 管理联机Redo日志文件-----------------------------------

------------------------------第八章 管理表空间和数据文件-------------------------------------

------------------------------第九章 存储空间管理-存储结构和关系------------------------

------------------------------第十章 Undo管理---------------------------------------------------------

------------------------------第十一章 管理表---------------------------------------------------------


------------------------------第十二章 管理索引---------------------------------------------------------


------------------------------第十三章 维护数据完整性---------------------------------------------------------


------------------------------第十四章 管理口令与安全---------------------------------------------------------

------------------------------第十五章 管理用户---------------------------------------------------------


------------------------------第十六章 管理Privileges---------------------------------------------------------


------------------------------第十七章 管理角色---------------------------------------------------------


------------------------------第十八章 审计Auditing---------------------------------------------------------


------------------------------第十九章 导入数据到数据库---------------------------------------------------------


------------------------------第二十章 全球化支持---------------------------------------------------------

分享到:
评论

相关推荐

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    李兴华Oracle全部笔记

    李兴华Oracle全部笔记是一份详细记录了Oracle相关知识的学习资料,涵盖了从基础概念到高级特性的全面讲解。这些笔记可能是李兴华在深入研究Oracle后的心得体会,对于想要学习或提升Oracle技能的人来说是一份宝贵的...

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    韩顺平玩转oracle视频教程笔记

    韩顺平的“玩转Oracle”视频教程旨在帮助学习者掌握Oracle的核心概念和技术。以下是对视频教程笔记的详细解析: 首先,Oracle认证是成为Oracle数据库管理员的重要步骤,这涉及到对数据库系统的深入理解和操作。与...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    韩顺平oracle课堂笔记

    韩顺平老师的课堂笔记会解析这些方法的原理和使用场景,帮助读者理解如何有效地实现分页查询,优化查询性能,同时避免全表扫描。 三、多表查询 在实际业务中,往往需要对多个表进行联合查询。Oracle支持的多表查询...

    oracle培训笔记2

    在"Oracle培训笔记2"中,我们可以看到一系列的课程涵盖了XML基础和多行函数的应用,这些都是Oracle数据库管理和开发中的关键知识点。 XML(可扩展标记语言)在Oracle中的应用非常广泛,特别是在数据交换和存储非...

    韩顺平玩转Oracle视频笔记

    "韩顺平玩转Oracle视频笔记"是一份非常适合初学者的学习资料,通过视频教程的形式,深入浅出地讲解Oracle的基础知识和实际操作。 首先,Oracle安装过程中会自动创建两个关键用户:sys和system。sys用户作为超级用户...

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    Oracle学习笔记.pdf

    在Oracle学习笔记中,对安装卸载和配置的详尽讲解,不仅为学习者提供了操作指导,而且还涉及到了数据库管理的一些基础知识点。这些内容对于数据库管理员和开发人员来说都是十分重要的,因为它们是操作Oracle数据库的...

    oracle adg安装个人笔记

    oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记...

    Oracle原理学习笔记.doc

    Oracle原理学习笔记.doc

    Oracle课堂笔记(很全很详细的Oracle笔记)

    根据提供的信息,我们可以总结出以下关于Oracle的相关知识点: ### Oracle基础知识与分类 #### DDL (Data Definition Language) 数据定义语言 - **DDL** 主要用于创建、修改或删除数据库对象,如表、索引等。 ###...

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    Oracle笔记

    这个是我学习网上的视频做的oracle笔记,对于oracle一窍不通的菜鸟可能有用吧,大家有需要可以看看

    (转)最全的SQL(Oracle)笔记集录

    【标题】:“(转)最全的SQL(Oracle)笔记集录” 这篇资源是一个全面的SQL,特别是针对Oracle数据库的学习笔记集合。Oracle是世界上最广泛使用的数据库管理系统之一,它提供了丰富的功能来处理各种类型的数据和满足...

    oracle实用笔记 命令 文档 pdf

    这份"Oracle实用笔记 命令 文档 PDF"很可能是对Oracle数据库管理、查询和维护的一份详细指南,涵盖了各种关键的Oracle命令和操作技巧。下面我们将深入探讨其中可能涉及的一些重要知识点。 1. **Oracle SQL语法**:...

    Oracle数据库笔记大全

    Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级数据管理、数据分析和应用程序开发。以下将详细阐述Oracle的一些核心知识点。 1. **基础概念和术语**: - **关系型数据库**: 数据以表格...

Global site tag (gtag.js) - Google Analytics