环境信息: virtual box 7.2.4, oracle linux 8.10, Oracle19c
1. virtual box 安装ol8 Minimal 后配置windows 主机与OS共享目录
安装基础工具
sudo dnf install -y vim wget unzip net-tools bind-utils lsof tar
install Guest Additions for oracle Linux 8.10
更新系统
sudo dnf update -y
确认当前内核(一般是 UEK)
uname -r #如果输出类似:5.15.x-xxx.el8uek.x86_64 确认是 UEK
安装必要依赖(UEK 对应)
sudo dnf install -y kernel-headers-(uname -r) kernel-uek-devel-(uname -r) gcc make perl elfutils-libelf-devel
Minimal Install 安装解压工具
sudo dnf install -y bzip2 tar gzip xz
挂载 Guest Additions ISO
Devices → Insert Guest Additions CD Image
sudo mkdir -p /mnt/vbox
sudo mount /dev/cdrom /mnt/vbox
启用 UEK 对应的软件仓库
sudo dnf config-manager --enable ol8_UEKR7
安装 Guest Additions
cd /mnt/vbox
sudo sh VBoxLinuxAdditions.run
将用户加入相应组
sudo usermod -aG vboxsf $USER
sudo reboot
验证结果
lsmod | grep vbox
virtual box 设置共享目录

创建普通维护用户
1. 创建管理用户
sudo useradd -m -s /bin/bash XXX
2. 设置强密码
sudo passwd XXX
检查wheel组是否存在
getent group wheel
3. 添加到wheel组
sudo usermod -aG wheel XXX
4. 添加到vboxsf组(访问VirtualBox共享目录)
sudo usermod -aG vboxsf XXX
为 Oracle 19c 做关键准备
sudo systemctl disable --now firewalld
设置主机名解析
sudo vi /etc/hosts
装 Oracle 预安装包
检查是否已存在oracle用户
id oracle #存在则不能直接使用下面预安装命令创建相应用户,用户组和相关参数,需要如下先删除再安装
bash
sudo dnf remove oracle-database-preinstall-19c
sudo userdel -r oracle
sudo groupdel oinstall
sudo groupdel dba
sudo groupdel oper
sudo dnf install oracle-database-preinstall-19c
#sudo dnf install oracle-database-preinstall-19c命令实际作用
预安装包会自动:
1. 创建所有必要的组
oinstall # Oracle 库存组(软件所有者)
dba # 数据库管理员组(SYSDBA)
oper # 操作员组
backupdba # 备份管理员组
dgdba # Data Guard 管理员组
kmdba # 密钥管理组
racdba #RAC 集群管理员
2. 创建 oracle 用户(UID/GID 54321)属主 oinstall,附加组 dba 等
3. 设置系统内核参数 kernel 参数(sysctl)写入 /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf
4. 安装依赖包
5. 配置环境限制 配置 SELinux 用户限制(limits.conf)写入 /etc/security/limits.d/oracle-database-preinstall-19c.conf
#上面预安装程序创建的用户oracle 没有密码,不能用于SSH远程登录
sudo passwd oracle
预先安装程序判断OS没有已存在的oracle用户后才会创建,怕影响已存在用户
将oracle-database-preinstall-19c创建用户加入vboxsf 组以便其可以访问共享目录
sudo usermod -aG vboxsf oracle
手动建目录、设环境变量
创建 Oracle 目录结构
bash
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01
配置 oracle 用户环境变量
bash
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$ORACLE_HOME/bin:$PATH
解压安装介质
bash
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
cd $ORACLE_HOME
确认目录结构
bash
tree -L 2 /u01/app/oracle/product/19.0.0/dbhome_1/ 2>/dev/null || find /u01/app/oracle/product/19.0.0/dbhome_1/ -type f | head -20
执行非GUI静默安装
#下面为贴近生产的命令行方式安装19c
- 准备 response file
bash
cd $ORACLE_HOME/install/response
cp db_install.rsp ~/db_install.rsp
修改以下关键项
bash
oracle.install.option=INSTALL_DB_SWONLY # 仅安装数据库软件
# Oracle Base / Home
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
# OS 组
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory # 清单目录
oracle.install.db.InstallEdition=EE # 企业版
# OS 组 数据库类型和配置
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false # Root 脚本执行方式
执行静默安装
cd $ORACLE_HOME
#提前设置安装检查不能识别的OS版本,否则系统得装 OL 8.6 或 8.7
bash
export CV_ASSUME_DISTID=OL8U10
./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereqFailure
#执行 root 脚本
sudo /u01/app/oraInventory/orainstRoot.sh #执行 oraInventory 初始化脚本
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
/u01/app/oraInventory 权限已设置,保证了 Oracle 软件可以正确注册到中央 inventory
-
所属组改为 oinstall
-
组有读写权限,其他用户无权限
sudo /u01/app/oracle/product/19.0.0/dbhome_1/root.sh #执行 ORACLE_HOME 初始化脚本
设置 ORACLE_HOME 下文件和目录权限
创建必要的用户组和符号链接
注册软件信息到 central inventory
建库并设置开机自启
静默建库(CDB + PDB)
bash
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname ORCLCDB \
-sid ORCLCDB \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName ORCLPDB1 \
-characterSet AL32UTF8 \
-sysPassword Oracle123 \
-systemPassword Oracle123 \
-pdbAdminPassword Oracle123 \
-datafileDestination /u01/app/oracle/oradata \
-storageType FS \
-totalMemory 2048 \
-emConfiguration NONE
设置开机自启
vi /etc/oratab
测试 sqlplus:
$ORACLE_HOME/bin/sqlplus /nolog
SQL> exit;