RHEL 8 部署 Oracle 数据库
目录一、目标与环境二、Oracle安装包下载官方下载地址推荐三、安装详细步骤第一阶段系统准备全部以root用户操作1. 安装必要的依赖包2. 创建Oracle用户和组3. 创建目录结构并设置权限4. 配置系统内核参数5. 配置用户资源限制6. 配置 PAM 限制可选但推荐7. 禁用透明大页面和启用 HugePages性能优化第二阶段准备 Oracle 软件1. 上传安装文件2. 解压安装文件切换到oracle用户3. 准备诶响应文件第三阶段执行静默安装1. 开始安装仍然作为oracle用户2. 执行跟脚本3. 验证安装四、创建数据库并使用1. 创建数据库2. 创建示例表结构3. 查询测试4. 可选配置1永久保存设置可选2永久设置环境变量一、目标与环境操作系统最小化安装的 RHEL8数据库Oracle Database 19c (19.3)方式使用响应文件静默安装二、Oracle安装包下载官方下载地址推荐Oracle 官方技术网站免费下载网址https://www.oracle.com/database/technologies/oracle-database-software-downloads.html这是唯一官方的、合法的免费下载途径。下载步骤访问上述网址。找到 Oracle Database 19c 版本。在 Linux x86-64 栏目下点击第一个链接进行下载文件全名通常为LINUX.X64_193000_db_home.zip三、安装详细步骤第一阶段系统准备全部以root用户操作1. 安装必要的依赖包这是最关键的一步确保所有包都正确安装。dnf install -y bc \ binutils \ elfutils-libelf \ elfutils-libelf-devel \ fontconfig-devel \ glibc \ glibc-devel \ ksh \ libaio \ libaio-devel \ libXrender \ libX11 \ libXau \ libXi \ libXtst \ libgcc \ libnsl \ libstdc \ libstdc-devel \ libxcb \ make \ net-tools \ nss-softokn-freebl \ python3 \ python3-devel \ python3-pip \ gcc \ gcc-c \ glibc.i686 \ glibc-devel.i686 \ libnsl.i686注意如果您的系统没有注册到 Red Hat 订阅管理器可能需要配置本地或网络 YUM/DNF 源。2. 创建Oracle用户和组groupadd -g 54321 oinstall groupadd -g 54322 dba useradd -u 54321 -g oinstall -G dba oracle echo youke123YOUKE! | passwd --stdin oracle # 请务必设置密码为强密码这里以youke123YOUKE!示例3. 创建目录结构并设置权限mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u01/app/oracle/oradata mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01 chmod -R 775 /u014. 配置系统内核参数cat /etc/sysctl.conf EOF # Oracle Recommended Parameters fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 1073741824 kernel.shmmax 4398046511104 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 EOF # 使配置立即生效 sysctl -p5. 配置用户资源限制cat /etc/security/limits.conf EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 EOF6. 配置 PAM 限制可选但推荐cat /etc/pam.d/login EOF session required pam_limits.so EOF7. 禁用透明大页面和启用HugePages性能优化# 禁用透明大页面 echo never /sys/kernel/mm/transparent_hugepage/enabled echo never /sys/kernel/mm/transparent_hugepage/defrag # 使其在重启后持久化 cat /etc/rc.d/rc.local EOF if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never /sys/kernel/mm/transparent_hugepage/defrag fi EOF chmod x /etc/rc.d/rc.local第二阶段准备Oracle软件1. 上传安装文件将下载的LINUX.X64_193000_db_home.zip文件上传到服务器例如/u01/software/目录。mkdir -p /u01/software chown oracle:oinstall /u01/software # 使用 scp 或其它工具将文件上传到此目录2. 解压安装文件切换到oracle用户su - oracle cd /u01/app/oracle/product/19.3.0/dbhome_1 unzip -q /u01/software/LINUX.X64_193000_db_home.zip3. 准备诶响应文件Oracle在安装包中提供了响应文件模板。我们基于模板创建自己的文件。# 切换到响应文件模板目录 cd /u01/app/oracle/product/19.3.0/dbhome_1/install/response/ # 备份原始模板 cp db_install.rsp db_install.rsp.bak # 创建我们自己的响应文件直接使用vim编辑 vim db_install_my.rsp以下是需要修改的关键参数内容示例# 基本安装选项 oracle.install.responseFileVersion/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 # 响应文件版本声明 oracle.install.optionINSTALL_DB_AND_CONFIG # 安装软件并创建数据库如果仅安装软件的话等号后面参数改为INSTALL_DB_SWONLY DECLINE_SECURITY_UPDATEStrue UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 ORACLE_BASE/u01/app/oracle ORACLE_HOSTNAMEclient02 # 数据库版本 oracle.install.db.InstallEditionEE # 必需的管理组配置 oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPdba oracle.install.db.OSBACKUPDBA_GROUPdba oracle.install.db.OSDGDBA_GROUPdba # Data Guard 管理组 oracle.install.db.OSKMDBA_GROUPdba # 加密密钥管理组 oracle.install.db.OSRACDBA_GROUPdba # RAC 管理组 # Root脚本配置 oracle.install.db.rootconfig.executeRootScriptfalse # 可选如果您想要安装时创建数据库 oracle.install.db.ConfigureAsContainerDBtrue oracle.install.db.config.starterdb.typeGENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBNameorcl oracle.install.db.config.starterdb.SIDorcl oracle.install.db.config.starterdb.characterSetAL32UTF8 oracle.install.db.config.starterdb.memoryLimit2048 oracle.install.db.config.starterdb.password.ALLyouke123YOUKE! oracle.install.db.config.starterdb.storageTypeFILE_SYSTEM_STORAGE oracle.install.db.config.starterdb.fileSystemStorage.dataLocation/u01/app/oracle/oradata重要提示将文件中所有的youke123YOUKE!替换为您自己的强密码。DECLINE_SECURITY_UPDATES必须设为true否则安装会失败。第三阶段执行静默安装1. 开始安装仍然作为oracle用户cd /u01/app/oracle/product/19.3.0/dbhome_1 ./runInstaller -silent -responseFile /u01/app/oracle/product/19.3.0/dbhome_1/install/response/db_install_my.rsp安装过程会持续 10-30 分钟具体取决于系统性能。您会看到类似以下的输出Launching Oracle Database Setup Wizard... The response file for this session can be found at: ... You can find the log of this install session at: ... Starting Oracle Universal Installer... Checking Temp space: must be greater than 500 MB. Actual 15232 MB Passed Checking swap space: must be greater than 500 MB. Actual 4096 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2023-xx-xx_xx-xx-xxPM. Please wait ...2. 执行跟脚本当安装程序提示时打开另一个终端窗口以root用户身份运行以下脚本# 第一个脚本 /u01/app/oraInventory/orainstRoot.sh # 第二个脚本 /u01/app/oracle/product/19.3.0/dbhome_1/root.shroot.sh脚本会输出一些信息最后以Finished product-specific root actions.结束。回到安装会话的终端它会检测到根脚本已执行完毕并继续完成安装。3. 验证安装Successfully Setup Software.如果输出显示STATUS为OPENDATABASE_STATUS为ACTIVE那么恭喜您Oracle数据库已经在最小化RHEL8上成功安装并运行四、创建数据库并使用1. 创建数据库# 确保在oracle用户下 su - oracle # 设置环境变量 export ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export ORACLE_SIDorcl # 使用DBCA静默创建数据库 dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname orcl -sid orcl \ -characterSet AL32UTF8 \ -memoryPercentage 40 \ -emConfiguration NONE \ -datafileDestination /u01/app/oracle/oradata \ -storageType FS \ -sampleSchema false \ -automaticMemoryManagement false \ -sysPassword Oracle123! \ -systemPassword Oracle123!注意这个命令会运行几分钟请耐心等待。如果数据库已创建但未启动尝试手动启动# 启动数据库实例 sqlplus / as sysdba EOF STARTUP; EXIT; EOF # 这样的输出就是成功了 SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 15 18:59:26 2025 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to an idle instance. SQL ORACLE instance started. Total System Global Area 1191181696 bytes Fixed Size 8895872 bytes Variable Size 318767104 bytes Database Buffers 855638016 bytes Redo Buffers 7880704 bytes Database mounted. Database opened.创建完成后验证状态sqlplus / as sysdba EOF SELECT instance_name, status, database_status FROM v\$instance; SELECT name, open_mode FROM v\$database; EXIT; EOF这次看到# 如果输出显示STATUS为OPENDATABASE_STATUS为ACTIVE那么恭喜您Oracle数据库已经在最小化 RHEL8上成功安装并运行 INSTANCE_NAME STATUS DATABASE_STATUS --------------- --------- ----------------- orcl OPEN ACTIVE NAME OPEN_MODE --------- ------------ ORCL READ WRITE2. 创建示例表结构首先创建该目录# 创建orcl数据库文件目录 mkdir -p /u01/app/oracle/oradata/orcl # 设置正确的权限 chown -R oracle:oinstall /u01/app/oracle/oradata/orcl chmod -R 775 /u01/app/oracle/oradata/orcl再使用现有的目录创建表空间# 设置 Oracle 环境变量 export NLS_LANGAMERICAN_AMERICA.AL32UTF8 export ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export ORACLE_SIDorcl -- 连接到数据库 sqlplus / as sysdba -- 创建演示用户和表空间 CREATE TABLESPACE demo_ts DATAFILE /u01/app/oracle/oradata/orcl/demo01.dbf SIZE 100M AUTOEXTEND ON; CREATE USER demo_user IDENTIFIED BY demo123 DEFAULT TABLESPACE demo_ts QUOTA UNLIMITED ON demo_ts; GRANT CONNECT, RESOURCE TO demo_user; -- 切换到demo_user CONNECT demo_user/demo123然后直接创建表不需要创建新的表空间-- 创建部门表 CREATE TABLE departments ( department_id NUMBER PRIMARY KEY, department_name VARCHAR2(50) NOT NULL, location VARCHAR2(50) ); -- 创建员工表 CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, first_name VARCHAR2(50) NOT NULL, last_name VARCHAR2(50) NOT NULL, email VARCHAR2(100), hire_date DATE DEFAULT SYSDATE, salary NUMBER(10,2), department_id NUMBER, job_title VARCHAR2(50) ); -- 插入示例数据 INSERT INTO departments VALUES (10, 技术部, 北京); INSERT INTO departments VALUES (20, 销售部, 上海); INSERT INTO employees VALUES (1, 张, 明, zhang.mingcompany.com, DATE 2020-01-15, 15000, 10, 软件工程师); INSERT INTO employees VALUES (2, 李, 华, li.huacompany.com, DATE 2019-03-20, 12000, 20, 销售经理); COMMIT;3. 查询测试# 执行测试查询 SELECT e.first_name, e.last_name, e.salary, d.department_name FROM employees e, departments d WHERE e.department_id d.department_id; # 测试显示可能为 FIRST_NAME -------------------------------------------------- LAST_NAME SALARY -------------------------------------------------- ---------- DEPARTMENT_NAME -------------------------------------------------- 张 明 15000 技术部 李 华 12000 销售部 FIRST_NAME -------------------------------------------------- LAST_NAME SALARY -------------------------------------------------- ---------- DEPARTMENT_NAME --------------------------------------------------不用担心这是每行显示宽度引起的将其设置大一点就好了# 将每行显示宽度从默认的 80 字符增加到 200 字符让所有字段能在一行内显示完整 SET LINESIZE 200 # 设置每页显示 50 行避免了在少量数据时就翻页导致的字段名重复显示 SET PAGESIZE 50 # 再次执行查询语句结果 FIRST_NAME LAST_NAME SALARY DEPARTMENT_NAME -------------------------------------------------- -------------------------------------------------- ---------- -------------------------------------------------- 张 明 15000 技术部 李 华 12000 销售部4. 可选配置1永久保存设置可选如果您想每次启动 SQL*Plus 都自动应用这些设置可以创建登录脚本# 切换到oracle用户 su - oracle # 创建登录脚本 vim ~/.sqlplus/sqlplus_login.sql # 添加以下内容 -- 优化显示设置 SET LINESIZE 200 SET PAGESIZE 50 SET WRAP ON SET VERIFY OFF COLUMN product FORMAT A30 # 然后在~/.bash_profile中添加 export SQLPATH$HOME/.sqlplus2永久设置环境变量# 编辑oracle用户的配置文件 vim ~/.bash_profile # 添加以下内容 export ORACLE_BASE/u01/app/oracle export ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 export ORACLE_SIDorcl export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:$LD_LIBRARY_PATH export NLS_LANGSIMPLIFIED CHINESE_CHINA.AL32UTF8 # 使配置生效 source ~/.bash_profile # 现在测试 sqlplus / as sysdba # 直接就能登录成功
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2459465.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!