【Oracle入门到删库跑路-02】基础入门:Oracle安装与配置

系统要求和准备工作

在安装Oracle数据库之前,需要确保系统满足最低硬件和软件要求。

硬件要求

  1. 内存:至少4GB RAM(推荐8GB或更高)
  2. 磁盘空间
    • 企业版:至少6.5GB
    • 标准版:至少6GB
    • 临时安装空间:1GB
  3. 显示器:1024×768分辨率或更高

软件要求

  1. 操作系统
    • Windows Server 2016/2019/2022
    • Red Hat Enterprise Linux 7/8
    • Oracle Linux 7/8
    • SUSE Linux Enterprise Server 12/15
  2. 内核参数 (Linux):
    • semmsl=250
    • semmns=32000
    • semopm=100
    • semmni=128

安装前准备

  1. 创建专用的Oracle用户和组
  2. 配置系统环境变量
  3. 关闭防火墙和杀毒软件(临时)
  4. 下载Oracle安装介质

2.2 Windows环境下Oracle安装

安装步骤

  1. 解压安装文件

    bash 复制代码
    # 解压下载的zip文件到指定目录
  2. 运行安装程序

    • 以管理员身份运行setup.exe
    • 选择"创建和配置数据库"
  3. 配置安全更新

    • 可选择跳过更新注册
  4. 选择安装选项

    • 创建和配置数据库
    • 系统类:桌面类或服务器类
  5. 典型安装配置

    • Oracle基目录:C:\app\username
    • 数据库文件位置:C:\app\username\product\version\dbhome
    • 全局数据库名:orcl
    • 管理员密码:设置SYS和SYSTEM用户密码
  6. 先决条件检查

    • 系统会自动检查环境
    • 如有问题需要解决后再继续
  7. 概要信息

    • 确认安装配置信息
    • 点击"完成"开始安装
  8. 安装进度

    • 等待安装过程完成
    • 自动执行配置脚本

安装后验证

sql 复制代码
-- 连接到数据库验证安装
sqlplus / as sysdba

-- 查看数据库状态
SELECT status FROM v$instance;

-- 查看数据库版本
SELECT * FROM v$version;

2.3 Linux环境下Oracle安装

系统配置

  1. 创建用户和组

    bash 复制代码
    # 创建oinstall组
    groupadd oinstall
    
    # 创建dba组
    groupadd dba
    
    # 创建oracle用户
    useradd -g oinstall -G dba oracle
    
    # 设置密码
    passwd oracle
  2. 配置内核参数

    bash 复制代码
    # 编辑/etc/sysctl.conf文件
    vi /etc/sysctl.conf
    
    # 添加以下参数
    kernel.shmall = 2097152
    kernel.shmmax = 4294967295
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    fs.file-max = 6815744
    fs.aio-max-nr = 1048576
    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
  3. 应用内核参数

    bash 复制代码
    # 使配置生效
    /sbin/sysctl -p

安装步骤

  1. 解压安装文件

    bash 复制代码
    # 切换到oracle用户
    su - oracle
    
    # 解压安装文件
    unzip linuxamd64_19c_database.zip
  2. 运行安装程序

    bash 复制代码
    # 进入安装目录
    cd database
    
    # 运行安装程序
    ./runInstaller
  3. 图形化安装界面

    • 选择"创建和配置数据库"
    • 选择"桌面类"或"服务器类"
    • 配置Oracle基目录和软件位置
    • 设置数据库标识符和密码
    • 执行先决条件检查
    • 确认配置并开始安装
  4. 执行配置脚本

    • 安装完成后,以root用户执行提示的脚本
    bash 复制代码
    # 以root身份执行
    /oraInventory/orainstRoot.sh
    /u01/app/oracle/product/19.0.0/dbhome_1/root.sh

2.4 数据库创建和配置

使用DBCA创建数据库

  1. 启动DBCA

    bash 复制代码
    # 在命令行中运行
    dbca
  2. 创建数据库向导

    • 选择"创建数据库"
    • 选择"高级配置"
    • 输入全局数据库名和SID
    • 选择数据库模板(通用或数据仓库)
  3. 配置数据库选项

    • 启用企业管理器
    • 配置字符集(推荐AL32UTF8)
    • 设置管理员密码
  4. 存储配置

    • 选择文件系统或ASM存储
    • 配置快速恢复区
  5. 初始化参数

    • 内存管理选项
    • 进程数配置
    • 字符集设置

手动创建数据库

sql 复制代码
-- 1. 设置环境变量
export ORACLE_SID=orcl

