43oracle数据库基础知识简介介绍_第1页
43oracle数据库基础知识简介介绍_第2页
43oracle数据库基础知识简介介绍_第3页
43oracle数据库基础知识简介介绍_第4页
43oracle数据库基础知识简介介绍_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库基础介绍日期:2015-07-10密级:内部公开杭州华三通信技术有限公司肖李姓名:全球技术服务部·云及软件支持部部门:

邮箱:作者介绍了解Oracle数据库基础;掌握Oracle数据库安装;Oracle常见问题排查;课程目标Oracle结构Oracle安装规划Oracle安装Oracle内存配置Oracle常见问题目录Oracle体系结构

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件)

Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区,实例在Oracle启动时载入。Oracle逻辑物理结构Oracle数据库结构如下:数据库表空间段区间Oralce数据块数据文件操作系统

数据块数据库相关概念Oracle数据库(tablespace)是由若干个表空间构成的。任何数据库对象在存储时都必须存储在某个表空间中。表空间对应于若干个磁盘文件,即表空间是由一个或多个磁盘文件构成的。每个数据库至少有一个表空间。段(Segment)是由多个数据区构成的,它是为特定的数据库对象(如表段、索引段、回滚段、临时段)分配的一系列数据区。段内包含的数据区可以不连续,并且可以跨越多个文件。使用段的目的是用来保存特定对象。区(Extent)也称为数据区,是一组连续的数据块。当一个表、回滚段或临时段创建或需要附加空间时,系统总是为之分配一个新的数据区。一个数据区不能跨越多个文件,因为它包含连续的数据块。使用区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在Oracle数据库中,分配空间就是以数据区为单位的。一个Oracle对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。Oracle数据块(DataBlock)是一组连续的操作系统块。分配数据库块大小是在Oracle数据库创建时设置的,数据块是Oracle读写的基本单位。数据块的大小一般是操作系统块大小的整数倍。Oracle结构Oracle安装规划Oracle安装Oracle内存配置Oracle常见问题目录组织文件系统因为Oracle是一个多组件的系统,它的文件系统特别复杂,由许多不同类型的文件组成。每种文件具有不同的I/O特性,执行不同的功能,具有不同的需求,所以需要在安装前进行规划。组成Oracle数据库的文件有下列几种类型:数据文件联机重做日志文件控制文件参数文件Oracle设计了一种配置Oracle文件系统的标准,称为最佳灵活结构(OptimalFlexibleArchitecture,OFA)。最佳灵活结构目标(OFA)OFA要达到下列目标:将文件按功能和特性分到逻辑上易于辩认的目录之中。按数据库和Oracle版本将文件分开。允许进一步灵活地增长和扩充。使管理开销最小化。使跨磁盘的文件读/写活动的磁盘争用最小化。通过将文件分存在多个磁盘上,使磁盘故障引起的文件丢失或毁坏最小化。规划数据库文件布局对数据库文件布局的规划,必须满足下列两个目标:最大化可用性的规划:

