设为首页 收藏本站
查看: 554|回复: 0

[经验分享] Oracle原理笔记(待续)

[复制链接]

尚未签到

发表于 2016-6-23 10:11:04 | 显示全部楼层 |阅读模式
  图例:
  蓝色:Oracle命令
  红色:概念
  黄色:动态性能视图
  加粗:一段的开始
  
  
  
  ---------------------------第一章 Oracle体系结构概述-----------------------------------------------------
  一、概述 什么是Oracle server
  Oracle Server是一个系统,包括两个部分Oracle instanceOracle database
  
  二、Oracle的内存结构
  
  2.1、Oracle instance
  instance 有两部分组成,由内存后台进程组成
  

......内存  包括一个SGA,
  多个PGA,一个Server Process对应一个PGA
  一个instance只能对应一个database,一个database可以对应多个instance

......后台进程  下面有说明

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

有三种文件:Data filesControl filesRedo 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 的内容:

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---------------------------------------------------------
  
  
  ------------------------------第十九章 导入数据到数据库---------------------------------------------------------
  
  
  ------------------------------第二十章 全球化支持---------------------------------------------------------
  
  
  
  
  
  
  
  
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-233999-1-1.html 上篇帖子: oracle 高级分组 下篇帖子: Oracle中文全文索引
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表