RPM安装的Oracle19c 修改init.ora进行修复以及最简单开机启动Oracle的方法

发布时间 2023-07-01 17:49:35作者: 济南小老虎

RPM安装的Oracle19c 修改init.ora进行修复以及最简单开机启动Oracle的方法


背景

今天开始使用自己心的ThinkBook14 的笔记本
因为已经没有了 Linux测试环境供我使用.
所以我就自己准备导入一个最开始的 OpenEuler2203 + Oracle19c的虚拟机.

发现因为当时虚拟机是48G内存, 但是我的笔记本只有32G内存, Oracle启动会失败.
想着非常简单该一下 init.ora就可以了. 
但是发现rpm安装的数据库比较low, 修改起来比较琐碎.
所以想记录一下操作过程, 备忘. 

超找配置文件

查找Oracle的安装目录. 方法主要有两个
1. which oracle
2. env |grep -i oracle

根据路径位置. 可以进行查找基础文件. 
比如我这边使用RPM安装的数据库,默认文件信息:

/opt/oracle/product/19c/dbhome_1/bin/oracle
ORACLE_HOME=/opt/oracle/product/19c/dbhome_1

对应的 init.ora的文件位置为:
/opt/oracle/product/19c/dbhome_1/dbs/init.ora

获取Oracle的配置信息

env |grep -i oracle  
正常安装会有一个 ORACLE_SID的变量.
比如我这边就是
ORACLE_SID=ORA19C

然后根据init.ora 复制新增一个文件 initORA19C.ora
需要注意里面的配置文件其实很多不太对的地方
新增的部分:
enable_pluggable_database=true
# 因为我是PG数据库,但是原来的文件里面是 11.2兼容的, 需要增加, 不然启动会报错
修改的部分:
db_name='ORA19C'
memory_target=4G
processes = 1500
audit_file_dest='/opt/oracle/admin/ORA19C/adump/'
open_cursors=3000
control_files='/opt/oracle/oradata/ORA19C/control01.ctl','/opt/oracle/oradata/ORA19C/control02.ctl'
compatible ='19.0.0'
# 主要要根据具体情况进行设置 memory_target 至少要 4G左右,不然启动不起来.

进行启动和默认修改

Oracle启动默认是使用 spfile的.
需要注意 spfile 其实是二进制的.
pfile(init.ora) 是text文本的. 

启动方式为:
su - oracle
sqlplus / as sysdba

startup pfile=/opt/oracle/product/19c/dbhome_1/dbs/initORA19C.ora

# 启动成功后
create spfile from pfile
# 会覆盖spfile的二进制文件, 第二次就可以正常启动了. 

设置开机启动

systemctl enable --now crond

然后编写一个启动脚本:
su - oracle
vim /home/oracle/startup
填充内容为: 
sqlplus / as sysdba <<EOF
startup
EOF
lsnrctl <<EOF
start
EOF

增加权限 chmod 777 /home/oracle/startup

然后设置开机启动
crontab -e
@reboot su - oracle -c /home/oracle/startup 

# 这应该最简单的 设置Oracle 开机启动的脚本了.