一、下载19C数据库
数据库下载:打开下载官网
https://www.oracle.com/cn/database/technologies/oracle19c-linux-downloads.html
复制下载链接:
复制下载链接的时候,如果迅雷是打开了的话,会自动跳出下载窗口。
文件下载链接如下:
https://download.oracle.com/otn/linux/oracle19c/190000/LINUX.X64_193000_db_home.zip

二、安装前准备
1、换源(如需要)
备份原有的 repo 文件
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup
换源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-reg.repo
清除缓存
sudo yum clean all
建立缓存
sudo yum makecache
2、更新软件
sudo yum update -y
3、安装必要包
sudo yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
4、配置内核参数
编辑 /etc/sysctl.conf文件 :
运行:vim /etc/sysctl.conf
添加以下内容:
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

应用更改
sudo sysctl -p

5、配置用户限制
编辑 /etc/security/limits.conf 文件
运行命令:vim /etc/security/limits.conf
添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

6、配置PAM限制
编辑:/etc/pam.d/login
运行命令:vim /etc/pam.d/login
添加:
session required pam_limits.so
7、创建用户和组、创建安装目录
创建用户和组
创建组
sudo groupadd oinstall
sudo groupadd dbb
创建用户oracle并(-g)指定主组 oinstall 指定附加组(-G)dba
sudo useradd -g oinstall -G dba oracle
更改密码
sudo passwd oracle
创建以下目录并赋加权限
#在根目录下新建文件
sudo mkdir -p /u01/app/oracle
sudo mkdir -p /u01/app/oraInventory
# 将/u01目录及其下所有文件和子目录的所有者为oracle,所属组为oinstall
sudo chown -R oracle:oinstall /u01
#赋予775权限
sudo chmod 775 /u01
8、配置Oracle用户环境变量
切换到ora用户
su - oracle
编辑 ~/.bash_profile
运行:vim ~/.bash_profile

添加:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
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数据库
接下来的操作都在Oracle账号下执行
ssh工具下载链接:
https://www.hostbuf.com/t/988.html
1、将下载好的数据库安装包复制到 home 目录下

2、解压安装文件
进入home目录:cd /home

将 LINUX.X64_193000_db_home.zip 文件解压到/u01/app/oracle/product/19.3.0/dbhome_1
创建目录命令:sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
解压命令:sudo unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1
3、运行安装程序
添加执行权限
# 添加执行权限
sudo chmod +x /u01/app/oracle/product/19.3.0/dbhome_1/runInstaller
# 确保整个目录的权限正确
sudo chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/dbhome_1
sudo chmod -R 755 /u01/app/oracle/product/19.3.0/dbhome_1
在home目录下新建并编辑 db_install.rsp 安装信息文件
vim /home/db_install.rsp
并添加以下内容:
####################################################################
## Copyright(c) Oracle Corporation 1998,2019. All rights reserved.##
## ##
## Specify values for the variables listed below to customize ##
## your installation. ##
## ##
####################################################################
# Do not change the following system generated value.
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.3.0
# Installation Option
oracle.install.option=INSTALL_DB_SWONLY
# UNIX group name
UNIX_GROUP_NAME=oinstall
# Inventory location
INVENTORY_LOCATION=/u01/app/oraInventory
# Languages
SELECTED_LANGUAGES=en
# Oracle Home
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
# Oracle Base
ORACLE_BASE=/u01/app/oracle
# Database edition
oracle.install.db.InstallEdition=EE
# Database role (OS groups)
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
# Cluster nodes
oracle.install.db.CLUSTER_NODES=
# Security updates
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
# Auto updates
oracle.installer.autoupdates.option=SKIP_UPDATES
进入dbhome_1目录
cd $ORACLE_HOME

运行安装命令:./runInstaller -silent -responseFile /home/db_install.rsp
显示如下信息为正在安装:

安装完成显示如下:

4、执行配置脚本
以 root 用户的身份执行以下脚本:
sudo /u01/app/oraInventory/orainstRoot.sh
sudo $ORACLE_HOME/root.sh

