oracle11g安装配置Linux环境【国产银河麒麟操作系统Kylin Linux Advanced Server V10 】
摘要:本文详细记录了在麒麟V10SP1系统上静默安装Oracle 11gR2数据库的全过程。主要内容包括:1)配置本地yum源;2)系统环境准备(关闭selinux/防火墙、创建用户组、配置内核参数);3)解决依赖包冲突(重点处理libaio版本问题);4)设置Oracle环境变量;5)通过响应文件实现静默安装;6)创建数据库实例和监听服务。安装过程中遇到依赖包冲突、权限不足、字符集不一致等问题,
参考:
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
实操:
更多推荐
所有评论(0)