1 安装部署
1 简介
本次以Oracle的最新版本Oracle 19c
为例,采用CentOS 7操作系统作为安装基础环境
2 环境准备
2.1 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.2 禁用SElinux
vim /etc/selinux/config
# 修改
SELINUX=disabled
2.3 编辑hosts和hostname文件
# 设置主机名
vim /etc/hostname
oracletest
# 修改hosts
vim /etc/hosts
10.237.132.2 oracletest
2.4 禁用透明 HugePages
vim /etc/default/grub
# 在GRUB_CMDLINE_LINUX参数的末尾添加
transparent_hugepage=never
# 使用修改后的配置生成/boot/grub2/grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
2.5 重启实例
# 重启机器
init 6
2.6 安装依赖
yum install -y 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 net-tools gcc gcc-c++ gcc-info gcc-locale gcc48 gcc48-info gcc48-locale gcc48-c++
3 安装前置
3.1 创建用户组
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
echo "oracle" | passwd oracle --stdin
3.2 为 Oracle 用户设置安全限制
执行以下命令编辑30-oracle.conf
文件,设置oracle用户的安全限制
cat >/etc/security/limits.d/30-oracle.conf<<EOF
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
3.3 修改linux内核参数
执行以下命令编辑98-oracle.conf
文件
cat >/etc/sysctl.d/98-oracle.conf<<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
然后执行sysctl --system
命令重新加载内核参数
3.4 为 Oracle Database 19c 创建目录
mkdir -p /data/oracle/product/19.3.0/dbhome_1
mkdir -p /data/oradata/app/oraInventory
chown -R oracle:oinstall /data/oradata/
chown -R oracle:oinstall /data/oracle
chmod -R 775 /data/oracle
3.5 为 Oracle 用户配置 Linux 环境变量
su - oracle
vim ~/.bash_profile
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=oracletest
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORA_INVENTORY=/data/oradata/app/oraInventory
export ORACLE_SID=orcl
export PDB_NAME=pdb1
export DATA_DIR=/data/oradata/oradata
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
编辑完成后,执行source ~/.bash_profile
,使oracle用户环境变量生效
4 安装数据库
4.1 解压软件包
官网文件下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
在oracle
用户下执行安装文件解压命令
su - oracle
cd $ORACLE_HOME
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
4.2 安装实例
su - oracle
cd $ORACLE_HOME
./runInstaller -ignorePrereq -waitforcompletion -silent \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=${ORA_INVENTORY} \
ORACLE_HOME=${ORACLE_HOME} \
ORACLE_BASE=${ORACLE_BASE} \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
稍等片刻,数据库即安装完成
4.3 配置脚本
切换到root下
# 更改$ORACLE_BASE/oraInventory的权限
sh /data/oradata/app/oraInventory/orainstRoot.sh
# 对集群的初始化和配置任务
sh /data/oracle/product/19.3.0/dbhome_1/root.sh
5 安装后配置
5.1 配置监听
执行su - oracle
命令切换到oracle用户,使用以下命令启动监听
lsnrctl start //启动oracle数据库监听
lsnrctl status //查看oracle数据库监听状态
lsnrctl stop //停用oracle数据库监听
5.2 创建数据库
执行以下命令创建数据库,可能需要一些时间
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname ${ORACLE_SID} -sid ${ORACLE_SID} \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword 123456 \
-systemPassword 123456 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName ${PDB_NAME} \
-pdbAdminPassword 123456 \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 800 \
-storageType FS \
-datafileDestination "${DATA_DIR}" \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
等待所有的process都变成complete状态即创建成功
5.3 添加用户
# 登录数据库
sqlplus / as sysdba
# 创建用户
create user c##oratest identified by 123456;
# 给用户授权
grant connect, resource,dba to c##oratest;
注:因Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container
Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系,所以创建用户需要加c##
5.4 连接测试
使用给定的用户名密码即可远程连接
# 可以登录服务器端执行如下命令:
# 查看数据库监听
lsnrctl status
# 如果没有开启监听,需要执行 lsnrctl start 开启监听
# 如下所示表示已开启监听
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 14-NOV-2022 16:28:20
Uptime 0 days 1 hr. 17 min. 2 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /data/oracle/diag/tnslsnr/oracletest/listener/alert/log.xml
Listening Endpoints Summary...
6 小结
无