oracle 19C 静默安装(单机版)

一、前期环境准备

1.硬件信息

(1)主机版本

[root@localhost ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 7.7 (Maipo)

[root@localhost ~]# 

(2)CPU

[oracle@localhost soft19]$ cat /proc/cpuinfo | grep "physical id" | uniq |wc -l

8

[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq

cpu cores       : 1

(3)内存大小

[root@localhost ~]# cat /proc/meminfo | grep MemTotal

MemTotal:       16413444 kB

2.介质信息

[oracle@localhost ~]$ pwd

/home/oracle

[oracle@localhost ~]$ ls -lrt LINUX.X64_193000_db_home.zip 

-rw-r--r-- 1 oracle oinstall 3059705302 Jun 30  2020 LINUX.X64_193000_db_home.zip

[oracle@localhost ~]$ 

unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

3.环境准备

(1)检查依赖包

rpm -qa binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

##如果缺少依赖包,并且服务器已配置了 yum,可采用如下方式进行安装

yum install bc

gcc

gcc-c++

binutils

compat-libcap1

compat-libstdc++

dtrace-modules

dtrace-modules-headers

dtrace-modules-provider-headers

dtrace-utils

elfutils-libelf

elfutils-libelf-devel

fontconfig-devel

glibc

glibc-devel

ksh

libaio

libaio-devel

libdtrace-ctf-devel

libX11

libXau

libXi

libXtst

libXrender

libXrender-devel

libgcc

librdmacm-devel

libstdc++

libstdc++-devel

libxcb

make

smartmontools

sysstat

(2)修改内核参数

cp /etc/sysctl.conf /etc/sysctl.conf_bak_20200327

vi /etc/sysctl.conf ##添加如下内容

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 33554432

kernel.shmmax = 137438953471

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

修改后执行 sysctl -p

(3)禁用防火墙和 selinux

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl status firewalld.service

systemctl status NetworkManager.service

##从 RHEL7 开始,使用 systemctl 工具来管理服务程序,包括了 service 和 chkconfig

以下是一些常用命令

systemctl list-unit-files|grep enabled

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?

查看已启动的服务列表:systemctl list-unit-files|grep enabled

[oracle@localhost ~]$ cat /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three values:

#     targeted - Targeted processes are protected,

#     minimum - Modification of targeted policy. Only selected processes are protected. 

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted 

[oracle@localhost ~]$ 

(4)配置 host

vi /etc/hosts

10.135.102.133 localhost

(5)创建用户、组

groupadd -g 501 oinstall

groupadd -g 502 dba

groupadd -g 503 oper

useradd -u 501 -g oinstall -G dba,oper oracle

passwd oracle

(6)创建目录并设置权限

mkdir -p /u01/app/oracle/product/19.3/db_1

chown -R oracle:oinstall /u01/

chmod -R 775 /u01/

(7)修改用户安全限制

vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

##在/etc/pam.d/login 文件添加如下内容

session required pam_limits.so

(8)设置用户环境变量

su - oracle

vi .bash_profile

export ORACLE_SID=ecis

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_1

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:$JAVA_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

source .bash_profile

二、正式安装

##由于当前环境无法使用图形化进行安装,这里将采用静默安装 Oracle 19c 数据库

1.静默安装数据库软件

(1)修改响应文件

cd /u01/app/oracle/product/19.3/db_1/install/response

cat db_install.rsp|grep -v "^#"|grep -v "^$"

mv db_install.rsp db_install.rsp.bak

vi db_install.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/u01/app/oraInventory

ORACLE_HOME=/u01/app/oracle/product/19.3/db_1

ORACLE_BASE=/u01/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.OSDBA_GROUP=dba

oracle.install.db.OSOPER_GROUP=oper

oracle.install.db.OSBACKUPDBA_GROUP=dba

oracle.install.db.OSDGDBA_GROUP=dba

oracle.install.db.OSKMDBA_GROUP=dba

oracle.install.db.OSRACDBA_GROUP=dba

oracle.install.db.rootconfig.executeRootScript=false

oracle.install.db.rootconfig.configMethod=ROOT

(2)安装数据库软件

/u01/app/oracle/product/19.3/db_1/runInstaller -force -silent -noconfig -ignorePrereq -responseFile /u01/app/oracle/product/19.3/db_1/install/response/db_install.rsp

(3)根据安装提示查看安装日志

tail -200f /u01/app/oraInventory/logs/InstallActions2020-03-31_04-49-29PM/installActions2020-03-31_04-49-29PM.log

(4)执行脚本

su - root

[root@localhost ~]# /u01/app/oracle/product/19.3/db_1/root.sh

Check /u01/app/oracle/product/19.3/db_1/install/root_localhost_2020-03-31_17-00-53-190777891.log for the output of root script

2.静默安装数据库

(1)修改响应文件

cd /u01/app/oracle/product/19.3/db_1/assistants/dbca

cat dbca.rsp |grep -v "^#"|grep -v "^$"

mv dbca.rsp dbca.rsp.bak

vi dbca.rsp

gdbName=zjipnm

sid=zjipnm

createAsContainerDatabase=true

numberOfPDBs=1

pdbName=zjipnmpdb

pdbAdminPassword=Gzb$akptY

templateName=General_Purpose.dbc

sysPassword=Gzb$akptY

systemPassword=Gzb$akptY

emExpressPort=5500

datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/

characterSet=ZHS16GBK

nationalCharacterSet=AL16UTF16

memoryPercentage=40

automaticMemoryManagement=false

totalMemory=12288

(2)安装数据库

dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.3/db_1/assistants/dbca/dbca.rsp

Prepare for db operation

8% complete

Copying database files

31% complete

Creating and starting Oracle instance

32% complete

36% complete

40% complete

43% complete

46% complete

Completing Database Creation

51% complete

53% complete

54% complete

Creating Pluggable Databases

58% complete

77% complete

Executing Post Configuration Actions

100% complete

Database creation complete. For details check the logfiles at:

/u01/app/oracle/cfgtoollogs/dbca/ECIS.

Database Information:

Global Database Name:ECIS

System Identifier(SID):zjipnmpdb

Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/PROD/PROD.log" for

further details.

3.创建监听

(1)响应文件

cd /u01/app/oracle/product/19.3/db_1/assistants/netca

cat netca.rsp|grep -v "^#"|grep -v "^$"

mv netca.rsp netca.rspbak

[GENERAL]

RESPONSEFILE_VERSION="19.0"

CREATE_TYPE="CUSTOM"

[oracle.net.ca]

INSTALLED_COMPONENTS={"server","net8","javavm"}

INSTALL_TYPE=""typical""

LISTENER_NUMBER=1

LISTENER_NAMES={"LISTENER"}

LISTENER_PROTOCOLS={"TCP;1521"}

LISTENER_START=""LISTENER""

NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}

NSN_NUMBER=1

NSN_NAMES={"EXTPROC_CONNECTION_DATA"}

NSN_SERVICE={"PLSExtProc"}

NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}

