参考:

1、【主要】 麒麟V10SP1系统安装Oracle11gR2数据库(2023.8.3实测)静默安装_麒麟安装 博客-CSDN博客

2、【主要】、linux系统离线安装oracle 11g - 四毛二 - 博客园

3、 Linux安装Oracle11g(无图形界面下的静默安装)_oracle11g静默安装步骤-CSDN博客

4、linux离线安装oracle11g - NicoKie - 博客园

5、Linux 下静默安装/无网络安装/ Oracle 11g 11.2.0 步骤(CentOS 7)_centos7离线安装oracle数据库-CSDN博客

安装过程记录

操作系统版本:自带jdk,不需要重复安装。

检查服务器版本

uname -a
cat /etc/os-release
cat /etc/yum.repos.d/kylin_x86_64.repo

一、配置本地源:

参考:1、[Linux] 银河麒麟V10 挂载本地yum源_麒麟v10配置本地yum源-CSDN博客

2、在麒麟操作系统中配置本地yum源_麒麟配置本地yum源-CSDN博客

还有豆包,问了些配置问题

下载iso参考 :Kylinv10使用笔记 - Leonardo-li - 博客园

# 1.创建挂载目录
mkdir /mnt/iso

#​​​​​​​2.挂载镜像
mount /mnt/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt/iso/

#3.备份yum源
cd /etc/yum.repos.d
mkdir bak20250625
mv *.repo bak20250625

#4.新建本地yum源
vim /etc/yum.repos.d/kylin_x86_64.repo

#内容如下:
[kylin_x86_64.repo]
name=kylin_x86_64.repo
baseurl=file:///mnt//iso
enabled=1
gpgcheck=0

#5.使yum源生效
yum clean all
yum makecache

