正文
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 开机启动的脚本了.