netca -silent -responsefile /u01/app/oracle/product/19.3/db_1/assistants/netca/netca.rsp

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 13-JAN-2021 17:37:44

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date                13-JAN-2021 13:39:31

Uptime                    0 days 3 hr. 58 min. 12 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/oracle/product/19.3/db_1/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary...

Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).

  Instance "ecis", status READY, has 1 handler(s) for this service...

Service "b8c10d35dc4e8f1ee055000000000001" has 1 instance(s).

  Instance "ecis", status READY, has 1 handler(s) for this service...

Service "zjipnm" has 1 instance(s).

  Instance "ecis", status READY, has 1 handler(s) for this service...

Service "zjipnmXDB" has 1 instance(s).

  Instance "ecis", status READY, has 1 handler(s) for this service...

Service "zjipnmpdb" has 1 instance(s).

  Instance "ecis", status READY, has 1 handler(s) for this service...

The command completed successfully

问题1

[oracle@localhost ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.3.0 - Production on Wed Dec 15 10:54:03 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/oracle/app/oracle/product/11.2.0/db_1/dbs/initicare1.ora'

没有initicare1.ora文件

解决此问题的方法就是到cd /u01/app/oracle/admin/zjipnm/pfile/目录下,将init.ora.0132021114328复制到dbs目录下:

cp init.ora.0132021114328 /u01/app/oracle/product/19.3/db_1/dbs/initicare1.ora

问题2

ORA-01102: cannot mount database in EXCLUSIVE mode

1、重启服务器可解决

2、查$ORACLE_HOME/dbs目录:

$ cd $ORACLE_HOME/dbs

$ ls sgadef*

sgadef* not found

$ ls lk*

/opt/oracle/product/ 10.2.0/db_1/dbs/lkSIMPLY

lkSIMPLY

果然,lk<sid>文件没有被删除。将它删除掉

$ rm lk*

再次启动时又遇到下面的错误

ORA-00205: error in identifying control file, check alert log for more info   : (

查看共享内存段

[root@simply bdump]# ipcs -map

------ Shared Memory Creator/Last-op --------

shmid   owner  cpid    lpid

786444  root    6490   6438

819213  root    6549   6438

1409040 oracle   31502  16728

根据ID号清楚共享内存段

ipcrm –m 1409040

我这里操作是没有成功的,不过执行了下面的操作就ok了!

查看信号量

[root@simply bdump]# ipcs -s

key       semid      owner   perms    nsems

0x17ff6454 360448     oracle    640     154

清除oracle的信号量

[root@simply bdump]# ipcrm -s 360448

再次查询确认

[root@simply bdump]# ipcs -s

------ Semaphore Arrays --------

key  semid  owner  perms   nsems

再查询共享内存段也ok了!

[root@simply bdump]# ipcs -m

如果是Oracle进程没有关闭,

$kill -9 <PID>

安装oracle后实例不存在:Oracle报错 ORA-01078

报错:

在启动Oracle数据库时报错,如下:

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 16 19:43:43 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'


原因分析:


这是因为在oracle10g和oracle11g中,数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。

解决一:

用find /u01  -name pfile命令查找pfile文件的位置,/u01/app/oracle/admin/orcl/pfile/
将$ORACLE_BASE/admin/orcl/pfile目录下的init.ora.2212013132036形式的文件copy 到$ORACLE_HOME/dbs目录下命名为initorcl.ora即可。

(注:initorcl.ora中的orcl为你的实例名 ORACLE_SID,这里我的SID为:center)

方法二:

将$ORACLE_HOME/dbs目录下spflieorcl.ora改名为spfilecenter.ora即可。(注:spfilecenter.ora中的center为环境变量中设置的SID,我的是center)


方法三:

拷贝pfile文件下的init.ora.61420130339到dbs下,并重命名成init+实例名.ora即可

{{{
[oracle@localhost oracle]$ find /u01 -name pfile
/u01/app/admin/orcl/pfile
[oracle@localhost oracle]$ cd /u01/app/admin/orcl/pfile
[oracle@localhost pfile]$ ls
init.ora.61420130339
[oracle@localhost pfile]$ cp init.ora.61420130339 /u01/app/oracle/dbs/initdevdb.ora
}}}

原文地址:https://www.cnblogs.com/chenjunjie/p/14273426.html