Oracle 11gR2 SCAN 详解
- 格式:docx
- 大小:68.30 KB
- 文档页数:5
Oracle 数据库 11g:真正应用测试与可管理性概述Oracle 白皮书2007 年 8 月与可管理性概述真正应用测试 (3)数据库重放 (3)可管理性 (7)面向 RAC 的 ADDM (7)SQL 调整自动化 (8)SQL 计划管理 (9)SQL ACCESS ADVISOR 增强:PARTITION ADVISOR (10)自动内存管理 (11)AWR 基准和适应式阈值 (12)运行状况检查 (14)Data Recovery Advisor (14)Sql Repair Advisor (14)Sql Test Case Builder (14)自动诊断信息库 (ADR) (14)事故打包服务(IPS) (15)支持工作台 (15)总结 (16)³与可管理性概述.引言Oracle 数据库占据着市场主导地位,受到全球众多企业以及应用程序开发人员和数据库管理员的青睐。
这些年来,企业已经开始依赖 Oracle 数据库来提供无可比拟的性能和可靠性。
在数据库 10g 中,Oracle 提供了一个自我管理数据库,该数据库具有前所未有的可管理性,从而显著降低了管理成本。
Oracle 准备再在 Oracle 数据库 11g 中更上一层楼。
数据中心为满足企业需求而快速发展和变化,Oracle 数据库 11g 正是专门针对数据中心环境设计的。
利用 Oracle 数据库 11g,企业可以快速采用新技术,将风险降至最低。
此外,通过其自我管理功能,Oracle 数据库 11g 已在可管理性和故障诊断等方面取得了显著进展。
真正应用测试现在,企业需要在硬件和软件上进行相当大的投资才能展开基础架构更改。
例如,某个数据中心可能计划将数据库转移到一个诸如 OracleEnterprise Linux 的低成本计算平台。
过去,这需要企业为整个应用程序投入一套重复的硬件,包括 web 服务器、应用程序服务器和数据库,以便测试其生产应用程序。
oracle11gr2rac 安装配置手册一:系统检查1,cpu信息查看物理cpu数cat /proc/cpuinfo |grep physical\ id|sort|uniq查看单个cpu corescat /proc/cpuinfo |grep cpu\ cores|uniq查看单个是否超线程cat /proc/cpuinfo |grep sibling|uniq查看cpu总corescat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c2,确认内存大小物理内存504G3,检查文件系统/var和/tmp空间至少2G,建议10G/dev/shm共享空间应当为物理内存/2二:配置系统1,主机正名1节点2节点<记得重新登陆>2,本地hosts解析vi /etc/hosts#public address172.18.62.21 ghintdb01172.18.62.23 ghintdb02#public vip address172.18.62.22 ghintdb01-vip172.18.62.24 ghintdb02-vip172.18.62.25 ghintdb-cluster-scan#private group172.21.44.21 ghintdb01-priv1172.21.44.22 ghintdb02-priv13,修改内核参数shell>vi /etc/sysctl.conf#ORACLE SETTINGfs.aio-max-nr = 1048576fs.file-max = 6815744#{shmall}单位pages,命令"echo $((物理内存/$(getconf PAGESIZE)))" kernel.shmall = 132299730#{shmmax},单位bytes,为物理内存一半,echo $((504*1024*1024*1024/2)) kernel.shmmax = 270582939648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586net.ipv4.ipfrag_high_thresh=524288net.ipv4.ipfrag_low_thresh=393216net.ipv4.tcp_rmem=4096 524288 16777216net.ipv4.tcp_wmem=4096 524288 16777216net.ipv4.tcp_timestamps=0net.ipv4.tcp_sack=0net.ipv4.tcp_window_scaling=1net.core.optmem_max=524287dev_max_backlog=2500 net.ipv4.tcp_mem=16384 16384 16384生效shell>modprobe sunrpcshell>sysctl -p4,关闭防火墙服务chkconfig --level 2345 iptables off chkconfig --level 2345 ip6tables off service iptables stopservice ip6tables stop关闭selinuxset enforce 0vi /etc/selinux/configSELINUX=disabled5,配置ntp同步<主机实施人员步骤,略>增加ntpd启动选项-xvi /etc/sysconfig/ntpdSYNC_HWCLOCK=yesOPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"重启ntpdchkconfig --level 2345 ntpd onservice ntpd start6,创建用户groupadd -g 10501 oinstallgroupadd -g 10502 asmadmingroupadd -g 10503 asmdbagroupadd -g 10504 asmopergroupadd -g 10505 dbagroupadd -g 10506 operuseradd -m -u 10501 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid -s /bin/bash -c "Grid Infrastructure Owner" griduseradd -m -u 10502 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle7,设置用户进程运行资源上限shell>vi /etc/security/limits.conf#ORACLE SETTINGroot soft nproc 2047root hard nproc 16384root soft nofile 1024root hard nofile 65536root soft stack 10240root hard stack 32768grid soft nproc 2047grid hard nproc 16384grid soft nofile 1024grid hard nofile 65536grid soft stack 10240grid hard stack 32768oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240oracle hard stack 32768三:配置存储1,要求:同一个lun/vdisk在每个节点上设备名一致通过scsi_id确认每一个 lun/vdisk是根据方案从存储上划分正确的共享存储在每个节点能同时读写设备名的属主grid,组主asmadmin,权限660多路径软件配置<主机层实施,略>2,udev绑定参考本文以scsi磁盘为例查看系统识别的scsi盘(sd)fdisk -l|grep Disk\ /dev/sd根据系统人员告知,sda盘是本地硬盘,我们不去动它,剩下的是共享磁盘查看scsi_id命令:scsi_id -gvu /dev/sdN3,编辑udev的rule文件vi /etc/udev/rules.d/99-oracle.rulesKERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a1e7c0cacf000000a1", NAME="asm-data01", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a1e7c0caeb000000a2", NAME="asm-data02", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a1e7c0cb07000000a3", NAME="asm-data03", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a1e7c16f91000000a4", NAME="asm-fra01", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a1e7c16fab000000a5", NAME="asm-fra02", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a10f5b0dc3000000dc", NAME="asm-crs01", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a10f5b35c5000000dd", NAME="asm-crs02", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="dm-*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36a08cf81005732a10f5b461a000000de", NAME="asm-crs03", OWNER="grid", GROUP="oinstall", MODE="0660"启动udevstart_udev我们发现原来的磁盘设备名没有了,变成了需要的名字,可以用”fdisk -l /dev/设备名“验证大小,接下来的安装将直接使用该设备名,不需要做fdisk分区4,配置SSH通信:./sshUserSetup.sh -user grid -hosts "ghintdb01 ghintdb02" -advanced -noPromptPassphrase ./sshUserSetup.sh -user oracle -hosts "ghintdb01 ghintdb02" -advanced -noPromptPassphrase5,准备目录和权限(所有节点)mkdir -p /u01/media/oraclechown -R grid:oinstall /u01chmod -R g+w /u016三:上传安装介质使用grid账户登陆,解压前面3个包即可unzip p1*******_112040_Linux-x86-64_1of7.zipunzip p1*******_112040_Linux-x86-64_2of7.zipunzip p1*******_112040_Linux-x86-64_3of7.zip运行安装程序runInstaller(在1节点操作)cd grid./runInstaller提示:为了把x-windows程序的界面投射到终端上,需要执行2个步骤1.启动本地X11Forward程序,推荐x-manager中的xpassive(端口默认6000,注意firewall)2.在服务器上设定shell环境变量:export DISPLAY=YourIP:0.03.执行xclock测试本方案只有一个scan IP,不需要配置GNS,也不需要DNS服务器这3个,可以忽略可以忽略继续了以root身份在所有节点运行指定的脚本一个节点运行完后,再运行其他节点,不可同时运行点击“ok”,最后点“close”关闭编辑~grid/.bash_profile文件,设置grid用户环境变量vi ~grid/.bash_profileexport ORACLE_BASE=/u01/app/gridexport ORACLE_HOME=/u01/app/11.2.0/gridexport PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatchexport NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'安装数据库软件(在1节点操作)设置/u01/app目录的group组可写chmod g+w /u01/app使用oracle登陆,运行runInstallercd /u01/media/oracle/linux_x64/database export DISPLAY=YourIP:0.0./runInstaller不配置NTP同步,当节点之间的时间有差异时,会影响时间类型数据,RAC也会不稳定确认可以忽略后,选择”next”,然后点击”install“安装啦按照提示,使用root用户执行脚本运行结束后,点击”ok”,然后点击”close”完成安装增加oracle用户的软件环境变量vi ~oracle/.bash_profileexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'注:sid为实例名,rac中为数据库名加节点序列号(重新登陆后生效)创建数据库创建asm diskgroup使用grid用户登陆,执行asmcaexport DISPLAY=yourIP:0.0asmca创建闪回磁盘组(用于存放归档,闪回日志)创建数据库磁盘组,存放数据库文件登陆oracle账户,执行dbca export DISPLAY=YourIP:0.0dbca除非使用者要求,请关闭OEM根据应用要求选择组件oracle text:大文本存取功能oracle olap:联机分析处理oracle spatial:空间数据库,如地图展示数据oracle label security:数据标签安全sample schemas:开发样本enterprise manager repository:oracle企业管理器OEM的资料库oracle warehouse builder:数据仓库综合工具oracle database vault:敏感数据门禁oracle jvm:oracle java虚拟机,在数据库运行javaoracle xml db:支持xml功能oracle mutimedia:图像多媒体等类型数据oracle application express:快速web应用程序开发工具重要!根据应用要求选择字符集,中文一般性是ZHS16GBK缺省区域可以用united states,本例是china,影响时间、数字、币种等本地化表示法默认只有4组日志,每个实例(thread #)2组,每组大小50MB ,会影响性能,需要修改大小和create 更多的日志组,建议每个实例至少5组,每组256MB 或512MB 方案: 1-5组日志分配给thread 1 6-10组日志分配给thread 2每组大小512MB四:应用累计补丁更新程序PSU升级补丁工具opatch在所有节点,使用grid用户登陆,解压opatch升级包p6880880_112000_Linux-x86-64.zip,并整体覆盖$ORACLE_HOME/OPatch目录在所有节点,使用opatch升级包p6880880_112000_Linux-x86-64.zip 并整体覆盖$ORACLE_HOME/OPatch目录补丁1节点软件解压psu补丁包有些补丁需要一些先决条件,oracle一直在努力简化补丁过程,打补丁前务必参考README.html文件创建ocm相应文件(opatchauto模式)运行升级程序root登陆加载grid环境变量(. ~grid/.bash_profile)运行opatch工具。
Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个主机vip的一个连接串,如果cluster增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个tnsnames.ora。
引入了scan以后,就方便了客户端连接的一个接口,顾名思义single client access name ,简单客户端连接名,这是一个唯一的名称,在整个公司网络内部唯一,并且在DNS 中可以解析为三个ip地址,客户端连接的时候只需要知道这个名称,并连接即可,每个SCAN VIP对应一个scan listener,cluster内部的service在每个scan listener上都有注册,scan listener接受客户端的请求,并foward到不同的Local listener中去,还是由local 的listener提供服务给客户端。
scan只是一个名字,这个名字在DNS上解析成三个IP地址(VIP也是一个名字,也要配置一个ip地址阿)无论cluster有多大(两个节点或者20个节点),都只有三个scan vip,在随机的节点上启动(如果是两个节点,可能三个vip在一个节点,也可能是1+2)scan主要是简化客户端连接,你如果有20个节点,客户端连接的时候,是不是需要配置20个vip,如果用scan,只需要一个scan name就行了,剩下的事情,scan帮你做了。
至于为什么需要在dns里注册三个,主要是为了尽量提高可用性。
当节点数大于3时,最多也只会有3个SCAN listener,也就是说有的节点上没有scan listener.如果使用/etc/hosts文件解析scan ip,因为不能做轮训的负载均衡,所以这时候scan ip 就只能有一个了。
例如:oracle 客户端如何连接到ORACLE 11GR2 带有DNS SCAN IP 的数据库服务器[grid@rac2 ~]$ srvctlconfig scanSCAN name: , Network: 1/192.168.3.0/255.255.255.0/eth0SCAN VIP name: scan1, IP: //192.168.3.231 SCAN VIP name: scan2, IP: //192.168.3.233 SCAN VIP name: scan3, IP: //192.168.3.232客户端TNSNAMES.ORA配置RACDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = racdb){) )TNSPING 测试客户端网络配置指向DNS服务器地址192.168.3.32C:\Documents and Settings\Administrator>tnspingracdbTNS Ping Utility for 32-bit Windows: Version 11.1.0.7.0 - Production on 20-7月-2010 18:53:50Copyright (c) 1997, 2008, Oracle. All rights reserved.已使用的参数文件:D:\app\Administrator\product\11.1.0\db_1\network\admin\sqlnet.ora已使用TNSNAMES 适配器来解析别名Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racdb)))OK (80 毫秒)客户端连接C:\Documents and Settings\Administrator>sqlplussystem/abcdefg@racdb SQL*Plus: Release 11.1.0.7.0 - Production on 星期二7月20 18:46:15 2010Copyright (c) 1982, 2008, Oracle. All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management OLAP,Data Mining and Real Application Testing options SQL> select instance_name from v$instance; INSTANCE_NAME----------------racdb2SQL> exit。
Oracle11g RAC环境下public IP、VIP、scan-IP、private IP的修改方法一、修改方法1.环境操作系统版本:AIX 6.1Oracle版本:11.2.0.3修改前IP配置:192.168.101.61 host1192.168.101.62 host210.10.11.61 host1-priv10.10.11.62 host2-priv192.168.101.63 host1-vip192.168.101.64 host2-vip192.168.101.65 host-scan修改前网卡配置:en0:192.168.101.61en1:10.10.11.61修改后IP配置:192.168.102.61 host1192.168.102.62 host210.10.12.61 host1-priv10.10.12.62 host2-priv192.168.102.63 host1-vip192.168.102.64 host2-vip192.168.102.65 host-scan修改前网卡配置:en0:192.168.102.61en1:10.10.12.612.停止CRS相关资源的自启动2.1停止监听资源srvctl disable listenersrvctl stop listener2.2停止数据库资源srvctl disable database -d yxdbsrvctl stop database -d yxdb -o immediate2.3停止VIP资源srvctl disable vip -ihost1-vipsrvctl stop vip -n host1srvctl disable vip -ihost2-vipsrvctl stop vip -n host22.4停止scan_listener资源srvctl disable scan_listenersrvctl stop scan_listener2.5停止scan资源srvctl disable scansrvctl stop scan2.6停止crs服务(两个节点都要执行)crsctl stop crs3.修改Public IP、VIP、Scan IP、Private IP3.1修改Public IP网卡地址参考命令:smittcpip-> Minimum Configuration & Startup->en0备注:此处只修改Public IP的网卡配置,不修改Private IP的网卡配置,否则CRS 服务将无法启动。
VMware环境下cengtos 上部署oracle 11G R2 RAC详细步骤记录术语PUBLIC IP : 这是我们网卡上配置的真实IP地址,我们称为公共IP。
单独一块网卡。
VIP : RAC 的每个节点都需要有一个虚拟IP,这就是VIP。
VIP需要和PUBLIC IP同网段。
VIP和IP最主要的不同之处在于:VIP是浮动的,而IP是固定的。
在所有节点都正常运行时,每个节点的VIP会被分配到public NIC上;在linux下ifconfig查看,public网卡上是2个IP地址;如果一个节点宕机,这个节点的VIP会被转移到还在运行的节点上。
也就是幸存的节点的public NIC这个网卡上,会有3个IP地址。
当一个节点宕机,这个节点真实IP就连接不上了,但是这个节点的虚拟IP是可以连接的,他会自动把客户端的连接请求转接给存活的节点。
在tnsname.ora文件里,指定Address 列表,客户端会随机选择一个节点来连接数据库,而不是顺序选择的。
SCAN IP : 可以理解为RAC的负载均衡IP、用于客户端连接实例的IP。
内部的SCAN监听器实时了解所有实例的运行情况的,将客户端的连接重定向到空闲存活的服务器。
PRIVATE IP : 称为私有IP,它是用于心跳同步保证两台服务器数据同步。
单独一块网卡。
OCR:oracle集群注册(oracle cluster register)负责维护整个集群的配置信息仓库,包括RAC 以及Clusterware资源,包括的信息有节点成员、数据库、实例、服务、监听器、应用程序等。
为了解决集群的“健忘”问题,整个集群会有一份配置OCR,最多两分OCR,一个primary OCR和一个mirror OCR互为镜像,以防OCR的单点故障。
Voting Disk主要为了在出现脑裂时,决定那个Partion获得控制权,其他的Partion必须从集群中剔除。
为了保证Voting Disk的安全,需要配置多个Voting Disk,Voting disk使用的是一种“多数可用算法”。
使用scanIP连接Oracle11gR2 RAC数据库报错ORA-12545解决案例案例编写人:王文平【案例简介】外勤管家平台数据库进行升级替换,由之前的单节点Oracle10g升级为Oracle11gR2 RAC双节点数据库。
升级完成后外勤管家应用程序连接数据库报错ORA-12545提示无法链接数据库,但检查数据库监听等各组件状态及网络均正常,tnsping数据库的TNSNAME也正常。
ORA-12545报错时一个经常会碰到的报错,但这次按照以往的处理方法却无法解决。
最后查询Oracle官方文档,才确定Oracle11gR2和其他版本的ORA-12545报错处理方法不一致,需要将数据库实例参数local_listener内的host改为各节点的vip地址(默认host值为vip对应的别名)。
修改该参数并生效后,应用程序可以正常访问数据库。
一、用户反映问题描述外勤管家应用程序通过客户端连接数据库,报错如下:SQL*Plus: Release 11.2.0.1.0 Production on Thu May 17 12:35:28 2012Copyright (c) 1982, 2010, Oracle. All rights reserved.ERROR:ORA-12545: Connect failed because target host or object does not exist二、用户投诉问题处理情况1、问题定位a、检查oracle RAC各组件状态,均为ONLINE;>crs_stat -tName Type Target State Host------------------------------------------------------------ora.CRS.dg ora....up.type ONLINE ONLINE sdb01 ora.DATA.dg ora....up.type ONLINE ONLINE sdb01 ora.FLASH.dg ora....up.type ONLINE ONLINE sdb01 ora....ER.lsnr ora....er.type ONLINE ONLINE sdb01 ora....N1.lsnr ora....er.type ONLINE ONLINE sdb02 ora.asm ora.asm.type ONLINE ONLINE sdb01 ora.eons ora.eons.type ONLINE ONLINE sdb01 work ora....rk.type ONLINE ONLINE sdb01 ora.ons ora.ons.type ONLINE ONLINE sdb01 ora....ry.acfs ora....fs.type ONLINE ONLINE sdb01 ora.scan1.vip ora....ip.type ONLINE ONLINE sdb02 ora....SM1.asm application ONLINE ONLINE sdb01 ora....01.lsnr application ONLINE ONLINE sdb01 ora.sdb01.ons application ONLINE ONLINE sdb01 ora.sdb01.vip ora....t1.type ONLINE ONLINE sdb01 ora....SM2.asm application ONLINE ONLINE sdb02 ora....02.lsnr application ONLINE ONLINE sdb02 ora.sdb02.ons application ONLINE ONLINE sdb02 ora.sdb02.vip ora....t1.type ONLINE ONLINE sdb02 ora.share.db ora....se.type ONLINE ONLINE sdb01b、检查应用程序主机与数据库主机之间的网络,正常;c、在应用主机上tnsping数据库的tnsname,正常;>tnsping tnsname 5TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 22-OCT-2012 08:53:21Copyright (c) 1997, 2009, Oracle. All rights reserved.Used parameter files:Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = scanip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = tnsname)))OK (10 msec)OK (0 msec)OK (0 msec)OK (0 msec)OK (0 msec)d、最后初步定位问题可能还是出现在监听上。
Oracle_11gR2_SCAN_IPscanip配置详解Oracle_11gR2_SCAN_IP scan ip配置详解在Oracle 11gR2以前,如果数据库采用了RAC架构,在客户端的tnsnames中,需要配置多个节点的连接信息,从而实现诸如负载均衡,failover等等RAC的特性。
因此,当数据库RAC集群需要添加或删除节点时,需要及时对客户端机器的tns进行更新,以免出现安全隐患。
在11gR2中,为了简化该项配置工作,引入了SCAN(Single Client Access Name)的特性,该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的scan ip 以及scan ip listener,在客户端仅需要配置scan ip的tns信息,通过scan ip listener,连接后台集群数据库。
这样,不论集群数据库是否有添加或者删除节点的操作,均不会对client产生影响。
下面,具体介绍下SCAN(Single Client Access Name)的架构以及配置。
首先,简要的看下在11gR2中,安装RAC发生的巨大变化,在10g以及11gR1的时代,安装RAC的步骤是先安装CRS,再安装DB,而到了11gR2的时代,crs与asm被集成在一起,合称为GRID,必须先安装GRID后,才能继续安装DB,否则,你就跟11gR2的RAC 无缘咯。
而被11gR2引入的SCAN,就是包含在安装grid的过程中。
SCAN的定义,有两种途径:1. 在DNS中定义域名。
2. 通过oracle提供的Grid Naming Server(GNS)实现DHCP自定义。
如果通过dns来定义,则需要在网络中定义3个SCAN IP地址,指向同一个域名,这3个ip地址必须处于同一个子网内,同时域名不能太长,否则您打字也麻烦不是,哈哈。
另外,SCAN IP是由oracleclusterware管理的,因此在主机的集群软件(如IBM HACMP,HP SERVICE GUARD)中不能将此ip配置进去,类似于10g中的vip,在grid安装前,此IP是无法ping 通的。
•软件环境的一般要求–RHEL 5.x系统、RHEL 6.x系统–图形桌面环境+ 开发工具+ 中文Java支持–——在RHEL 6.x中安装时,ksh需改用5.x的软件包第一步:yum install yum*yum groupinstall “X 窗口系统”“桌面”“桌面平台”“开发工具”vi /etc/inittab 修改为5第二步:[root@dbserver ~]# yum -y install java-1.6.0[root@dbserver ~]# cd /usr/lib/jvm/jre-1.6.0/lib[root@dbserver lib]# mv fontconfig.bfc fontconfig.bfc.origin[root@dbserver lib]# cp fontconfig.RedHat.6.0.bfc fontconfig.bfc第三步:装之前看看有没有安装![root@dbserver ~]# rpm -e ksh[root@dbserver ~]# rpm -ivh .../ksh-5.2.14-36.el5.i386.rpm第四步:•用户环境要求–创建组账号oinstall、dba,用户账号oracle–创建Oracle基本目录–为用户oracle设置环境变量,并允许使用X终端[root@dbserver ~]# groupadd oinstall //安装组[root@dbserver ~]# groupadd dba //管理组[root@dbserver ~]# useradd -g oinstall -G dba oracle[root@dbserver ~]# passwd oracle[root@dbserver ~]# mkdir /opt/oracle[root@dbserver ~]# chown -R oracle:oinstall /opt/oracle/[root@dbserver ~]# chmod -R 775 /opt/oracle/第五步:[root@dbserver ~]# vi /home/oracle/.bash_profile……umask 022export ORACLE_BASE=/opt/oracleexport ORACLE_SID=orclexport DISPLAY=:0.0export LANG=zh_CN.UTF-8export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_2[root@dbserver ~]# xhost +//须在图形环境执行access control disabled, clients can connect from any host看到以上提示,代表第五步成功!第六步:•内核及会话要求–修改内存调度参数、端口范围、I/O请求……–增大用户oracle的进程数、文件数限制[root@dbserver ~]# vi /etc/sysctl.conf……fs.aio-max-nr = 1048576 限制并发未完成的请求,应该设置避免I/O子系统故障fs.file-max = 6815744 文件句柄设置代表linux系统中可以打开的文件的数量。
⼀份11gR2racawr报告的简单分析昨晚⽹友发来⼀份awr报告,希望帮忙分析⼀下。
由于其他信息都没有,仅仅只有⼀份awr,鉴于⽬前有⼤多的朋友还不太熟悉或者说不知道如何去进⾏awr的分析。
我这⾥就拿这个awr来进⾏分析,当抛砖引⽟了。
⾸先申请,⽹上分析awr的⽂章不少,⼤家也都可以参考⼀下。
⾸先来看awr前⾯部分信息,了解下系统的版本,以及⼤概判断下系统负载如何。
从上⾯信息我们可以得出如下结论:—-数据库是⼀套11.2.0.2的RAC—-Solaris 64bit环境,48c—-每个cpu 的可⽤处理时间是3591.6 s, 2518.79/(59.86*48)=0.876,说明系统负载还是有些⾼的,但是连接数却不多。
从下⾯的load profile来看,逻辑读、物理读都不算太⾼、软解析也很低。
下⾯重点来看下top 5 event:从top 5 等待来看,绝⼤多数event表现为IO类的等待,⽽且平均等待时间都⽐较⾼,均超过100ms,最⾼的为197ms。
从这⾥,我们可以粗略的判断,系统IO问题较为严重,结合top 5来看,主要集中在direct path read等待,关于direct path read,主要表现为如下集中可能的情况:—–parallel query—-⼤量的disk排序—-table 预读取操作这个等待跟direct path write是不同的,direct path write主要表现为直接路径加载,parallel dml等操作。
其次top 5 ⾥的direct path read temp 主要表现为⼤量的disk temp 排序操作。
这⾥补充⼀点的是,在11gR2⾥⾯,部分全表扫描操作会被direct path read(简称DPR)所替代,当table⼤⼩超过5倍_small_table_threshold ⼤⼩时,oracle将⾃动决定是否使⽤direct path read去替代传统的全表扫描。
Oracle11gR2 RAC实时应用集群(2)在Windows2003x86_64下的集群(ASM篇)(Oracle11gR2 + Grid + Windows2003 x86_64 + ASM) RAC(Real Application Clusters,实时应用集群),是多台主机组成的集群计算环境,是Oracle数据库支持网格计算环境的核心技术。
普通Oracle数据库,只能在一台主机上运行,数据库的实例和数据库文件都在一台主机上,是单实例单数据库。
RAC实时应用集群,可以在多台主机上运行,每台节点主机上运行一个数据库实例,通过共享存储磁盘访问相同的数据库文件,是多实例单数据库,单一节点故障不影响数据库的使用,负载能力也会随节点主机的增加而加强。
Oracle 11g引入Grid infrastructure,Oracle集成了自动存储管理功能,数据库基础设施就完全不再需要任何第三方的文件系统卷管理器.RAC集群的关键点:1.共享存储2.节点间需要内部通讯,以协调集群正常运行,所以每个节点需要提供外部网络与内部网络.3.CRS集群软件: 需要集群软件(Clusterware)协调各节点.4.集群注册文件(OCR): 需要注册集群,保存在共享磁盘上.5.仲裁磁盘(Voting Disk): 需要协调各节点决定控制权,做为表决器,保存在共享磁盘上.6.虚拟IP(Virturl IP): 提供客户端连接,IP由集群软件接管,当集群就绪时,虚拟IP可以连接.7.SCAN IP: 11gR2有增加的新特性,用于客户端连接,不需要再在客户端tnsname.ora 中添加各节点状态,SCAN IP可以调节负载平衡.共享存储访问方式(存储系统):1.集群文件系统(CFS:Cluster File System)2.自动存储管理(ASM:Automatic Storage Management)3.网络文件系统(NFS)单机文件系统FAT32,NTFS,ext3不能作为共享存储Oracle 11gR2不再支持使用裸设备作为共享存储特点集群名称SCAN名称(Single Client Access Name)GNS(网格命名服务)由于自动存储管理Oracle只支持Linux平台,所以在Windows下选择以下储存方案来建立集群系统:项目存储系统存储位置Clusterware软件NTFS 本地磁盘voting disk ASM 共享磁盘OCR ASM 共享磁盘数据库软件NTFS 共享磁盘数据库ASM 共享磁盘下面说说Oracle RAC在Windows2003 x64下的安装过程。
Oracle 11gR2 SCAN 详解
在Oracle 11gR2以前,如果数据库采用了RAC架构,在客户端的tnsnames中,需要配置多个节点的连接信息,从而实现诸如负载均衡,failover等等RAC的特性。
因此,当数据库RAC集群需要添加或删除节点时,需要及时对客户端机器的tns进行更新,以免出现安全隐患。
在11gR2中,为了简化该项配置工作,引入了SCAN(Single Client Access Name)的特性,该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的scan ip以及scan ip listener,在客户端仅需要配置scan ip的tns信息,通过scan ip listener,连接后台集群数据库。
这样,不论集群数据库是否有添加或者删除节点的操作,均不会对client产生影响。
下面,具体介绍下SCAN(Single Client Access Name)的架构以及配置。
首先,简要的看下在11gR2中,安装RAC发生的巨大变化,在10g 以及11gR1的时代,安装RAC的步骤是先安装CRS,再安装DB,而到了11gR2的时代,crs与asm被集成在一起,合称为GRID,必须先安装GRID后,才能继续安装DB,否则,你就跟11gR2的RAC 无缘咯,呵呵。
而被11gR2引入的SCAN,就是包含在安装grid的过程中。
SCAN 的定义,有两种途径:
1. 在DNS中定义域名。
2. 通过oracle提供的Grid Naming Server(GNS)实现DHCP
自定义。
如果通过dns来定义,则需要在网络中定义3个SCAN IP地址,指向同一个域名,这3个ip地址必须处于同一个子网内,同时域名不能太长,否则您打字也麻烦不是,哈哈。
另外,SCAN IP是由oracle clusterware管理的,因此在主机的集群软件(如IBM HACMP,HP SERVICE GUARD)中不能将此ip配置进去,类似于10g中的vip,在grid安装前,此IP是无法ping通的。
范例:
IN A 192.168.1.111
IN A 192.168.1.112
IN A 192.168.1.113
如果使用GNS的方式,则必须有DHCP服务,在cluster的配置过程中,将会自动向DHCP服务器申请3个IP地址作为SCAN IP使用。
除了SCAN IP,在cluster的配置过程中,SCAN IP LISTENER 服务也会被建立,每个SCAN IP对应一个SCAN IP LISTENER,并且,为了提升高可用性,3个SCAN IP以及其对应的SCAN IP LISTENER将被独立的分配到各个节点上。
如果cluster中其中某个运行scan ip的节点出现异常,则其余两个正常的scan ip节点将自动接管。
注意,此处有个注意点,如果客户端是11gR2的版本,则客户端
只需在tns中配置域名解析,即可实现failover,如果客户端版本低于11gR2,则无法通过域名解析出3个SCAN IP地址,因此如果要实现failover,必须在客户端的tns中配置3个SCAN IP的地址进行解析,这也是为何oracle强烈建议在使用11gR2数据库时,客户端也最好使用11gR2的原因。
范例:
$srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521 SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521 SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521 $srvctl config scan
SCAN name: scan-ip, Network:
1/192.168.1.0/255.255.255.0/
SCAN VIP name: scan1, IP:
//192.168.1.111
SCAN VIP name: scan2, IP:
//192.168.1.112
SCAN VIP name: scan3, IP:
//192.168.1.113
回中,介绍了11gR2中 SCAN IP的配置,以及 SCAN IP LISTENER的配置及其作用。
本章中,我们来详细了解下,SCAN IP在数据库中的配置方法,以及如何用SCAN IP,配置oracle所谓的自动负载平衡(该功能的实际使用,我们将在后续的章节中详细讨论)。
看了第一篇中的SCAN IP介绍,相信很多朋友都有这样一个疑问,既然SCAN IP是跟数据库instance无关的,例如一个12节点的RAC或者24节点的RAC,都只有3个SCAN IP,并且SCAN IP是随机分布在各个instance的,那么,SCAN IP LISTENER如何监听各个节点的数据库呢,同时,该怎么配置哪个instance 去哪个SCAN IP LISTENER注册呢。
下面将一一解答。
首先,补充一个概念,在11gR2中,SCAN IP是作为一个新增IP出现的,原有的CRS中的VIP仍然存在,从这里,就能看出一点端倪,在11gR2的RAC
架构中,SCAN IP并非独立存在的,而是和原有的 VIP结合在一起的。
那么他们是如何工作的呢,先来看下下面这个工作原理图:
从这个原理图,可以看出,scan ip其实是ora cle在客户端与数据库之间,新加的一个连接层,当有客户端访问时,连接到 SCAN IP LISTENER,而SCAN IP LISTENER接收到连接请求时,会根据 LBA 算法(所谓LBA算法,就是least loaded instance),将该客户端的连接请求,转发给对应的instance
上的VIP LISTENER,从而完成了整个客户端与服务器的连接过程。
简化如下: client -> scan listener -> local listener -> local instance
了解了这个过程以后,对SCAN IP的整体架构,就全部清楚了。
剩下的,我们再来讲一些技术细节。
SCAN IP 和 SCAN LISTENER是独立于RAC的各个节点的,而每个节点的 VIP , VIP LISTENER是跟instance绑定的,每个节点的VIP LISTENER,会监听自己所属节点的instance。
因此,在数据库中,我们需要设置remote_listener参数,这个参数设置很有讲究,因为scan ip有3个,scan listener也有三个,但是他们对应的是同一个域名,因此,在数据库中,我们需要使用easy connect naming method方式,就是在sqlnet.ora的配置文件中,必须有
NAMES.DIRECTORY_PATH=(tnsnames,ezconnect)存在。
另外,配置remote_listener的方式也有讲究,以前的版本中,我们通常是在tnsnames.ora中写好remote_listener的地址以及端口,但是对于scan listener,不能这么做,必须按照标准格式,设置成REMOTE_LISTENER=SCAN:PORT 的形式,以我的测试系统为例,就是
REMOTE_LISTENER=:1521,而不需要在tnsnames.ora
中进行额外设置。
经过以上设置后,RAC数据库的每个节点的PMON进程,会用广播的方式向
每个SCAN LISTENER进行注册,同时CRS的后台进程ONS,会采集各个节点的负载状况,通知scan listener,以便scan listener根据负载情况,将新连接分配到当前负载最低的节点上。
以上,就是11gR2 RAC中,新增的SCAN IP 以及 SCAN LISTENER的全部内容了,在下面一章中,我们将针对该新特性,开展一些拓展性的思考以及讨论。