ORACLE 12C 开机自动启动监听、CDB、PDB

linux下数据库实例监听开机自启动设置
2018年8月1日 zhanky

测试介绍
系统版本:Oracle linux 7.2 x64
数据库版本:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
实例名:orcl CDP:orcl PDB:orcl1、orcl2
ORACLE_HOME:/u01/app/oracle/product/12.2.0/db_1

一、设置监听和CDB开机自启
通过使用rc.local开机自动运行脚本,调用Oracle自带的dbstart和lsnrct启动。但调用dbstart需要在oratab中允许
1、修改oratab

[root@zhanky ~]# vi /etc/oratab 
[root@zhanky ~]# cat /etc/oratab 
#
# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third field indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#

2、编辑rc.local
因为Oracle linux 7.2默认rc.local是没有执行权限,需执行chmod自己增加
dbstart默认将oratab中参数为Y的所有库启动

[root@zhanky ~]# vi /etc/rc.d/rc.local 
[root@zhanky ~]# cat /etc/rc.d/rc.local 
!/bin/bash
THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES

It is highly advisable to create own systemd services or udev rules
to run scripts during boot instead of using this file.

In contrast to previous versions due to parallel execution during boot
this script will NOT be run after all other services.

Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
that this script will be executed during boot.

touch /var/lock/subsys/local
##用oracle用户登录,运行lsnrctl start 脚本启用监听。
su - oracle -c "/u01/app/oracle/product/12.2.0/db_1/bin/lsnrctl start"
##用oracle用户登录,运行dbstart启动数据库
su - oracle -c "/u01/app/oracle/product/12.2.0/db_1/bin/dbstart"
[root@zhanky ~]# chmod +x /etc/rc.d/rc.local

二、设置PDB自动启动
通过触发器来启东PDB,下列触发器中ALTER PLUGGABLE DATABASE ALL OPEN代表将所有PDB启动,
如果只需

CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/

三、测试验证,重启数据库服务器即可。

猜你喜欢

转载自blog.51cto.com/zhanky/2153245