位置: 文档库 > 数据库 > 安装Oracle 10g前 参数配置的脚本

安装Oracle 10g前 参数配置的脚本

清风明月 上传于 2021-11-10 11:27

《安装Oracle 10g前参数配置的脚本》

Oracle 10g作为企业级数据库的经典版本,其安装前的系统参数配置直接影响数据库的稳定性与性能。本文将详细介绍在Linux和Windows环境下,安装Oracle 10g前需完成的系统参数检查与修改脚本,涵盖内核参数、用户环境变量、文件系统限制等关键配置项,并提供自动化脚本实现批量配置。

一、安装前的系统要求确认

在配置参数前,需确认系统满足Oracle 10g的最低要求:

  • 硬件要求:至少1GB物理内存(生产环境建议4GB+),交换空间为物理内存的1.5倍(Windows)或2倍(Linux)
  • 磁盘空间:/tmp目录至少1GB,Oracle基础目录(如/u01)至少5GB可用空间
  • 操作系统版本:Linux需支持glibc 2.3及以上,Windows需Server 2003/XP SP2及以上

二、Linux环境参数配置

1. 内核参数修改

Oracle 10g对内核参数有严格要求,需通过修改/etc/sysctl.conf实现持久化配置:

# 编辑sysctl.conf
vi /etc/sysctl.conf

# 添加以下参数(示例值,需根据实际内存调整)
fs.file-max = 65536
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576

应用配置:

sysctl -p

2. 用户限制配置

修改/etc/security/limits.conf以支持Oracle用户:

# 添加以下内容(oracle为用户名)
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240

3. 磁盘I/O调度优化

对于使用SCSI/SAS磁盘的系统,建议将I/O调度器改为deadline

# 查看当前调度器
cat /sys/block/sdX/queue/scheduler

# 修改为deadline(需root权限)
echo deadline > /sys/block/sdX/queue/scheduler

4. 自动化配置脚本

以下脚本可自动完成上述配置(需root权限):

#!/bin/bash
# Oracle 10g Linux预安装配置脚本

# 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; then
  echo "此脚本必须以root用户运行"
  exit 1
fi

# 备份原始配置文件
cp /etc/sysctl.conf /etc/sysctl.conf.bak.$(date +%Y%m%d)
cp /etc/security/limits.conf /etc/security/limits.conf.bak.$(date +%Y%m%d)

# 添加内核参数
cat >> /etc/sysctl.conf > /etc/security/limits.conf 

三、Windows环境参数配置

1. 系统环境变量设置

需添加以下环境变量(通过"我的电脑→属性→高级→环境变量"):

变量名 变量值
ORACLE_BASE C:\app\oracle
ORACLE_HOME %ORACLE_BASE%\product\10.2.0\db_1
NLS_LANG AMERICAN_AMERICA.AL32UTF8
PATH %ORACLE_HOME%\bin;%PATH%

2. 注册表参数修改

通过PowerShell脚本修改注册表(需管理员权限):

# 启动PowerShell管理员窗口后执行
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
Set-ItemProperty -Path $regPath -Name "Size" -Value 3

# 修改共享内存参数
$regPath = "HKLM:\SOFTWARE\Oracle"
New-Item -Path $regPath -Force
Set-ItemProperty -Path $regPath -Name "SHARED_MEMORY" -Value "0x00000001"

3. 页面文件配置

建议设置固定大小的页面文件:

  1. 打开"系统属性→高级→性能设置→高级→虚拟内存更改"
  2. 取消"自动管理所有驱动器的分页文件大小"
  3. 选择系统驱动器,设置初始大小=物理内存,最大值=物理内存的1.5倍

四、通用配置项

1. 主机文件配置

确保/etc/hosts(Linux)或C:\Windows\System32\drivers\etc\hosts(Windows)包含完整的主机名解析:

# 示例格式
127.0.0.1 localhost localhost.localdomain
192.168.1.100 oracle-server oracle-server.example.com

2. 防火墙配置

开放Oracle所需端口(1521监听端口,5500 Enterprise Manager端口等):

# Linux防火墙规则(iptables示例)
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
iptables -A INPUT -p tcp --dport 5500 -j ACCEPT
service iptables save

# Windows防火墙规则(通过GUI添加)

3. 依赖包安装

Linux系统需安装以下依赖包:

# RHEL/CentOS
yum install -y binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel \
  ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat

# SUSE Linux
zypper install -y binutils gcc gcc-c++ glibc glibc-devel libaio libaio-devel \
  libstdc++43 libstdc++43-devel make sysstat

五、配置验证脚本

以下脚本可验证关键参数是否配置正确:

#!/bin/bash
# Oracle 10g配置验证脚本

# 内核参数验证
echo "===== 内核参数验证 ====="
sysctl fs.file-max | grep -v "fs.file-max = 65536" && echo "❌ file-max配置异常" || echo "✓ file-max配置正确"
sysctl kernel.shmmax | awk '{if ($2 1 && $4 ~ /%/) {if ($5 > 90) print "❌ " $1 "空间不足"; else print "✓ " $1 "空间充足"}}'

# 依赖包验证(仅Linux)
echo "===== 依赖包验证 ====="
rpm -q binutils compat-libstdc++-33 gcc > /dev/null 2>&1 && echo "✓ 基础依赖包已安装" || echo "❌ 缺少基础依赖包"

六、常见问题处理

1. 内存不足错误(ORA-00845)

原因:MEMORY_TARGET参数超过可用物理内存。解决方案:

  1. 降低MEMORY_TARGET值(建议不超过物理内存的80%)
  2. 增加交换空间(Linux:dd if=/dev/zero of=/swapfile bs=1M count=4096; mkswap /swapfile; swapon /swapfile

2. 共享内存段错误(ORA-27125)

原因:kernel.shmmax参数设置过小。解决方案:

# 重新计算shmmax值(建议为物理内存的90%)
PHYS_MEM=$(grep MemTotal /proc/meminfo | awk '{print $2}')
NEW_SHMMAX=$((PHYS_MEM*1024*90/100))
echo "kernel.shmmax = $NEW_SHMMAX" >> /etc/sysctl.conf
sysctl -p

3. 监听器启动失败(TNS-12541)

原因:1521端口被占用或防火墙阻止。解决方案:

# 检查端口占用
netstat -tulnp | grep 1521

# 临时关闭防火墙(测试用)
service iptables stop  # Linux
netsh advfirewall set allprofiles state off  # Windows

关键词:Oracle 10g、参数配置、Linux脚本Windows配置、内核参数、共享内存、环境变量、安装前准备自动化脚本性能优化

简介:本文详细阐述了Oracle 10g数据库安装前必须完成的系统参数配置,涵盖Linux和Windows环境下的内核参数修改、用户限制设置、磁盘I/O优化等关键步骤,提供自动化配置脚本和验证工具,帮助DBA快速完成环境准备,避免因参数配置不当导致的安装失败或性能问题。

《安装Oracle 10g前 参数配置的脚本.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档