数据库文件在磁盘上的安排方式极大地影响数据库抵御灾难的能力。高可用性的数据库配置,包括文件布局和RAID考虑,原则是各种控制文件、重做事件日志组等在不同的磁盘上创建备份,系统表空间使用RAID备份。最小化磁盘争用的规划: 数据库文件的布局会影响I/O限制系统上的磁盘争用和性能。在同一磁盘上具有几个访问量很大的文件将会增加磁盘的争用并降低其性能。原则是将I/O访问尽量分布在尽可能多的磁盘上。将归档重做日志目的文件和联机重做日志文件分散在不同的磁盘上。如果有可能的话,将回退段放在独立的专用磁盘上。将所有与数据库有关的文件放置在专用磁盘上,不与其他应用程序共用同一磁盘。如果采用冗余(RAID)磁盘,应该使用合适的RAID类型。一般RAID0+1具有更好的读取性能,同时提供磁盘故障保护。应避免使用RAID5。数据库文件布局举例根据这些准则,一个三磁盘系统的表空间设计应从下面两种配置之一开始:磁盘1:SYSTEM表空间、控制文件、重做日志文件。磁盘2:INDEXES表空间、控制文件、重做日志文件、RBS表空间。磁盘3:DATA表空间、控制文件、重做日志文件。或者磁盘1:SYSTEM表空间、控制文件、重做日志文件。磁盘2:INDEXES表空间、控制文件、重做日志文件。磁盘3:DATA表空间、控制文件、重做日志文件、RBS表空间。Oracle结构Oracle安装规划Oracle安装Oracle内存配置Oracle常见问题目录Oracle安装Oracle11g和12C安装配置指导书(Linux):Oracle安装完毕后,有两个平时经常关注或使用的文件目录:数据库管理文件网络配置文件数据库管理文件数据库管理文件存放在目录$ORACLE_BASE/admin/<SID>下,主要包括:初始化参数文件(pfile)用户生成的跟踪文件(udump)Oracle后台进程生成的跟踪文件(bdump)信息转储(cdump)在Oracle11g下,跟踪文件作为更规范的日志系统,从admin目录下移出,放在与admin平级的diag目录下。该目录包括告警、转储、事件、跟踪等各种信息,用于分析Oracle运行情况。网络配置文件Oracle网络配置文件存放在目录$ORACLE_HOME/network/admin下,主要包括:监听器配置文件(listener.ora)客户端参数文件(sqlnet.ora)连接描述符别名文件(tnsnames.ora)这三个文件的配置都有样例说明,文件在samples中。这三个文件可在安装数据库时通过netmgr命令打开图形界面配置,也可以安装完毕后,手工配置。监听器配置文件(listener.ora)该文件列出机器中所有监听进程的名字和地址以及它们所支持的实例。SID_LIST_LISTENER= /*监听器服务的实例以及目录列表*/(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl)(ORACLE_HOME=/export/home1/oracle/product/10.2.0)(SID_NAME=orcl)))LISTENER= /*监听地址列表*/(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))))网络客户端参数文件(sqlnet.ora)该文件规定了客户端访问数据库,建立数据库连接的一些参数。如:#names.initial_retry_timeout=30#names.message_pool_start_size=10#names.auto_refresh_retry=180……安装完毕后,该文件中有一个默认参数为NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)。该参数规定了客户端在连接数据库时,如何查找数据库字符串中的数据库名称,比如:sqlplussys/oracle@orclassysdba,客户端首先会查找tnsnames.ora中的orcl别名,如果找到,则用该别名的描述符连接数据库,否则使用EZCONNECT方式连接,EZCONNECT是指通过hostname:port/service_name的方式访问数据库。该参数还有ONAMES、HOSTNAME、NIS、CDS、NDS等方式。连接描述符别名文件(tnsnames.ora)该文件列出所有需要访问的数据库实例的连接描述符以及其别名。10_153_89_82=/*别名*/(DESCRIPTION=/*连接描述符*/(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.153.89.82)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))Oracle结构Oracle安装规划Oracle安装Oracle内存配置Oracle常见问题目录Oracle结构再次看一下Oracle数据库结构:Oracle实例内存Oracle实例的内存,从总体上讲,可以分为两大块:共享部分(主要是SGA)和进程独享部分(主要是PGA和UGA)。SGASGA(SystemGlobalArea系统全局区域)是一组包含一个Oracle实例的数据和控制信息的共享内存结构。SGA主要包括了以下的数据结构:数据缓冲区(BufferCache)重做日志缓冲区(RedoLogBuffer)共享池区(SharedPool)SGA建议占内存的20%-50%,1G内占20%-30%,2-4G占30%-35%,4-8G占35%-40%,8-16G占40%-45%,SGA应小于物理内存的一半。数据缓冲区(BufferCache)BufferCache是SGA区中专门用于存放从数据文件中读取的的数据块拷贝的区域。Oracle进程如果发现需要访问的数据块已经在buffercache中,就直接读写内存中的相应区域,而无需读取数据文件,从而大大提高性能。Buffercache对于所有oracle进程都是共享的,能被所有oracle进程问。Oracle对于buffercache的管理,是通过两个重要的链表实现的:写链表和最近最少使用链表(LRU)。写链表所指向的是所有脏数据块缓存。而LRU链表指向的是所有空闲的缓存、pin住的缓存以及还没有来的及移入写链表的脏缓存。LRU链表的两端就分别叫做最近使用端(MRU)和最近最少使用端(LRU)。在OLTP系统中,对于DB_CACHE_SIZE的设置,推荐配置是:DB_CACHE_SIZE=SGA_MAX_SIZE/2~SGA_MAX_SIZE*2/3重做日志缓冲区(RedoLogBuffer)RedoLogBuffer是SGA中一段保存数据库修改信息的缓存。这些信息被存储在重做条目(RedoEntry)中。重做条目中包含了由于INSERT、UPDATE、DELETE、CREATE、ALTER或DROP所做的修改操作而需要对数据库重新组织或重做的必须信息。在必要时,重做条目还可以用于数据库恢复。重做条目是Oracle数据库进程从用户内存中拷贝到RedoLogBuffer中去的。重做条目在内存中是连续相连的。后台进程LGWR负责将RedoLogBuffer中的信息写入到磁盘上活动的重做日志文件(RedoLogFile)或文件组中去的。RedoLogBuffer不宜太大,一般不超过1M。共享池区(SharedPool)共享池区(SharedPool)又包含:数据字典缓冲区(Dictionarycache)库缓冲区(Librarycache)数据字典是有关于数据库的参考信息、数据库的结构信息和数据库中的用户信息的一组表和视图的集合,如我们常用到的DBA_视图都属于数据字典。LibraryCache中包括共享SQL区(SharedSQLAreas)、PL/SQL存储过程和包以及控制结构(如锁、库缓存句柄)。SharedPool大小建议150M-500M,如果内存为1G,建议150M-200M,每增加1G可增大100M。PGAPGA(ProgramGlobalArea程序全局区)是一块包含一个服务进程的数据和控制信息的内存区域。它是Oracle在一个服务进程启动时创建的,是非共享的。一个Oracle进程拥有一个PGA内存区。一个PGA也只能被拥有它的那个服务进程所访问。PGA中包含了关于进程使用到的操作系统资源的信息,以及一些关于进程状态的信息。而关于进程使用的Oracle共享资源的信息则是在SGA中。PGA由两组区域组成:固定PGA和可变PGA。PGA的可变区中主要包含私有SQL区、游标和SQL区、会话内存。SQL工作区可以是自动的、全局的管理。DBA只要设置参数PGA_AGGREGATE_TARGET给一个实例的PGA内存指定总的大小。设置这个参数后,Oracle将它作为一个总的全局限制值,尽量使所有Oracle服务进程的PGA内存总数不超过这个值。对于OLTP系统,ORACLE建议PGA_AGGREGATE_TARGET=(物理内存大小*80%)*20%。Oracle内存参数设置Oracle10g以前,需要指定各种Oracle参数,如DB_BLOCK_BUFFERS、SHARED_POOL_SIZE、SORT_AREA_SIZE等。Oracle10g引入自动共享内存管理(AutomaticSharedMemoryManagementASMM)新特性,Oracle可以随时调节各个区域的大小,使之达到系统性能最佳状态。因此,在Oracle10g下,配置内存时,只需要设置两个参数:SGA_TARGETPGA_AGGREGATE_TARGETOracle11g将自动内存管理扩大到整个内存区域,只需要设置一个参数:MEMORY_TARGET由于32位系统下单进程有内存限制,可以设置USE_INDIRECT_DATA_BUFFERS参数支持32位操作系统下超过1.7G的内存。但如果要使用这个参数,还需要配置服务器,使用内存文件方式。Oracle结构Oracle安装规划Oracle安装Oracle内存配置Oracle常见问题目录Oracle数据库乱码如果在iMC中出现乱码,可能原因如下:数据库字符集选择不正确。 数据库安装时如果选择了与iMC语言环境不兼容的字符集,比如对中文、日文环境选择了西欧字符集,就会出现乱码的情况。如果出现这种情况,请重新安装Oracle,选择正确的字符集。客户端字符集参数配置不正确 客户端字符集NLS_LANG在环境变量中设置。如果NLS_LANG配置不正确,或者NLS_LANG在iMC运行一段时间后被修改为其他值,可能会出现乱码的情况。如果出现这种情况,请修改环境变量NLS_LANG为正确的客户端字符集,然后重启服务器以及iMC。服务器语言环境参数配置不正确且默认安装Oracle 服务器语言环境LANG在在安装数据库前设置,如果不设置使用系统默认语言环境。如果选择默认安装Oracle,Oracle根据LANG参数设定默认的数据库字符集,如果LANG参数设置不正确,则可能导致默认的数据库字符集不正确。比如我们想安装中文字符集的数据库,但LANG=C,Oracle默认安装时,将创建WE8ISO8859P1的数据库字符集,导致乱码发生。如果出现这种情况,请以正确的步骤重新安装Oracle。 我们建议按高级模式安装数据库,即使是LANG设置错误,也可以选择正确的数据库字符集,避免使用默认的数据库字符集。

