oracle系统

Oracle 异步IO 优缺点

你离开我真会死。 提交于 2019-12-04 06:04:50
一、 Oracle在Linux下使用异步IO配置 最近在测试Oracle的时候,很想测试下使用异步IO的性能。但是异步IO是需要专门配置的,否则的话,容易遇到很著名的“ORA-01578: ORACLE data block corrupted (file # 202, block # 257)”的问题。 那么什么是异步IO呢,异步IO有什么好处? 一般说来,异步I/O是和同步I/O相比较来说的,如果是同步I/O,当一个I/O操作执行时,应用程序必须等待,直到此I/O执行完. 相反,异步I/O操作在后台运行,I/O操作和应用程序可以同时运行,提高了系统性能; 使用异步I/O会提高I/O流量,如果应用是对裸设备进行操作,这种优势更加明显, 因此象数据库,文件服务器等应用往往会利用异步I/O,使得多个I/O操作同时执行. Oracle在默认情况是不使用异步IO的。可查看参数filesystemio_options(默认值为none),有四种选项 ■ ASYNCH: enable asynchronous I/O on file system files, which has no timing requirement for transmission. ■ DIRECTIO: enable direct I/O on file system files, which bypasses

Oracle系列教程之一软件安装与卸载

对着背影说爱祢 提交于 2019-12-04 05:50:16
1、安装软件 软件下载地址: https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html 1.1、window安装与卸载 1.1.1、Oracle 12c安装步骤 1.1.1.1、安装程序要求提供您的电子邮件地址以获取最新的安全问题和更新。您可以单击下一步按钮跳过。 1.1.1.2、在这一步中,Oracle安装程序会询问您是要创建和配置数据库,仅安装数据库软件还是仅升级现有数据库。因为首次安装Oracle数据库,请选择第一个选项(Create and configure a database),然后单击下一步按钮。 1.1.1.3、安装程序允许您选择系统类型。因为我们是在桌面计算机上安装Oracle,而不是服务器,因此,这里选择第一个选项:桌面类(Desktop class),然后单击下一步按钮。 1.1.1.4、在这一步骤中,允许指定要安装和配置Oracle Home以增强安全性的Windows用户帐户。选择第三个选项:“使用Windows内置帐户(Use Windows Built-in Account)”。 1.1.1.5、在此步骤中,选择要安装Oracle数据库的文件夹,全局数据库名称和密码,可插拔数据库名称。 1.1.1.6、安装程序执行前提条件检查。 1.1

APPARENT DEADLOCK!!! 错误解决过程

╄→尐↘猪︶ㄣ 提交于 2019-12-04 04:48:55
项目环境 数据库:oracle 中间件:WAS 2. 问题描述 2015.05.21(是个好日子),早上发现was后台报错如下: [15-5-21 7:31:01:171 CST] 00000027 SystemErr R com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@498e498e -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks! 3.问题解决过程 从网上百度下这个错误,分析大致如下: 原因是 hibernate 使用c3p0连接orcale数据后不会释放 , c3p0的最大连接数为100,但显然c3p0有Bug,导致数据库连接池不够用,导致进程锁死。 后换Proxool后,观察正常。 参考网址: http://blog.csdn.net/chinesesword/article/details/7902702 http://blog.sina.com.cn/s/blog_5491164b0100sxtc.html http://myzee.blog.163.com/blog/static/2088712420121110139423/ http://www.blogjava

安装ORACLE软件

ぐ巨炮叔叔 提交于 2019-12-04 04:24:20
--这时是安装前的基础配置方法 1、使用root用户设置(以下前面为#代表root用户,删除线为系统输出): # vim /etc/sysconfig/selinuxSELINUX=disabled 2、关闭防火墙 1 # systemctl stop firewalld --关闭防火墙 2 # systemctl disable firewalld --下次不会再打开防火墙 # 检查磁盘空间 # df -h # 检查内存 # free -m # hostname/ip # hostnamectl set-hostname demo.example.com --修改主机名 # ip a --查看ip地址 3、这里是设置网卡,可以使用图形界面设置 # nmcli device status DEVICE TYPE STATE CONNECTION eno16777736 ethernet connected eno16777736 lo loopback unmanaged -- # nmcli connection show NAME UUID TYPE DEVICE eno16777736 1fb51113-0b9c-450a-b435-cfde1b220401 802-3-ethernet eno16777736 # nmcli connection add con-name

Oracle数据库的sql语句性能优化

纵饮孤独 提交于 2019-12-04 02:23:45
  在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要问题之一。系统优化中一个很重要的方面就是sql语句的优化。对于海量数据,劣质sql语句和优质sql语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就行,而是要写出高质量的sql语句,提高系统的可用性。   Oracle的sql调优第一个复杂的主题,甚至需要长篇概论来介绍OracleSQL调优的细微差别。不过有一些基本的规则是每个OracleDBA都需要遵从的,这些规则可以改善他们系统的性能。   sql调优的目标是简单的:消除不必要的大表全表搜索。不必要的全表搜索导致大量不必要的磁盘I/O,从而拖慢整个数据库的性能,对于不必要的全表搜索来说,最常见的调优方法是增加索引,可以在表中加入标准的B树索引,也可以加入位图索引和基于函数的索引。要决定是否消除一个全表搜索,你可以仔细检查索引搜索的I/O开销和全表搜索的开销,它们的开销和数据块的读取和可能的并行执行有关,并将两者作对比。   另外,在全表搜索是一个最快的访问方法时,将小表的全表搜索放到缓存(内存)中,也是一个非常明智的选择。我们会发现现在诞生了很多基于内存的数据库管理系统

Oracle11g RAC+DG搭建

99封情书 提交于 2019-12-04 01:59:57
项目环境准备 3.1 虚拟机配置 版本选择 注意Linux操作系统。此次项目我选择的版本是Oracle Enterprise Linux 5.4 内存的设置 本人电脑物理内存8G,由于此次实验要开三台虚拟机,基于集群两台机需要的内存较大,故每台给2G,单实例做standby的给1.5G。 添加选择网卡类型 使用桥接方式容易引发IP冲突,所以我选择的是Host Only方式,避免IP冲突。 两个网卡使用分配: NAT:作Public IP Host Only:作Private IP 注意主机和虚拟机的防火墙要关闭,达到互信。 分配磁盘空间 在分配磁盘空间的时候不要立即分配,避免占用实际空间大小,可以分配给其他进程。这里我分配50G给根分区,选择将虚拟磁盘存储为单个文件,性能较好。 添加共享磁盘 添加3个共享磁盘,分别为asm1,asm2,asm3.(注意:共享磁盘不能建为本地磁盘),也就是说SCSI设置为1:n,而不是0:n。模式选择独立永久,立即分配磁盘,存储为单个文件方式。每个磁盘均给3G,用于存储数据库相关文件。 由上可知,做RAC需要一块本地硬盘,两块网卡,3个共享磁盘及OEL5.4的安装配置。 3.2 安装 OEL5.4 操作系统 这里不要全部选择,sdb,sdc,sdd三个作裸设备,格式sda即可。防止其他三个盘全部被系统占用。 主机名:rac1.example.com

oracle学习篇:九、性能诊断与SQL优化

戏子无情 提交于 2019-12-04 00:02:16
9.1 使用autotrace功能辅助sql优化 oracle sql*plus提供一个autotrace的功能,可以用于跟踪sql的执行计划,收集统计信息,通常被作为sql的优化工具之一而被广泛使用。 9.1.1 autotrace功能的启用 autotrace有几个常用选项,简单说明如下: set autotrace off:不生产autotrace报告,这是缺省模式; aet autotrace on explain:autotrace只显示优化器执行路径报告; set autotrace on statistics:只显示执行统计信息; set autotrace on:包含执行计划和统计信息; set autotrace traceonly:同set autotrace on,但是不显示查询输出。 9.1.2 autotrace功能的增强 9.1.3 autotrace功能的内部操作 当使用autotrace功能时,在数据库内部,oracle实际上是启动了2个session连接,一个session用于执行查询等操作,另外一个session用于记录执行计划和输出最终结果等操作。 这两个session都是由一个进程衍生。select * from v$process;一个进程在数据库中可能对应多个session。 主要的操作步骤如下: (1)执行计划的输出 (2)统计信息输出

oracle 用户与表空间关系

北城余情 提交于 2019-12-03 22:47:44
转: oracle 用户与表空间关系 oracle用户与表空间关系 用户=商家 表=商品 表空间=仓库 1. 1个商家能有很多商品,1个商品只能属于一个商家 2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放入A和B 3. 仓库不属于任何商家 4. 商家都有一个默认的仓库,如果不指定具体仓库,商品则放到默认的仓库中 oracle中用户的所有数据都是存放在表空间中的,很多个用户可以共用一个表空间,也可以指定一个用户只用某一个表空间。 表空间:创建表空间会在物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储空间; 用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象; 表:是数据记录的集合; 创建过程: 表空间--->用户--->表; 所属关系: 表空间 包含 用户 包含 表; http://www.cnblogs.com/cici-new/archive/2012/12/25/2831740.html 1.首先是ORACLE的整体结构。 oracle中的一个数据库就是一个实例. oracle的一个用户就是一个Schema(即方案). oracle的结构是===           实例->用户->表(用户属于数据库实例,表属于某个用户)

oracle学习篇:八、等待事件

冷暖自知 提交于 2019-12-03 22:44:40
当一个进程连接到数据库之后,进程所经历的种种等待就开始被记录,并且通过一系列的动态性能视图进行展现。通过等待事件用户可以很快地发现数据库的性能瓶颈,从而进行针对性能的优化和分析。 8.1 等待事件的源起 查询数据库版本: select * from v$version; 查询等待事件数量: select * from v$event_name; oracle的等待事件,主要可以分为两类,即空闲idle等待事件和非空闲non-idle等待事件。空闲等待事件指oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。非空闲等待事件专门针对oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是,在调整数据库的时候应该关注和研究的。 查询空闲等待事件: select * from v$event_name where name like '%idle%'; 也可以通过查询v$system_wait_class视图获得各类主要等待事件的等待时间和等待次数等信息。 select * from v$system_wait_class; 8.2 从等待发现瓶颈 v$session视图:记录数据库当前连接的session信息,和session的生命周期相关,并不记录历史信息; v$session_wait视图

Oracle SQL 性能优化技巧

北城以北 提交于 2019-12-03 21:20:31
1.选用适合的ORACLE优化器  ORACLE的优化器共有3种 A、RULE (基于规则) b、COST (基于成本) c、CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。 你当然也在SQL句级或是会话(session)级对其进行覆盖。 为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。 如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关。 如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器。 在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器。 2.访问Table的方式  ORACLE 采用两种访问表中记录的方式: A、 全表扫描 全表扫描就是顺序地访问表中每条记录。ORACLE采用一次读入多个数据块(database