Oracle 11g RAC环境下Private IP修改方法及异常处理

简介: Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一、 修改方法 1. 确认所有节点CRS服务以启动 # olsnodes -s -n –i host1 1 ...

Oracle 11g RAC环境下Private IP修改方法及异常处理

Oracle 11g RAC环境下Private IP修改方法及异常处理
一、 修改方法

1. 确认所有节点CRS服务以启动
# olsnodes -s -n –i
host1 1 host1-vip Active
host2 2 host2-vip Active
2. 修改Private IP配置信息

如果之前只有一个私有网卡,则直接删除时会报错,如:PRIF-31: Failed to delete the
specified network interface because it is the last private interface.所以如果只是修改Private IP
而不用更改网卡时,可以参考以下操作命令:
oifcfg getif //查看Private IP配置
oifcfg setif -global en1/10.10.12.0:cluster_interconnect //添加en1新的Private IP
oifcfg delif -global en1/10.10.11.0 //删除en1旧的Private IP
oifcfg getif //查看Private IP配置

如果需要更改Private IP网卡时,可以参考如下命令:
oifcfg getif //查看Private IP配置
oifcfg setif -global en2/10.10.12.0:cluster_interconnect //增加新的en2 上的Private IP
oifcfg delif -global en1 //删除旧的en1上的Private IP
oifcfg getif //查看Private IP配

3. 关闭CRS服务(所有节点都要执行):
参考命令:
#crsctl stop crs -f

4. 修改私有网络物理网卡IP地址和/etc/hosts文件(所有节点都要执行):
参考命令:
# smit tcpip-> Minimum Configuration & Startup->en1
#vi /etc/hosts

5. 启动和查看CRS服务
参考命令:
#crsctl start crs
#crs_stat -t

二、异常处理
1. 问题描述
如果使用oifcfg setif命令修改Private IP配置信息时,subnet与实际配置的物理IP不致,
则重启CRS服务时会导致CRS无法启动,如下所示:
oifcfg setif命令配置:
oifcfg setif -global en1/10.10.12.0:cluster_interconnect //subnet为10.10.12.0
物理IP配置:
10.10.11.61/255.255.255.0 //subnet为10.10.11.0

日志错误信息:
Alert*.log
2013-12-08 12:38:41.795
[ohasd(8388676)]CRS-2765:Resource 'ora.crsd' has failed on server 'host1'.
2013-12-08 12:38:43.189
[crsd(11141158)]CRS-0804:Cluster Ready Service aborted due to Oracle Cluster Registry error
[PROC-44: Error in network address and interface operations Network address and interface
operations error [7]]. Details at (:CRSD00111:) in
/u01/app/grid/product/11.2.0/grid/log/host1/crsd/crsd.log.
2013-12-08 12:38:43.878
[ohasd(8388676)]CRS-2765:Resource 'ora.crsd' has failed on server 'host1'.
2013-12-08 12:38:43.879
[ohasd(8388676)]CRS-2771:Maximum restart attempts reached for resource 'ora.crsd'; will not
restart.

Crsd.log
2013-12-08 12:38:42.985: [ OCRAPI][1]clsu_get_private_ip_addresses: no ip addresses found.
[ OCRAPI][1]a_init_clsss: failed to call clsu_get_private_ip_addr (7)
2013-12-08 12:38:43.188: [ OCRAPI][1]a_init:13!: Clusterware init unsuccessful : [44]
2013-12-08 12:38:43.188: [ CRSOCR][1] OCR context init failure. Error: PROC-44: Error in
network address and interface oper
ations Network address and interface operations error [7]
2013-12-08 12:38:43.189: [ CRSMAIN][1] Created alert : (:CRSD00111:) : Could not init OCR,
error: PROC-44: Error in network address and interface operations Network address and interface operations error [7]
2013-12-08 12:38:43.189: [ CRSD][1][PANIC] CRSD exiting: Could not init OCR, code: 44
2013-12-08 12:38:43.189: [ CRSD][1] Done.