Oracle数据库连接失败数据库连接失败可能性较多,下面列举最常见的几种情况:未对运行的数据库实例向监听器注册 数据库安装完成时,是没有为实例在本机监听器注册的,我们可以通过netmgr打开图形界面注册实例。具体步骤可参见数据库安装手册。监听地址不正确 如在监听地址列表中,服务器名称配置不正确,可尝试服务器名称和IP地址两种配置方式:(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))或(ADDRESS=(PROTOCOL=TCP)(HOST=10.153.89.94)(PORT=1521))。监听器未启动 可以在oracle用户下,通过lsnrctlstatus命令查看监听器状态,lsnrctlstart打开监听lsnrctlstop停止监听。tnsnames.ora中的数据库别名配置不正确 如在sqlplussys/oracle@orclassysdba,客户端首先会查找tnsnames.ora中的orcl别名,如果找不到这个别名,可能连接失败。sqlnet.ora指定的连接方式配置不正确

sqlnet.ora可指定连接方式,如果指定的连接方式与客户端的连接方式不一致,可能导致连接失败。总之,Oracle数据库连接失败的原因有很多种,还有其他一些比如连接数达到最大、用户由于错误尝试次数过多被锁等等。但主要还是要保证连接、监听、实例、别名各个环节都正确、正常,可以串成一条线。在出现连接失败时,可以从这几个方面查找原因。Oracle数据库死锁数据库在多线程访问交叉访问相同的资源的情况下可能导致死锁。可通过下面的几个视图查询到发生死锁的信息,以定位问题。

