当前位置: 首页 > news >正文

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 小结

相关文章:

  • 20240919在友善之臂的NanoPC-T6开发板上使用Rockchip原厂的Buildroot时打开CONFIG_USB_NET_RNDIS_HOST宏
  • 基于SpringBoot+Vue+MySQL的志愿服务管理系统
  • 云服务器拉取docker镜像
  • web知识
  • VMware Workstation Pro Download 个人免费使用
  • 回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测+交叉验证
  • android中常见的面试题,讲的太透彻了
  • 预测淡水质量
  • 【蓝桥杯】快读|min和max值的设置|小明和完美序列|​顺子日期​|星期计算|山
  • CSS常见选择器
  • 自然语言处理: 第十三章Xinference部署
  • MySQL学习笔记3: MySQL数据库基础
  • 提交 bug 的内容书写规范
  • 16含风光水的虚拟电厂与配电公司协调调度模型(场景削减MATLAB程序)
  • Linux中find用法示例
  • 能源监控管理系统|瑜岿科技
  • RV1126笔记五:人脸识别方案<三>
  • 基于Python的Flask WEB框架实现后台权限管理系统(含数据库),内容包含:用户管理、角色管理、资源管理和机构管理
  • MySQL面试常问问题(锁 + 事务) —— 赶快收藏
  • Java进阶—JUC编程
  • 机器学习之模型调优
  • 为行业赋能 助力行业客户业务大放异彩
  • docker 搭建 Nuget 服务器,CentOS,宝塔面板
  • ubuntu:自动加载第三方设备驱动
  • 155. SAP Smart Table 的 Personalization(个性化配置)
  • Redis高级篇之最佳实践
  • 百度工程师教你玩转设计模式(装饰器模式)
  • 深度!用“极速统一”,开启金融行业数据分析新范式
  • lvm 制作
  • 【方案开发】医用级人体体温计额温仪方案
  • 使用mpdf生成pdf文件
  • 全国数据治理认证DAMA-CDGA/CDGP(线上班)招生简章