https://www.cnblogs.com/chengxuyonghu/p/18096202
1、下载软件:
# 1. 删除旧包
rm -f oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
# 2. 用有效源重新拉取
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
# 3. 本地安装
sudo yum localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
# 4. 下载:
https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html
下载:[oracle-database-ee-19c-1.0-1.x86_64.rpm](https://download.oracle.com/otn/linux/oracle19c/190000/oracle-database-ee-19c-1.0-1.x86_64.rpm?AuthParam=1753110188_cfe20d5f62e65d194a14199afdf36391 "oracle-database-ee-19c-1.0-1.x86_64.rpm")

image.png
2、安装环境
java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
3、安装依赖
yum -y install libstdc++-devel compat-libstdc++-33 ksh glibc-devel libaio-devel compat-libcap1
yum -y install 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 gcc-c++
cd /tmp
#先安装预安装包
yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
3.1、 如果报错: [Errno 14] HTTP Error 404 - Not Found 0.0 B/s | 0 B --:--:-- ETA
正在尝试其它镜像
CentOS 7 官方源已下线
则,改用 Vault 源(最稳妥)
sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i 's|^#baseurl=|baseurl=|g' /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i 's|mirror.centos.org|vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
sudo yum makecache fast
sudo yum install libXau-devel
4、创建用户
# 1. 创建用户
[root@localhost app]# useradd oracle
[root@localhost app]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# 2. 创建oinstall组和dba组
[root@localhost app]# groupadd oinstall
[root@localhost app]# groupadd dba
# 3. 设置用户oracle的主组为oinstall,次级组为dba
[root@localhost app]# usermod oracle -g oinstall -G dba
分别检查一下设置是否正确
[root@localhost app]# cat /etc/passwd
[root@localhost app]# cat /etc/group
# 3. 设置环境变量
su – oracle
vi ~/.bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=ORCLCDB
#配置立即生效
source ~/.bash_profile
- 安装Oracle
# 1. 将介质传输到/tmp下 进行安装
cd /tmp
yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
# 2. 安装程序:
su – root
cd /etc/init.d/
#查看配置有没有问题
vi oracledb_ORCLCDB-19c
#没问题执行脚本
./oracledb_ORCLCDB-19c configure
- 运行并修改编码为UTF8
chown -R oracle:oinstall /opt/oracle
[oracle@localhost ~]$ echo 'export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin' >> ~/.bashrc
[oracle@localhost ~]$ source ~/.bashrc
[oracle@localhost ~]$ sqlplus /as sysdba
[root@HM311~]# sqlplus /as sysdba
SQL> startup
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use AL32UTF8;
SQL> shutdown immediate;
SQL> startup
修改密码:
alter user sys identified by 123456;
alter user system identified by 123456;
- 安装完成后
1、修改listener.ora
vim $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST=172.22.4.15)(PORT=1521))
)
)
2、重启
lsnrctl stop
lsnrctl start
lsnrctl status
7、如果出现
The listener supports no services
The command completed successfully
则:
# 以 oracle 用户登录
sqlplus / as sysdba
SQL> startup
ALTER SYSTEM REGISTER;
ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=172.22.4.15)(PORT=1521))' SCOPE=BOTH;
ALTER SYSTEM REGISTER;
再次查看:
lsnrctl status
正常启动ORCLPDB实例后:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE SET TIME_ZONE='+08:00';
ALTER DATABASE OPEN;
启动ORCLPDB1实例
SHOW pdbs;
ALTER PLUGGABLE DATABASE ORCLPDB1 OPEN;
ALTER SYSTEM REGISTER; -- 立即向监听器注册
-- 1. 数据库实例级别
SELECT 'DBTIMEZONE' AS item, DBTIMEZONE AS value FROM dual;
-- 2. 当前会话级别
SELECT 'SESSIONTIMEZONE' AS item, SESSIONTIMEZONE AS value FROM dual;
-- 3. 操作系统/数据库服务器当前时间(含时区偏移)
SELECT 'SYSTIMESTAMP' AS item, TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD HH24:MI:SS TZH:TZM') AS value FROM dual;
-- 4. 时区文件版本
SELECT 'TIMEZONE_FILE' AS item, version || ' (' || filename || ')' AS value FROM v$timezone_file;
ALTER SESSION SET CONTAINER = ORCLPDB1;
ALTER PLUGGABLE DATABASE ORCLPDB1 SET TIME_ZONE='+08:00';
ALTER PLUGGABLE DATABASE ORCLPDB1 CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ORCLPDB1 OPEN;