从零到生产:在CentOS 7虚拟机里手把手搭建Oracle 19c学习/测试环境(附卸载脚本)
从零到生产在CentOS 7虚拟机里手把手搭建Oracle 19c学习/测试环境附卸载脚本当数据库初学者第一次接触Oracle时往往会被其复杂的安装过程和庞大的体系结构吓退。而企业级数据库的学习又离不开真实的操作环境——这就是为什么我们需要一个既能模拟生产环境又方便随时重置的沙盒。本文将带你用最经济的方式在虚拟机中构建一个完整的Oracle 19c实验环境就像在游乐场里学习驾驶喷气式飞机既安全又真实。1. 环境准备构建纯净的CentOS 7沙盒1.1 虚拟机配置要点选择VMware Workstation Player或VirtualBox这类免费虚拟化工具建议分配以下资源CPU至少2核Oracle安装过程需要编译内存4GB起步低于此值可能导致安装失败存储50GB动态分配磁盘实际占用约25GB网络NAT模式避免复杂的桥接配置提示在虚拟机设置中启用虚拟化Intel VT-x/EPT选项能显著提升Oracle运行性能1.2 CentOS 7最小化安装从CentOS官网下载Minimal ISO镜像后安装时特别注意# 安装时在软件选择界面勾选 - 基础设施服务器 - 调试工具 - 兼容性程序库安装完成后立即执行以下基础配置# 更新系统 sudo yum update -y # 安装必要工具 sudo yum install -y vim wget unzip ftp1.3 系统参数调优编辑/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 1048576执行sysctl -p使配置生效并修改用户限制echo oracle soft nofile 1024 /etc/security/limits.conf echo oracle hard nofile 65536 /etc/security/limits.conf echo oracle soft stack 10240 /etc/security/limits.conf2. Oracle 19c部署全流程2.1 预安装环境配置关闭防火墙和SELinuxsystemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config安装Oracle预安装包sudo yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm2.2 数据库软件安装使用RPM包安装Oracle 19csudo yum localinstall -y oracle-database-ee-19c-1.0-1.x86_64.rpm初始化数据库约需20-40分钟/etc/init.d/oracledb_ORCLCDB-19c configure2.3 环境变量配置切换到oracle用户配置环境su - oracle vi ~/.bash_profile添加以下内容export ORACLE_HOME/opt/oracle/product/19c/dbhome_1 export PATH$PATH:$ORACLE_HOME/bin export ORACLE_SIDORCLCDB export LD_LIBRARY_PATH$ORACLE_HOME/lib:/usr/lib3. 数据库初始化与基础操作3.1 启动与连接数据库启动监听器和数据库服务lsnrctl start sqlplus / as sysdba startup查看PDB容器状态show pdbs; alter session set containerORCLPDB1; alter database open;3.2 创建测试用户建立练习用的测试用户CREATE USER testuser IDENTIFIED BY Test1234 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users; GRANT CREATE SESSION, CREATE TABLE TO testuser;3.3 常用管理命令速查操作类型命令示例说明启动监听lsnrctl start启动监听服务停止实例shutdown immediate立即关闭数据库查看表空间SELECT tablespace_name FROM dba_tablespaces显示所有表空间用户解锁ALTER USER scott ACCOUNT UNLOCK解锁被锁用户4. 环境维护与重置策略4.1 自动化卸载脚本创建/root/clean_oracle.sh清理脚本#!/bin/bash # 停止数据库服务 su - oracle -c sqlplus / as sysdba EOF shutdown immediate; exit; EOF # 停止监听 su - oracle -c lsnrctl stop # 删除安装目录 rm -rf /opt/oracle/ # 清理二进制文件 rm -f /usr/local/bin/{coraenv,dbhome,oraenv} # 删除配置文件 rm -f /etc/oratab # 卸载软件包 yum -y remove oracle-database-ee-19c rpm -e --noscripts oracle-database-preinstall-19c4.2 环境快照管理合理使用虚拟机快照功能基础快照纯净的CentOS系统预安装快照完成Oracle预配置后生产快照数据库安装完成并初始化练习快照包含测试数据和用户注意执行重大操作前建议先创建临时快照如Before_Drop_User4.3 日常维护技巧空间监控定期检查/tmp和归档日志目录# 检查空间使用 df -h # 清理旧归档日志 find /opt/oracle/archivelog -type f -mtime 7 -delete性能检查使用AWR报告分析性能EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); ?/rdbms/admin/awrrpt.sql在多次环境重建实践中我发现最耗时的环节往往是等待RPM包下载和数据库初始化过程。一个实用的技巧是在本地搭建YUM仓库缓存所有安装包这样后续重建环境时可以直接从本地安装速度能提升5-8倍。具体方法是将下载的rpm包放入/var/www/html/repo目录然后执行createrepo命令创建仓库索引。