2. 处理方法
可以使用gpnptool命令处理以上问题。GPNPD(Greater Pittsburgh Nonprofit Partnership)
进程的主要的作用是在集群各个节点中同步GPnP profile文件,在Clusterware中,CSS、GPnP
等服务的启动都需要依赖于GPnP profile文件。而GPnP profile文件是一个xml文件,它存
储 的 位 置 是 在 : $GRID_HOME/gpnp//profile/peer/profile.xml ,
$GRID_HOME/gpnp/profile/peer/profile.xml(全局备份,最原始的配置信息)。GPnPD进程写
的trace文件会存放在$GRID_HOME/log//gpnpd/gpnpd.log。
有几个重要的信息存储在GPnP profile文件:
? 网络接口和IP地址(公网和私网)
? ASM diskstring和spfile信息
GPnP profile保存的是RAC的配置信息,包括集群名称、网络类型信息(public/private)、
ASM和CSS的存储信息、安全的数字签名,以及ASM实例的SPFILE文件位置。当集群配置
发生变化时,所有节点的该文件会被自动更新。在安装、系统引导或者当使用标准的集群工
具更新期间,这些活动包括:oifcfg 改变网络信息、crsctl 改变css设备、ASM额外的存储
等,会通过gpdpd进程复制GPnP profile到所有的其他节点。
当集群启动的时候,Cluster Synchronization Services (CSS)将扫描所有的ASM disks,它利
用的是GPnP profile文件中的ASM discovery string。如下所示:

egistry.253.790450611"/>
这里可以看到spfile文件是存放在ASM卷组+DATA中的。但是有一个需要注意到事情是
我们启动ASM的时候,需要spfile文件,Oracle从GPnP profile中知道spfile的路径,然后
它就会从底层磁盘中直接读取spfile标识,启动asm实例。
如果GPnP出现问题,可以使用cluvfy comp gpnp组件验证命令检查在集群中所有节点
网格即插即用的完整性:cluvfy comp gpnp [-n node_list] [-verbose]
最后,注意Oracle不支持手动修改profile.xml文件,直接对它的修改可能导致无法修复
的问题,最终导致在所有节点重建Clusterware。

2.1 以排他模式和不启动crsd进程的方式启动crs
# crsctl start crs -excl –nocrs


2.2 备份crs配置信息
#mkdir /u01/gpnp
#gpnptool get -o=/u01/gpnp/profile.xml
# more /u01/gpnp/profile.xml

xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile" x
mlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile" xmlns:x
si="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.
xsd" ProfileSequence="22" ClusterUId="8c32638bd2727ff8bfba9eec919fb4e4"
ClusterName="host-scan" PALocation="">
rofile>
IP="192.168.101.0" Use="public"/>
etwork id="net3" Adapter="en1" IP="10.10.12.0"
Use="cluster_interconnect"/>
S-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
DiscoveryString="" SPFile="+DATA/ho
st-scan/asmparameterfile/registry.253.832710839"/>
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">>

Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
Algorithm="http://www.w3.
org/2000/09/xmldsig#rsa-sha1"/>
Algorithm="http://www.w3.org/2000/09/xmldsig
#enveloped-signature"/>http://www.w3.org/2001/10/xml-exc-c14n#">
www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl
xsi"/>://www.w3.org/2000/09/xmldsig#sha1"/>h2DxPI2dIQbGBji8BAAdimWLkkA=
s:DigestValue>
nfo>O1haZSJ3N6gC7B5blNK/0PeljlfjBoWODejCLCOOsqmb46eJM2TvhIoD7gV
SVF2P0JKzXblsGlqkPpbfgzfasVpS/3nyowy/oMlfXI
KloO445gzImd/lL1FCsvsZpe+GdqtvKgKaSKNJENHF/Ht4w9YCz6Gz6hhXi8u5n3jGU5E=
eValue>

查看CRS的配置信息:
# gpnptool get

Warning: some command line parameters were defaulted. Resulting command line:
/u01/app/grid/product/11.2.0/grid/bin/gpnptool.bin get -o-

xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd"
ProfileSequence="22" ClusterUId="8c32638bd2727ff8bfba9eec919fb4e4"
ClusterName="host-scan" PALocation="">
HostName="*">
Use="public"/>
Use="cluster_interconnect"/>
id="css" DiscoveryString="+asm" LeaseDuration="400"/>
DiscoveryString=""
SPFile="+DATA/host-scan/asmparameterfile/registry.253.832710839"/>
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
URI="">
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl
xsi"/>
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>h2DxPI2dIQbGBji8BA
AdimWLkkA=O1haZSJ3N
6gC7B5blNK/0PeljlfjBoWODejCLCOOsqmb46eJM2TvhIoD7gVSVF2P0JKzXblsGlqkPpbfgzfasVpS/3n
yowy/oMlfXIKloO445gzImd/lL1FCsvsZpe+GdqtvKgKaSKNJENHF/Ht4w9YCz6Gz6hhXi8u5n3jGU5E=

