1. 创建服务
cat > /usr/lib/systemd/system/oracled.service <<!
[Unit]
Description=Oracle Service
After=network.target
After=syslog.target
[Service]
User=oracle
Group=oinstall
Type=oneshot
Environment="ORACLE_HOME=/tech/oracle/product/19.0.0/dbhome_1"
ExecStartPre=/tech/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start
ExecStart=/tech/oracle/product/19.0.0/dbhome_1/bin/dbstart \${ORACLE_HOME}
ExecStop=/tech/oracle/product/19.0.0/dbhome_1/bin/dbshut \${ORACLE_HOME}
ExecStopPost=/tech/oracle/product/19.0.0/dbhome_1/bin/lsnrctl stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Alias=oracle.service
!
2. 设置Limit
由于/etc/security/limits.conf的设置对服务不生效,需要在服务级别配置。
mkdir -p /etc/systemd/system/oracled.service.d
cat > /etc/systemd/system/oracled.service.d/filelimit.conf <<!
[Service]
LimitNOFILE=65536
!
cat > /etc/systemd/system/oracled.service.d/proclimit.conf <<!
[Service]
LimitNPROC=16384
!
cat > /etc/systemd/system/oracled.service.d/stacklimit.conf <<!
[Service]
LimitSTACK=33554432
!
cat > /etc/systemd/system/oracled.service.d/memlocklimit.conf <<!
[Service]
LimitMEMLOCK=216248536268
!
3. 加载服务设置
systemctl daemon-reload
4. 启动服务
systemctl start oracled
systemctl enable oracled




