Oracle安装与配置 #

一、安装前准备 #

1.1 系统要求 #

Windows系统要求 #

项目 最低要求 推荐配置
操作系统 Windows Server 2012+ Windows Server 2019+
内存 2GB 8GB+
磁盘空间 10GB 50GB+
CPU 2核 4核+

Linux系统要求 #

项目 最低要求 推荐配置
操作系统 RHEL 7+ / CentOS 7+ RHEL 8+ / Oracle Linux 8+
内存 2GB 16GB+
磁盘空间 15GB 100GB+
CPU 2核 8核+

1.2 下载Oracle #

text
Oracle下载步骤:
1. 访问Oracle官网:https://www.oracle.com
2. 进入 Downloads -> Oracle Database
3. 选择版本(推荐19c LTS)
4. 选择操作系统平台
5. 下载安装包(需要Oracle账号)

二、Windows安装 #

2.1 安装步骤 #

步骤1:解压安装包 #

text
1. 下载完成后,解压安装包
2. 进入解压目录,找到 setup.exe
3. 右键以管理员身份运行

步骤2:配置安全更新 #

text
配置安全更新:
├── 电子邮件:可选填写
├── 希望接收安全更新:取消勾选
└── 点击"下一步"

步骤3:选择安装选项 #

text
安装选项:
├── 创建和配置单实例数据库 ← 推荐
├── 仅安装数据库软件
└── 升级现有数据库

步骤4:系统类 #

text
系统类选择:
├── 桌面类 ← 学习开发推荐
└── 服务器类 ← 生产环境推荐

步骤5:安装类型 #

text
安装类型:
├── 单实例数据库安装 ← 推荐
└── Real Application Clusters数据库安装

步骤6:典型安装配置 #

text
典型安装配置:
├── Oracle基目录:D:\app\oracle
├── 软件位置:D:\app\oracle\product\19.3.0\dbhome_1
├── 数据库文件位置:D:\app\oracle\oradata
├── 数据库版本:企业版
├── 字符集:ZHS16GBK 或 AL32UTF8
├── 全局数据库名:orcl
├── SID:orcl
└── 口令:设置管理员密码

2.2 环境变量配置 #

batch
-- 设置Oracle环境变量(系统环境变量)

-- ORACLE_HOME
变量名:ORACLE_HOME
变量值:D:\app\oracle\product\19.3.0\dbhome_1

-- TNS_ADMIN
变量名:TNS_ADMIN
变量值:%ORACLE_HOME%\network\admin

-- PATH(添加到现有PATH)
%ORACLE_HOME%\bin

2.3 验证安装 #

batch
-- 打开命令提示符
-- 连接Oracle

sqlplus / as sysdba

-- 查看版本
SQL> SELECT * FROM V$VERSION;

-- 查看实例状态
SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;

三、Linux安装 #

3.1 系统准备 #

配置主机名 #

bash
-- 设置主机名
hostnamectl set-hostname oracle-server

-- 配置hosts文件
vi /etc/hosts
-- 添加:
192.168.1.100 oracle-server

关闭防火墙和SELinux #

bash
-- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

-- 关闭SELinux
setenforce 0
vi /etc/selinux/config
-- 修改:
SELINUX=disabled

配置内核参数 #

bash
-- 编辑内核参数文件
vi /etc/sysctl.conf

-- 添加以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586

-- 使配置生效
sysctl -p

创建用户和组 #

bash
-- 创建用户组
groupadd oinstall
groupadd dba
groupadd oper

-- 创建oracle用户
useradd -g oinstall -G dba,oper oracle

-- 设置密码
passwd oracle

创建目录结构 #

bash
-- 创建Oracle目录
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p /u01/app/oraInventory

-- 设置权限
chown -R oracle:oinstall /u01
chmod -R 775 /u01

配置用户限制 #

bash
-- 编辑limits.conf
vi /etc/security/limits.conf

-- 添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

3.2 安装依赖包 #

bash
-- CentOS/RHEL 7/8
yum install -y \
    bc \
    binutils \
    compat-libcap1 \
    compat-libstdc++-33 \
    elfutils-libelf \
    elfutils-libelf-devel \
    fontconfig-devel \
    glibc \
    glibc-devel \
    ksh \
    libaio \
    libaio-devel \
    libX11 \
    libXau \
    libXi \
    libXtst \
    libgcc \
    libstdc++ \
    libstdc++-devel \
    libxcb \
    make \
    net-tools \
    smartmontools \
    sysstat \
    unixODBC \
    unixODBC-devel

