CentOS7安装Oracle数据库

一、关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

setenforce 0

二、修改主机名

hostnamectl set-hostname oracle

echo "127.0.0.1 oracle" >> /etc/hosts

三、安装Oracle所有依赖

yum install -y binutils gcc gcc-c++ glibc glibc-devel libaio libaio-devel libstdc++ libstdc++-devel make sysstat elfutils-libelf elfutils-libelf-devel ksh compat-libcap1 compat-libstdc++-33 libnsl libnsl-devel unixODBC unixODBC-devel net-tools

报错:Cannot find a valid baseurl for repo: base/7/x86_64

CentOS7源过期

修复:# 进入源目录

cd /etc/yum.repos.d/

备份旧源

mkdir backup

mv *.repo backup/

下载阿里云可用的 CentOS 7 最新源

curl -o CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

清理缓存

yum clean all

yum makecache

重新安装依赖,成功。

四、创建用户和组

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle # 设置密码:q1w2e3@123!!!!!

五、配置内核参数

vi /etc/sysctl.conf

添加以下内容:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4294967295

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 = 1048586

生效

sysctl -p

​​​​​​​六、配置用户限制

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

七、创建安装目录

mkdir -p /opt/oracle/product/19c/dbhome_1

mkdir -p /opt/oracle/oradata

mkdir -p /opt/oraInventory

chown -R oracle:oinstall /opt/oracle

chown -R oracle:oinstall /opt/oraInventory

chmod -R 775 /opt/oracle

八、配置Oracle环境变量

su - oracle

vi .bash_profile

添加:

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1

export ORACLE_SID=orcl

export PATH=ORACLE_HOME/bin:PATH

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

生效:

source .bash_profile

Exit

九、下载安装包

LINUX.X64_193000_db_home.zip 上传到/opt/oracle/product/19c/dbhome_1

cd /opt/oracle/product/19c/dbhome_1

wget -c https://download.oracle.com/otn/linux/oracle19c/190000/LINUX.X64_193000_db_home.zip

授权:

chown -R oracle:oinstall /opt/oracle/product/19c/dbhome_1

十、安装Oracle 19c

1、切换oracle用户

必须切换

为什么不能用 root 装?

  • Oracle 强制规定 :只能用 oracle 用户安装
  • 用 root 直接装会 直接报错、安装失败、权限全乱

后期数据库无法启动、无法使用

su - oracle

cd /opt/oracle/product/19c/dbhome_1

2、解压

unzip LINUX.X64_193000_db_home.zip

3、静默安装(无图形界面)

./runInstaller -silent -ignorePrereqFailure \

oracle.install.option=INSTALL_DB_SWONLY \

ORACLE_HOSTNAME=oracle \

UNIX_GROUP_NAME=oinstall \

INVENTORY_LOCATION=/opt/oraInventory \

SELECTED_LANGUAGES=en,zh_CN \ ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 \

ORACLE_BASE=/opt/oracle \

oracle.install.db.InstallEdition=EE \

oracle.install.db.DBA_GROUP=dba \

oracle.install.db.OPER_GROUP=dba \

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \

DECLINE_SECURITY_UPDATES=true

4、退出oracle用户

exit

5、执行脚本

/opt/oraInventory/orainstRoot.sh

/opt/oracle/product/19c/dbhome_1/root.sh

6、创建数据库实例

su - oracle

dbca -silent -createDatabase \

-templateName General_Purpose.dbc \

-gdbname orcl \

-sid orcl \

-SysPassword oracle123 \

-SystemPassword oracle123 \

-DatafileDestination /opt/oracle/oradata \

-RedoLogFileSize 500 \

-StorageType FS \

-CharacterSet AL32UTF8 \

-NationalCharacterSet AL16UTF16

7、启动监听

lsnrctl start

lsnrctl status

8、登录数据库测试

sqlplus / as sysdba

Startup

看到:Database opened.

安装完成

相关推荐
爱喝水的鱼丶10 小时前
SAP-ABAP:SELECT查询性能优化基础——索引匹配、条件顺序与缓冲机制利用技巧
数据库·性能优化·select·sap·abap·开发交流·交流学习
zhoupenghui16810 小时前
ClickHouse merge引擎详解以及应用
数据库·clickhouse·merge·mergetree
@insist12310 小时前
信息系统管理工程师-任务、标准、EDM 过程与关键域
java·大数据·数据库
qq_3660862211 小时前
关于接口路径中中文值解码问题
java·开发语言·数据库
ClouGence11 小时前
数据库为什么需要 SSL?一文了解 SSL 连接原理与配置
数据库·开源
一十九的酒11 小时前
Oracle 密码恢复实战:使用 SPARE4 哈希值还原用户密码
数据库·oracle·密码丢失·密码恢复·账户锁定
冰暮流星11 小时前
mysql之新建表及对表的查询
android·数据库·mysql
C语言Plus11 小时前
C++ SqlBuilder一个简单、灵活且类型安全的 C++ SQL 构建器库
数据库·sql·安全·c++20
喝茶与编码11 小时前
真实业务场景:高并发 Upsert 死锁频发?InnoDB 锁机制与重试机制深度解析
数据库·python
BreezeJiang11 小时前
做完 AI 日记本后,我终于理解了:向量数据库不是用来替代 MySQL 的
数据库