Linux静默安装Oracle21C
1、修改主机名及配置hosts
-
[root@localhost ~]# hostname# 查看主机名
-
[root@localhost ~]# hostname oracledb# 修改主机名
-
[root@localhost ~]# vim /etc/hosts# 修改hosts
-
[root@localhost ~]# cat /etc/hosts
2、关闭selinux和防火墙
-
[root@localhost ~]# setenforce 0// 不重启系统生效
-
[root@localhost ~]# vim /etc/selinux/config # 修改为SELINUX=disabled 重启系统后生效
-
[root@localhost ~]# systemctl status firewalld.service# 查看状态
-
[root@localhost ~]# systemctl stop firewalld.service # 停止 firewall
-
[root@localhost ~]# systemctl disable firewalld.service # 禁止 firewall 开机启动
3、检查依赖包
-
[root@localhost ~]# rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" 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
4、安装依赖包
-
[root@localhost ~]# yum -y install compat-libcap1 compat-libstdc++-33 elfutils-libelf-devel fontconfig-devel glibc-devel ksh libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libstdc++-devel libxcb smartmontools sysstat
5、创建用户及用户组
-
[root@localhost ~]# groupadd -g 54321 oinstall
-
[root@localhost ~]# groupadd -g 54322 dba
-
[root@localhost ~]# groupadd -g 54323 oper
-
[root@localhost ~]# groupadd -g 54324 backupdba
-
[root@localhost ~]# groupadd -g 54325 dgdba
-
[root@localhost ~]# groupadd -g 54326 kmdba
-
[root@localhost ~]# groupadd -g 54330 racdba
-
[root@localhost ~]# useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
-
#!/bin/bash
-
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 54330 racdba
-
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
6、配置内核参数
-
[root@localhost ~]# vim /etc/sysctl.conf
-
fs.aio-max-nr = 1048576
-
fs.file-max = 6815744
-
kernel.shmall = 16451328
-
kernel.shmmax = 33692319744
-
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
7、使内核参数生效
-
[root@localhost ~]# sysctl -p
8、配置用户资源
-
[root@localhost ~]# vim /etc/security/limits.conf
-
oracle soft nofile 1024
-
oracle hard nofile 65536
-
oracle hard nproc 16384
-
oracle soft nproc 2047
-
oracle soft stack 10240
-
oracle hard stack 32768
-
oracle hard memlock 3145728
-
oracle soft memlock 3145728
9、修改/etc/pam.d/login文件
-
[root@localhost ~]# vim /etc/pam.d/login
-
session required /lib/security/pam_limits.so
10、修改/etc/profile文件
-
[root@localhost ~]# vim /etc/profile
-
[root@localhost ~]# source /etc/profile
-
if [ $USER = "oracle" ]; then
-
if [ $SHELL = "/bin/ksh" ]; then
-
ulimit -p 16384
-
ulimit -n 65536
-
else
-
ulimit -u 16384 -n 65536
-
fi
-
fi
11、创建安装目录
-
[root@localhost ~]# mkdir -p /home/oracle/app/oracle/product/21.3.0
-
[root@localhost ~]# mkdir -p /home/oracle/app/oracle/oradata
-
[root@localhost ~]# mkdir -p /home/oracle/app/oracle/inventory
-
[root@localhost ~]# mkdir -p /home/oracle/app/oraInventory
-
[root@localhost ~]# mkdir -p /home/oracle/app/oracle/fast_recovery_area
-
[root@localhost ~]# chown -R oracle:oinstall /home/oracle/app
-
[root@localhost ~]# chmod -R 775 /home/oracle/app
-
#!/bin/bash
-
mkdir -p /home/oracle/app/oracle/product/21.3.0
-
mkdir -p /home/oracle/app/oracle/oradata
-
mkdir -p /home/oracle/app/oracle/inventory
-
mkdir -p /home/oracle/app/oraInventory
-
mkdir -p /home/oracle/app/oracle/fast_recovery_area
-
chown -R oracle:oinstall /home/oracle/app
-
chmod -R 775 /home/oracle/app
12、配置oracle用户的环境变量
-
[root@localhost ~]# su - oracle
-
[oracle@oracledb ~]$ vim .bash_profile
-
[oracle@oracledb ~]$ source /home/oracle/.bash_profile
-
export LANG=en_US
-
export NSL_LANG=american_america.ZHS16GBK
-
export ORACLE_BASE=/home/oracle
-
export ORACLE_HOME=$ORACLE_BASE/app/oracle/product/21.3.0
-
export ORACLE_SID=YXPCDB
-
export PATH=$ORACLE_HOME/bin:$PATH
-
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
-
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/lib
13、解压安装包文件
-
[oracle@oracledb ~]$ exit
-
[root@localhost ~]# chown oracle:oinstall /Tools/LINUX.X64_213000_db_home.zip
-
[root@localhost ~]# chmod 755 /Tools/LINUX.X64_213000_db_home.zip
-
[root@localhost ~]# su - oracle
-
[oracle@oracledb ~]$ unzip /Tools/LINUX.X64_213000_db_home.zip -d $ORACLE_HOME
14、配置安装引导文件
-
[oracle@localhost ~]$ cd $ORACLE_HOME/install/response
-
[oracle@oracledb response]$ cp db_install.rsp db_install.rsp.bak
-
[oracle@oracledb response]$ vim db_install.rsp
-
// 主要修改以下参数
-
oracle.install.option=INSTALL_DB_SWONLY// 29行
-
UNIX_GROUP_NAME=oinstall// 34行
-
INVENTORY_LOCATION=/home/oracle/app/oraInventory// 41行
-
ORACLE_HOME=/home/oracle/app/oracle/product/21.3.0// 45行
-
ORACLE_BASE=/home/oracle/app/oracle// 50行
-
oracle.install.db.InstallEdition=EE// 62行
-
oracle.install.db.OSDBA_GROUP=dba// 79行
-
oracle.install.db.OSOPER_GROUP=oper// 85行
-
oracle.install.db.OSBACKUPDBA_GROUP=backupdba// 90行
-
oracle.install.db.OSDGDBA_GROUP=dgdba// 95行
-
oracle.install.db.OSKMDBA_GROUP=kmdba// 100行
-
oracle.install.db.OSRACDBA_GROUP=racdba// 105行
-
oracle.install.db.rootconfig.executeRootScript=false// 120行
-
:set number 显示行号
-
:set nu 显示行号
-
:set nu! 取消显示行号
15、执行安装
-
[oracle@localhost ~]$ cd $ORACLE_HOME
-
[oracle@oracledb 21.3.0]$ ./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp
16、以root用户执行脚本
-
[root@localhost ~]# sh /home/oracle/app/oraInventory/orainstRoot.sh
-
[root@localhost ~]# sh /home/oracle/app/oracle/product/21.3.0/root.sh
17、创建监听
-
[oracle@oracledb 21.3.0]$ cd assistants/netca
-
[oracle@oracledb netca]$ cp netca.rsp netca.rsp.bak
-
[oracle@oracledb netca]$ netca /silent /responseFile $ORACLE_HOME/assistants/netca/netca.rsp
18、建库
-
[oracle@oracledb netca]$ cd $ORACLE_HOME/assistants/dbca
-
[oracle@oracledb dbca]$ dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE -gdbname YXPCDB -sid YXPCDB -createAsContainerDatabase TRUE -numberOfPDBs 1 -pdbName pdbYXP -pdbAdminPassword Yangxiaopeng214 -sysPassword Yangxiaopeng214 -systemPassword Yangxiaopeng214 -datafileDestination '/home/oracle/app/oracle/oradata' -recoveryAreaDestination '/home/oracle/flash_recovery_area' -redoLogFileSize 50 -storageType FS -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -totalMemory 2048 -databaseType OLTP -emConfiguration NONE
-
主要参数
-
-------------主要参数-------------------------------------------------------------------
-
gdbName=YXPCDB
-
sid=YXPCDB
-
databaseConfigType=SI
-
createAsContainerDatabase=true
-
numberOfPDBs=1
-
pdbName=pdbYXP
-
pdbAdminPassword=Yangxiaopeng214
-
templateName=General_Purpose.dbc
-
sysPassword=Yangxiaopeng214
-
systemPassword=Yangxiaopeng214
-
emConfiguration=NONE
-
dbsnmpPassword=Yangxiaopeng214
-
datafileDestination=/home/oracle/app/oracle/oradata
-
recoveryAreaDestination=/home/oracle/flash_recovery_area
-
storageType=FS
-
characterSet=ZHS16GBK
-
nationalCharacterSet=AL16UTF16
-
sampleSchema=true
-
totalMemory=2048
-
redoLogFileSize=50
-
-- rac数据库
-
dbca -silent -ignorePreReqs -ignorePrereqFailure -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-
-gdbname rac21c -sid rac21c \
-
-createAsContainerDatabase TRUE \
-
-sysPassword lhr -systemPassword lhr -dbsnmpPassword lhr \
-
-datafileDestination '+DATA' -recoveryAreaDestination '+FRA' \
-
-storageType ASM \
-
-characterset AL32UTF8 \
-
-totalMemory 1024 \
-
-databaseType OLTP \
-
-emConfiguration none \
-
-nodeinfo raclhr-21c-n1,raclhr-21c-n2
-
-- 单实例
-
dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-
-gdbname YXPCDB -sid YXPCDB \
-
-createAsContainerDatabase TRUE \
-
-numberOfPDBs 1 \
-
-pdbName pdbxmm \
-
-pdbAdminPassword Yangxiaopeng214 \
-
-sysPassword Yangxiaopeng214 -systemPassword Yangxiaopeng214 \
-
-datafileDestination '/home/oracle/app/oracle/oradata' \
-
-recoveryAreaDestination '/home/oracle/flash_recovery_area' \
-
-redoLogFileSize 50 \
-
-storageType FS \
-
-characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
-
-totalMemory 1024 \
-
-databaseType OLTP \
-
-emConfiguration NONE
19、验证
-
[oracle@oracledb ~]$ lsnrctl status # 查看监听状态
-
[oracle@oracledb ~]$ lsnrctl restart# 重启监听
-
[oracle@oracledb ~]$ lsnrctl stop# 停止监听
-
[oracle@oracledb ~]$ lsnrctl start# 启动监听
-
下图为两个库的截图
-
[oracle@oracledb ~]$ sqlplus
-
输入用户名和密码
-
select sysdate from dual;
20、其他
-
启动服务
先启动监听,再启动数据库
-
[oracle@oracledb ~]$ lsnrctl start# 启动监听
-
[oracle@oracledb ~]$ sqlplus /nolog# 打开sqlplus
-
SQL> conn / as sysdba# 连接数据库
-
SQL> startup# 启动数据库
-
SQL> show con_name# 显示当前容器
-
SQL> shutdown# 关闭数据库
-
SQL> exit# 退出
-
[oracle@oracledb ~]$ lsnrctl stop# 停止监听
21、启动两个实例
-
YXPCDB 实例的数据库中创建了temp_yxp表,CDB2实例的数据库中未创建temp_yxp表
-
根据oracle用户的ORACLE_SID环境变量来启动数据库
-
[oracle@oracledb ~]$ lsnrctl start
-
[oracle@oracledb ~]$ echo $ORACLE_SID # YXPCDB 第一个实例
-
[oracle@oracledb ~]$ sqlplus /nolog
-
SQL> conn / as sysdba
-
SQL> startup
-
SQL> exit
-
[oracle@oracledb ~]$ sqlplus
-
SQL> select * from temp_yxp;# 表存在
-
SQL> exit
-
[oracle@oracledb ~]$ vim .bash_profile # 更改ORACLE_SID的值为CDB2
-
[oracle@oracledb ~]$ source .bash_profile
-
[oracle@oracledb ~]$ echo $ORACLE_SID # CDB2 第二个实例
-
[oracle@oracledb ~]$ sqlplus /nolog
-
SQL> conn / as sysdba
-
SQL> startup
-
SQL> exit
-
[oracle@oracledb ~]$ sqlplus
-
SQL> select * from temp_yxp;# 表 不存在
-
SQL> exit
-
[oracle@oracledb ~]$ export ORACLE_SID=YXPCDB # 临时生效,上述过程中涉及修改ORACLE_SID环境变量亦可用此方法