-- 2. 启动实例到nomount状态
sqlplus / as sysdba
STARTUP NOMOUNT

-- 3. 创建数据库
CREATE DATABASE orcl
   USER SYS IDENTIFIED BY password
   USER SYSTEM IDENTIFIED BY password
   LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 100M,
           GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 100M,
           GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf'
     SIZE 325M REUSE
   SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl/sysaux01.dbf'
     SIZE 325M REUSE
   DEFAULT TABLESPACE users
     DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf'
     SIZE 20M REUSE
   DEFAULT TEMPORARY TABLESPACE temp
     TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf'
     SIZE 20M REUSE
   UNDO TABLESPACE undotbs1
     DATAFILE '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
     SIZE 200M REUSE;

-- 4. 运行脚本创建数据字典
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql
@$ORACLE_HOME/sqlplus/admin/pupbld.sql

2.5 Oracle网络配置

监听器配置

  1. 启动Net Configuration Assistant

    bash 复制代码
    netca
  2. 配置监听器

    • 选择"监听程序配置"
    • 添加或配置监听器
    • 设置监听端口(默认1521)
    • 选择协议(TCP)
  3. 手动配置监听器

    bash 复制代码
    # 编辑listener.ora文件
    vi $ORACLE_HOME/network/admin/listener.ora
    
    # 示例配置
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = orcl)
          (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
        )
      )

客户端连接配置

  1. 配置tnsnames.ora

    bash 复制代码
    # 编辑tnsnames.ora文件
    vi $ORACLE_HOME/network/admin/tnsnames.ora
    
    # 示例配置
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
  2. 测试连接

    bash 复制代码
    # 使用tnsping测试网络连接
    tnsping orcl
    
    # 使用sqlplus连接数据库
    sqlplus system/password@orcl

2.6 安装后配置和优化

启动和停止数据库

bash 复制代码
# 启动数据库
sqlplus / as sysdba
STARTUP

# 停止数据库
SHUTDOWN IMMEDIATE

# 启动监听器
lsnrctl start

# 停止监听器
lsnrctl stop

创建启动脚本

bash 复制代码
# 创建数据库启动脚本
vi /home/oracle/startdb.sh

#!/bin/bash
export ORACLE_SID=orcl
sqlplus / as sysdba << EOF
STARTUP
EXIT
EOF
lsnrctl start

# 创建数据库停止脚本
vi /home/oracle/stopdb.sh

#!/bin/bash
lsnrctl stop
export ORACLE_SID=orcl
sqlplus / as sysdba << EOF
SHUTDOWN IMMEDIATE
EXIT
EOF

常见配置参数

  1. 内存配置

    sql 复制代码
    -- 查看SGA大小
    SHOW PARAMETER sga;
    
    -- 修改SGA大小
    ALTER SYSTEM SET sga_max_size=2G SCOPE=SPFILE;
    ALTER SYSTEM SET sga_target=1G SCOPE=BOTH;
  2. 进程配置

    sql 复制代码
    -- 查看进程数
    SHOW PARAMETER processes;
    
    -- 修改进程数
    ALTER SYSTEM SET processes=300 SCOPE=SPFILE;

2.7 本章小结

本章详细介绍了Oracle数据库在Windows和Linux环境下的安装过程,包括系统要求、安装步骤、数据库创建和网络配置等内容。掌握这些技能是使用Oracle数据库的基础。

练习题

  1. 列出Oracle数据库安装的系统要求
  2. 描述在Linux环境下创建Oracle用户和组的步骤
  3. 解释如何使用DBCA创建数据库
  4. 配置监听器和客户端连接的步骤
  5. 编写一个简单的数据库启动和停止脚本
相关推荐
马克学长1 小时前
SSM社区志愿者服务系统d6d36(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm框架·社区志愿服务
cqsztech1 小时前
oracle linux 9.6上安装oracle database 19.3 标准版 docker
linux·数据库·oracle
遇见火星1 小时前
MySQL 性能优化
数据库·mysql·性能优化
safestar20121 小时前
数据到底存在了哪儿?——拆解MySQL的存储引擎与一致性实现
数据库·mysql
kwg1261 小时前
Dify二次开发-AI 应用端反馈指令接收(AI 应用端 → Dify)
前端·数据库·人工智能
LucidX2 小时前
MySQL主从复制与读写分离
数据库·mysql
默默提升实验室2 小时前
Navicat Oracle数据库连接失败,报错:Oracle library is not loaded
oracle
羑悻的小杀马特2 小时前
Redis之Set:从无序唯一到智能存储,解锁用户画像/社交/统计全场景应用
数据库·redis·set