Success.

备注:备份的profile.xml文件配置信息与‘gpnptool get’显示配置信息完全相同,同时也
与$ORACLE_HOME /gpnp//profiles/peer下的profile.xml文件信息相同。

2.3 修改备份的CRS配置信息
2.3.1 备份配置文件:
# cp /u01/gpnp/profile.xml /u01/gpnp/p.xml

2.3.2 获取当前的序列号(每次修改并写回crs中会有一个序列号作为标识):
# gpnptool getpval -p=/u01/gpnp/p.xml -prf_sq -o-
22

2.3.3 获取共有网络和私有网络标识id (与实际网卡名称不一致,可以在配置文件中找到):
# gpnptool getpval -p=/u01/gpnp/p.xml -net -o-
net1 net3

2.3.4 修改配置文件中的序列号(原序列号值加1)和私网的实际网段(subnet)信息:
# gpnptool edit -p=/u01/gpnp/p.xml -o=/u01/gpnp/p.xml -ovr -prf_sq=23 -net3:net_ip=10.10.11.0
Resulting profile written to "/u01/gpnp/p.xml".
Success.
修改网卡名称
#gpnptool edit -p=/home/app/11.2.0.3/grid/gpnp/profiles/peer/profile.xml -o=/home/app/11.2.0.3/grid/gpnp/profiles/peer/profile.xml -ovr -prf_sq=5 net3:net_ada=em3

2.3.5 查看配置文件是否修改成功:
# more /u01/gpnp/p.xml

xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile" x
mlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile" xmlns:x
si="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.
xsd" ProfileSequence="23" ClusterUId="8c32638bd2727ff8bfba9eec919fb4e4"
ClusterName="host-scan" PALocation="">
rofile>
IP="192.168.101.0" Use="public"/>
etwork id="net3" Adapter="en1" IP="10.10.11.0"
Use="cluster_interconnect"/>
S-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
DiscoveryString="" SPFile="+DATA/ho
st-scan/asmparameterfile/registry.253.832710839"/>
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">>

Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
Algorithm="http://www.w3.
org/2000/09/xmldsig#rsa-sha1"/>
Algorithm="http://www.w3.org/2000/09/xmldsig
#enveloped-signature"/>http://www.w3.org/2001/10/xml-exc-c14n#">
www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl
xsi"/>://www.w3.org/2000/09/xmldsig#sha1"/>h2DxPI2dIQbGBji8BAAdimWLkkA=
s:DigestValue>
nfo>O1haZSJ3N6gC7B5blNK/0PeljlfjBoWODejCLCOOsqmb46eJM2TvhIoD7gV
SVF2P0JKzXblsGlqkPpbfgzfasVpS/3nyowy/oMlfXI
KloO445gzImd/lL1FCsvsZpe+GdqtvKgKaSKNJENHF/Ht4w9YCz6Gz6hhXi8u5n3jGU5E=
eValue>
备注:红色标识改动信息。

2.3.6 验证序列号是否修改完成:
# gpnptool getpval -p=/u01/gpnp/p.xml -prf_sq -o-
23

2.3.7 用私钥重新标识配置文件:
# gpnptool sign -p=/u01/gpnp/p.xml -o=/u01/gpnp/p.xml -ovr -w=cw-fs:peer
Resulting profile written to "/u01/gpnp/p.xml".
Success.

2.3.8 查看配置文件改动:
# more /u01/gpnp/p.xml

xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile" x
mlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile" xmlns:x
si="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.
xsd" ProfileSequence="23" ClusterUId="8c32638bd2727ff8bfba9eec919fb4e4"
ClusterName="host-scan" PALocation="">
rofile>
IP="192.168.101.0" Use="public"/>
etwork id="net3" Adapter="en1" IP="10.10.11.0"
Use="cluster_interconnect"/>
S-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
DiscoveryString="" SPFile="+DATA/ho
st-scan/asmparameterfile/registry.253.832710839"/>
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">>

Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
Algorithm="http://www.w3.
org/2000/09/xmldsig#rsa-sha1"/>
Algorithm="http://www.w3.org/2000/09/xmldsig
#enveloped-signature"/>http://www.w3.org/2001/10/xml-exc-c14n#">
www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl
xsi"/>://www.w3.org/2000/09/xmldsig#sha1"/>6p7GJFTV5ZoPtIqkUEudEvYnHB4=
s:DigestValue>
nfo>QNcNKDq1nbXDh1Htp8DYklSba6jzoYnSruNeJdLi6f9TALAQrLsrSAd6dYW
af4V7f2hGCb9qBGvr1pibl4JUeAnN7BBhgWOKyfwYKE
Bx2FdP2RX5tPkLZC+k2X/PO3SpFfIH7NKbvyqmz5xiso2i5C134ZG0RF9s752ZU0e2jVk=
eValue>
备注:红色标识改动信息。

2.3.9 回写配置文件信息到crs中:
# gpnptool put -p=/u01/gpnp/p.xml

2.3.10 查看crs中配置信息:
# gpnptool find -c=host-scan //host-scan为RAC的scan name;
Found 1 instances of service 'gpnp'.
mdns:service:gpnp._tcp.local.://host1:30391/agent=gpnpd,cname=host-scan,host=host1,pid=12
648872/gpnpd h:host1 c:host-scan

# gpnptool rget -h=host1 //host1为主机名
Warning: some command line parameters were defaulted. Resulting command line:
/u01/app/grid/product/11.2.0/grid/bin/gpnptool.bin rget -h=host1 -o-
Found 1 gpnp service instance(s) to rget profile from.
RGET from tcp://host1:30391
(mdns:service:gpnp._tcp.local.://host1:30391/agent=gpnpd,cname=host-scan,host=host1,pid=12
648872/gpnpd h:host1 c:host-scan):

xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd"
ProfileSequence="23" ClusterUId="8c32638bd2727ff8bfba9eec919fb4e4"
ClusterName="host-scan" PALocation="">
HostName="*">
Use="public"/>
Use="cluster_interconnect"/>
id="css" DiscoveryString="+asm" LeaseDuration="400"/>
DiscoveryString=""
SPFile="+DATA/host-scan/asmparameterfile/registry.253.832710839"/>
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
URI="">
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl
xsi"/>
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>6p7GJFTV5ZoPtIqkUE
udEvYnHB4=QNcNKDq1n
bXDh1Htp8DYklSba6jzoYnSruNeJdLi6f9TALAQrLsrSAd6dYWaf4V7f2hGCb9qBGvr1pibl4JUeAnN7B
BhgWOKyfwYKEBx2FdP2RX5tPkLZC+k2X/PO3SpFfIH7NKbvyqmz5xiso2i5C134ZG0RF9s752ZU0e2j
Vk=
Success.
#

2.3.11 启动crsd进程:
# crsctl start res ora.crsd -init
CRS-2672: Attempting to start 'ora.crsd' on 'host1'
CRS-2676: Start of 'ora.crsd' on 'host1' succeeded
# crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.

2.3.12 查看和修改私有网络配置:
# oifcfg getif
en0 192.168.101.0 global public
en1 10.10.11.0 global cluster_interconnect
如不正确使用下面命令重新修改:
# oifcfg setif -global en1/10.10.11.0:cluster_interconnect
# oifcfg getif
en0 192.168.101.0 global public
en1 10.10.11.0 global cluster_interconnect

2.3.13 重启crs服务:
# crsctl stop crs -f
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE host1
ora....ER.lsnr ora....er.type ONLINE ONLINE host1
ora....N1.lsnr ora....er.type ONLINE ONLINE host1
ora.asm ora.asm.type ONLINE ONLINE host1
ora.cvu ora.cvu.type ONLINE ONLINE host1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE host1
ora....T1.lsnr application ONLINE ONLINE host1
ora.host1.gsd application OFFLINE OFFLINE
ora.host1.ons application ONLINE ONLINE host1
ora.host1.vip ora....t1.type ONLINE ONLINE host1
ora.host2.vip ora....t1.type ONLINE ONLINE host1
ora....network ora....rk.type ONLINE ONLINE host1
ora.oc4j ora.oc4j.type ONLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE host1
ora....ry.acfs ora....fs.type ONLINE ONLINE host1
ora.scan1.vip ora....ip.type ONLINE ONLINE host1
ora.yxdb.db ora....se.type ONLINE ONLINE host1
#
# oifcfg getif
en0 192.168.101.0 global public
en1 10.10.11.0 global cluster_interconnect
2.4 使用ocr自动备份不能恢复以上问题
以下为使用ocrconfig –restore方法进行恢复过程记录:
# ocrconfig -showbackupp
PROT-26: Oracle Cluster Registry backup locations were retrieved from a local copy