3.3 配置环境变量 #

bash
-- 切换到oracle用户
su - oracle

-- 编辑配置文件
vi ~/.bash_profile

-- 添加以下内容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

-- 使配置生效
source ~/.bash_profile

3.4 静默安装 #

准备响应文件 #

bash
-- 解压安装包
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

-- 编辑响应文件
vi $ORACLE_HOME/install/response/db_install.rsp

-- 修改以下参数:
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=oracle-server
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
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=true
oracle.install.db.rootconfig.configMethod=ROOT
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=2048
oracle.install.db.config.starterdb.password.ALL=YourPassword123
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

执行安装 #

bash
-- 执行安装脚本
cd $ORACLE_HOME
./runInstaller -silent -responseFile install/response/db_install.rsp

-- 等待安装完成
-- 安装完成后会提示执行root脚本

3.5 执行root脚本 #

bash
-- 切换到root用户
su - root

-- 执行脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/dbhome_1/root.sh

3.6 验证安装 #

bash
-- 切换到oracle用户
su - oracle

-- 连接数据库
sqlplus / as sysdba

-- 查看版本
SQL> SELECT * FROM V$VERSION;

-- 查看实例状态
SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;

-- 查看监听状态
lsnrctl status

四、监听配置 #

4.1 listener.ora配置 #

text
-- 文件位置:$ORACLE_HOME/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-server)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

4.2 tnsnames.ora配置 #

text
-- 文件位置:$ORACLE_HOME/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-server)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

4.3 监听管理命令 #

bash
-- 启动监听
lsnrctl start

-- 停止监听
lsnrctl stop

-- 重启监听
lsnrctl reload

-- 查看监听状态
lsnrctl status

-- 查看监听服务
lsnrctl services

五、数据库启停 #

5.1 启动数据库 #

sql
-- 启动数据库(三种模式)

-- 1. NOMOUNT模式(只启动实例)
STARTUP NOMOUNT;

-- 2. MOUNT模式(加载控制文件)
STARTUP MOUNT;

-- 3. OPEN模式(完全启动)
STARTUP;

-- 强制启动
STARTUP FORCE;

5.2 关闭数据库 #

sql
-- 关闭数据库(四种方式)

-- 1. NORMAL(正常关闭,等待所有用户断开)
SHUTDOWN NORMAL;

-- 2. TRANSACTIONAL(事务关闭,等待事务完成)
SHUTDOWN TRANSACTIONAL;

-- 3. IMMEDIATE(立即关闭,回滚事务)
SHUTDOWN IMMEDIATE;

-- 4. ABORT(中止关闭,不推荐)
SHUTDOWN ABORT;

5.3 启停顺序 #

text
启动顺序:
1. 启动监听 → lsnrctl start
2. 启动数据库 → startup

关闭顺序:
1. 关闭数据库 → shutdown immediate
2. 关闭监听 → lsnrctl stop

六、常见问题 #

6.1 安装问题 #

问题 解决方案
内存不足 调整SGA和PGA大小
磁盘空间不足 清理空间或更换安装目录
端口被占用 修改监听端口
权限问题 检查用户权限和目录权限

6.2 连接问题 #

sql
-- 问题:ORA-12541: TNS:无监听程序
-- 解决:启动监听
lsnrctl start

-- 问题:ORA-12154: TNS:无法解析指定的连接标识符
-- 解决:检查tnsnames.ora配置

-- 问题:ORA-28000: 账户被锁定
-- 解决:解锁用户
ALTER USER scott ACCOUNT UNLOCK;

6.3 字符集问题 #

sql
-- 查看数据库字符集
SELECT * FROM NLS_DATABASE_PARAMETERS 
WHERE PARAMETER = 'NLS_CHARACTERSET';

-- 查看客户端字符集
SELECT * FROM NLS_SESSION_PARAMETERS 
WHERE PARAMETER = 'NLS_LANGUAGE';

-- 设置客户端字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

七、总结 #

安装配置要点:

步骤 要点
系统准备 内存、磁盘、内核参数
用户配置 创建用户、设置权限
环境变量 ORACLE_HOME、ORACLE_SID
监听配置 listener.ora、tnsnames.ora
启停管理 startup、shutdown命令

下一步,让我们学习Oracle基础语法!

最后更新:2026-03-27