外观
Oracle 单实例安装
安装前准备
系统要求
硬件要求
- 处理器:64 位处理器,至少 2 核心
- 内存:至少 2 GB,推荐 4 GB 以上
- 存储空间:
- 系统分区:至少 10 GB
- /tmp 分区:至少 1 GB
- Oracle 软件:至少 6 GB
- 数据文件:根据数据量确定
软件要求
- 操作系统:对应 Oracle 版本支持的操作系统版本
- Linux:Oracle Linux 7.4+,RHEL 7.4+,SLES 12+ 等
- Windows:Windows Server 2016+ 等
- 内核参数:已配置适合 Oracle 安装的内核参数
- 必需软件包:
- Linux:binutils, compat-libcap1, compat-libstdc++-33, gcc, gcc-c++, glibc, glibc-devel, ksh, libaio, libaio-devel, libgcc, libstdc++, libstdc++-devel, libXi, libXtst, make, sysstat 等
- Windows:.NET Framework 4.7.2+, Windows Management Framework 5.1+ 等
网络配置
- 主机名:已设置并解析正确
- IP 地址:已配置静态 IP 地址
- 防火墙:已开放 Oracle 相关端口(默认 1521)
- SELinux:Linux 系统上已设置为 permissive 或 disabled
用户和组创建
Linux 系统
bash
# 创建 Oracle 组
groupadd oinstall
groupadd dba
groupadd oper
# 创建 Oracle 用户
useradd -g oinstall -G dba,oper oracle
# 设置 Oracle 用户密码
passwd oracle
# 创建 Oracle 安装目录
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
# 设置目录权限
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/appWindows 系统
- 创建 Oracle 安装用户:使用本地管理员权限的用户
- 创建安装目录:如
D:\app\oracle\product\19.0.0\dbhome_1
环境变量配置
Linux 系统
编辑 Oracle 用户的 .bash_profile 文件:
bash
# Oracle 环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/adminWindows 系统
- 系统环境变量:
ORACLE_BASE:D:\app\oracleORACLE_HOME:D:\app\oracle\product\19.0.0\dbhome_1ORACLE_SID:ORCLPATH:添加%ORACLE_HOME%\bin
安装过程
下载安装介质
- 从 Oracle 官网下载:
- 访问 Oracle 技术网
- 选择对应的 Oracle 版本
- 下载安装包(Linux 为 .zip 文件,Windows 为 .exe 文件)
Linux 系统安装
解压安装包
bash
# 解压安装包
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
# 设置权限
chown -R oracle:oinstall /u01/app/oracle/product/19.0.0/dbhome_1启动安装向导
bash
# 切换到 Oracle 用户
su - oracle
# 启动安装向导
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller安装步骤
配置安全更新:
- 取消勾选"我希望通过 My Oracle Support 接收安全更新"
- 点击"下一步"
选择安装选项:
- 选择"创建并配置数据库"
- 点击"下一步"
系统类:
- 选择"服务器类"
- 点击"下一步"
数据库安装选项:
- 选择"单实例数据库安装"
- 点击"下一步"
安装类型:
- 选择"典型安装"
- 点击"下一步"
典型安装配置:
- 配置 Oracle 主目录、软件位置、数据库文件位置
- 设置数据库版本(企业版/标准版)
- 设置字符集(推荐 AL32UTF8)
- 设置全局数据库名和 SID
- 设置管理口令
- 点击"下一步"
先决条件检查:
- 系统会自动检查先决条件
- 解决所有警告和错误
- 点击"下一步"
概要:
- 检查安装配置信息
- 点击"安装"
执行配置脚本:
- 安装过程中会提示执行配置脚本
- 打开新终端,以 root 用户执行脚本:bash
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
完成:
- 安装完成后,点击"关闭"
Windows 系统安装
启动安装向导
- 双击下载的 Oracle 安装文件(如
setup.exe) - 选择"以管理员身份运行"
安装步骤
配置安全更新:
- 取消勾选"我希望通过 My Oracle Support 接收安全更新"
- 点击"下一步"
选择安装选项:
- 选择"创建并配置数据库"
- 点击"下一步"
系统类:
- 选择"服务器类"
- 点击"下一步"
数据库安装选项:
- 选择"单实例数据库安装"
- 点击"下一步"
安装类型:
- 选择"典型安装"
- 点击"下一步"
典型安装配置:
- 配置 Oracle 主目录、软件位置、数据库文件位置
- 设置数据库版本(企业版/标准版)
- 设置字符集(推荐 AL32UTF8)
- 设置全局数据库名和 SID
- 设置管理口令
- 点击"下一步"
先决条件检查:
- 系统会自动检查先决条件
- 解决所有警告和错误
- 点击"下一步"
概要:
- 检查安装配置信息
- 点击"安装"
完成:
- 安装完成后,点击"关闭"
安装后配置
数据库状态检查
Linux 系统
bash
# 检查监听器状态
lsnrctl status
# 检查数据库实例状态
sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
SQL> SELECT open_mode FROM v$database;
SQL> exit;Windows 系统
检查服务状态:
- 打开"服务"管理控制台
- 检查 Oracle 相关服务是否启动
检查数据库状态:
- 打开"SQL*Plus"
- 执行:sql
CONNECT / AS SYSDBA SELECT status FROM v$instance; SELECT open_mode FROM v$database; EXIT;
网络配置
监听器配置
检查监听器配置:
- Linux:
$ORACLE_HOME/network/admin/listener.ora - Windows:
%ORACLE_HOME%\network\admin\listener.ora
- Linux:
启动/重启监听器:
bashlsnrctl start # 或 lsnrctl restart
tnsnames.ora 配置
- 创建/编辑 tnsnames.ora 文件:text
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )
数据库参数调整
内存参数
sql
-- 查看当前内存配置
SELECT * FROM v$sga;
SELECT * FROM v$pgastat WHERE name = 'aggregate PGA target parameter';
-- 调整内存参数(根据实际情况)
ALTER SYSTEM SET sga_target = '2G' SCOPE=spfile;
ALTER SYSTEM SET pga_aggregate_target = '1G' SCOPE=spfile;
-- 重启数据库使参数生效
SHUTDOWN IMMEDIATE;
STARTUP;进程参数
sql
-- 查看当前进程参数
SELECT value FROM v$parameter WHERE name = 'processes';
-- 调整进程参数(根据实际情况)
ALTER SYSTEM SET processes = 300 SCOPE=spfile;
-- 重启数据库使参数生效
SHUTDOWN IMMEDIATE;
STARTUP;安全配置
密码策略
sql
-- 查看当前密码策略
SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name LIKE 'PASSWORD%';
-- 调整密码策略
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 10
PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function
PASSWORD_LOCK_TIME 1
PASSWORD_FAILED_LOGIN_ATTEMPTS 10;审计配置
sql
-- 启用审计
ALTER SYSTEM SET audit_trail = 'DB,EXTENDED' SCOPE=spfile;
-- 重启数据库使参数生效
SHUTDOWN IMMEDIATE;
STARTUP;
-- 审计特定操作
AUDIT SELECT, INSERT, UPDATE, DELETE ON hr.employees BY ACCESS;数据库创建验证
连接测试
SQL*Plus 连接
bash
# 使用 SYSDBA 身份连接
sqlplus / as sysdba
# 使用普通用户身份连接
sqlplus system/password@ORCLtnsping 测试
bash
# 测试网络连接
tnsping ORCL功能验证
创建表空间
sql
-- 创建用户表空间
CREATE TABLESPACE users DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
-- 验证表空间创建
SELECT tablespace_name, status, contents FROM dba_tablespaces WHERE tablespace_name = 'USERS';创建用户
sql
-- 创建用户
CREATE USER testuser IDENTIFIED BY password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
-- 授予权限
GRANT CONNECT, RESOURCE TO testuser;
-- 验证用户创建
SELECT username, default_tablespace, temporary_tablespace FROM dba_users WHERE username = 'TESTUSER';创建表和插入数据
sql
-- 连接到测试用户
CONNECT testuser/password;
-- 创建表
CREATE TABLE test_table (id NUMBER PRIMARY KEY, name VARCHAR2(50));
-- 插入数据
INSERT INTO test_table VALUES (1, 'Test Data');
COMMIT;
-- 查询数据
SELECT * FROM test_table;常见问题及解决方案
安装失败
问题:先决条件检查失败
- 原因:系统不满足 Oracle 安装的先决条件
- 解决方案:
- 根据错误信息安装缺少的软件包
- 调整系统参数以满足要求
- 对于非关键警告,可以选择忽略
问题:安装过程中出现错误
- 原因:可能是系统资源不足、权限问题或配置错误
- 解决方案:
- 查看安装日志文件,定位错误原因
- 解决错误后重新启动安装
- 对于严重错误,可能需要清理后重新安装
数据库无法启动
问题:监听器无法启动
- 原因:端口被占用、配置文件错误或权限问题
- 解决方案:
- 检查端口是否被占用:
netstat -tuln | grep 1521 - 检查 listener.ora 配置文件
- 确保 Oracle 用户有正确的权限
- 检查端口是否被占用:
问题:数据库实例无法启动
- 原因:参数文件错误、数据文件损坏或权限问题
- 解决方案:
- 查看告警日志文件,定位错误原因
- 检查参数文件配置
- 验证数据文件状态和权限
连接问题
问题:无法连接到数据库
- 原因:监听器未启动、网络问题或连接字符串错误
- 解决方案:
- 检查监听器状态:
lsnrctl status - 测试网络连接:
ping hostname - 验证连接字符串:
tnsping ORCL
- 检查监听器状态:
问题:连接超时
- 原因:网络延迟过高、监听器负载过大或数据库实例问题
- 解决方案:
- 检查网络连接质量
- 增加监听器进程
- 检查数据库实例状态和性能
最佳实践
安装前
- 充分规划:根据业务需求规划数据库规模和配置
- 系统准备:确保系统满足所有先决条件
- 备份:备份系统,以防安装失败需要恢复
- 文档:准备详细的安装计划和配置文档
安装过程
- 遵循向导:严格按照安装向导的步骤进行操作
- 合理配置:根据实际需求配置数据库参数
- 记录信息:记录所有配置信息和密码
- 解决问题:及时解决安装过程中遇到的问题
安装后
- 全面检查:检查数据库状态、服务状态和网络配置
- 安全加固:配置密码策略、审计和访问控制
- 性能调优:根据实际负载调整数据库参数
- 文档更新:更新安装文档,记录所有操作和配置
日常维护
- 定期备份:建立定期备份策略
- 监控:配置数据库监控
- 更新:及时应用补丁和更新
- 优化:定期进行数据库性能优化
常见问题(FAQ)
Q1: 如何选择 Oracle 数据库版本?
A1: 选择 Oracle 数据库版本的方法:
- 企业版:适合大型企业、关键业务系统,提供完整的企业级特性
- 标准版:适合中型企业,提供核心功能,成本较低
- 标准版 2:适合小型企业,最多支持 16 个核心
- 快捷版:适合开发和测试环境,免费使用
Q2: 如何设置 Oracle 数据库的字符集?
A2: 设置 Oracle 数据库字符集的方法:
- 安装时设置:在安装过程中选择字符集
- 推荐字符集:AL32UTF8(支持所有 Unicode 字符)
- 注意事项:
- 字符集一旦设置,修改难度较大
- 应根据应用需求和国际化要求选择合适的字符集
- 混合字符集环境可能导致数据转换问题
Q3: 如何配置 Oracle 数据库的自动启动和关闭?
A3: 配置 Oracle 数据库自动启动和关闭的方法:
Linux 系统
创建自启动脚本:
- 创建
/etc/init.d/oracle脚本 - 配置脚本使其在系统启动时启动 Oracle 服务
- 创建
设置服务:
bashchmod +x /etc/init.d/oracle chkconfig --add oracle chkconfig oracle on
Windows 系统
- 服务配置:
- 打开"服务"管理控制台
- 将 Oracle 相关服务的启动类型设置为"自动"
Q4: 如何验证 Oracle 数据库安装是否成功?
A4: 验证 Oracle 数据库安装成功的方法:
- 检查服务:Oracle 相关服务是否正常启动
- 连接测试:使用 SQL*Plus 连接数据库
- 功能测试:创建表、插入数据、查询数据
- 性能测试:运行简单的性能测试
- 日志检查:检查安装日志和数据库告警日志
Q5: 如何卸载 Oracle 数据库?
A5: 卸载 Oracle 数据库的方法:
Linux 系统
停止 Oracle 服务:
bashlsnrctl stop sqlplus / as sysdba SQL> SHUTDOWN IMMEDIATE; SQL> EXIT;运行卸载向导:
bashcd $ORACLE_HOME/deinstall ./deinstall清理残留文件:
bashrm -rf /u01/app/oracle rm -rf /u01/app/oraInventory rm -f /etc/oratab
Windows 系统
停止 Oracle 服务:
- 打开"服务"管理控制台
- 停止所有 Oracle 相关服务
运行卸载程序:
- 打开"控制面板" → "程序和功能"
- 选择 Oracle 相关产品进行卸载
清理残留文件:
- 删除 Oracle 安装目录
- 删除注册表中的 Oracle 相关项
- 删除环境变量中的 Oracle 相关设置