host1 2013/12/08 10:00:35
/u01/app/grid/product/11.2.0/grid/cdata/host-scan/backup00.ocr

host1 2013/12/08 06:00:34
/u01/app/grid/product/11.2.0/grid/cdata/host-scan/backup01.ocr

host1 2013/12/05 15:59:07
/u01/app/grid/product/11.2.0/grid/cdata/host-scan/backup02.ocr

host1 2013/12/08 06:00:34
/u01/app/grid/product/11.2.0/grid/cdata/host-scan/day.ocr

host1 2013/11/29 00:51:41
/u01/app/grid/product/11.2.0/grid/cdata/host-scan/week.ocr
PROT-25: Manual backups for the Oracle Cluster Registry are not available
# ocrconfig -restore /u01/app/grid/product/11.2.0/grid/cdata/host-scan/backup00.ocr
PROT-35: The configured Oracle Cluster Registry locations are not accessible
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
# ocrconfig -restore /u01/app/grid/product/11.2.0/grid/cdata/host-scan/backup00.ocr
# crsctl stop crs -f
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
# crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
# crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.

目录
相关文章
|
5天前
|
Oracle 关系型数据库 数据库
使用docker安装配置oracle 11g
使用docker安装配置oracle 11g
|
3天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之在oracle cdc2.3 + flink1.7环境下只能初始化同步数据,但后续Oracle的增删改查无法同步出去,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
12 1
|
5天前
|
存储 Oracle 关系型数据库
Oracle RAC:数据库集群的舞动乐章
【4月更文挑战第19天】Oracle RAC是Oracle提供的高可用性数据库解决方案,允许多个实例共享同一数据库,确保业务连续性和数据完整性。通过集群件和全局缓存服务实现服务器间的协调和通信。RAC提供高可用性,通过故障转移应对故障,同时提升性能,多个实例并行处理请求。作为数据管理员,理解RAC的架构和管理至关重要,以发挥其在数据管理中的最大价值。
|
5天前
|
SQL Oracle 安全
Oracle的PL/SQL异常处理方法:守护数据之旅的“魔法盾”
【4月更文挑战第19天】Oracle PL/SQL的异常处理机制是保障数据安全的关键。通过预定义异常(如`NO_DATA_FOUND`)和自定义异常,开发者能优雅地管理错误。异常在子程序中抛出后会向上传播,直到被捕获,提供了一种集中处理错误的方式。理解和善用异常处理,如同手持“魔法盾”,确保程序在面对如除数为零、违反约束等挑战时,能有效保护数据的完整性和程序的稳定性。
|
5天前
|
存储 运维 Oracle
Oracle系列十八:Oracle RAC
Oracle系列十八:Oracle RAC
|
5天前
|
存储 Oracle 关系型数据库
手把手教你安装Oracle——以oracle 11g为例
手把手教你安装Oracle——以oracle 11g为例
手把手教你安装Oracle——以oracle 11g为例
|
5天前
|
Oracle 关系型数据库
oracle Hanganalyze no RAC
oracle Hanganalyze no RAC
17 0
|
5天前
|
Oracle 关系型数据库
Oracle查询优化-分解IP地址
【2月更文挑战第5天】【2月更文挑战第12篇】分解IP地址
29 8
|
5天前
|
Oracle 关系型数据库
oracle rac 手工安装补丁,不适用auto
oracle rac 手工安装补丁,不适用auto
28 3
|
5天前
|
SQL Oracle 关系型数据库
Linux环境下oracle切换用户并查询数据库命令
Linux环境下oracle切换用户并查询数据库命令

推荐镜像

更多