​​​​​​​#6.验证
yum list

    实操:

    二、准备工作

    1、关闭selinux、防火墙(非必须)

    修改selinux的配置文件
    vim /etc/selinux/config
    将SELINUX这一行改为SELINUX=disabled
    
    
    systemctl stop firewalld  关闭防火墙
    systemctl disable firewalld  禁止防火墙开机启动
    systemctl status firewalld 查看防火墙状态

    2、创建用户、用户组、安装目录

    [root@localhost ~]# groupadd oinstall #创建oinstall组
    [root@localhost ~]# groupadd dba  #创建dba组
    [root@localhost ~]# useradd -g oinstall -G dba oracle  #创建oracle用户并将用户加入到dba组与oinstall组
    [root@localhost ~]# passwd oracle #设置oracle用户密码
    

    创建安装目录、分配权限

    mkdir -p /u01/app/
    chown -R oracle:oinstall /home/oracle
    chmod -R 775 /home/oracle
    chown -R oracle:oinstall /u01/app/
    chmod -R 775 /u01/app/
    
    #补充
    mkdir -p /u01/app/oracle
    mkdir -p /u01/app/oraInventory
    mkdir -p /u01/app/rsp
    mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
    chown -R oracle:oinstall /u01/app/oracle
    chown -R oracle:oinstall /u01/*
    chmod -R 775 /u01/*
    
    

    3、配置内核和系统参数

    编辑sysctl.conf

    vim /etc/sysctl.conf

    把下列内容放到sysctl.conf文件中

    # use for oracle11gR2
    kernel.shmmax = 2147483648
    kernel.shmall = 268435456
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 9000 65500
    
    # 1024 65000
    net.core.rmem_default = 4194304
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576
    # 262144
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    
    #tuxedo
    kernel.msgmni = 4096
    kernel.msgmax = 65536
    kernel.msgmnb = 84000
    

    结合实际情况可修改(8核64G服务器)

    # use for oracle11gR2 on 8-core 64GB server
    kernel.shmmax = 4398046511104    # 调整为48GB (64GB * 0.75)
    kernel.shmall = 1073741824       # 调整为48GB (48GB * 1024 * 1024 / 4KB)
    kernel.shmmni = 4096             # 保持不变
    kernel.sem = 250 32000 100 128   # 保持不变
    
    net.ipv4.ip_local_port_range = 9000 65500   # 保持不变
    net.core.rmem_default = 8388608             # 增加为8MB
    net.core.rmem_max = 16777216                # 增加为16MB
    net.core.wmem_default = 2097152             # 增加为2MB
    net.core.wmem_max = 8388608                 # 增加为8MB
    
    fs.aio-max-nr = 2097152       # 增加为200万,支持更多异步I/O
    fs.file-max = 13107200        # 增加为1300万,支持更多文件描述符
    
    # tuxedo
    kernel.msgmni = 4096          # 保持不变
    kernel.msgmax = 65536         # 保持不变
    kernel.msgmnb = 84000         # 保持不变

    立即加载参数(避免重启后遗漏):

    sysctl -p

    4、修改用户权限

    vi /etc/security/limits.conf
    • 添加如下内容到 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 10240
    
    vi /etc/pam.d/login
    • 添加如下内容
    session required /lib64/security/pam_limits.so
    session required pam_limits.so
    • 修改配置文件在尾部添加
    vi /etc/profile
    if [ $USER = "oracle" ]; then
       if [ $SHELL = "/bin/ksh" ]; then
           ulimit -p 16384
           ulimit -n 65536
        else
           ulimit -u 16384 -n 65536
       fi
    fi
    

    使文件生效

    source /etc/profile
    

    6、上传安装包和依赖

    解压文件

    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
    

    • 解压后执行,用于处理oracle自带unzip问题
    cd database/install
    mv unzip unzip.bak
    ln -s /usr/bin/unzip
    

    实操:

    7、安装依赖

    • 点链接下载依赖包 >>> 依赖文件包 <<< 点链接下载依赖包
      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

    解压后需强制安装非麒麟原有包,并卸载 libaio 用于降级

    [root@szoracle2 ~]# cd /opt/software/
    [root@szoracle2 software]# ls
    linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip  oracle11g_yilai.zip  package_ky10sp1_oracle.zip
    [root@szoracle2 software]# unzip package_ky10sp1_oracle.zip

    rpm -qa|grep libaio
    rpm -e libaio-0.3.111-5.p03.ky10.x86_64 --nodeps
    rpm -ivh *.rpm --nodeps --force
    

    问题?

    我这边libaio版本不一样,需要修改命令

    修改后:

    rpm -qa|grep libaio
    rpm -e libaio-0.3.112-1.p01.ky10.x86_64 --nodeps
    rpm -ivh *.rpm --nodeps --force
    

    又遇到的问题

    解决:

    一、问题分析
    直接原因:
    rpm -e --nodeps 强制卸载了 libaio 包,但该包可能与其他依赖项(如 LLVM)存在关联。卸载后,ldconfig 在刷新动态链接库缓存时发现 /usr/lib64/libLLVM-7.so 不符合预期格式(应为符号链接,但实际可能是文件或损坏的链接)。
    潜在影响:
    依赖 LLVM 的应用程序可能无法正常运行。
    系统动态链接库缓存可能失效,导致后续软件安装 / 卸载异常。
    
    二、解决方案
    1. 修复 libLLVM-7.so 符号链接
    检查该文件的实际状态,并重建符号链接:
    bash
    # 查看文件类型和指向
    ls -l /usr/lib64/libLLVM-7.so
    
    # 示例输出1(正常符号链接):
    # lrwxrwxrwx. 1 root root 22 5月  24 2021 /usr/lib64/libLLVM-7.so -> libLLVM-7.so.1
    
    # 示例输出2(异常文件):
    # -rwxr-xr-x. 1 root root 123456 5月  24 2021 /usr/lib64/libLLVM-7.so
    
    # 如果不是符号链接,删除并重建(根据实际情况调整目标文件)
    rm -f /usr/lib64/libLLVM-7.so
    ln -s libLLVM-7.so.1 /usr/lib64/libLLVM-7.so  # 假设实际库文件为libLLVM-7.so.1
    
    # 刷新动态链接库缓存
    ldconfig
    
    
    2. 重新安装 libaio 包
    由于强制卸载可能导致依赖问题,建议重新安装 libaio:
    bash
    # 从本地源安装
    yum --disablerepo=* --enablerepo=kylin-local reinstall libaio
    
    # 或从ISO手动安装(需先挂载ISO)
    rpm -ivh /mnt/iso/Packages/libaio-0.3.112-1.p01.ky10.x86_64.rpm
    
    
    3. 检查并修复其他依赖
    bash
    # 检查系统依赖完整性
    yum check
    
    # 重建rpm数据库(可选,如出现其他rpm错误)
    rpm --rebuilddb
    
    

    安装其他依赖

    yum install ksh
    yum install libaio-devel*    #提示已安装
    yum install elfutils*        #提示已安装
    yum install gcc*
    

    • 提前处理缺失文件
    cp libpthread_nonshared.a /usr/lib64/
    chmod 755 /usr/lib64/libpthread_nonshared.a
    

    8、配置环境变量

    需要先切换到oracle用户

    su - oracle
    cd /opt/software
    vi ~/.bash_profile
    

    添加内容:

    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_SID=orcl
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
    export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
    export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
    export ORACLE_OWNER=oracle
    export SPFILE_PATH=$ORACLE_HOME/dbs
    export ORA_NLS10=$ORACLE_HOME/nls/data

    使配置生效:

    source ~/.bash_profile

    三、安装oracle

    1、修改响应文件

    先备份

     cd /opt/software/database/response/
    [oracle@szoracle2 response]$ ll
    总用量 76
    -rw-rw-r-- 1 root root 44969  2月 14  2009 dbca.rsp
    -rw-rw-r-- 1 root root 22557  8月 15  2009 db_install.rsp
    -rwxrwxr-x 1 root root  5740  2月 26  2009 netca.rsp
    [oracle@szoracle2 response]$ cp db_install.rsp db_install.rsp.bak20250625
    cp: 无法创建普通文件'db_install.rsp.bak20250625': 权限不够   --另外开一个界面赋予权限切换到root用户
    [oracle@szoracle2 response]$ cp db_install.rsp db_install.rsp.bak20250625
    

    .配置数据库安装文件 root用户

    vim /db_install.rsp
    
    按照下面配置进行修改(一个个配置项找到并赋值)
    
    oracle.install.option=INSTALL_DB_SWONLY
    ORACLE_HOSTNAME=szoracle2
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/u01/app/oracle/oraInventory
    SELECTED_LANGUAGES=en,zh_CN
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    ORACLE_BASE=/u01/app/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.isCustomInstall=false
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=oinstall
    #这里必须填ture
    DECLINE_SECURITY_UPDATES=true

    2、安装数据库

    切换到oracle用户

    su- oracle
    
    到/opt/software/database/目录下执行安装语句
    cd /opt/software/database/
    
    ./runInstaller -silent -force -responseFile /opt/software/database/response/db_install.rsp -ignorePrereq

    出现的问题:

    可能是哪个文件夹赋予的权限问题

    重新执行静默安装命令,有告警信息,但是安装成功了

    再切换到root用户,执行上图中的两个.sh文件

    [oracle@szoracle2 database]$ exit
    注销
    [root@szoracle2 response]# sh /u01/app/oracle/oraInventory/orainstRoot.sh
    [root@szoracle2 response]# sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
    
    
    

    实操:

    3、安装数据库实例

    (1)配置dbca.rsp文件,先备份(root用户)
    [root@szoracle2 response]# cp dbca.rsp dbca.rsp.bak20250625
    
    [root@szoracle2 response]#vim dbca.rsp
    按照下面配置进行修改(一个个配置项找到,有的需要把注释符#删除再进行配置,密码根据自己要求设置)
    
    GDBNAME = "orcl"
    SID = "orcl"
    SYSPASSWORD = "oracle"     #找不到未注释的用户,去掉注释修改初始密码
    SYSTEMPASSWORD = "oracle"   #找不到未注释的用户
    SYSMANPASSWORD = "oracle"   #找不到未注释的用户
    DBSNMPPASSWORD = "oracle"   #找不到未注释的用户
    DATAFILEDESTINATION =/u01/app/oracle/oradata  #找不到未注释的,去掉注释修改内容
    RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area #找不到未注释的,去掉注释修改内容
    CHARACTERSET = "AL32UTF8" #找不到未注释的,去掉注释修改内容
    TOTALMEMORY = "26214" #找不到未注释的,去掉注释修改内容32G*1024*80%
    # 其中TOTALMEMORY = "1638" 为1638MB,物理内存2G*80%
    
    (2)安装数据库实例(oracle用户)
    su - oracle
    
    dbca -silent -responseFile /opt/software/database/response/dbca.rsp
    
    实例进程检查
    ps -ef | grep ora_ | grep -v grep

    实操:

    4、配置监听

    需要oracle用户

    执行下面语句
    
    netca /silent /responsefile /opt/software/database/response/netca.rsp
    
    或者可以换成【未验证】
    ./netca -silent -responseFile /opt/software/database/response/netca.rsp
    
    
    查看监听状态
    netstat -tnulp | grep 1521

    实操:

    5、登录验证

    sqlplus、plsql工具都试一下

    sqlplus:

    [oracle@szoracle2 response]$ sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 26 00:16:35 2025
    
    Copyright (c) 1982, 2009, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL> SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET';                                                                
    PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_CHARACTERSET
    AL32UTF8
    
    NLS_NCHAR_CHARACTERSET
    AL16UTF16
    
    
    SQL>
    

    可以登录和查询数据。

    plsql登录:

    plsql可以正常登录

    至此,数据库就安装好了。

    四、配置开机自启动

    设置oracle开机自启 root用户

    修改dbstart文件
    vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
    将    ORACLE_HOME_LISTNER=$1 
    修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
    
    
    
    修改dbshut文件
    vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
    将    ORACLE_HOME_LISTNER=$1 
    修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME 
    
    
    
    修改oratab文件
    vim /etc/oratab
    将 orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N    中最后的 N 改为 Y
    
    
    
    切换到oracle用户执行 dbshut 和 dbstart 
    测试(dbshut的时候监听也同时关闭了,dbstart的时候监听也同时启动)

    实操:

    切换到root用户添加开机启动脚本
    vim /etc/rc.d/init.d/oracle
    #将下列内容编辑到脚本文件中
    
    #!/bin/bash  
    # oracle: Start/Stop Oracle Database 11g R2  
    # chkconfig: 345 90 10  
    # description: The Oracle Database is an Object-Relational Database Management System.  
    #   
    . /etc/rc.d/init.d/functions  
    LOCKFILE=/var/lock/subsys/oracle  
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    ORACLE_USER=oracle  
    case "$1" in  
    'start')  
        if [ -f $LOCKFILE ]; then  
          echo $0 already running.  
          exit 1  
       fi   
       echo -n $"Starting Oracle Database:"  
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"  
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"  
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"  
       touch $LOCKFILE  
       ;;  
    'stop')  
       if [ ! -f $LOCKFILE ]; then  
          echo $0 already stopping.  
          exit 1  
       fi   
       echo -n $"Stopping Oracle Database:"  
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"  
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"   
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"  
       rm -f $LOCKFILE  
       ;;   
    'restart')  
       $0 stop  
       $0 start  
       ;;   
    'status')  
       if [ -f $LOCKFILE ]; then  
          echo $0 started.  
          else   
          echo $0 stopped.  
       fi   
       ;;  
    *)   
       echo "Usage: $0 [start|stop|status]"  
       exit 1  
    esac  
    exit 0
    
    
    
    
    
    #修改文件权限
    chmod 755 /etc/init.d/oracle
    
    
    #设置开机启动执行
    chkconfig oracle on
    
    #查看
    chkconfig --list oracle

    实操:

    测试自启动

    #执行操作以下命令进行测试
    service oracle stop
    service oracle restart
    service oracle start

    实操:

    重启服务器,然后用工具测试登录数据库。

    经验证,plsql可以登录。

    遇到的问题汇总:

    1、安装不了依赖包

    需要先配置本地yum源。

    2、安装时提示的权限问题;

    3、补充个情况,由于发现生产库的字符集和我这次安装不一致,于是重装了数据库

    现有数据库

    新建数据库

    重装操作如下:

    1、删除现有数据库
    # 以root用户切换到oracle用户
    su - oracle
    
    # 删除现有数据库(替换ORCL为你的SID,password为SYSDBA密码)
    dbca -silent -deleteDatabase -sourceDB orcl -sysDBAUserName sys -sysDBAPassword oracle
    
    ---说明 oracle是sys的密码
    
    2. 修改响应文件
    编辑 dbca.rsp,确保字符集配置正确:
    # 修改dbca.rsp中的字符集配置
    CHARACTERSET = "ZHS16GBK"
    
    
    3. 重新创建数据库
    # 使用修改后的响应文件创建新数据库
    dbca -silent -responseFile /opt/software/database/response/dbca.rsp

    实操:

    Logo

    技术共进,成长同行——讯飞AI开发者社区

    更多推荐