系统要求,你的系统真的安全吗?揭秘隐藏的风险与防护策略!,你的系统真的安全吗?黑客可能正在窥探的5大漏洞!

前天 6737阅读

系统要求

  • 操作系统: RHEL/CentOS 5 或 6(32位/64位版本需与Oracle版本严格匹配)。
  • 内存: 最低1GB(生产环境推荐4GB以上以获得最佳性能)。
  • 磁盘空间:
    • 基础安装:1.5GB(Oracle软件)+ 1GB(临时空间)
    • 数据库文件:根据数据量预估,建议至少预留10GB空间
  • Swap空间:
    • 内存≤2GB时:Swap=内存×2
    • 内存2-8GB时:Swap=内存×1.5
    • 内存>8GB时:Swap=内存×1或8GB固定值

安装前准备

(1) 获取Oracle 10g安装包

从Oracle官网下载安装包(需注册OTN账号):

系统要求,你的系统真的安全吗?揭秘隐藏的风险与防护策略!,你的系统真的安全吗?黑客可能正在窥探的5大漏洞! 第1张

  • 32位系统10201_database_linux32.zip
  • 64位系统:10201_database_linux_x86_64.zip

安全提示

  • 建议通过官方渠道下载,避免使用第三方来源的安装包
  • 下载完成后执行校验:md5sum 10201_database_linux*.zip,验证结果应与官网公布的校验值一致

(2) 安装必要依赖包

使用root账户执行以下命令安装基础依赖:

yum groupinstall -y "Development Tools"
yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel \
glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio-devel libgcc \
libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh \
libXp libXtst libXt libXau libXext xorg-x11-xauth

版本适配说明

  • RHEL/CentOS 6用户需额外安装:compat-libstdc++-296
  • 若无法找到pdksh包,可从EPEL仓库获取或手动编译安装
  • 图形界面依赖包建议全部安装,避免安装过程中出现界面异常

(3) 创建Oracle用户和组

执行以下命令创建必要的用户和组:

# 创建主要组和辅助组
groupadd -g 1000 oinstall
groupadd -g 1001 dba
groupadd -g 1002 oper

创建Oracle用户并设置密码

useradd -u 1000 -g oinstall -G dba,oper -s /bin/bash -d /home/oracle oracle echo "oracle:YourSecurePassword123!" | chpasswd

创建必要的目录结构

mkdir -p /home/oracle/.ssh chmod 700 /home/oracle/.ssh

安全最佳实践

  • 避免使用默认组ID(如500),采用1000以上的自定义ID
  • 密码应包含大小写字母、数字和特殊字符,长度不少于12位
  • 建议配置SSH密钥认证,禁用密码登录

(4) 优化系统内核参数

编辑/etc/sysctl.conf,添加以下优化配置:

# 内核共享内存配置
kernel.shmall = 2097152
kernel.shmmax = 4294967296
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

内存过量使用保护

vm.swappiness = 10 vm.dirty_ratio = 40 vm.dirty_background_ratio = 10

应用配置并验证:

sysctl -p
sysctl -a | grep -E 'shm|sem|file-max'

(5) 配置用户资源限制

编辑/etc/security/limits.conf,添加以下内容:

# Oracle用户资源限制
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc     2047
oracle   hard   nproc     16384
oracle   soft   stack     10240
oracle   hard   stack     32768
oracle   soft   memlock   3145728
oracle   hard   memlock   3145728

同时修改/etc/pam.d/login,确保包含:

session    required     pam_limits.so

(6) 准备Oracle安装目录

# 创建目录结构
mkdir -p /u01/app/oracle/product/10.2.0/db_1
mkdir -p /u01/app/oracle/admin/orcl/adump
mkdir -p /u01/oradata/orcl

设置权限

chown -R oracle:oinstall /u01 chmod -R 775 /u01 chmod g+s /u01/app/oracle/product

存储规划建议

  • Oracle软件:/u01(独立分区,建议ext4文件系统)
  • 数据文件:/oradata(单独分区,建议XFS文件系统)
  • 备份文件:/backup(单独分区或存储)

(7) 配置Oracle用户环境

编辑/home/oracle/.bash_profile,添加以下内容:

# Oracle基础环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export ORACLE_TERM=xterm

路径设置

export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

字符集设置

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

临时目录

export TMP=/tmp export TMPDIR=$TMP

别名设置

alias sql='sqlplus / as sysdba' alias lsnr='lsnrctl status'

设置umask

umask 022

使配置生效:

source ~/.bash_profile

Oracle 10g安装过程

(1) 解压安装包

# 创建临时目录
mkdir -p /stage/oracle
unzip 10201_database_linux_x86_64.zip -d /stage/oracle

验证解压结果

ls -l /stage/oracle/database

(2) 启动图形化安装

# 切换到oracle用户
su - oracle

启动安装程序

cd /stage/oracle/database ./runInstaller -ignoreSysPrereqs

图形界面问题排查

  • 确保X11转发配置正确:ssh -X oracle@server_ip
  • 测试图形支持:xclock &
  • 如遇乱码:export LANG=en_US.UTF-8

