Oracle教程(2)Oracle19C命令行静默安装教程

Oracle教程(2)Oracle19C命令行静默安装教程

在部分生产环境下可能并不支持通过图形化方式来安装Oracle数据库(比如需要脚本一键安装的场景),所以还需要了解通过命令行静默安装的方式来完整数据库的安装,以下是详细步骤

一、系统环境配置部分

1、确定内核版本

#centos9内核要求
#从 Oracle 19c 19.19开始,要求最低内核版本 5.14.0-70.22.1.el9_0.x86_64
uname -r
  
#centos7内核要求
从 Oracle 19c 19.19开始,要求最低内核版本 3.10.0-862.11.6.el7.x86_64
uname -r


2、安装依赖组件

可以通过官网(https://docs.oracle.com/en/database/oracle/oracle-database/index.html)选择不同版本Oracle以查看所需依赖

yum groupinstall "Development Tools"

#RHEL9依赖
yum install gcc-c++ bc binutils compat-openssl11 elfutils-libelf fontconfig glibc glibc-devel ksh libaio libasan liblsan libX11 libXau libXi libXrender libXtst libxcrypt-compat libgcc libibverbs libnsl librdmacm libstdc++ libxcb libvirt-libs make policycoreutils policycoreutils-python-utils smartmontools sysstat

#RHEL8依赖
yum install bc binutils elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm libstdc++ libstdc++-devel libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat

#RHEL7依赖
yum install gcc-c++ bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat


3、调整系统参数

如果没有调整这些参数,在后面的安装过程中无法通过自检,Oracle会根据系统当前情况给出不满足的条件和修改建议

vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
	
sysctl -p


4、创建Oracle用户和相关组

#创建oracle组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54330 racdba
	
#创建oracle账户
useradd -u 54321 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba oracle

#RAC架构下还需要创建grid账户
useradd -u 54331 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba grid


5、创建软件和数据目录

mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
chown -R oracle.oinstall /u01/app/oracle


6、配置hosts

静默安装过程需要通过主机名进行通信,所以提前配置好hosts信息

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.159.101 centos1  #配置主机名实际信息


7、配置环境变量

这些环境变量会决定 runInstaller 脚本将软件安装在哪里、netca 和 dbca 读取哪个 ORACLE_HOME等。注意只能配置到oracle用户下,因为后续runInstaller脚本必须以 oracle 用户执行,否则会出现权限错误

su - oracle
vi  ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle                # Oracle 基础目录(admin/log/diag 等的根目录)
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1    # 数据库安装目录
export PATH=$ORACLE_HOME/bin:$PATH


source ~/.bash_profile

二、数据库安装部分

1、解压数据库安装包

#假设已经上传安装包目录到/tmp/db_home.zip
cd /u01/app/oracle/product/19.0.0/dbhome_1
unzip /tmp/db_home.zip


2、数据库软件安装

· 修改模板文件

vi $ORACLE_HOME/install/response/db_install.rsp   #修改Oracle自带的模板文件,主要修改行如下
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY                         #仅安装数据库软件,不建库,后续使用DBCA安装
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_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=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba

· 使用模板文件执行安装

./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp

· 使用root执行脚本

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh


2、安装监听器

· 静默安装

netca.rsp是netca静默模式时的默认配置。如果不需要定制端口或者建立多个监听,可以直接使用该默认文件,默认包含信息如下:

创建一个名为LISTENER的默认监听,这个也是以后连接数据库使用的服务名

协议:TCP

端口:1521

配置文件:$ORACLE_HOME/network/admin/listener.ora,在安装完成后可以查看该配置文件的内容

$ORACLE_HOME/bin/netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp

#正常输出内容
Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /u01/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

· 检查监听状态

lsnrctl status


3、初始化数据库

· 创建数据目录

mkdir -p /oradata/YWPIE
mkdir -p /oraarch/YWPIE
chown -R oracle:oinstall /oradata /oraarch
chmod -R 775 /oradata /oraarch

· 静默安装

dbca -silent -createDatabase   -templateName General_Purpose.dbc   -gdbname YWPIE  -sid YWPIE -responseFile NO_VALUE -characterSet AL32UTF8   -createAsContainerDatabase false -sysPassword Oracle123 -systemPassword Oracle123   -storageType FS  -datafileDestination /oradata/YWPIE  -recoveryAreaDestination /oraarch/YWPIE  -redoLogFileSize 200   -emConfiguration NONE -databaseType MULTIPURPOSE

-templateName General_Purpose.dbc:使用默认模板
-gdbname YWPIE:实例dbname
-sid YWPIE:实例SID
-responseFile NO_VALUE 
-characterSet AL32UTF8:默认字符集
-createAsContainerDatabase false:是否容器化
-sysPassword Oracle123:管理用户密码
-systemPassword Oracle123管理用户密码
-storageType FS \
-datafileDestination /oradata/YWPIE:#数据目录
-recoveryAreaDestination /oraarch/YWPIE:归档日志目录
-redoLogFileSize 200:归档日志大小
-emConfiguration NONE \
-databaseType MULTIPURPOSE

· 启动监听器

如果监听名是默认的,可以直接使用 lsnrctl 进行管理

[oracle@centos1 dbhome_1]$ lsnrctl status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=centos1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                31-AUG-2024 11:46:00
Uptime                    0 days 0 hr. 39 min. 22 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/centos1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=centos1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "YWPIE" has 1 instance(s).           #可以看到创建的数据库被监听了
  Instance "YWPIE", status READY, has 1 handler(s) for this service...
Service "YWPIEXDB" has 1 instance(s).
  Instance "YWPIE", status READY, has 1 handler(s) for this service...
The command completed successfully


如果监听名修改过,必须指定正确的监听名才可以启动,监听名写在配置文件$ORACLE_HOME/network/admin/listener.ora

#查看监听名配置
cat $ORACLE_HOME/network/admin/listener.ora
LISTENER_DBXSTEST =        #这里的监听名就被改为了LISTENER_DBXSTEST
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TVVMPGDB01)(PORT = 15059))
    )
  )

