oracle数据库安装和配置

大家好,我是程序员小羊!

前言:

Oracle 数据库的安装和配置是一个较为复杂的过程,涉及多个步骤和配置项。以下将详细介绍如何在 Linux 和 Windows 系统中安装 Oracle 数据库并进行基础配置。

一、Oracle 数据库安装前的准备

1. 系统要求

操作系统
  • Oracle 数据库可以安装在多种操作系统上,常见的是 Linux(例如 RHEL、CentOS、Oracle Linux)和 Windows。
硬件要求
  • CPU:至少 2 核。
  • 内存:建议至少 4GB,推荐 8GB 或以上。
  • 硬盘空间:至少 15GB,视安装的数据库版本和存储需求而定。
软件要求
  • Linux 环境 :需要特定的软件包和依赖项,如 glibclibaio 等。
  • Windows 环境:确保操作系统更新到最新版本,安装前关闭防火墙、杀毒软件等。

2. 预安装步骤(Linux)

创建 Oracle 用户和用户组

Oracle 安装需要单独的用户和用户组来进行管理。

bash 复制代码
# 创建用户组
groupadd oinstall
groupadd dba

# 创建 Oracle 用户并设置主目录
useradd -g oinstall -G dba -d /home/oracle -m oracle

# 为 oracle 用户设置密码
passwd oracle
创建安装目录

创建 Oracle 软件和数据库的安装目录,并赋予适当的权限。

bash 复制代码
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oradata
chown -R oracle:oinstall /u01
chmod -R 775 /u01
配置内核参数

编辑 /etc/sysctl.conf 文件,设置 Oracle 所需的内核参数。

bash 复制代码
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 = 1048576

更新内核参数:

bash 复制代码
sysctl -p
配置用户限制

编辑 /etc/security/limits.conf 文件,为 Oracle 用户设置资源限制:

bash 复制代码
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

3. 下载 Oracle 数据库软件

从 Oracle 官方网站下载合适的版本,如 Oracle 19c 或 21c。

  • Linux 用户下载 RPM 或 ZIP 安装包。
  • Windows 用户下载 EXE 文件。

4. 安装前检查

  • 确保所有必需的依赖项已安装。
  • 确保磁盘空间充足。
  • 关闭防火墙和安全软件,避免影响安装。

二、Oracle 数据库安装

1. 在 Linux 上安装 Oracle 数据库

安装 Oracle 软件

首先,以 oracle 用户身份登录,并切换到数据库软件所在的目录。执行以下命令解压 ZIP 文件并运行安装程序:

bash 复制代码
unzip linuxx64_19c_database.zip
cd database
./runInstaller
安装向导步骤
  1. 安装选项 :选择 创建并配置数据库
  2. 安装类型 :选择 服务器类
  3. 典型安装 :选择默认的典型安装类型,并选择 Oracle 基本安装目录(例如 /u01/app/oracle)。
  4. 配置 Oracle 实例 :提供全局数据库名称(如 orcl),设置 SYS 和 SYSTEM 用户密码。
  5. 配置组和权限:选择 OINSTALL 和 DBA 组。

最后,安装程序会提示运行几个脚本,切换到 root 用户运行:

bash 复制代码
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
安装完成

完成安装后,可以通过 Oracle SQL*Plus 登录到数据库并进行测试:

bash 复制代码
sqlplus / as sysdba

2. 在 Windows 上安装 Oracle 数据库

安装 Oracle 软件

双击下载的安装文件(EXE),安装向导将引导你完成以下步骤:

  1. 安装选项 :选择 创建并配置数据库
  2. 安装路径:选择安装路径,通常默认路径即可。
  3. 配置全局数据库名和 SID :例如,数据库名为 orcl
  4. 设置管理员密码:设置 SYS 和 SYSTEM 用户的密码。
  5. 选择典型配置:继续安装,等待安装程序完成。
完成安装

安装完成后,使用 SQL*PlusSQL Developer 登录:

