Oacle Rac 精华概要.docx_第1页
Oacle Rac 精华概要.docx_第2页
Oacle Rac 精华概要.docx_第3页
Oacle Rac 精华概要.docx_第4页
Oacle Rac 精华概要.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

Oacle Rac 精华概要在RAC安装前利用CLU进行检查预安装完整性 ./runcluvfy.sh stage -pre crsinst -n node1,node2,node3 -verbose 预安装之前检查必要的安装组件./runcluvfy.sh stage -pre crsinst -n rac-a,rac-b -r 10gR2 verbose预安装检查10gR2的完整性条件runcluvfy.sh comp nodecon -n node1,node2 verbose预安装检查RAC网络环境./runcluvfy.sh stage -post hwos -n rac-a,rac-b verbose预安装检查硬件条件的完整性./runcluvfy.sh comp sys -n rac-a,rac-b -p crs -osdba dba -orainv oinstall verbose预安装检查RAC软件环境的必要条件Oracle rac 检查 CRS 服务状态bash-3.00$ crsctl check crsCSS appears healthyCRS appears healthyEVM appears healthyOracle rac 检查OCR磁盘状态 bash-3.00$ ocrcheckStatus of Oracle Cluster Registry is as follows : Version : 2 Total space (kbytes) : 1043180 Used space (kbytes) : 4584 Available space (kbytes) : 1038596 ID : 253220107 Device/File Name : /dev/rdsk/c2t0d0s6 Device/File integrity check succeeded Device/File not configured Cluster registry integrity check succeededOracle rac 查看Voting设备 bash-3.00$ crsctl query css votedisk 0. 0 /dev/rdsk/c2t1d0s6located 1 votedisk(s). RAC环境中一般开启数据库的步骤Oracle10g RAC + Linux AS5.0 一般标准关闭开启步骤是下面的顺序 : SHUTDOWN: rac1-srvctl stop service -d devdbrac1-srvctl stop database -d devdbrac1-srvctl stop asm -n rac2rac1-srvctl stop asm -n rac1rac1-srvctl stop nodeapps -n rac2rac1-srvctl stop nodeapps -n rac1rac1-crs_statt STARTUP: rac1-srvctl start nodeapps -n rac1rac1-srvctl start nodeapps -n rac2rac1-srvctl start asm -n rac1rac1-srvctl start asm -n rac2rac1-srvctl start database -d devdbrac1-srvctl start service -d devdbrac1-crs_stat -t其中 srvctl stop service -d devdb 是在关闭哪些服务? 都是CRS服务吗 ? CRSD ,ORSD , OCSSD , EVMD ? srvctl stop database -d devdb 是在关闭两个节点上的 inst (也就是关闭整个数据库) ? srvctl stop nodeapps -n rac1 是在停止节点1 上的 vip, ons , gsd,lsnr , inst 等节点应用程序 ? 这里的服务(service)和节点应用程序(nodeapps) 有什么关联 ? 节点应用程序是数据库Level ,而服务是crs的东西,是os level ? - 一般在开关机保养的时候需要 srvctl stop service -d devdb 这个吗 ? 因为好像CRS会随着OS的关闭自动关闭,随OS开启自动开启 ? - 平时常用的开启关闭,没有涉及到service 部分。 ecsrac01$emctl stop dbconsoleecsrac01$srvctl stop database -d ecsdb ecsrac01$srvctl stop asm -n ecsrac01ecsrac01$srvctl stop asm -n ecsrac02 ecsrac01$srvctl stop nodeapps -n ecsrac01 ecsrac01$srvctl stop nodeapps -n ecsrac02 ecsrac01$srvctl start nodeapps -n ecsrac01 ecsrac01$srvctl start nodeapps -n ecsrac02 ecsrac01$srvctl start asm -n ecsrac01ecsrac01$srvctl start asm -n ecsrac02 ecsrac01$srvctl start database -d ecsdb ecsrac01$emctl start dbconsole 关于service的描述,十分精准下面我补充一下其他部分:其中 srvctl stop service -d devdb 是在关闭哪些服务? 都是CRS服务吗 ? CRSD ,ORSD , OCSSD , EVMD ? 这里的service跟CRS服务没什么关系,CRS的服务包含三个部分,CRSD, OCSSD and EVMD,没有ORSDsrvctl stop database -d devdb 是在关闭两个节点上的 inst (也就是关闭整个数据库) ? =srvctl stop databas是关闭整个数据库,srvctl stop instance 是关闭指定节点上的instancesrvctl stop nodeapps -n rac1 是在停止节点1 上的 vip, ons , gsd,lsnr , inst 等节点应用程序 ? 在RAC中,nodeapps是vip, ons and gsd的总称,stop nodeapps就是停止这三种资源,跟lsnr和instance没关系这里的服务(service)和节点应用程序(nodeapps) 有什么关联 ? 节点应用程序是数据库Level ,而服务是crs的东西,是os level ?=service和nodeapps没多大关系,但是其他资源之间有一些依赖关系比如service depends on instancelistener depends on vipinstance depends on asm这种依赖关系在不同版本之间会略微有些差异。所有实例和服务的状态$ srvctl status database -d racdbInstance racdb1 is running on node linux1Instance racdb2 is running on node linux2单个实例的状态$ srvctl status instance -d racdb -i racdb2Instance racdb2 is running on node linux2在数据库全局命名服务的状态$ srvctl status service -d racdb -s racdb_tafService racdb_taf is running on instance(s) racdb1, racdb2特定节点上节点应用程序的状态$ srvctl status nodeapps -n linux1VIP is running on node: linux1GSD is running on node: linux1Listener is running on node: linux1ONS daemon is running on node: linux1ASM 实例的状态$ srvctl status asm -n linux1ASM instance +ASM1 is running on node linux1.列出配置的所有数据库$ srvctl config databaseracdb显示 RAC 数据库的配置$ srvctl config database -d racdblinux1 racdb1 /u01/app/oracle/product/10.2.0/db_1linux2 racdb2 /u01/app/oracle/product/10.2.0/db_1显示指定集群数据库的所有服务$ srvctl config service -d racdbracdb_taf PREF: racdb1 racdb2 AVAIL:显示节点应用程序的配置 (VIP、GSD、ONS、监听器)$ srvctl config nodeapps -n linux1 -a -g -s -lVIP exists.: /linux1-vip/00//eth0GSD exists.ONS daemon exists.Listener exists.显示 ASM 实例的配置$ srvctl config asm -n linux1+ASM1 /u01/app/oracle/product/10.2.0/db_1集群中所有正在运行的实例SELECT inst_id , instance_number inst_no , instance_name inst_name , parallel , status , database_status db_status , active_state state , host_name hostFROM gv$instanceORDER BY inst_id; INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST- - - - - - - - 1 1 racdb1 YES OPEN ACTIVE NORMAL linux1 2 2 racdb2 YES OPEN ACTIVE NORMAL linux2位于磁盘组中的所有数据文件select name from v$datafileunionselect member from v$logfileunionselect name from v$controlfileunionselect name from v$tempfile;NAME-+FLASH_RECOVERY_AREA/racdb/controlfile/current.258.570913191+FLASH_RECOVERY_AREA/racdb/onlinelog/group_1.257.570913201+FLASH_RECOVERY_AREA/racdb/onlinelog/group_2.256.570913211+FLASH_RECOVERY_AREA/racdb/onlinelog/group_3.259.570918285+FLASH_RECOVERY_AREA/racdb/onlinelog/group_4.260.570918295+RACDB_DATA1/racdb/controlfile/current.259.570913189+RACDB_DATA1/racdb/datafile/example.257.570913311+RACDB_DATA1/racdb/datafile/indx.270.570920045+RACDB_DATA1/racdb/datafile/sysaux.260.570913287+RACDB_DATA1/racdb/datafile/system.262.570913215+RACDB_DATA1/racdb/datafile/undotbs1.261.570913263+RACDB_DATA1/racdb/datafile/undotbs1.271.570920865+RACDB_DATA1/racdb/datafile/undotbs2.265.570913331+RACDB_DATA1/racdb/datafile/undotbs2.272.570921065+RACDB_DATA1/racdb/datafile/users.264.570913355+RACDB_DATA1/racdb/datafile/users.269.570919829+RACDB_DATA1/racdb/onlinelog/group_1.256.570913195+RACDB_DATA1/racdb/onlinelog/group_2.263.570913205+RACDB_DATA1/racdb/onlinelog/group_3.266.570918279+RACDB_DATA1/racdb/onlinelog/group_4.267.570918289+RACDB_DATA1/racdb/tempfile/temp.258.57091330321 rows selected.属于“RACDB_DATA1”磁盘组的所有 ASM 磁盘SELECT pathFROM v$asm_diskWHERE group_number IN (select group_number from v$asm_diskgroup where name = RACDB_DATA1);PATH-ORCL:VOL1ORCL:VOL2 启动/停止集群 此时,我们已经完全安装并配置了 Oracle RAC 10g 并拥有了一个功能完善的集群化数据库。 至此完成所有工作后,您可能会问“那我又怎样启动和停止服务呢?”如果您遵循了本指南中的说明,则所有服务(包括 Oracle 集群件、所有 Oracle 实例、企业管理器数据库控制台等)应在 Linux 节点每次重新引导时自动启动。 但有时您可能想要关闭某个节点,然后手动重新启动它。或者,您可能发现企业管理器没有启动它而需要启动它。本节提供了启动和停止集群环境的命令。 确保您是以 oracle UNIX 用户登录的。我们将从 linux1 运行本节中的所有命令: # su - oracle$ hostnamelinux1停止 Oracle RAC 10g 环境 第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。 $ export ORACLE_SID=racdb1$ emctl stop dbconsole$ srvctl stop instance -d racdb -i racdb1$ srvctl stop asm -n linux1$ srvctl stop nodeapps -n linux1启动 Oracle RAC 10g 环境 第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。 $ export ORACLE_SID=racdb1$ srvctl start nodeapps -n linux1$ srvctl start asm -n linux1$ srvctl start instance -d racdb -i racdb1$ emctl start dbconsole使用 SRVCTL 启动/停止所有实例 启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了! $ srvctl start database -d racdb$ srvctl stop database -d racdb查看Enterperise Manager端口 bash-3.00$ more /u01/app/oracle/product/10.2.0/db_1/install/portlist.ini iSQL*Plus HTTP port number =5561Enterprise Manager Console HTTP Port (racdb) = 1158Enterprise Manager Agent Port (racdb) = 3938检查RAC中的主要服务行程信息 bash-3.00$ ps -aef | grep init. root 704 1 0 23:42:12 ? 0:03 /bin/sh /etc/init.d/init.cssd fatal root 915 704 0 23:42:56 ? 0:00 /bin/sh /etc/init.d/init.cssd oclsomon root 919 704 0 23:42:56 ? 0:00 /bin/sh /etc/init.d/init.cssd daemon root 15403 15391 0 00:10:03 ? 0:00 /bin/sh /etc/init.d/init.cssd bootid root 15391 704 0 00:10:03 ? 0:00 /bin/sh /etc/init.d/init.cssd runcheckroot 906 704 0 23:42:56 ? 0:00 /bin/sh /etc/init.d/init.cssd oprocd进程含义解释 Fatal: RAC安装后的任务 备份SPFILE文件到PFILEbash-3.00$ sqlplus /nologSQL*Plus: Release .0 - Production on Tue Sep 7 12:27:19 2010Copyright (c) 1982, 2005, Oracle. All Rights Reserved.SQL conn /as sysdbaConnected.SQL show parameter spfileNAME TYPE VALUE- - -spfile string +ORADATA/racdb/spfileracdb.oraSQL create pfile=?/dbs/initracdb.ora from spfile;File created. bash-3.00$ ls -latotal 89000drwxr-x- 2 oracle oinstall 1024 Sep 7 12:36 .drwxr-x- 55 oracle oinstall 1024 Sep 3 20:25 .-rw-rw- 1 oracle oinstall 1460 Sep 7 11:35 ab_+ASM1.dat-rw-rw- 1 oracle oinstall 6645760 Sep 4 12:03 arch1_33_728766842.dbf-rw-rw- 1 oracle oinstall 8290816 Sep 4 12:19 arch1_34_728766842.dbf-rw-rw- 1 oracle oinstall 172032 Sep 4 12:37 arch1_35_728766842.dbf-rw-rw- 1 oracle oinstall 47104 Sep 5 13:03 arch1_36_728766842.dbf-rw-rw- 1 oracle oinstall 5180928 Sep 5 14:56 arch1_37_728766842.dbf-rw-rw- 1 oracle oinstall 1571840 Sep 5 15:43 arch1_38_728766842.dbf-rw-rw- 1 oracle oinstall 309760 Sep 5 15:59 arch1_39_728766842.dbf-rw-rw- 1 oracle oinstall 96256 Sep 5 16:06 arch1_40_728766842.dbf-rw-rw- 1 oracle oinstall 168960 Sep 5 16:20 arch1_41_728766842.dbf-rw-rw- 1 oracle oinstall 285696 Sep 5 16:38 arch1_42_728766842.dbf-rw-rw- 1 oracle oinstall 1676288 Sep 5 17:30 arch1_43_728766842.dbf-rw-rw- 1 oracle oinstall 18564096 Sep 6 10:24 arch1_44_728766842.dbf-rw-rw- 1 oracle oinstall 329728 Sep 6 10:45 arch1_45_728766842.dbf-rw-rw- 1 oracle oinstall 2028032 Sep 6 10:24 arch2_11_728766842.dbf-rw-rw- 1 oracle oinstall 1024 Sep 4 12:38 arch2_6_728766842.dbf-rw-r- 1 oracle oinstall 1544 Sep 7 11:36 hc_+ASM1.dat-rw-r- 1 oracle oinstall 1544 Sep 7 11:36 hc_racdb1.dat-rw-r- 1 oracle oinstall 28 Sep 3 18:04 init+ASM1.ora-rw-r- 1 oracle oinstall 12920 May 3 2001 initdw.ora-rw-r- 1 oracle oinstall 8385 Sep 11 1998 init.ora-rw-r- 1 oracle oinstall 28 Sep 3 18:04 init+.ora-rw-r- 1 oracle oinstall 38 Sep 7 11:28 initracdb1.ora-rw-r-r- 1 oracle oinstall 1229 Sep 7 12:36 initracdb.ora 备份的SPFILE-rw-r- 1 oracle oinstall 1536 Sep 3 18:04 orapw+ASM1-rw-r- 1 oracle oinstall 1536 Sep 3 20:13 orapwracdb1当SPFILE文件丢失,此时可以利用PFILE恢复到SPFILE文件中,具体步骤如下SQL startup pfile=$ORACLE_HOME/dbs/initracdb.ora 从PFILE启动ORACLE instance started.Total System Global Area 260046848 bytes 改变后的SGA大小Fixed Size 1279648 bytesVariable Size 79694176 bytesDatabase Buffers 176160768 bytesRedo Buffers 2912256 bytesDatabase mounted.Database opened.SQL create spfile=+ORADATA/racdb/spfileracdb.ora from pfile; 创建一个SPFILE从PFILE文件中File created.如果我们在这里未指定SPFILE的绝对路径,默认会存储$ORACLE_HOME/dbs/spfileracdb1.ora 在此黄色部分是以节点自动命令名也就是与当前的SID同名。如下bash-3.00$ ls -latotal 89012drwxr-x- 2 oracle oinstall 1024 Sep 7 12:48 .drwxr-x- 55 oracle oinstall 1024 Sep 3 20:25 .-rw-rw- 1 oracle oinstall 1460 Sep 7 11:35 ab_+ASM1.dat-rw-rw- 1 oracle oinstall 6645760 Sep 4 12:03 arch1_33_728766842.dbf-rw-rw- 1 oracle oinstall 8290816 Sep 4 12:19 arch1_34_728766842.dbf-rw-rw- 1 oracle oinstall 172032 Sep 4 12:37 arch1_35_728766842.dbf-rw-rw- 1 oracle oinstall 47104 Sep 5 13:03 arch1_36_728766842.dbf-rw-rw- 1 oracle oinstall 5180928 Sep 5 14:56 arch1_37_728766842.dbf-rw-rw- 1 oracle oinstall 1571840 Sep 5 15:43 arch1_38_728766842.dbf-rw-rw- 1 oracle oinstall 309760 Sep 5 15:59 arch1_39_728766842.dbf-rw-rw- 1 oracle oinstall 96256 Sep 5 16:06 arch1_40_728766842.dbf-rw-rw- 1 oracle oinstall 168960 Sep 5 16:20 arch1_41_728766842.dbf-rw-rw- 1 oracle oinstall 285696 Sep 5 16:38 arch1_42_728766842.dbf-rw-rw- 1 oracle oinstall 1676288 Sep 5 17:30 arch1_43_728766842.dbf-rw-rw- 1 oracle oinstall 18564096 Sep 6 10:24 arch1_44_728766842.dbf-rw-rw- 1 oracle oinstall 329728 Sep 6 10:45 arch1_45_728766842.dbf-rw-rw- 1 oracle oinstall 2028032 Sep 6 10:24 arch2_11_728766842.dbf-rw-rw- 1 oracle oinstall 1024 Sep 4 12:38 arch2_6_728766842.dbf-rw-r- 1 oracle oinstall 1544 Sep 7 11:36 hc_+ASM1.dat-rw-r- 1 oracle oinstall 1544 Sep 7 12:47 hc_racdb1.dat-rw-r- 1 oracle oinstall 28 Sep 3 18:04 init+ASM1.ora-rw-r- 1 oracle oinstall 12920 May 3 2001 initdw.ora-rw-r- 1 oracle oinstall 8385 Sep 11 1998 init.ora-rw-r- 1 oracle oinstall 28 Sep 3 18:04 init+.ora-rw-r- 1 oracle oinstall 38 Sep 7 11:28 initracdb1.ora-rw-r-r- 1 oracle oinstall 1229 Sep 7 12:40 initracdb.bak-rw-r-r- 1 oracle oinstall 1229 Sep 7 12:41 initracdb.ora-rw-r- 1 oracle oinstall 1536 Sep 3 18:04 orapw+ASM1-rw-r- 1 oracle oinstall 1536 Sep 3 20:13 orapwracdb1-rw-r- 1 oracle oinstall 3584 Sep 7 12:48 spfileracdb1.ora 此值是默认创建的SPFILE文件 此时存在一个很大因素,好就是在ORACLE RAC开启数据库时寻SPFIEL的过程。优先级的关系如下 根据官方手册定义: Parameter File Search Order in Real Application ClustersOracle Database searches for your parameter file in the following order:1. $ORACLE_HOME/dbs/spfilesid.ora2. $ORACLE_HOME/dbs/spfile.ora3. $ORACLE_HOME/dbs/initsid.ora 如果此时我创建的SPFILE正好在本地节点上,并非在存储上,这就有可能造成RAC中二个节点SPFILE不一样会给数据库带来性能参数不一致,影响数据库的最佳性能。而且在当前节点,而且根据SPFILE的优先级关系,RAC环境中数据库启动恰好从本地的SPFILE文件启动数据库。SQL shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL startup 数据库默认从SPFILE文件启动读取$ORACLE_HOME/dbs/initracdb1.oraORA-01078: failure in processing system parametersORA-01565: error in identifying file +ORADATA/racdb/spfileracdb.oraORA-17503: ksfdopn:2 Failed to open file +ORADATA/racdb/spfileracdb.oraORA-01000: maximum open cursors exceededSQL startupORA-01078: failure in processing system parametersORA-01565: error in identifying file +ORADATA/racdb/spfileracdb.oraORA-17503: ksfdopn:2 Failed to open file +ORADATA/racdb/spfileracdb.oraORA-01000: maximum open cursors exceeded以步启动过程说明从SPFILE无法启动,因为我们在执行SPFILE文件恢复过程中出错。也就是在RAC环境中,数据库开启状态时不能对SPFILE文件做恢复,而且官方提出在RAC环境中做SPFILE恢复不需要开启数据库。所以我们只要连接上数据库可以直接如下 SQL create spfile=+ORADATA/socdb/spfilesocdb.ora from pfile=?/dbs/initracdb.ora;File created.SQL startup 数据库再次从SPFILE文件读初始化配置文件ORACLE instance started.Total System Global Area 260046848 bytes 验证正确Fixed Size 1279648 bytesVariable Size 79694176 bytesDatabase Buffers 176160768 bytesRedo Buffers 2912256 bytesDatabase mounted.Database opened.SQL show parameter spfile 查看数据库以什么参数文件启动的NAME TYPE VALUE- - -spfile string +ORADATA/racdb/spfileracdb.oraRAC启用归档1. 登录到一个节点,通过在当前实例中将 cluster_database 设置为 FALSE 来禁用集群实例参数: 2. $ sqlplus / as sysdbaSQL alter system set cluster_database=false scope=spfile sid=racdb1;3. 关闭所有 访问集群化数据库的实例: $ srvctl stop database -d racdb4. 使用本地实例,挂载 数据库: 5. $ sqlplus / as sysdbaSQL startup mount6. 启用存档: SQL alter database archivelog;7. 通过在当前实例中将实例参数 cluster_database 修改为 TRUE,重新启用对集群的支持: SQL alter system set cluster_database=true scope=spfile sid=racdb1;8. 关闭本地实例: SQL shutdown immediate9. 使用 srvctl 备份所有 实例: $ srvctl start database -d racdb10. (可选)使用 srvctl 备份所有服务(即 TAF): $ srvctl start service -d racdb11. 登录到本地实例,验证存档日志模式已启用: 12. $ sqlplus / as sysdba13. SQL archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 29Next log sequence to archive 30Current log sequence 30启用存档日志模式后,RAC 配置中的每个实例都可以自动存档重做日志!Oracle Rac 相关维护操作 备份与恢复Voting、OCR假如在RAC环境中的OCR voting设备已经损坏,CRS无法正常工作,则此时我们需要进行恢复二设备内容,具体步骤如下: 首先我们先执行备份voting磁盘内容 bash-3.00$ crsctl query

温馨提示

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

评论

0/150

提交评论