Oracle 10gR2 RAC环境增加及删除节点


[三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 ORACLEORACLEORACLEORACLE 10gR210gR210gR210gR2 RACRACRACRAC环境增加及删除节点环境增加及删除节点环境增加及删除节点环境增加及删除节点 2009-11-10 君三思 http://www.5ienet.com 一、初始化第 3台节点.............................................................................................................2 1.1 配置 hosts 文件............................................................................................................2 1.2 配置 SSH 密钥认证.................................................................................................... 3 1.3 配置 ASM 共享盘.......................................................................................................4 二、添加 clusterware 到新节点................................................................................................ 5 2.1 检查安装环境..............................................................................................................5 2.2 安装 clusterware 到新节点.........................................................................................7 三、复制 oracle 软件到新节点...............................................................................................14 四、配置监听服务到新节点...................................................................................................18 五、添加实例到新节点...........................................................................................................25 六、移除节点...........................................................................................................................31 6.1 删除 DATABASE 实例.............................................................................................31 6.2 删除 ASM 实例.........................................................................................................36 6.3 删除节点....................................................................................................................36 附:三思笔记系列文章快速链接:.......................................................................................43 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 RAC是项非常优秀的特性,其前身 OPS从oracle6 即开始提供,自 9i 版本更名为 RAC 后,经过这么多年的完善已经非常的成熟和稳定。使用 RAC特性能够有效的提升企业数据 库系统的可用性,并有效增强整个系统的负载能力。考虑到数据规模的不断增长,最初设计 良好的系统随着业务量的增大可能会逐渐不勘负担,如果是 RAC环境的数据库,就可以考 虑通过增加节点的方式,来提升该配环境的负载能力。 本文将通过示例演示,对现有的 RAC数据库环境增加节点的相关操作。这里我们的操 作基于一套双节点的 RAC环境。 在本文正式开始前,俺先假设要添加的节点已安装好操作系统;内核参数已经进行修改 ; ORACLE 用户已初始化;成功并正确的配置和共享存储;相关rpm 包均已安装;与当前 RAC 环境中各节点互联互通等等吧。 提示:新节点需要进行的准备工作,可以参考三思笔记系列文章:"手把手教你用 VMware VMware VMware VMware 在linux linux linux linux 下安装 oracle10goracle10goracle10goracle10g RACRACRACRAC"中配置 linux 环境相关章节内容。 一、初始化第 一、初始化第 一、初始化第 一、初始化第 3333台节点台节点台节点台节点 即使是添加节点,那么首先就需要对新节点进行适当的配置,以使其能够满足成为 RAC 环境中一员的需要。 1.11.11.11.1 配置hosts hosts hosts hosts 文件 执行命令如下: [root@jssdbn2 ~]# vi /etc/hosts 修改 hosts 文件中的内容,修改完成后,hosts 文件中至少包含下列的内容: 192.168.10.11 jssdbn1 192.168.10.12 jssdbn2 192.168.10.13 jssdbn3 192.168.10.21 jssdbn1-vip 192.168.10.22 jssdbn2-vip 192.168.10.23 jssdbn3-vip 10.10.10.101 jssdbn1-priv 10.10.10.102 jssdbn2-priv 10.10.10.103 jssdbn3-priv 注意,这里不仅新增加的节点中 hosts 文件需要修改,同一个 RAC环境中所有节点的 hosts 文件都必须重新修改。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 1.21.21.21.2 配置SSH SSH SSH SSH 密钥认证 RAC环境中各节点间不仅时刻保持通讯,而且还有可能互访文件,因此必须要保证各 节点间访问不需输入 DBA 手动密码即可自动完成,这里我们通过配置 SSH 来实现这一点。 首先是在新增加的节点时操作,即 jssdbn3 节点(注意执行命令的用户): [root@jssdbn3 ~]# susususu ---- oracleoracleoracleoracle [oracle@jssdbn3 ~]$ mkdirmkdirmkdirmkdir ~/.ssh~/.ssh~/.ssh~/.ssh [oracle@jssdbn3 ~]$ chmodchmodchmodchmod 700700700700 ~/.ssh~/.ssh~/.ssh~/.ssh [oracle@jssdbn3 ~]$ ssh-keygenssh-keygenssh-keygenssh-keygen -t-t-t-t rsarsarsarsa Generating public/private rsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_rsa. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. The key fingerprint is: 37:89:ec:6a:49:2d:18:5d:9d:c2:7c:66:84:b0:2e:94 oracle@jssdbn3 [oracle@jssdbn3 ~]$ ssh-keygenssh-keygenssh-keygenssh-keygen -t-t-t-t dsadsadsadsa Generating public/private dsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. The key fingerprint is: 43:f1:b1:9f:e6:ec:b5:b0:74:72:24:22:22:5c:24:ca oracle@jssdbn3 然后转至 jssdbn1 节点执行,也是以 oracle 身份进行操作(执行过程中,当访问远端节点 时可能需要输入目标节点的密码): [oracle@jssdbn1 ~]$ sshsshsshssh jssdbn3jssdbn3jssdbn3jssdbn3 catcatcatcat ~/.ssh/id_rsa.pub~/.ssh/id_rsa.pub~/.ssh/id_rsa.pub~/.ssh/id_rsa.pub >>>>>>>> ~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys The authenticity of host 'jssdbn3 (192.168.10.13)' can't be established. RSA key fingerprint is 95:23:18:7a:5b:a9:5f:48:d7:1e:1a:f9:01:ec:f0:b1. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'jssdbn3,192.168.10.13' (RSA) to the list of known hosts. oracle@jssdbn3's password: [oracle@jssdbn1 ~]$ sshsshsshssh jssdbn3jssdbn3jssdbn3jssdbn3 catcatcatcat ~/.ssh/id_dsa.pub~/.ssh/id_dsa.pub~/.ssh/id_dsa.pub~/.ssh/id_dsa.pub >>>>>>>> ~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys oracle@jssdbn3's password: 最后传输 jssdbn1 节点中配置好的认证密钥信息到节点 2和节点 3,执行命令如下: [oracle@jssdbn1 ~]$ scpscpscpscp ~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys jssdbn2:~/.ssh/authorized_keysjssdbn2:~/.ssh/authorized_keysjssdbn2:~/.ssh/authorized_keysjssdbn2:~/.ssh/authorized_keys authorized_keys 100% 3000 2.9KB/s 00:00 [oracle@jssdbn1 ~]$ scpscpscpscp ~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys~/.ssh/authorized_keys jssdbn3:~/.ssh/authorized_keysjssdbn3:~/.ssh/authorized_keysjssdbn3:~/.ssh/authorized_keysjssdbn3:~/.ssh/authorized_keys oracle@jssdbn3's password: authorized_keys [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 100% 3000 2.9KB/s 00:00 配置完成后,在三个节点分别执行下列命令: ssh jssdbn1 date ssh jssdbn2 date ssh jssdbn3 date ssh jssdbn1-priv date ssh jssdbn2-priv date ssh jssdbn3-priv date 某些节点第一次执行上述某些命令时可能会提示输入目标节点的密码,没有关系,输入 就是。不过执行过一次之后,应该就不会再需要输入密码了,如果多次尝试调用命令,仍然 提示输入密码,则有可能前面的步骤配置有误,尝试重新对 ssh 密钥进行配置。 最终执行的结果,应该类似这样,能够直接看到返回信息: [oracle@jssdbn3 ~]$ ssh jssdbn1 date Mon Nov 9 12:54:47 CST 2009 [oracle@jssdbn3 ~]$ ssh jssdbn2 date Mon Nov 9 12:54:48 CST 2009 [oracle@jssdbn3 ~]$ ssh jssdbn3 date Mon Nov 9 12:54:49 CST 2009 [oracle@jssdbn3 ~]$ ssh jssdbn1-priv date Mon Nov 9 12:54:56 CST 2009 [oracle@jssdbn3 ~]$ ssh jssdbn2-priv date Mon Nov 9 12:54:59 CST 2009 [oracle@jssdbn3 ~]$ ssh jssdbn3-priv date Mon Nov 9 12:54:58 CST 2009 1.31.31.31.3 配置ASM ASM ASM ASM 共享盘 在新增的节点上配置 ORACLE ASM 驱动,首先执行 oracleasm configure 命令,注意要 以root 身份进行。 [root@jssdbn3 ~]#/etc/init.d/oracleasm/etc/init.d/oracleasm/etc/init.d/oracleasm/etc/init.d/oracleasm configureconfigureconfigureconfigure Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracleoracleoracleoracle Default group to own the driver interface []: dbadbadbadba Start Oracle ASM library driver on boot (y/n) [n]: yyyy [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 Scan for Oracle ASM disks on boot (y/n) [y]: yyyy Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [OK] Scanning the system for Oracle ASMLib disks: [OK] 提示:如果本步执行出错(可能出错机率最高的是在 Scanning system for ASM),不妨将 转换一下命令行的执行方式,改成: [root@jssdbn3 ~]# sh /etc/init.d/oracleasm configure 有可能解决你的问题! 如果 configure 执行正常,下面检查一下磁盘组: [root@jssdbn3 Server]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [OK] 如无问题,再接着 listdisks,应该能够看到当前 RAC环境中创建的 ASM 盘: [root@jssdbn3 Server]# /etc/init.d/oracleasm listdisks VOL1 VOL2 确保上述 oracleasm listdisks 显示的结果与实际情况相同。新节点的配置基本告以段落, 下面准备开始安装 crs 喽。 二、添加 二、添加 二、添加 二、添加 clusterware clusterware clusterware clusterware 到新节点到新节点到新节点到新节点 2.12.12.12.1 检查安装环境 首先是检查安装环境,仍然是使用 runcluvfy.sh 脚本来进行验证,该脚本可以在现有 RAC 配置中的任意节点上执行,这里在节点 1执行,如下: [oracle@jssdbn1 ~]$ /data/software/clusterware/cluvfy/runcluvfy.sh stage - pre crsinst -n jssdbn3 -verbose Performing pre-checks for cluster services setup Checking node reachability... Check: Node reachability from node "jssdbn1" Destination Node Reachable? ------------------------------------ ------------------------ jssdbn3 yes Result: Node reachability check passed from node "jssdbn1". Checking user equivalence... Check: User equivalence for user "oracle" [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 Node Name Comment ------------------------------------ ------------------------ jssdbn3 passed Result: User equivalence check passed for user "oracle". Checking administrative privileges... Check: Existence of user "oracle" Node Name User Exists Comment ------------ ------------------------ ------------------------ jssdbn3 yes passed Result: User existence check passed for "oracle". Check: Existence of group "oinstall" Node Name Status Group ID ------------ ------------------------ ------------------------ jssdbn3 exists 500 Result: Group existence check passed for "oinstall". Check: Membership of user "oracle" in group "oinstall" [as Primary] Node Name User Exists Group Exists User in Group Primary Comment ---------------- ------------ ------------ ------------ ------------ ------------ jssdbn3 yes yes yes yes passed Result: Membership check for user "oracle" in group "oinstall" [as Primary] passed. Administrative privileges check passed. Checking node connectivity... Interface information for node "jssdbn3" Interface Name IP Address Subnet ------------------------------ ------------------------------ --------- ------- eth0 192.168.10.13 192.168.10.0 eth1 10.10.10.103 10.10.10.0 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 Check: Node connectivity of subnet "192.168.10.0" Result: Node connectivity check passed for subnet "192.168.10.0" with node(s) jssdbn3. Check: Node connectivity of subnet "10.10.10.0" Result: Node connectivity check passed for subnet "10.10.10.0" with node(s) jssdbn3. Suitable interfaces for the private interconnect on subnet "192.168.10.0": jssdbn3 eth0:192.168.10.13 Suitable interfaces for the private interconnect on subnet "10.10.10.0": jssdbn3 eth1:10.10.10.103 ERROR: Could not find a suitable set of interfaces for VIPs. Result: Node connectivity check failed. Checking system requirements for 'crs'... No checks registered for this product. Pre-check for cluster services setup was unsuccessful on all the nodes. 如果返回信息中提示“Could not find a suitable set of interfaces for VIPs.”,可以忽略该错 误信息,这是一个 bug,Metalink 中有详细说明,doc.id:338924.1。 没有其它错误的话,安装可以正常进行,下面准备正式进入安装阶段。 2.22.22.22.2 安装clusterware clusterware clusterware clusterware 到新节点 新节点中 clusterware 的安装也是从现有的 RAC环境中开始的,在当前 RAC环境中任 意节点的$ORA_CRS_HOME,执行 oui/bin/addNode.sh 脚本敲出视界界面,操作如下: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 然后就能看到视图界面,点击下一步 看到当前已有的节点列表。在下方输入框中输入新结点的信息,包括public-name,private- name 等,这部分信息应与 hosts 文件中完全匹配才行。正确输入后点击下一步,如图: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 显示摘要信息如图,如无问题,点击 install 按钮: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 开始复制文件,并进行一些必要的配置: 当文件复制完成后,会提示运行脚本指定的脚本: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 一定要按照界面中的提示,在正确的节点中按照顺序执行脚本。详细说就是: � 节点 3上执行 orainstRoot.sh; � 节点 1上执行 rootaddnode.sh; � 节点 3上执行 root.sh; 上述所有脚本都是以 root 身份执行。 需要注意最后一个脚本,即 root.sh 执行时会调用 vipca,不过 vipca 脚本中部分代码对 应一个 bug:3937317,建议在执行 root.sh 前首先修改 vipca 文件 [root@jssdbn3 ~]# vi /data/ora10g/product/10.2.0/crs_1/bin/vipca 找到如下内容: Remove this workaroundwhenthe bug3937317 is fixed arch=`uname -m` if ["$arch" = "i686" -o "$arch" = "ia64" ] then LD_ASSUME_KERNEL=2.4.19 exportLD_ASSUME_KERNEL fi #Endworkaround 在fi 后新添加一行: unsetLD_ASSUME_KERNEL 保存退出, 然后再在 jssdbn3 节点端执行 root.sh [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 Root.sh 执行完成后,默认情况下会自动调用 vipca,用来配置虚拟 IP 的网络接口服务, 不过如果前面 root.sh 脚本执行时因为 bug 原因,未能自动调用 vipca,那么在 root 执行完毕 后,手动执行 vipca 命令即可打开配置窗口,该项配置比较简单,基本上全面点击下一步即 可。 如果脚本执行一切顺序,返回到 crs 的安装界面,点击 ok 按钮。 正如界面中所示,End of Installation,点击 exit 退出该界面即可。 接下来需要将新节点的 ONS(Oracle Notification Services)配置信息写入 OCR(Oracle Cluster Register),在节点 1执行脚本如下: [oracle@jssdbn1 ~]$ /data/ora10g/product/10.2.0/crs_1/bin/racgons add_config jssdbn3:6200 提示:jssdbn3 的端口号可以查询该结节中 /data/ora10g/product/10.2.0/crs_1/opmn/conf/ons.config 文件中的配置,此处指定的端口号为 remoteport。 至此,新节点的 CLUSTERWARE 配置完成,要检查安装的结果,可以在新节点中调用 cluvfy 命令进行验证,例如: [oracle@jssdbn3 ~]$ /data/ora10g/product/10.2.0/crs_1/bin/cluvfy stage - post crsinst -n jssdbn3 -verbose Performing post-checks for cluster services setup [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 Checking node reachability... Check: Node reachability from node "jssdbn3" Destination Node Reachable? ------------------------------------ ------------------------ jssdbn3 yes Result: Node reachability check passed from node "jssdbn3". Checking user equivalence... Check: User equivalence for user "oracle" Node Name Comment ------------------------------------ ------------------------ jssdbn3 passed Result: User equivalence check passed for user "oracle". Checking Cluster manager integrity... Checking CSS daemon... Node Name Status ------------------------------------ ------------------------ jssdbn3 running Result: Daemon status check passed for "CSS daemon". Cluster manager integrity check passed. Checking cluster integrity... Node Name ------------------------------------ jssdbn1 jssdbn2 jssdbn3 Cluster integrity check passed ....................... ...................... Post-check for cluster services setup was successful. [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 三、复制 三、复制 三、复制 三、复制 oracle oracle oracle oracle 软件到新节点软件到新节点软件到新节点软件到新节点 接下来要复制 ORACLE 数据库软件到新节点,复制操作可以在现的 RAC环境中的任 意节点中开始,这里我们选择在 jssdbn1 节点上操作。本步操作非常简单,步骤也少。 在Linux 视窗界面中执行 addNode.sh [oracle@jssdbn1 ~]$ cd /data/ora10g/product/10.2.0/db_1/oui/bin/ [oracle@jssdbn1 bin]$ ./addNode.sh 运行 addNode.sh 脚本后,ORACLE 会弹出欢迎界面,不用多想,直接点击 next 提示选择要添加的节点,这里肯定是选择 jssdbn3 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 显示摘要信息,确认无误的话点击 install 即可 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 ORACLE 自动开始复制文件到新节点中 复制操作完成后,提示在新节点即 jssdbn3 执行脚本,注意要以 root 身份进行 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 [root@jssdbn3 ~]# /data/ora10g/product/10.2.0/db_1/root.sh/data/ora10g/product/10.2.0/db_1/root.sh/data/ora10g/product/10.2.0/db_1/root.sh/data/ora10g/product/10.2.0/db_1/root.sh Running Oracle10 root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /data/ora10g/product/10.2.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. 上述脚本成功执行后,返回窗口界面点击 OK,提示安装成功,点击exit 退出界面即可 。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 四、配置监听服务到新节点四、配置监听服务到新节点四、配置监听服务到新节点四、配置监听服务到新节点 客户端连接数据库服务器必须借助监听服务,因此新节点要正常处理连接请求,首先就 需要创建有相应的监听。 RAC环境中监听服务的创建与管理和单实例相比没有什么区别,因此对于熟悉 ORACLE 的朋友创建监听真的是一点难度都没有,手快的朋友可能已经准备着手修改 $ORACLE_HOME/network/admin/listerner.ora 文件了。不过这里为了更直观的展示监听服务 的管理,俺决定采用 netca 界面管理方式来配置监听。 以ORACLE 身份登陆到 linux 系统,执行$ORACLE_HOME/bin 目录中的 netca 命令即 可,如图: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 配置界面显示如下,这里不用多说,肯定是选择 Cluster configuration,点击下一步: 选择要配置的节点,这里当然是选择 jssdbn3,继续点击下一步: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 选择"Listener configuration"即监听配置,点击下一步: 选择"Add",即添加一项配置。对于新节点来说,也只有"Add"是可选的,不过前面选 择要配置的节点时如果选择了多个节点,那么此处也有可能四个选项均能操作,无论如何吧 , 本步我们想做的是"Add": [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 为监听服务命名: 选择 TCP 协议: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 选择监听服务的端口号,默认情况下是 1521,这里我们也使用默认端口: 是否配置另一个监听?不用了,一个足够,选择"No",然后点击 next: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 恭喜你,成功了。 使用 netca 命令生成的 listener.ora 文件内容如下: [oracle@jssdbn3 admin]$ more listener.ora # listener.ora.jssdbn3 Network Configuration File: /data/ora10g/product/10.2.0/db_1/network/admin/listener.ora.jssdbn3 # Generated by Oracle configuration tools. [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 SID_LIST_LISTENER_JSSDBN3 = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /data/ora10g/product/10.2.0/db_1) (PROGRAM = extproc) ) ) LISTENER_JSSDBN3 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jssdbn3-vip)(PORT = 1521)(IP = FIRST)) (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)(IP = FIRST)) ) ) 当前新节点的监听服务也已经自动启动,执行 lsnrctl status 命令查看: [oracle@jssdbn3 admin]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-NOV-2009 12:09:52 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER_JSSDBN3 Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 10-NOV-2009 12:08:42 Uptime 0 days 0 hr. 1 min. 10 sec Trace Level off Security ON: Local OS Authentication SNMPOFF Listener Parameter File /data/ora10g/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /data/ora10g/product/10.2.0/db_1/network/log/listener_jssdbn3.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.10.23)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully 五、添加实例到新节点五、添加实例到新节点五、添加实例到新节点五、添加实例到新节点 接下来终于到了最关键的时刻,新节点中创建实例。这里三思决定使用界面化的管理工 具"dbca"来操作,步骤如下: 首先是以oracle 身份登陆到图形界面的 linux 系统,然后执行 $ORACLE_HOME/bin/dbca,然后就能看到欢迎窗口。 提示 1:如果执行 dbca 时遇到 connect to ":....",No protocol specified,可以先尝试 su - root, 然后执行 xhost +,然后再回到 oracle 用户下执行 dbca。 提示 2:本步操作可以在当前 RAC环境中的任意节点上执行,注意是当前 RAC环境中 的节点,不是要添加实例的节点上执行哟,这里三思选择在 jssdbn1 上执行。 这里当然是选择第一项"Oracle Real Application Clusters database",点击下一步: 选择"Instance Management",点击下一步: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 选择"Add an instance": 在这个界面中,一是选择一个 RAC数据库(如果当前存在多个 RAC环境的话),再一个 就是指定一个具有 SYSDBA 权限的用户及密码: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 弹出界面显示当前 RAC配置中拥有的实例,直接点击下一步即可: 为新节点上的实例命名: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 接下来,需要定义一些与实例相关的文件,比较 UNDO、REDOLOG 等,想省事的话 此处保持默认即可,因为这些信息如果发现不合适,后期也都是可调的。确认无误后,点击 FINISH 按钮: 浏览摘要信息,如无问题,点击 ok。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 在此期间,ORACLE 开始自动在新节点上创建实例,并且会视需要提示创建 ASM 相关 实例(如果使用了 ASM 做存储的话,对于此处演示的环境,回答显然是肯定的): 操作完成后,提示是否需要进行其它操作,就当前实际情况下说,有,不过不需要 DBCA 了,因此选 no 吧。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 截止到目前,新节点已经是这个 RAC配置中的一员了,使用 crs_stat 命令查看: [oracle@jssdbn1 admin]$ /data/ora10g/product/10.2.0/crs_1/bin/crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.jssdb.db application ONLINEONLINE jssdbn2 ora....n1.inst application ONLINEONLINE jssdbn1 ora....n2.inst application ONLINEONLINE jssdbn2 ora....n3.inst application ONLINEONLINE jssdbn3 ora....SM1.asm application ONLINEONLINE jssdbn1 ora....N1.lsnr application ONLINEONLINE jssdbn1 ora....bn1.gsd application ONLINEONLINE jssdbn1 ora....bn1.ons application ONLINEONLINE jssdbn1 ora....bn1.vip application ONLINEONLINE jssdbn1 ora....SM2.asm application ONLINEONLINE jssdbn2 ora....N2.lsnr application ONLINEONLINE jssdbn2 ora....bn2.gsd application ONLINEONLINE jssdbn2 ora....bn2.ons application ONLINEONLINE jssdbn2 ora....bn2.vip application ONLINEONLINE jssdbn2 ora....SM3.asm application ONLINEONLINE jssdbn3 ora....N3.lsnr application ONLINEONLINE jssdbn3 ora....bn3.gsd application ONLINEONLINE jssdbn3 ora....bn3.ons application ONLINEONLINE jssdbn3 ora....bn3.vip application ONLINEONLINE jssdbn3 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 任意结节登陆 sqlplus 命令行,查询 gv$instance 视图,结果如下: SQL> select inst_id,instance_name,version,startup_time,status from gv$instance; INST_IDINSTANCE_NAMEVERSIONSTARTUP_TSTATUS ---------------------------------------------------------------- 1 jssdbn1 10.2.0.1.0 16-NOV-09 OPEN 3 jssdbn3 10.2.0.1.0 16-NOV-09 OPEN 2 jssdbn2 10.2.0.1.0 16-NOV-09 OPEN 六、移除节点六、移除节点六、移除节点六、移除节点 注意,下列操作均是在确实要保留的实例上进行,不要选择在要被删除的节点上进行操作哟 。 6.16.16.16.1 删除DATABASE DATABASE DATABASE DATABASE 实例 在视窗界面中找开 dbca 命令 Dbca 界面大家应该已经非常熟悉了,这里仍然是选择 RAC database: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 选择 Instance Management,点击下一步: Of course,Delete Instance: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 选择要操作的数据库,并输入一个具有 sysdba 权限的用户及密码: 选择一个要删除的实例,这里当然是 jssdbn3 喽!哎,这可怜的孩子,刚被加进来又不 得不被踢出去,不过没关系,能加能删才是真实例:) [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 确定删除点击 OK,接下来如果还蹦这类窗口,同样直接点击 OK即可: 开始进行删除操作: [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 终于删除完了,这里可别点 yes,操作已经完成,点"No"退出即可。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 6.26.26.26.2 删除ASM ASM ASM ASM 实例 接下来,我们需要删除该节点中的 asm 实例,以及注册到 crs 中的相关信息,操作如下 : [oracle@jssdbn1 bin]$ ./srvctl stop asm -n jssdbn3 [oracle@jssdbn1 bin]$ ./srvctl remove asm -n jssdbn3 Ok,上述两个命令行正确执行后,目标节点的 asm 实例就已经被删除了,你是否想问怎 么确定删除操作确实执行了呢?最简单的方式,执行 crs_stat 查看当前 crs 的各进程状态: [oracle@jssdbn1 bin]$ ./crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.jssdb.db application ONLINEONLINE jssdbn2 ora....n1.inst application ONLINEONLINE jssdbn1 ora....n2.inst application ONLINEONLINE jssdbn2 ora....SM1.asm application ONLINEONLINE jssdbn1 ora....N1.lsnr application OFFLINEOFFLINE ora....bn1.gsd application ONLINEONLINE jssdbn1 ora....bn1.ons application ONLINEONLINE jssdbn1 ora....bn1.vip application ONLINEONLINE jssdbn1 ora....SM2.asm application ONLINEONLINE jssdbn2 ora....N2.lsnr application ONLINEUNKNOWN jssdbn2 ora....bn2.gsd application ONLINEONLINE jssdbn2 ora....bn2.ons application ONLINEONLINE jssdbn2 ora....bn2.vip application ONLINEONLINE jssdbn2 ora....N3.lsnr application ONLINEUNKNOWN jssdbn3 ora....bn3.gsd application ONLINEONLINE jssdbn3 ora....bn3.ons application ONLINEONLINE jssdbn3 ora....bn3.vip application ONLINEONLINE jssdbn3 从上述返回信息可以看出,jssdbn3 节点中运行的 asm 和instance 均已经不存在了。 此时虽然相关应用均已被删除,不过 asm 实例相关的 pfile 以及一些 trc 文件仍然存在, 可以通过操作系统的命令删除相关文件,包括但不限于下列路径: � $ORACLE_BASE/admin/+ASM/* � $ORACLE_HOME/dbs/init+ASM* 6.36.36.36.3 删除节点 下面,我们还需要从 RAC环境中,删除目标节点,本步操作比较多而且杂,务必注意 操作步骤,以及执行操作所在的节点。 1、删除目标节点监听服务 首先可以通过 netca 删除目标节点中的监听服务(趁现在 ORACLE_HOME 还在),netca [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 的操作比较简单,这里就不演示了。 2、停止目标节点 appsappsappsapps 监听服务删除之后,接着停止目标节点中的应用,可以在任意节点上操作,执行命令如下: [oracle@jssdbn1 bin]$ ./srvctl stop nodeapps -h 3、删除目标结点数据库软件 本操作包含两个部分,首先是要在保留的任意一个结点上执行操作,更新 Oracle Inventory,例如: [oracle@jssdbn1 ~]$ $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=jssdbn1,jssdbn2" Starting Oracle Universal Installer... No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. 'UpdateNodeList' was successful. 接下来在要被删除的节点上执行下列命令,同样是更新 Oracle Inventory: [oracle@jssdbn3 ~]$ $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=jssdbn3" -local Starting Oracle Universal Installer... No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. 然后就可以删除该节点上的数据库软件了,在视窗界面执行命令如下: [oracle@jssdbn3 ~]$ $ORACLE_HOME/oui/bin/runInstaller -deinstall Starting Oracle Universal Installer... ..................... ..................... 然后就会看到 OUI的操作界面了。如图所示,点击 REMOVE 即可(注意要选对数据库 软件哟): [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 如果弹出是否确认删除的提示框,也直接点击 yes 确认就好。OUI开始执行删除操作。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 操作完成后,点击 close 退出该界面。 提示:如果希望在非图形界面执行删除操作的话,那么执行 runInstall 命令时,附加-silent 参数即可。 该服务器如果不准备再安装 ORACLE 数据库的话,可以同时删除/etc/oratab 文件。 [oracle@jssdbn3 ~]$ rm /etc/oratab 4、删除 ONS ONS ONS ONS 配置 在任意保留节点中执行 racgons 命令,删除 ONS配置,操作如下: [oracle@jssdbn1 ~]$ $ORA_CRS_HOME/bin/racgons remove_config jssdbn3:6200 racgons: Existing key value on jssdbn3 = 6200. racgons: jssdbn3:6200 removed from OCR. 要查询目标节点的 ONS端口号,可以通过下列命令: [oracle@jssdbn3 ~]$ more $ORA_CRS_HOME/opmn/conf/ons.config localport=6113 remoteport=6200 loglevel=3 useocr=on 5、删除 NodeAppsNodeAppsNodeAppsNodeApps 目标节点中包括 GSD、ONS、VIP 等应用此时已经可以被删除了,删除这些应用可以 通过 srvctl 命令,注意要以 root 身份执行,操作如下: [root@jssdbn1 ~]# /data/ora10g/product/10.2.0/crs_1/bin/srvctl remove nodeapps -n jssdbn3 Please confirm that you intend to remove the node-level applications on node jssdbn3 (y/[n]) y 执行完上述命令后,返回 oracle 用户,执行 crs_stat 查看当前应用的状态: [oracle@jssdbn1 bin]$ ./crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.jssdb.db application ONLINE ONLINE jssdbn2 ora....n1.inst application ONLINE ONLINE jssdbn1 ora....n2.inst application ONLINE ONLINE jssdbn2 ora....SM1.asm application ONLINE ONLINE jssdbn1 ora....N1.lsnr application OFFLINE ONLINE jssdbn1 ora....bn1.gsd application ONLINE ONLINE jssdbn1 ora....bn1.ons application ONLINE ONLINE jssdbn1 ora....bn1.vip application ONLINE ONLINE jssdbn1 ora....SM2.asm application ONLINE ONLINE jssdbn2 ora....N2.lsnr application ONLINE ONLINE jssdbn2 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 ora....bn2.gsd application ONLINE ONLINE jssdbn2 ora....bn2.ons application ONLINE ONLINE jssdbn2 ora....bn2.vip application ONLINE ONLINE jssdbn2 如上述所示,CRS 中关于 jssdbn3 的痕迹都已经不见了。 6、删除目标节点 clusterware clusterware clusterware clusterware 软件 接下来要做的是删除目标节点上的 clusterware 软件,本步操作与删除数据库软件类似, 实际上眼神好的朋友可能也看到了,之前执行 runInstall -deinstall 命令,在弹出界面里也看 到了 OraCrs10g_home。详细操作步骤如下! 首先仍是在任意保留的节点中操作: [oracle@jssdbn1 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES=jssdbn1,jssdbn2" CRS=TRUE Starting Oracle Universal Installer... No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. 'UpdateNodeList' was successful. 然后切换至目标节点,执行更新 Oracle Inventory 的操作: [oracle@jssdbn3 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES=jssdbn3" CRS=TRUE -local Starting Oracle Universal Installer... No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. 'UpdateNodeList' was successful. 接下来执行 runInstaller -deinstall 命令,执行 clusterware 软件的删除操作(注意是在视窗 界面操作): [oracle@jssdbn3 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -deinstall Starting Oracle Universal Installer... 弹出窗口如下,选中 crs 路径,然后点击 remove 即可。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 操作完成后,点击 close 关闭窗口。集群件软件就被成功从目标节点删除了。接下来如 果愿意(或者确实需要),可以考虑清除 ORACLE 留下的一些操作痕迹,包括但不限于下列: � 删除$ORACLE_BASE/oraInventory 目录 � 删除/etc/inittab 文件 � 删除/var/tmp/.oracle 目录 � 删除 ORA相关的启动关闭脚本,比如/etc/init.d/init*,以及/etc/rc?.d/*init.crs 等文件 � 删除/etc/oracle 目录 � 清除 crontab 中关于 ORACLE 的相关任务; � 清除 oracle 用户下 profile 中关于 ORA的相关环境变量设置; � 清除共享存储分配给 jssdbn3 的相关权限 7、从 OCR OCR OCR OCR 中删除节点信息 在任意一台保留的节点执行: [oracle@jssdbn1 ~]$ cd $ORA_CRS_HOME/bin [oracle@jssdbn1 bin]$ ./olsnodes -n -i jssdbn1 1 jssdbn1-vip jssdbn2 2 jssdbn2-vip jssdbn3 3 你看,尽管通过前面的操作,ORACLE 软件以及集群件均已被删除,节点信息也更新 过了,不过 OCR 中还是保留有 jssdbn3 节点的信息,因此这块也需要删除,执行脚本如下: [root@jssdbn1 ~]# cd /data/ora10g/product/10.2.0/crs_1/install [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 [root@jssdbn1 install]# ./rootdeletenode.sh jssdbn3,3 CRS-0210: Could not find resource 'ora.jssdbn3.LISTENER_JSSDBN3.lsnr'. CRS-0210: Could not find resource 'ora.jssdbn3.ons'. CRS-0210: Could not find resource 'ora.jssdbn3.vip'. CRS-0210: Could not find resource 'ora.jssdbn3.gsd'. CRS-0210: Could not find resource ora.jssdbn3.vip. CRS nodeapps are deleted successfully clscfg: EXISTING configuration version 3 detected. clscfg: version 3 is 10G Release 2. Successfully deleted 14 values from OCR. Key SYSTEM.css.interfaces.nodejssdbn3 marked for deletion is not there. Ignoring. Successfully deleted 5 keys from OCR. Node deletion operation successful. 'jssdbn3,3' deleted successfully [root@jssdbn1 install]# exit logout [oracle@jssdbn1 bin]$ ./olsnodes -n -i jssdbn1 1 jssdbn1-vip jssdbn2 2 jssdbn2-vip 至此,删除节点操作告以段落。 [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 附:三思笔记系列文章快速链接:附:三思笔记系列文章快速链接:附:三思笔记系列文章快速链接:附:三思笔记系列文章快速链接: [[[[三思笔记]]]]我想对初学 ORACLE ORACLE ORACLE ORACLE 的朋友说 http://www.5ienet.com/note/html/stdstep/how-to-learn-in-oracle.shtmlhttp://www.5ienet.com/note/html/stdstep/how-to-learn-in-oracle.shtmlhttp://www.5ienet.com/note/html/stdstep/how-to-learn-in-oracle.shtmlhttp://www.5ienet.com/note/html/stdstep/how-to-learn-in-oracle.shtml [[[[三思笔记]]]]常用ORACLEORACLEORACLEORACLEASH&AWR ASH&AWR ASH&AWR ASH&AWR 特性 http://www.5ienet.com/note/html/ash_awr/index.shtmlhttp://www.5ienet.com/note/html/ash_awr/index.shtmlhttp://www.5ienet.com/note/html/ash_awr/index.shtmlhttp://www.5ienet.com/note/html/ash_awr/index.shtml [[[[三思笔记]]]]Linux5 Linux5 Linux5 Linux5 版本安装 Oracle11gR2Oracle11gR2Oracle11gR2Oracle11gR2 http://www.5ienet.com/note/html/st11g/index.shtmlhttp://www.5ienet.com/note/html/st11g/index.shtmlhttp://www.5ienet.com/note/html/st11g/index.shtmlhttp://www.5ienet.com/note/html/st11g/index.shtml [[[[三思笔记]]]]全面学习 OOOOracleracleracleracle Scheduler Scheduler Scheduler Scheduler 特性 http://www.5ienet.com/note/html/scheduler/index.shtmlhttp://www.5ienet.com/note/html/scheduler/index.shtmlhttp://www.5ienet.com/note/html/scheduler/index.shtmlhttp://www.5ienet.com/note/html/scheduler/index.shtml [[[[三思笔记]]]]全面学习 OOOOracleracleracleracle FFFFlashback lashback lashback lashback 特性 http://www.itpub.net/1019082.htmlhttp://www.itpub.net/1019082.htmlhttp://www.itpub.net/1019082.htmlhttp://www.itpub.net/1019082.html [[[[三思笔记]]]]手把手教你用 VMware VMware VMware VMware 在linux linux linux linux 下安装 oracle10goracle10goracle10goracle10g RACRACRACRAC http://www.5ienet.com/note/html/srac/index.shtmlhttp://www.5ienet.com/note/html/srac/index.shtmlhttp://www.5ienet.com/note/html/srac/index.shtmlhttp://www.5ienet.com/note/html/srac/index.shtml [[[[三思笔记]]]]全面学习分区表及分区索引 http://www.itpub.net/http://www.itpub.net/http://www.itpub.net/http://www.itpub.net/996554996554996554996554.html.html.html.html [[[[三思笔记]]]]单条SQL SQL SQL SQL 语句实现复杂逻辑几例 http://www.itpub.net/http://www.itpub.net/http://www.itpub.net/http://www.itpub.net/970868970868970868970868.html.html.html.html [[[[三思笔记]]]]一步一步学 DataguardDataguardDataguardDataguard http://www.itpub.net/9http://www.itpub.net/9http://www.itpub.net/9http://www.itpub.net/958526585265852658526.html.html.html.html [[[[三思笔记]]]]使用可传输表空间的特性复制数据 http://www.itpub.net/926949.htmlhttp://www.itpub.net/926949.htmlhttp://www.itpub.net/926949.htmlhttp://www.itpub.net/926949.html [[[[三思笔记]]]]日期时间及数字的格式化参数大全 http://www.itpub.net/913307.htmlhttp://www.itpub.net/913307.htmlhttp://www.itpub.net/913307.htmlhttp://www.itpub.net/913307.html [[[[三思笔记]RMAN ]RMAN ]RMAN ]RMAN 高级应用之 Duplicate Duplicate Duplicate Duplicate 复制数据库 http://www.itpub.net/906598.htmlhttp://www.itpub.net/906598.htmlhttp://www.itpub.net/906598.htmlhttp://www.itpub.net/906598.html [[[[三思笔记]RHEL]RHEL]RHEL]RHEL AS4 AS4 AS4 AS4 下升级oracle10oracle10oracle10oracle10gggg到10.2.0.310.2.0.310.2.0.310.2.0.3 http://www.itpub.net/896394.htmlhttp://www.itpub.net/896394.htmlhttp://www.itpub.net/896394.htmlhttp://www.itpub.net/896394.html [[[[三思笔记]RHEL]RHEL]RHEL]RHEL AS4 AS4 AS4 AS4 下安装32 32 32 32 位oracle10goracle10goracle10goracle10g [三思笔记]-Oracle10gR2 RAC 环境增加及删除节点 http://www.5ienet.com/ 君三思 QQ 群 :77830934 http://www.itpub.net/884137.htmlhttp://www.itpub.net/884137.htmlhttp://www.itpub.net/884137.htmlhttp://www.itpub.net/884137.html [[[[三思笔记]Statspack ]Statspack ]Statspack ]Statspack 初步学和用 http://www.itpub.net/857807.htmlhttp://www.itpub.net/857807.htmlhttp://www.itpub.net/857807.htmlhttp://www.itpub.net/857807.html [[[[三思笔记]oracle ]oracle ]oracle ]oracle 著名及非著名函数介绍 http://www.itpub.net/843333.htmlhttp://www.itpub.net/843333.htmlhttp://www.itpub.net/843333.htmlhttp://www.itpub.net/843333.html [[[[三思笔记]]]]一步一步学 rmanrmanrmanrman http://www.itpub.net/810100.htmlhttp://www.itpub.net/810100.htmlhttp://www.itpub.net/810100.htmlhttp://www.itpub.net/810100.html [[[[三思笔记]]]]学习动态性能表 http://www.itpub.net/782892.htmlhttp://www.itpub.net/782892.htmlhttp://www.itpub.net/782892.htmlhttp://www.itpub.net/782892.html
还剩43页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 20 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf