`

ORALCE DBA学习1

阅读更多
1 oracle的服务架构
    服务器启动监听进程,用户进程发出请求,到达该监听进程,监听进程收到请求后,派生出一个
服务进程出来(可以重新建一个,也可以从服务器进程池中拿出来),监听进程把用户请求转发给
服务进程后,继续去监听其他请求
    ORACLE 有NET 8协议,实现了OSI中的上三层,负责客户和服务器之间建立完整的SQL会话,解析SQL语句,执行

SQL等

2 服务端的listner.ora,有专有模式和共享模式两种,区别为:
    专有模式:为每个用户连接启动一个单独的进程,而共享模式为多个用户连接共享一个进程,也就是多个用户共

享一个会话通道

3 监听器进程的静态注册和动态注册
   静态注册,配置监听器时,明确告诉监听器某个数据库的信息,告诉需要连接哪个SID的信息
    动态注册:由数据库动态向监听器注册,由PMON进程完成的,也可以用
      alter system register,命令马上强制pmon立即注册
    动态注册的话,在lsnrctl status中,可以看到静态的是unknown状态,动态的能准确监视其数据库状态

4 lsnrctl命令
   lsnrctl status,lsnrctl start,lsnrctl stop
5 在10g中,可以使用easy connect naming method,客户端不再需要配置
tnsname.ora,格式为
   sqlplus xxx/xxxx@//host/sid

6 数据库物理结构:分为数据文件,控制文件,日志文件,最重要三种

7 联机日志组: LGWR进程会不断的向redo log中写入日志内容,当一组日志文件被写满时,会触发log switch,然

后lgwr继续向另外一组日志写入
会覆盖掉以前的;如果要保留全部日志,必须用归档日志。

8 归档日志,当一组联机日志写满后,在触发日志切换的同时,还触发arcn进程,将写满的日志copy到另外一个位置


即使在rac环境中,每个日志线程的要求也是一样的
9 trace文件 分别是内核跟踪文件,后台进程跟踪文件,用户追踪文件。

10 OMF:
   实际上就是设置了一些预先的参数位置,让比如创建相关操作时,不用进行指定文件路径等;
11 数据块:一般OLTP设置为8KB比较好,OLAP可以适当设置大点。
         数据块分为数据块头(block header):包括数据块地址,数据块类型(索引块,undo),事务表(ITL)
     row directory:为数据块内部的一个指针表,找某条记录时,不需要再遍历整个
数据块
    free space:空闲的空间 used space:数据记录占用的空间
   分区:为了更好地管理数据块,分区数量可多可少,是连续的空间,但会产生空间碎片
    段:每个表或索引都对应一个段,段不要求连续
  表空间:分为永久表空间,临时表空间和undo表空间。永久表空间为system,sysaux,user表空间;sysaux为10G以

后辅助功能而设置的表空间
   临时表空间组:一个临时表空间组至少包含一个临时表空间(10g开始提供)
    select * from dba_tablespace_groups;
    移动临时表空间到新的临时表空间组:
     alter tablespace temp tablespace group tmpgroup1;
    undo表空间:一个数据库中可存在多个undo表空间,但任一时间只有一个UNDO
表空间被激活

12 段空间管理
    在手动创建segments时,手动空间管理方式中,oracle通过一个freelist链表来记录
数据块的使用,但容易引起DML时的竞争
   因此9I开始,使用自动空间管理方式,ASSM,不再使用freelist,而是通过位图方式记录每个数据块的使用情况,

用来记录数据块的位图的数据块叫bitmapped block(BMB),
分散在段中,减少了竞争。
   oracle对于extent的管理分字典管理和本地管理,本地管理使用位图,比较快和好

13  desc dba_objects
     两者可以这样区别:object_id可以看做是对象的一个逻辑id,在对象创建时分配,一经分配即不再改变;而

data_object_id为一个物理id,在对象物理存储变化时可能发生改变。
    
14  后台进程
    1) DBWN:负责把sga被修改的数据同步到磁盘中去;写的时机包括:检查点,每3秒唤醒一次,数据库最多有20

个dbwn进程
   2)LGWR:将log buffer中的日志内容写到联机日志文件中去。当DBWR试图把一个脏数据块写到磁盘前,先确定其

REDO记录是否写到联机日志文件中,如果没有,则通知LGWR进程去写入。
  3)PMON:监视用户进程,负责发现用户进程异常后清理资源等工作
  4)SMON:负责实例的恢复工作
  5)ARCN:归档日志进程
  6)MMON,MMNL,MMAN:10G中的AWR进程收集
  7)CJQO:负责定时任务
  8)RVWR:10G中负责flashback功能
15 SGA:共享进程,适用OLTP,PGA对与OLAP比较重要
    1)data buffer  cache,分为keep buffer pool,recycle buffer ppol,
default buffer ppol,其中keep buffer pool的初始化参数为db_keep_cache size,
该区域内的数据会尽可能保留在内存中
       recycle buffer pool:一用完就会被移走,比如体积大的日志表等,可以考虑用这个
       default_buffer_pool:db_cache_size 缺省的cache
     2)shardpool:存放的为代码,分为library cache和dictionary cache两个
区域,library中存放代码部分,dicitionary存放数据字典部分,加快解析用。
    3)redo log  buffer:存放redo记录
    4)大对象池,JAVA池
16 PGA:完成排序,HASH,连接等
17 归档模式和非归档模式
    1) 切换为归档模式:alter database archivelog;
      定义归档位置: alter system set log_archive_dest="location=d:\....."
scope=both;

    2) RMAN介绍:
       targetdatabase:要进行备份的数据库叫做targetdatabase.
       catalog database:rman的备份信息可以保存在控制文件中,也可以保存在一个
单独的数据库中,方便管理
      通道channel:是一个命令行接口,它指引一个target database的一个服务进程
进行数据库备份,还原和恢复。
      备份集和COPY:有备份集和COPY方式,备份集象ZIP的方式,备份集的方式包括要还原和恢复 ,恢复为恢复相

关的归档日志和联机日志,占用时间多点;而COPY方式则可以忽略还原的操作,不需要额外的空间
       RMAN连接到目标数据库,其中有2个通道用来对数据库进行调用,用自己的PL/SQL执行RMAN命令,调用数据库

进行备份。

     操作:
   1) rman target '用户名/xxxxx@sid'
   注意,有时会报:找不到recover.bsq文件,要把服务端rdmbs\admin下的复制到客户端
     看所有配置  show all;
       
  2) 配置控制文件的自动备份
    configure controlfile autobackup on;
  3) 缺省的备份格式为backupset,为压缩的,配置磁盘备份
      configure default device type to disk;
     配置为压缩方式backup
          configure device type disk backup type to compressesd backupset;
  4) 基于时间窗口的备份策略
      比如设置了configure retention policy to recovery window of 7 days;
     设置了7天,则假如1,14号分别作了一次全备,恢复时间是7天,现在是23号,
就要保证恢复到16号,则需要14号的全备+14号以后的归档日志,而14号之前的,都可以删除
   5) 基于冗余的策略
       configure retention policy to redundancy 2;
      定义每个文件至少保留2个备份。
   6)查看策略
       show retention policy;
    7) 查看过期的备份文件
        report obsolete;
    删除过期文件
          delete obsolete;
    9)完全备份: 
       backup database;
       采用压缩备份:backup as compressed backupset database;
       采用image copy方式备份:backup as copy database;
    10)增量备份:在做完全备份后,比如周二备份的只是周二的,每天都是当天的备份;
   backup incremental level 1 database;
    累加增量备份:比如周二的是周一到周二之间共2天的变化
    backup incremental level1 cumulative database;
关于RMAN的练习,参考更多的;http://www.cnblogs.com/shishanyuan/archive/2010/03/01/1675349.html
11)提升增量备份的性能,有一个特殊文件叫数据块变化跟踪文件,减少数据的遍历;
当数据块发生变化时,将相关信息记录到这个文件中,当RMAN增量备份时,利用这个
文件就可以获得需要备份的数据块列表,而不必所有数据块遍历
启用:
     alter datbase enable block change tracking using file 'xxx/bcl';
select * from v$block_change_tracking;
  关闭
     alter database disable block change tracking;
18   一个REDO记录号包括:事务号,被修改数据的位置,数据块号,修改后的值
     日志文件SCN:每个日志文件都有一个低SCN,高SCN。当一个日志文件存
满后,新的日志文件低SCN就用上一个日志文件的高SCN+1来表示。每个正被
使用的日志文件的高SCN无穷大。
    每个数据文件的文件头记录启动SCN,而控制文件会记录每个数据文件的终止
SCN,正常运行的开始SCN都设置一样,终止被设置无穷大
    重要:正常数据库关闭后,每个数据文件的终止SCN被设置为成功启动的SCN


19 oracle 的database control是BS结构去管理一个数据库,grid control是管理多个数据库;
 在oracle_home\bin目录下,有emctl的启动文件
   oracle10g\oc4j\j2ee\OC4J_DBConsole为模版目录,每一个被管理的数据库都会在下面生成一个
oc4j_dbconsole_hostname_sid的目录,一个database control只能管理一个数据库实例。
   重新配置databasecontrol:
      emca -config dbcontrol db -repos create


20  pga:为每个用户的连接请求分配一个服务进程,而这个服务进程分配的内存区域就叫PGA。PGA是独占的方式,
进程访问时不需要latch,lock等保护机制,不会发生竞争。
   PGA包括session area(包含会话特有的信息,如会话跟踪信息等),private sql area(即通常所说的
cursor),又分为persistent area(保存绑定变量等)和run-time area(SQL运行过程中使用的空间,执行完SQL后,

这部分空间会被释放)

21 parent cursor和child cursor的概念
    parent cursor:保存的是SQL的原始执行文本
    child cursor:保存的是执行计划和环境信息
    v$SQLAREA:从parent cursor级别上统计SQL语句的执行信息;
    v$sql:从child cursor级别上统计的语句执行信息
   open_cursor参数控制每个session 最多能同时打开的cursor数量,如果超过遇到ora-1000错误
   session_cached_cursors:定义后,如果一个SQL被频繁执行,这个cursor就会被cache掉,提高效果。
   
22 查看执行计划: explain plann for ...........
    查看执行计划     select  * from table(dbms_xplan.display);
    系统级别设置10046事件 :
      alter system set event='10046 trace name context forever,level 8';
      alter system set event='10046 trace name context off';
23 sql>oradebug setospid 操作系统的id
    sql>oradebug setorapid oracle进程的id
24 library cache中获得执行计划
    使用dbmx_xplan包,其中display方法为9i用,display_cursor为10G用
    在10G中推荐用display_cursor,其参数说明为:
                          sql_id:代表sql语句的id,其实为一个哈希值
                          child_number:一个SQL中的多个子游标,可以为null,则列出所有子游标计划
   1) 确定语句的sql_id:比如
      select sql_text,sql_id from v$sql where sql_text like '%..要分析的SQL语句....%'
      获得其哈希值,
    2)select * from table(dbms_xplan.display_cursor('哈希值',null,'basic'));
       select * from table(dbms_xplan.display_cursor('哈希值',null,'typical'));
      select /* +gather_plan_statistics */ count(*) from ......

       查看执行计划
       select * from table(dbms_xplan.display_cursor9('哈希值',null,'TYPICAL,+iostats,+memstats');
     则在显示的列中,E-ROWS,A-ROW分别代表估计和真正执行的花费
   3)display_awr
     在awr报告中,有一列sql_id,
      select * from table(dbmx_xplan.display_awr('来自AWR报告中的sql_id列'));

25 阅读SQL执行计划
    1)概要部分,输出SQL ID及文本
    2) 执行计划
    3) QUERY BLOCK分为简单的SQL和复杂的SQL
        对于简单的sql,在query block部分,用:
        1---SEL$1 来表示,而象 $DEL$:删除,系统生成的名字不够人性化,可以自定义:
      select /*+ qb_name(abc) */ b1.id,b2.id from b b1,b b2
分享到:
评论

相关推荐

    OracleDBA入门、进阶学习路线图参考.pdf

    Oracle DBA 入门、进阶学习路线图参考 Oracle DBA 入门、进阶学习路线图参考是一个详细的学习路线图,旨在帮助新手 DBA 学习 Oracle 数据库管理系统。该路线图由经验丰富的 DBA eygle 根据自己的学习经历和经验总结...

    oracle dba学习笔记

    Oracle DBA 学习笔记 标题:Oracle DBA 学习笔记 描述:学习使用维护 Oracle 数据库数年,对认为值得记录的 Oracle 维护脚本进行记录总结,存起来,虽然今后开源是方向,但不可否认 Oracle 仍然非常有水平的,在...

    oracle dba学习资料

    在“oracle dba学习资料”这个压缩包中,包含了一份名为"oracle dba.pdf"的文件,我们可以推测这是一份针对Oracle DBA的教程或指南。这样的资料对于初学者来说是极其宝贵的,因为它通常会涵盖以下核心知识点: 1. *...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    标题中提到的“ORACLE DBA工作笔记 运维数据迁移与性能调优”揭示了这本书籍主要围绕着...因此,类似于“ORACLE DBA工作笔记 运维数据迁移与性能调优”这样的专业书籍,是DBA们提升技能、增加实战经验的宝贵学习材料。

    Oracle DBA(DBA学习必备)

    Oracle DBA(DBA学习必备)Oracle DBA(DBA学习必备)Oracle DBA(DBA学习必备)Oracle DBA(DBA学习必备)

    OracleDBA学习日记笔记

    Oracle DBA学习日记笔记 本资源为 Oracle DBA 学习日记笔记,共36页,简洁清晰的总结了 Oracle DBA 的重点部分,这是一个非常有价值的 Oracle DBA 入门资料。 在本资源中,我们可以看到作者Stephenzhou对 Oracle ...

    Oracle DBA学习资料

    首先,我们看到的文件名如"D32645.pdf"、"D32643.pdf"、"D32644.pdf",虽然没有直接揭示具体章节或主题,但可以推测这些PDF文档可能包含了Oracle DBA学习的各个方面。通常,Oracle DBA的学习资料会涵盖以下几个核心...

    老相Oracle DBA学习笔记

    Oracle数据库管理员(DBA)学习笔记详细记录了Oracle数据库中SQL语句执行的过程,包括用户连接、服务器进程分配、PGA空间、SQL解析、执行计划缓存、shared pool、buffer cache、逻辑IO和物理IO、重做日志等关键知识...

    Oracle DBA入门教材

    总之,Oracle DBA入门教材会覆盖以上所有内容,通过深入学习和实践,初学者可以逐渐掌握Oracle数据库的管理和优化技巧,为成为专业的DBA奠定坚实基础。在学习过程中,可以参考在线资源,如http://www.oradb.net这样...

    oracle DBA宝典和教程.rar

    本压缩包“oracle DBA宝典和教程”显然是一份全面的学习资源,旨在帮助你深入理解和掌握Oracle DBA的相关技能。 在Oracle数据库管理中,你需要了解以下几个关键知识点: 1. **数据库安装与配置**:包括Oracle软件...

    Oracle_DBA工作手记.pdf

    1. 数据库性能调优:DBA需要不断监控数据库性能,及时发现瓶颈并进行优化。 2. 数据备份与恢复:制定备份策略,执行备份任务,并能应对灾难性事件进行数据库的恢复。 3. 安全管理:负责数据库的安全策略制定,监控和...

    oracle DBA工作职责

    通过以上内容可以看出,Oracle DBA不仅需要具备扎实的技术基础,还需要不断学习新知识、新技术,以适应日益复杂多变的业务需求。同时,良好的沟通能力和文档记录习惯也是Oracle DBA不可或缺的能力之一。

    Oracle DBA 必备参考手册

    1. **Ora10gDBARef.chm** - 这个文件可能是Oracle 10g数据库管理员的参考手册。它可能包含了关于安装、配置、性能调优、备份与恢复、安全性、网络配置以及故障排查等核心主题的详细信息。DBA需要掌握如何创建和管理...

    oracle DBA培训资料

    这份"oracle DBA培训资料"全面涵盖了Oracle DBA所需掌握的各项技能,对于想要深入学习Oracle数据库管理的人来说是一份宝贵的资源。 1. **Oracle数据库安装与配置**:这部分内容会讲解如何在不同操作系统环境下安装...

    oracle DBA中文培训教材之1

    这本“Oracle DBA中文培训教材之1”旨在为初学者和有经验的DBA提供一个全面且深入的学习资源,帮助他们理解和掌握Oracle数据库的核心概念、管理技巧以及故障排查方法。 首先,我们来看看课程的结构。从压缩包中的...

    Oracle DBA宝典

    通过《Oracle DBA宝典》,读者不仅可以学习到Oracle 10g数据库的安装方法,还能深入理解不同应用结构的特点,为日常的数据库管理打下坚实的基础。这本书是Oracle DBA必备的参考书籍,对于想要提升数据库管理技能的...

    ORACLE DBA必备教程

    Oracle DBA,即Oracle数据库管理员,是管理和..."Oracle_DBA_xinshou"这个压缩包可能包含了相关的学习资料,例如教程文档、练习案例和实战指南,利用这些资源,你可以在两天内建立起对Oracle DBA工作的初步理解和技能。

    Oracle DBA培训教程 从实践中学习Oracle数据库管理与维护_part1

    压缩包PART1,与PART2共同解压。...ORACLE数据DBA入门与提高教程。包含Oracle数据库管理与维护内容。 一本Oracle数据库管理的入门教材,适合于初中级的读者,是作者二十多年IT工作和教学实践的总结与升华。

    oracle dba基础知识

    Oracle DBA基础知识是数据库管理的重要领域,特别是在Oracle数据库系统中,DBA...随着Oracle数据库系统的不断升级和发展,DBA的角色也在不断演变,需要持续学习和适应新技术,以确保数据库系统的高效、稳定和安全。

Global site tag (gtag.js) - Google Analytics