四、开放1521端口
使用firewall-cmd(firewalld)
开放1521端口用于远程连接数据库
1. 查看当前防火墙状态
sudo systemctl status firewalld

如果防火墙未运行,启动并启用
sudo systemctl start firewalld
sudo systemctl enable firewalld
2. 开放1521端口
开放1521端口,用于外部连接(如Windows连接数据库使用)
# 添加端口到永久规则
sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent
# 重新加载防火墙配置(重启防火墙重新加载配置)
sudo firewall-cmd --reload

3. 验证端口是否开放
# 查看所有开放端口
sudo firewall-cmd --zone=public --list-ports
# 或者查看完整配置
sudo firewall-cmd --zone=public --list-all

如果需要指定源IP
# 允许特定IP访问1521端口
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="1521" accept'
# 重新加载
sudo firewall-cmd --reload
4、测试连接
本地测试
# 查看监听端口
sudo netstat -tlnp | grep 1521
# 或
sudo ss -tlnp | grep 1521
# 测试本地连接
telnet localhost 1521

远程测试
# 从另一台机器测试
telnet <服务器IP> 1521
# 或
nc -zv <服务器IP> 1521
连接成功如下

五、创建数据库(数据库实列)
1. 使用DBCA创建数据库
在Oracle账号下运行命令创建数据库
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname orcl -sid orcl \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword YourSysPassword123 \
-systemPassword YourSystemPassword123 \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 2048 \
-storageType FS \
-datafileDestination /u01/app/oracle/oradata \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
等待创建完成

创建完成

2. 配置监听器
运行命令配置监听器
netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
配置成功如下图:

六、基本设置与命令的使用
验证安装检查数据库状态
sqlplus / as sysdba
SQL> SELECT name, open_mode FROM v$database;
SQL> exit

检查监听器状态
lsnrctl status
正常开启状态

启动/停止监听器
# 启动
lsnrctl start
# 停止
lsnrctl stop
启动/停止数据库
# 启动
sqlplus / as sysdba
SQL> startup
# 停止
SQL> shutdown immediate
创建(数据库和监听器)自启服务文件
创建前先在oracle账号下cd $ORACLE_HOME进入目录,使用pwd查看文件路径

查看后切换到root用户
su - root
方法一:创建监听器和数据库服务
创建监听器服务:
sudo vim /etc/systemd/system/oracle-listener.service
添加以下内容(注意:使用绝对路径):
[Unit]
Description=Oracle Net Listener
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
Environment="ORACLE_SID=orcl"
Environment="PATH=/usr/local/bin:/usr/bin:/bin:/u01/app/oracle/product/19.3.0/dbhome_1/bin"
# 使用绝对路径!不要用 $ORACLE_HOME
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl stop
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
创建数据库服务:
sudo vim /etc/systemd/system/oracle-db.service
[Unit]
Description=Oracle Database Service
After=network.target oracle-listener.service
Wants=oracle-listener.service
[Service]
Type=forking
User=oracle
Group=oinstall
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
Environment="ORACLE_SID=orcl"
Environment="PATH=/usr/local/bin:/usr/bin:/bin:/u01/app/oracle/product/19.3.0/dbhome_1/bin"
# 使用绝对路径!
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.3.0/dbhome_1
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.3.0/dbhome_1
Restart=on-failure
RestartSec=30
TimeoutSec=300
[Install]
WantedBy=multi-user.target
设置自动启动
# 重新加载 systemd
sudo systemctl daemon-reload
# 启用监听器服务
sudo systemctl enable oracle-listener.service
# 启用数据库服务
sudo systemctl enable oracle-db.service
# 启动监听器
sudo systemctl start oracle-listener.service
# 启动数据库
sudo systemctl start oracle-db.service
# 检查状态
sudo systemctl status oracle-listener.service
sudo systemctl status oracle-db.service
方法二:创建单个服务(监听器+数据库)
创建(监听器+数据库)服务文件:oracle.service
sudo vim /etc/systemd/system/oracle.service
[Unit]
Description=Oracle Database and Listener
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
Environment="ORACLE_SID=orcl"
Environment="PATH=/usr/local/bin:/usr/bin:/bin:/u01/app/oracle/product/19.3.0/dbhome_1/bin"
# 创建启动脚本
ExecStart=/bin/bash -c '/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start && sleep 3 && /u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.3.0/dbhome_1'
# 创建停止脚本
ExecStop=/bin/bash -c '/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.3.0/dbhome_1 && sleep 3 && /u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl stop'
Restart=on-failure
RestartSec=30
TimeoutSec=300
[Install]
WantedBy=multi-user.target
设置自动启动
# 重新加载 systemd
sudo systemctl daemon-reload
# 启用服务
sudo systemctl enable oracle.service
# 启动服务
sudo systemctl start oracle.service
# 检查状态
sudo systemctl status oracle.service
注:正常可用,设置好,重启正常自启数据库和监听器后,下面的检查修复可以不做。
检查配置是否正确
# 检查服务文件语法
systemd-analyze verify /etc/systemd/system/oracle*.service
# 查看服务文件内容
cat /etc/systemd/system/oracle.service
# 检查服务状态
systemctl status oracle.service --no-pager
修复 /etc/oratab 配置
确保数据库允许自动启动(如果没有自动启动)
# 检查 /etc/oratab
cat /etc/oratab
# 如果没有配置,添加
echo "orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y" | sudo tee -a /etc/oratab
七、远程连接和基本使用
用Navicat数据库软件连接Oracle数据库
打开软件后点击连接------Oracle

