Oracle 存储过程部署时sqlplus无响应问题记录

本文记录了一次存储过程部署导致SQLPlus无响应的问题排查过程。最终发现是由于存储过程中大量使用了通过dblink建立的同义词,在部署时引发过多错误而导致的现象。

   1.  现象描述:

昨天,现场的同事反映周末发送给他的存储过程在部署时造成了sqlplus长时间无响应,存储过程在现场无法部署。

  2. 问题分析:

    a.是否为版本问题。

    由于开发时采用的数据库版本为10.2,现场运行的数据库版本为10.1,首先怀疑是否由于版本引起该现象,紧接着该可能性被排除,因为先前工程初始时的存储过程部署无任何问题。

    b.是否为新写程序有问题

    同事提出是否由于此过程本身的问题。这个提议被否决,程序有问题不太可能造成这种现象。

    c.怀疑数据库上有异常锁。

    重启数据库,再次尝试,问题依旧。

   经过以上分析,并尝试使用其他工具部署,结果相同。

   3. 进一步分析:

     无奈,只好远程拨号,查看数据库的日志,发现无异常,且同时其他用户登录数据库也无任何问题。在本地按照安装文档重新找机器部署,也未出现该现象。让家里的同事按照文档重新部署,结果发现现场部署时未正确建立dblink,修正dblink后,重新部署存储过程,未出现该现象。

   4. 结论:
     由于新增存储过程中大量使用了同义词,而这些同义词是通过dblink建立的,导致在部署编译存储过程时错误太多而造成sqlplus的“假死”。

<think>嗯,用户想在openEuler系统上用RPM模式安装Oracle 19c,而且不用图形界面。首先,我得回想一下Oracle的安装方式。通常Oracle数据库可以通过图形界面安装,但用户明确要求不用图形界面,所以可能需要用静默安装或者RPM的方式。不过Oracle 19c官方是否提供RPM呢?我记得之前的版本比如Oracle 18c开始有RPM安装方式,但可能需要注意版本兼容性。 然后,用户提到的openEuler操作系统,这是基于CentOS的,所以可能需要确保RPM的依赖项是否满足。可能需要安装一些特定的库或者软件,比如libnsl、compat-libstdc++等。另外,Oracle的RPM安装可能需要预先配置内核参数、用户和组、目录结构等,这些步骤和传统的响应文件安装类似,但通过RPM可能部分自动化。 接下来,用户提到不使用图形界面,所以需要完全通过命令行完成。可能需要生成response file(响应文件),然后用静默模式安装。不过如果使用RPM的话,可能步骤会更简单,直接使用rpm命令安装,然后运行配置脚本?不过需要确认Oracle的RPM是否含必要的配置工具。 另外,参考内容里提到了Oracle 19c RAC的安装课程,但用户的问题是关于单实例的RPM安装。可能步骤括:下载RPM,安装依赖,创建oracle用户和组,设置内核参数,配置环境变量,然后安装RPM,最后运行配置助手?不过具体步骤可能需要查阅Oracle的官方文档或者可靠的安装指南。 还需要注意openEuler的版本是否被Oracle支持。Oracle官方认证的操作系统列表中可能有openEuler,这候可能需要手动调整依赖或者使用兼容性层。例如,安装CentOS的兼容,或者手动解决依赖问题。 然后,安装后的配置,比如运行netca配置监听程序,dbca创建数据库,这些在无图形界面下可能需要使用静默模式,通过响应文件来执行。用户需要准备相应的响应文件模板,然后通过命令行工具调用。 可能的问题括:RPM的获取,因为Oracle可能需要用户登录才能下载,所以用户需要自行下载并上传到服务器。另外,SELinux和防火墙的设置,可能需要关闭或者调整策略。还有,需要配置oracle用户的环境变量,比如.bash_profile中的ORACLE_HOME, PATH等。 最后,测试数据库的启动和连接,确保安装成功。可能需要执行sqlplus命令连接实例,创建测试表空间等操作。 综上所述,步骤大致分为:系统准备(依赖、内核参数、用户组)、安装RPM、运行配置脚本、静默创建数据库,以及后续的验证。需要详细指导用户每一步的具体命令和注意事项,比如如何修改响应文件,如何处理可能出现的依赖错误,如何设置环境变量等。</think>在openEuler系统中通过RPM方式安装Oracle 19c需遵循以下步骤: ### 一、系统环境准备 1. **配置内核参数** 修改`/etc/sysctl.conf`并执行`sysctl -p`: ```bash fs.aio-max-nr = 1048576 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 kernel.shmmni = 4096 ``` 2. **安装依赖** ```bash dnf install -y libnsl compat-libstdc++-33 libaio ksh ``` 3. **创建Oracle用户/组** ```bash groupadd -g 54321 oinstall useradd -u 54321 -g oinstall oracle ``` ### 二、RPM安装 1. **获取Oracle RPM** 从Oracle官网下载预构建的RPM:`oracle-database-ee-19c-1.0-1.x86_64.rpm` 2. **执行RPM安装** ```bash rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm ``` 安装路径默认在`/opt/oracle/product/19c/dbhome_1` ### 三、静默配置数据库 1. **生成响应文件模板** ```bash cp /opt/oracle/product/19c/dbhome_1/install/response/db_install.rsp /tmp/ ``` 2. **修改响应文件关键参数** ```properties oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/oraInventory ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 ORACLE_BASE=/opt/oracle oracle.install.db.InstallEdition=EE ``` 3. **执行静默安装** ```bash /etc/init.d/oracledb_ORCLCDB-19c configure ``` ### 四、验证安装 1. **启动监听服务** ```bash su - oracle lsnrctl start ``` 2. **连接数据库** ```bash sqlplus / as sysdba SELECT * FROM v$version; ``` ### 注意事项 - 若遇到`libnsl.so.1`缺失错误,需手动创建符号链接: ```bash ln -s /usr/lib64/libnsl.so.2.0.1 /usr/lib64/libnsl.so.1 ``` - 存储空间要求:`/tmp`目录至少需要1GB空间[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值