#指定监听名启动
lsnrctl start LISTENER_DBXSTEST


· 登录数据库

sqlplus / as sysdba
ERROR:ORA-12162: TNS:net service name is incorrectly specified

此时发现数据库无法通过TNS登录,这是因为ORACLE_SID 变量还没设置,监听器找不到正确的服务名,所以需要配置环境变量

vi ~/.bash_profile
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=YWPIE    #增加一行

source ~/.bash_profile

可以使用操作系统认证登录或者数据库账号登录

# 通过数据库服务器本地管理员登录,无需密码
sqlplus / as sysdba

# 使用账号密码并指定服务名登录
sqlplus 用户名/密码@服务名
sqlplus 用户名/密码@IP:端口/服务名


文章评论

猜你喜欢

Oracle教程(8)Oracle 19C 单实例调整为 ADG 架构

MySQL | Oracle Oracle教程(8)Oracle 19C 单实例调整为 ADG 架构

一、ADG架构介绍Active Data Guard 简称ADG,是 Oracle Data Guard 架构下给物理备库(Physical Standby)追加的一个功能,非ADG模式下的物理备库只...

 Oracle教程(7)RMAN 物理备份教程与实战

MySQL | Oracle Oracle教程(7)RMAN 物理备份教程与实战

一、RMAN 介绍RMAN 是 Oracle 自带的物理备份工具,它的核心作用是保护数据库的物理完整性,确保在发生磁盘损坏、误删数据文件、服务器整体故障等灾难场景下能够将数据库恢复到某个可用的状态。R...

Oracle运维管理——修改用户密码过期时间

MySQL | Oracle Oracle运维管理——修改用户密码过期时间

在 Oracle 数据库中,用户的密码有效期通过PROFILE(资源限制配置文件)中的 PASSWORD_LIFE_TIME 参数控制。如果没有为用户单独创建 PROFILE,默认使用一个...

Oracle教程(6)SGA\PGA\REDO核心参数调优

MySQL | Oracle Oracle教程(6)SGA\PGA\REDO核心参数调优

一、Oracle核心参数介绍1、SGASGA(System Global Area)是 Oracle 实例启动时分配的共享内存区域,所有连接到该实例的会话都共用这块内存,是整个数据库实例对外提供服务的...

Oracle教程(5)数据泵逻辑备份教程与实战

MySQL | Oracle Oracle教程(5)数据泵逻辑备份教程与实战

一、数据泵介绍数据泵(Data Pump)是 Oracle 10g 开始引入的命令行逻辑备份与恢复工具。通过 expdp / impdp ,可以对所有数据库对象(模式、表数据、表空间等)进行高效导出和...