bash 复制代码
sqlplus / as sysdba

三、Oracle 数据库配置

1. 配置监听器(Listener)

Oracle 使用监听器接受客户端连接请求,默认监听端口是 1521。可以通过以下步骤配置监听器。

手动配置监听器

编辑 listener.ora 文件(通常位于 $ORACLE_HOME/network/adminC:\app\oracle\product\19.0.0\dbhome_1\network\admin)。

bash 复制代码
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = your-hostname)(PORT = 1521))
    )
  )

启动监听器:

bash 复制代码
lsnrctl start
检查监听器状态
bash 复制代码
lsnrctl status

2. 数据库启动与关闭

启动数据库
  • 进入 SQL*Plus:

    bash 复制代码
    sqlplus / as sysdba
  • 启动数据库:

    sql 复制代码
    STARTUP;
关闭数据库
  • 进入 SQL*Plus:

    bash 复制代码
    sqlplus / as sysdba
  • 正常关闭数据库:

    sql 复制代码
    SHUTDOWN IMMEDIATE;

3. 创建表空间和用户

创建表空间

表空间是 Oracle 数据库用于存储数据的逻辑结构。可以使用以下 SQL 命令创建表空间:

sql 复制代码
CREATE TABLESPACE mytablespace
DATAFILE '/u01/app/oracle/oradata/mytablespace01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
创建用户并分配权限

使用以下命令创建用户并分配表空间和权限:

sql 复制代码
CREATE USER myuser IDENTIFIED BY mypassword
DEFAULT TABLESPACE mytablespace
TEMPORARY TABLESPACE temp;

GRANT CONNECT, RESOURCE TO myuser;

4. 配置自动备份

Oracle 推荐使用 RMAN(Recovery Manager)进行备份和恢复。

设置备份策略

进入 RMAN 命令行工具:

bash 复制代码
rman target /

执行备份命令:

bash 复制代码
BACKUP DATABASE;

可以配置自动备份计划,通过 Oracle Enterprise Manager 或使用脚本实现定时备份。

5. 配置监听器访问权限

在防火墙环境下,可能需要开放监听器端口。修改防火墙设置以允许 Oracle 使用的端口(如 1521)。

四、验证安装和配置

1. 检查数据库状态

登录 SQL*Plus,并检查数据库状态:

bash 复制代码
sqlplus / as sysdba
SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;

2. 验证监听器

使用以下命令验证监听器配置:

bash 复制代码
lsnrctl status

3. 验证数据库连接

使用 SQL*Plus 或 Oracle SQL Developer 连接数据库,确保可以成功登录和执行查询。

总结

Oracle 数据库的安装和配置过程包括多个步骤,从系统准备、软件安装到数据库的启动和配置。用户可以根据需求定制表空间、用户以及自动备份策略等,确保数据库的正常运行和维护。

结尾

csharp 复制代码
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文
相关推荐
赵渝强老师1 小时前
【赵渝强老师】管理MongoDB的运行
数据库·mongodb
A仔不会笑1 小时前
MySQL面试篇——性能优化
java·数据库·mysql·面试·性能优化
梦幻编织者2 小时前
python使用django搭建图书管理系统
数据库·python·django
考虑考虑2 小时前
MySQL中的DATE_FORMAT时间函数
数据库·后端·mysql
SelectDB技术团队2 小时前
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
大数据·数据库·云原生·doris·存算分离
星迹日3 小时前
MySQL : 数据库和表操作
数据库·mysql·数据类型··
2302_799525743 小时前
【Hadoop】如何理解MapReduce?
数据库·hadoop·mapreduce
已是上好佳3 小时前
介绍一下Qt中的事件过滤
java·服务器·数据库
炬火初现5 小时前
Etcd的安装与使用
数据库·etcd
IT猿手5 小时前
2025最新群智能优化算法:云漂移优化(Cloud Drift Optimization,CDO)算法求解23个经典函数测试集,MATLAB
开发语言·数据库·算法·数学建模·matlab·机器人