输入住址IP地址,用户名、密码,点测试连接,提示连接成功后,点确定就可以了。

之后双击连接就可以了

数据库基础命令
重置密码、创建用户、授予权限
# 一
# 1、以oracle用户登录
su - oracle
# 2、使用操作系统认证连接到数据库
sqlplus / as sysdba
# 3、重置密码
SQL> ALTER USER 用户名 IDENTIFIED BY 新密码;
# 如
SQL> ALTER USER sys IDENTIFIED BY Oracle123;
#二
# 1、创建新用户
CREATE USER newuser IDENTIFIED BY 11111111;
# 2、授予权限
GRANT CONNECT, RESOURCE TO newuser;
GRANT CREATE SESSION TO newuser;
GRANT UNLIMITED TABLESPACE TO newuser;
# 然后使用sqlplus testuser/TestPass123连接数据库
# 三
# 注:用用命令终端登陆时,有些账号需要特定的身份登陆。如:SYS用户必须以SYSDBA或SYSOPER身份登录。
sqlplus sys/Oracle123 as sysdba
一、重置密码测试登陆

二、创建新用户测试登陆

三、注:用用命令终端登陆时,有些账号需要特定的身份登陆。如:SYS用户必须以SYSDBA或SYSOPER身份登录。
sqlplus sys/Oracle123 as sysdba

八、遇到的问题等等
在安装和使用时碰到的问题,在安装时如果出现报错安装失败等问题。可以先看提示,如果提示找不到问题可以看看安装日记,查找有用的信息。
如:
安装错误
一般错误,第一次安装不成功后,再次安装一般会出现以下错误

此时只需要进入 cd //u01/app/oraInventory 目录,运行 rm -r * 命令删除文件夹里面的所有文件及可
注:使用时遇到以下问题提示未找到命令

原因是

未找到命令 . . .(加载配置文件问题)
在系统开机后,我们用root账号登陆到系统桌面、root用ssh登陆,或者从root使用命令 su oracle 登陆,运行 sqlplus 命令提示未找到命令


这个就是因为系统没有自动加载 ~/.bash_profile 文件也就是在oracle账号下编辑修改的文件

需要本地登陆Oracle账号,远程ssh直接登陆Oracle账号,或者使用su - oracle 命令登陆(从新登陆)到Oracle账号才能使用。
su - oracle

ssh oracle@ip

本地登陆

安装报错查看日记找到的问题

监听器没启动
Navicat连接报错如下

运行命令启动监听器
lsnrctl start

数据库实例没有运行。
Navicat连接报错如下

# 登陆数据库
sqlplus / as sysdba
# 检查数据库状态
SQL> select instance_name, status from v$instance;
# 如果未启动,启动数据库
SQL> startup