(3) 图形界面安装步骤详解

  1. 欢迎界面

    • 选择"Advanced Installation"进行自定义安装
    • 勾选"Skip software updates"跳过更新
  2. 安装类型选择

    • 选择"Enterprise Edition"企业版
    • 取消不必要的组件(如Oracle Text等按需选择)
  3. 安装位置配置

    • Oracle Base: /u01/app/oracle
    • Oracle Home: /u01/app/oracle/product/10.2.0/db_1
    • 路径名称保持全小写
  4. 产品组件选择

    • 核心数据库组件必选
    • Oracle JVM(Java应用需要)
    • Oracle XML DB(Web服务需要)
  5. 权限组配置

    系统要求,你的系统真的安全吗?揭秘隐藏的风险与防护策略!,你的系统真的安全吗?黑客可能正在窥探的5大漏洞! 第2张

    • OINSTALL组: oinstall
    • OSDBA组: dba
    • OSOPER组: oper
  6. 数据库配置

    • 选择"Create a starter database"
    • 全局数据库名: orcl.yourdomain.com
    • SID保持与全局名一致: orcl
  7. 数据库特性选择

    • 字符集: AL32UTF8(支持多语言)
    • 国家字符集: UTF8
    • 示例Schema: 开发环境建议安装
  8. 管理选项

    • 选择"Use Database Control for Database Management"
    • 配置通知邮箱(可选)
  9. 数据库存储

    • 存储类型: 文件系统
    • 数据文件位置: /u01/oradata
    • 启用自动扩展
  10. 备份与恢复

    • 生产环境建议启用自动备份
    • 设置备份位置: /u01/backup
  11. 数据库凭证

    • 为SYS/SYSTEM设置不同密码
    • 密码复杂度要求:至少8字符,包含数字和字母
  12. 安装摘要

    • 仔细核对所有配置
    • 保存响应文件以备后续使用
  13. 安装执行

    • 监控安装进度条
    • 注意弹出的脚本执行提示

(4) 执行配置脚本

安装过程中会提示以root身份执行以下脚本:

# 第一个脚本
/u01/app/oracle/oraInventory/orainstRoot.sh

第二个脚本

/u01/app/oracle/product/10.2.0/db_1/root.sh

脚本执行注意事项

  • 按顺序执行脚本
  • 记录脚本输出内容
  • 如遇错误不要继续,先解决问题

安装后配置

数据库初始化验证

# 检查数据库状态
sqlplus / as sysdba
SQL> SELECT name, open_mode, database_role FROM v$database;

验证组件状态

SQL> SELECT comp_name, status, version FROM dba_registry;

检查表空间

SQL> SELECT tablespace_name, status, contents FROM dba_tablespaces;

监听器配置

# 启动网络配置助手
netca

手动验证监听器

lsnrctl status lsnrctl start

设置开机自启动

创建/etc/init.d/oracle服务脚本:

#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle auto start-stop script

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 ORACLE_OWNER=oracle

case "$1" in 'start') su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" ;; 'stop') su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0

设置执行权限并注册服务:

chmod 750 /etc/init.d/oracle
chkconfig --add oracle
chkconfig oracle on

性能优化建议

内存配置调整

-- SGA配置
ALTER SYSTEM SET sga_max_size=2G SCOPE=spfile;
ALTER SYSTEM SET sga_target=2G SCOPE=spfile;

-- PGA配置 ALTER SYSTEM SET pga_aggregate_target=1G SCOPE=spfile;

-- 共享池配置 ALTER SYSTEM SET shared_pool_size=500M SCOPE=spfile;

-- 缓冲区缓存 ALTER SYSTEM SET db_cache_size=1G SCOPE=spfile;

存储优化配置

-- I/O配置优化
ALTER SYSTEM SET disk_asynch_io=TRUE SCOPE=spfile;
ALTER SYSTEM SET filesystemio_options=SETALL SCOPE=spfile;

-- 重做日志优化 ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/oradata/orcl/redo04.log' SIZE 100M; ALTER DATABASE ADD LOGFILE GROUP 5 '/u01/oradata/orcl/redo05.log' SIZE 100M;

关键参数调整

-- 会话级参数
ALTER SYSTEM SET processes=300 SCOPE=spfile;
ALTER SYSTEM SET sessions=335 SCOPE=spfile;
ALTER SYSTEM SET transactions=400 SCOPE=spfile;

-- 诊断参数 ALTER SYSTEM SET diagnostic_dest='/u01/app/oracle' SCOPE=spfile; ALTER SYSTEM SET audit_trail='DB' SCOPE=spfile;

-- 性能参数 ALTER SYSTEM SET optimizer_index_cost_adj=20 SCOPE=spfile; ALTER SYSTEM SET statistics_level='TYPICAL' SCOPE=spfile;

日常维护指南

监控脚本示例

空间监控脚本

#!/bin/bash
# Oracle表空间监控

sqlplus -s / as sysdba << EOF set lines 200 pages 100 col tablespace_name for a20 col "Used MB" for 999,999.99 col "Free MB" for 999,999.99 col "Total MB" for 999,999.99 col "Pct Used" for 999.99

SELECT df.tablespace_name, df.bytes/1024/1024 "Total MB", (df.bytes-fs.bytes)/1024/1024 "Used MB", fs.bytes/1024/1024 "Free MB", ((df.bytes-fs.bytes)/df.bytes)100 "Pct Used" FROM (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) df, (SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) fs WHERE df.tablespace_name = fs.tablespace_name ORDER BY ((df.bytes-fs.bytes)/df.bytes)100 DESC; EOF

备份策略示例

RMAN全备脚本

#!/bin/bash
# Oracle RMAN全备脚本

export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export PATH=$PATH:$ORACLE_HOME/bin export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

rman target / << EOF run { allocate channel ch1 device type disk format '/u01/backup/full%U.bak'; allocate channel ch2 device type disk format '/u01/backup/full%U.bak'; backup as compressed backupset database plus archivelog; backup current controlfile format '/u01/backup/ctl%U.bak'; backup spfile format '/u01/backup/spfile%U.bak'; release channel ch1; release channel ch2; } crosscheck backup; delete noprompt obsolete; delete


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]