Select*fromv$locked_objecttlock,

v$sessiontsession,

v$sqltext

tsql

wheretlock.session_id=tsession.sid

andtsession.sql_address=tsql.address;通过将查询到的sid,serial#填入下面的语句执行,可以暂时kill掉死锁。

altersystemkillsession‘sid,serial#’死锁可以通过$ORACLE_BASE/admin/bfile/alert_XXX.log看到跟踪信息。Oracle问题分析常用视图v$lock锁的信息v$sqlarea共享池中存储的sql和一些相关的信息,其中sql_text字段存的这个sql的前1000个字符。查找整个的sql还需去v$sqltext或者v$sqltext_with_newlinesv$session所有当前session的信息,其中command字段表示session执行的什么命令v$sesstat根据sessionid可以得到这个session的统计信息v$session_wait根据sessionid可以得到这个session的等待情况,其中event字段表示等待事件v$process根据sessionid可以查到进程的信息,可以找到unix命令top出来的最耗cpu资源的pid,根据pid找到最耗资源的sqlv$transaction根据sessionid可以查到当前session正在执行的事务信息v$sort_usagetemp表空间的使用情况,当temp表空间变得巨大的时候,根据session_addr可以得到sessionid,根据sqladdr和sqlhash可以得到正在执行的sqlv$sysstat所有instance的统计信息v$system_wait_class分类别概述了系统等待信息Oracle常用数据字典视图表和列DBA_TABLES、ALL_TABLES和USER_TABLES。DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS。完整性约束DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST。DBA_CONS_COLUMNS、ALL_CONS_COLUMNS和USER_CONS_COLUMNS。视图DBA_VIEWS、A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论