CentOS 6.5 虚拟机部署 Oracle 10g 与自动化测试环境实战

发布时间:2026/10/16 23:08:24
CentOS 6.5 虚拟机部署 Oracle 10g 与自动化测试环境实战
简介这份文档面向需要在虚拟机中搭建CentOS 6.5-x86_64开发或测试环境的运维与测试人员系统梳理了从操作系统安装到常用组件部署的完整流程。资源包内仅含1个docx文件大小约32KB以图文步骤形式记录关键配置命令与参数便于按需检索和对照操作。内容覆盖网络静态IP与DNS配置、VMware虚拟工具安装、mpiag与oracle用户创建以及SSH、FTP、telnet、SVN、JDK、buildc、RF和Oracle数据库等组件的安装要点并针对root访问限制、防火墙与SELinux、FTP中文路径等常见问题给出处理思路。已有384人学习下载适合刚接触Linux部署、需要快速复现CentOS 6.5基础环境并完成Oracle相关自动化测试准备的读者参考。1. 虚拟机里装 CentOS 6.5一份被 Oracle 逼出来的部署清单如果你手上有一台跑着 Oracle 10g 的老测试机或者要复现一套基于 buildc RF 的自动化测试环境那你大概率绕不开 CentOS 6.5 这个版本。这份文档记录的就是在虚拟机里从零搭出这套环境的完整过程装系统、配静态 IP、装 VMware Tools、建 mpiag 和 oracle 两个用户、开 SSH/FTP/Telnet、装 SVN 和 JDK、部署 buildc 框架、最后把 Oracle 数据库跑起来。它解决的不是怎么学 Linux的问题而是怎么在半天内把一台能跑自动化测试的机器交付出去的问题。适合谁适合需要维护遗留测试环境的一线工程师以及被要求照着文档搭一遍的新人。硬盘给 30G 不是随便写的Oracle 装完加上自动化测试跑起来20G 就没了剩下 10G 是留给你的后悔药。2. 装系统与网络配置静态 IP 是后面所有事的前提2.1 系统安装时的几个硬性选择安装介质是 RedHat 5.6_x64序列号 550dd56b51499bd5语言选中文防火墙直接禁用。这几项在安装界面里都是一次性选择装完再改成本高。硬盘 30G 的分配逻辑前面说了Oracle 数据库安装后自动化测试会吃掉 20G 左右所以别想着 20G 能凑合。安装完成后第一件事是把终端快捷方式放到桌面。这个操作看起来不起眼但后面所有配置都要在终端里敲命令没有快捷方式就得每次去菜单里翻属于典型的五分钟省事五天难受。2.2 静态 IP 配置ifcfg-eth0 逐行拆解网络配置是后面 SSH、FTP、SVN、Oracle 监听全部能通的基础。配置文件在/etc/sysconfig/network-scripts/ifcfg-eth0静态 IP 的写法如下# /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 # 接口名称别改 BOOTPROTOstatic # 静态配置DHCP 则写 dhcp BROADCAST10.10.126.255 # 广播地址此行可以不写 HWADDRB2:23:38:50:3E:6B # 网卡物理地址虚拟机里要跟实际一致 ONBOOTyes # 开机自动加载必须 yes IPADDR10.10.126.235 # IP 地址也可用 10.10.126.244 NETMASK255.255.255.0 # 子网掩码 GATEWAY10.10.126.1 # 默认网关 TYPEEthernet USERCTLyes IPV6INITno PEERDNSyes几个参数说明一下。BOOTPROTOstatic表示静态配置如果写成DHCP就是动态获取也可以写none。HWADDR在虚拟机里必须跟虚拟网卡的实际 MAC 一致否则网卡起不来。ONBOOTyes是开机自动加载写成 no 的话每次重启都要手动ifup eth0。PEERDNSyes表示允许 DHCP 获取的 DNS 覆盖/etc/resolv.conf静态 IP 场景下影响不大。DNS 配置在/etc/resolv.conf# /etc/resolv.conf nameserver 202.107.117.11 nameserver 210.83.210.155改完重启网络service network restart2.3 NAT 链接方式的配置差异如果虚拟机用的是 NAT 模式ifcfg-eth0的写法略有不同DEVICEeth0 BOOTPROTOnone # NAT 下常用 none HWADDR00:0c:29:2e:e8:f8 ONBOOTyes IPADDR192.168.50.132 NETMASK255.255.255.0 GATEWAY192.168.50.1 TYPEEthernet USERCTLyes IPV6INITnoNAT 模式下网关是虚拟网络编辑器里设定的网关地址通常是192.168.x.1这个段。IP 地址要在 NAT 网段内且不被 DHCP 池占用。这里BOOTPROTOnone和static效果一样都是不走 DHCP。提示改完网络配置后先用ping网关确认二层通不通再ping外网 DNS 确认路由和 DNS 都对。两步都过了再往下走否则后面 SSH 连不上你会以为是 SSH 的问题。3. 基础服务与用户体系SSH、FTP、Telnet 的取舍3.1 安装 VMware Tools虚拟机装完系统第一件事是装 VMware Tools否则分辨率、剪贴板共享、文件拖拽都不正常。操作步骤mkdir /home/temp cp /media/VMware\ Tools/VMwareTools-9.6.1-1378637.tar.gz /home/temp cd /home/temp gzip -d VMwareTools-9.6.1-1378637.tar.gz tar -xvf VMwareTools-9.6.1-1378637.tar cd vmware-tools-distrib/ ./vmware-install.plgzip -d解压.gz文件tar -xvf解开 tar 包然后进目录跑安装脚本。安装过程中一路回车用默认值即可。装完重启虚拟工具功能生效。3.2 创建 mpiag 和 oracle 用户useradd mpiag passwd mpiag useradd oracle passwd oracleuseradd建用户passwd设密码。这两个用户后面分别跑自动化测试和 Oracle 数据库权限要分清楚。mpiag 是测试执行用户oracle 是数据库管理用户别混用。3.3 SSH 配置关 SELinux 和 DNS 反解SSH 默认已安装并开启但 root 用户默认不可访问。要让 root 能 SSH 登录改/etc/sysconfig/selinux# 将 SELINUXenforcing 改为 SELINUXdisabled改完立即生效。另外 SSH 连接慢通常是 DNS 反向解析拖的在/etc/ssh/sshd_config尾部加一行UseDNS no3.4 FTP 安装与 root 访问放行FTP 服务端用 vsftpd安装包是vsftpd-2.0.5-16.el5_5.1.x86_64.rpm。启动和开机自启service vsftpd start chkconfig vsftpd onFTP 默认端口 21如果 iptables 开着需要放行vi /etc/sysconfig/iptables # 增加一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT让 root 用户能访问 FTP需要改三个文件# 1. 编辑 /etc/vsftpd/ftpusers在 root 前面加上 # # 2. 编辑 /etc/vsftpd/user_list在 root 前面加上 # # 3. 编辑 /etc/vsftpd/vsftpd.conf找到 userlist_enableYES把 YES 改为 NO service vsftpd restart如果 FTP 不能显示文件列表也不能创建文件还是 SELinux 的问题改/etc/selinux/config把 SELINUX 改为 disabled 后重启。如果 root 还是登不上临时关防火墙/etc/init.d/iptables status # 查看防火墙状态 /etc/init.d/iptables stop # 本次关闭 /etc/init.d/iptables restart # 重启防火墙永久关闭chkconfig --level 35 iptables off注意--level中间是两个英式小短线。如果每次 FTP 访问验证密码很慢是 DNS 反解的问题把/etc/resolv.conf里的 nameserver 注释掉然后重启 vsftpd。3.5 Telnet 安装与 root 访问Telnet 服务端安装包是telnet-server-0.17-39.el5.x86_64.rpm。启用服务vi /etc/xinetd.d/telnet # 将 disable 字段改为 no service xinetd restart让 root 用户能 telnet 登录方法一是去掉/etc/pam.d/login里的auth required /lib/security/pam_securetty.so但这个方法重启后没好用。方法二是编辑/etc/securetty加上pts/0 pts/1 pts/2 pts/3不需要重启即可生效。注意Telnet 是明文传输生产环境不要用。这里装它是因为老测试环境里有些脚本依赖 telnet 做连通性检查属于历史包袱。4. 开发环境搭建SVN、JDK、buildc 与 RF4.1 SVN 中文路径问题SVN 客户端默认已安装但中文路径会报错svn: Cant convert string from UTF-8 to native encoding。解决办法是在.bashrc里加export LC_ALLzh_CN.GBK这个坑很典型SVN 内部用 UTF-8系统 locale 是 GBK 时转换失败。加上这行后中文路径正常。4.2 JDK 安装与环境变量JDK 安装包是jdk-6u37-linux-x64.bin装到/usr/javamkdir /usr/java cp /home/temp/jdk-6u37-linux-x64.bin /usr/java cd /usr/java ./jdk-6u37-linux-x64.bin rm -f jdk-6u37-linux-x64.bin建软链接到/usr/bincd /usr/bin ln -s -f /usr/java/jdk1.6.0_37/jre/bin/java ln -s -f /usr/java/jdk1.6.0_37/bin/javac也可以不建链接直接重启机器。Jenkins 如果跑在 Linux 上没装 JDK需要配环境变量export JAVA_HOME/usr/java/jdk1.6.0_37/ export JRE_HOME/usr/java/jdk1.6.0_37/jre export PATH$PATH:/usr/java/jdk1.6.0_37/bin export CLASSPATH$CLASSPATH:./:/usr/java/jdk1.6.0_37/lib:/usr/java/jdk1.6.0_37/jre/libJAVA_HOME是 JDK 根目录JRE_HOME是 JRE 目录PATH让java和javac命令全局可用CLASSPATH指定类库搜索路径。4.3 buildc 框架部署buildc 从 SVN 导出cd /home/temp svn export http://10.10.125.156/svn0/mpiag/users/wangtzh/kernel_buildc-0.3.2 cd kernel_buildc-0.3.2 python setup.py install cd .. chmod 777 /usr/bin/buildcsvn export是不带.svn目录的干净导出python setup.py install是 Python 包的标准安装方式最后给/usr/bin/buildc可执行权限。4.4 RF 环境安装RF 框架从 SVN 导出后安装cd /home/temp svn export http://10.10.125.156/svn0/mpiag/users/wangtzh/rf_setup cd rf_setup python rf_setup.py install需要 root 用户执行安装。RF 是自动化测试框架buildc 是构建框架两者配合完成测试流程。5. Oracle 数据库安装从内核参数到监听配置5.1 解压安装包与用户配置文件Oracle 安装包是10201_database_linux_x86_64.cpio.gzgzip -d 10201_database_linux_x86_64.cpio.gz cpio -idv 10201_database_linux_x86_64.cpiogzip -d解压 gzcpio -idv从 cpio 归档中提取文件。oracle 用户的.bashrc需要配置环境变量关键部分# Oracle 环境 ORACLE_BASE/home/oracle; export ORACLE_BASE ORACLE_HOME$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME ORACLE_SIDorcl; export ORACLE_SID; ORACLE_TERMxterm; export ORACLE_TERM # 库路径 LD_LIBRARY_PATH$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib export LD_LIBRARY_PATH # Shell 搜索路径 PATH$PATH:$ORACLE_HOME/bin; export PATH # CLASSPATH CLASSPATH$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib CLASSPATH$CLASSPATH:$ORACLE_HOME/network/jlib export CLASSPATH # 语言设置 export NLS_LANGAMERICAN_AMERICA.UTF8 export LC_ALLCORACLE_BASE是 Oracle 根目录ORACLE_HOME是具体产品目录ORACLE_SID是数据库实例名。NLS_LANG和LC_ALL控制字符集图形化安装界面需要LC_ALLC。5.2 内核参数调整不调内核参数安装检查会报警告。在/etc/sysctl.conf尾部加# For Oracle kernel.shmmni 4096 kernel.sem 250 32000 100 128 fs.file-max 65536 net.ipv4.ip_local_port_range 1024 65000 net.core.rmem_default 262144 net.core.rmem_max 262144 net.core.wmem_default 262144 net.core.wmem_max 262144激活/sbin/sysctl -pkernel.shmmni是共享内存段最大数量kernel.sem是信号量参数fs.file-max是文件句柄上限后面几个是网络缓冲区大小。5.3 安装过程中的典型报错处理情况一操作系统版本检查失败报错Checking operating system version: must be redhat-3, SuSE-9, redhat-4... Failed。方法一是改/etc/redhat-release把版本号从 5.6 改成 4。方法二是改oraparam.ini在[Certified Versions]的Linux后面加上redhat-5。情况二libXp.so.6 缺失报错libXp.so.6: cannot open shared object file安装libXp-1.0.0-8.1.el5.i386.rpm即可。情况三DISPLAY 设置报错报错Xlib: connection to :0.0 refused by server或No protocol specified。root 用户下执行xhost 然后回到 oracle 用户运行./runInstaller。情况四字符集选择数据库字符集选Simplified Chinese ZHS16GBK。以前用ZGS32 GB18030但导入 sqlplus 语句有乱码。数据库密码设为a12345A。5.4 监听配置与数据库启动数据库监听配置示例mpiag28 (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 10.10.126.188)(PORT 1521)) ) (CONNECT_DATA (SERVICE_NAME orcl) ) )启动数据库四步lsnrctl start # 打开监听 sqlplus /nolog # 进入 sqlplus SQL conn /as sysdba # 用 sysdba 角色登录 SQL startup # 启动数据库验证监听sqlplus /nolog conn A28/A28mpiag28 conn A27/A27mpiag27 select table_name from user_tables;5.5 权限与共享内存问题mpiag 用户不能用 sqlplusroot 登录后chmod -R 777 /home/oracle。ORA-27121 共享内存段错误oracle 可执行程序没有正确的 setuid。解决su - oracle cd $ORACLE_HOME/bin chmod 6751 oraclempiag 用户不能 conn / as sysdbaroot 登录后usermod -a -G oracle mpiag。或者建 dba 组groupadd -g 151 dba usermod -a -G dba oracle usermod -a -G dba mpiag usermod -a -G oracle mpiag su - oracle sqlplus / as sysdba create user ops$mpiag identified by mpiag;5.6 打补丁补丁包p8202632_10205_Linux-x86-64.zip先关数据库unzip p8202632_10205_Linux-x86-64.zip cd Disk1 ./runInstaller sqlplus / as sysdba SQL startup upgrade SQL /home/oracle/product/10.2.0/db_1/rdbms/admin/catupgrd.sql如果报OUI-11108: Packages information not specified把/etc/redhat-release版本号改成 4。6. 避坑与排查那些文档没写但你一定会遇到的事6.1 坑一SELinux 没关干净导致 FTP 文件列表为空现象FTP 能登录但ls不显示文件也不能创建文件。原因SELinux 处于 enforcing 状态限制了 vsftpd 对文件系统的访问。解决改/etc/selinux/config把SELINUX改为disabled重启生效。临时验证可以setenforce 0但重启后会恢复。6.2 坑二SSH 连接慢到以为网络断了现象SSH 能连上但每次输完密码要等十几秒才进 shell。原因sshd 默认对客户端 IP 做 DNS 反向解析DNS 服务器响应慢或不可达时就会卡住。解决/etc/ssh/sshd_config尾部加UseDNS no重启 sshd。FTP 密码验证慢同理把/etc/resolv.conf里的 nameserver 注释掉再重启 vsftpd。6.3 坑三Oracle 安装检查报操作系统版本不匹配现象runInstaller走到操作系统版本检查时失败提示只支持 redhat-3/4 等。原因Oracle 10g 的oraparam.ini里没有 redhat-5 的认证标记。解决改/etc/redhat-release版本号为 4或者改oraparam.ini在Linux后面加redhat-5。前者影响系统标识后者只影响安装程序推荐后者。6.4 坑四mpiag 用户执行 sqlplus 报权限错误现象mpiag 用户跑sqlplus报ORA-27121: unable to determine size of shared memory segment。原因$ORACLE_HOME/bin/oracle没有 setuid 位非 oracle 用户无法访问共享内存。解决chmod 6751 $ORACLE_HOME/bin/oracle然后用ls -l确认权限是-rwsr-s--x。6.5 坑五SVN 中文路径报编码转换错误现象svn export或svn update遇到中文路径时报Cant convert string from UTF-8 to native encoding。原因系统 locale 是 UTF-8但 SVN 期望的 native encoding 是 GBK。解决在.bashrc里加export LC_ALLzh_CN.GBK重新登录或source ~/.bashrc。7. 验证清单与一个老手的检查习惯环境搭完不算完得有一套验证动作确认每个组件都真的能用。下面这张表是我每次交付前必跑的检查项检查项命令预期结果网络连通ping 10.10.126.1通DNS 解析nslookup 域名返回 IPSSH 登录ssh rootIP秒进 shellFTP 登录ftp IP用 root能列目录能上传SVN 导出svn export url无编码报错JDK 版本java -version1.6.0_37buildcbuildc --help有输出Oracle 监听lsnrctl statusREADY数据库连接sqlplus A28/A28mpiag28能查表这张表看着简单但每一条背后都对应一个前面踩过的坑。比如 SSH 登录那条如果没加UseDNS no你会在秒进和等十秒之间反复怀疑网络。最后说一个我自己的习惯每次装完 Oracle 打完补丁我一定会用 mpiag 用户跑一遍sqlplus / as sysdba和conn A28/A28mpiag28两个都通了才算完。因为补丁安装过程中catupgrd.sql会重建数据字典有时候会把之前赋的权限冲掉。这个动作花不了两分钟但能省掉后面自动化测试跑一半报数据库连接错误的排查时间。从那以后我每次交付前都强制走一遍这个验证清单希望帮到你。本文还有配套的精品资源点击获取