0、查看Swap分区空间
不能小于2G
grep SwapTotal /proc/meminfo
free -g
备注:
单位:k m g
1、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2、关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
3、安装各类依赖
yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* unzip lrzsz
由于是无网环境,安装较为复杂,可以先不进行这一步,先安装oracle,之后缺依赖会报错的(gcc与g++),到时候缺啥补啥。我在安装过程中只安装了gcc就满足了所有需求(新安装的centos)。
下附离线的gcc安装包:
gcc离线安装包下载地址:https://ftp.gnu.org/gnu/gcc/
4、修改CentOS系统标识 (由于Oracle默认不支持CentOS)
vim /etc/redhat-release
4.1、删除CentOS Linux release 7.9.2009 (Core)(快捷键dd),改成redhat-7
redhat-7
5、创建Oracle用户
需进入 root 用户进行创建
创建用户组:
单实例默认创建oinstall和dba即可,rac数据库需要全部创建
创建安装oracle程序用户组
groupadd oinstall
创建DBA用户组
groupadd dba
groupadd oper
groupadd asmdba
groupadd asmoper
groupadd asmadmin
创建用户:
创建oracle用户,所属大组为oinstall,附属组为dba,oper,asmdba,并指定家目录为/home/oracle(可以不用指定,默认即可)
创建用户oracle 并加入到dba组、oinstall组
useradd -g oinstall -G dba,asmdba,oper -d /home/oracle oracle
id oracle
passwd oracle
创建grid用户:
在rac数据库中用到
---useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
---id grid
---passwd grid
设置 oracle 用户的密码: passwd oracle
参数:
groupadd [-g gid [-o]] [-r] [-f] groupname
-g:指定新建工作组的id;除非使用-o参数不然该值必须是唯一,不可相同。数值不可为负。预设为最小不得小于500而逐次增加。0~999传统上是保留给系统帐号使用。
-r:创建系统工作组,系统工作组的组ID小于500。此参数是用来建立系统帐号。UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的帐号不会建立使用者目录,也不会在乎纪录在/etc/login.defs.的定义值。如果你想要有使用者目录须额外指定-m参数来建立系统帐号。
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。
-f: 新增一个已经存在的群组帐号,系统会出现错误讯息然后结束groupadd。如果是这样的情况,不会新增这个群组(如果是这个情况下,系统不会再新增一次),也可同时加上-g选项当你加上一个gid,此时gid就不用是唯一值,可不加-o参数,建好群组后会显结果。
eg:
groupadd -g 507 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba
useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle
5、配置内核参数与资源限制
vi /etc/sysctl.conf。注意这只是官方要求的最低要求,可根据需要进行增大。 fs.aio-max-nr = 1048576 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
---或者执行命令添加----------------
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
echo "kernel.shmmax = 68719476736" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65000" >> /etc/sysctl.conf
echo "net.core.rmem_default=262144" >> /etc/sysctl.conf
echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default=262144" >> /etc/sysctl.conf
echo "net.core.wmem_max=1048576" >> /etc/sysctl.conf
# 使参数生效 sysctl -p
6、修改系统配置
修改/etc/security/limits.conf文件
在末尾添加
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
---或者执行命令添加------
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft nofile 1024" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
echo "oracle soft stack 10240" >> /etc/security/limits.conf
7、创建 oracle 目录
创建根目录需要注意权限的问题,最简单的是在linux根目录重新开一个分支。如下所示: # Oracle 根目录 mkdir -p /Oracle # 用户oracle赋权读写这个文件夹 chown -R oracle:oinstall /Oracle # 安装目录 mkdir -p /Oracle/oracle 将Oracle的两个压缩包解压到/Oracle目录,解压后的目录结构如下:
oracle数据库安装目录:mkdir -p /Oracle/oracle
oracle数据库配置文件目录:mkdir -p /Oracle/oraInventory
oracle数据库软件包解压目录:mkdir -p /Oracle/database
设置目录所有者为oinstall用户组的oracle用户:
chown -R oracle:oinstall /Oracle/oracle
再输入:chown -R oracle:oinstall /Oracle/oraInventory
再输入:chown -R oracle:oinstall /Oracle/database
8、修改环境变量
修改 Root 环境变量
vi /etc/profile
在最后添加如下代码: export ORACLE_BASE=/Oracle/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/dbname export ORACLE_SID=ORACLE export ORACLE_UNQNAME=ORACLE export NLS_LANG=.AL32UTF8 export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib
使环境变量生效:source /etc/profile
修改 oracle 账户环境变量 vi /home/oracle/.bash_profile 在最后添加如下代码:
export ORACLE_BASE=/Oracle/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/dbname export ORACLE_SID=ORACLE export ORACLE_UNQNAME=ORACLE export NLS_LANG=.AL32UTF8 export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib
使环境变量生效:source ~/.bash_profile
参数:
export ORACLE_BASE=/Oracle/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/dbname
export ORACLE_SID=ORACLE #oracle启动数据库实例名
export ORACLE_UNQNAME=ORACLE export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib
9、创建安装脚本
在压缩包解压后的 database 目录下新建安装脚本:
vi install.sh
之所以需要创建安装脚本存放安装参数,而不是使用 /response/db_install.rsp 文件,是因为安装过程中会报如下错误:
The given response file /data1/database/response/myinstall.rsp is not valid.
这个错误貌似需要在 db_install.rsp 中登录 oracle 的账号密码才可解决。
以下的脚本需要注意 Oracle 路径
./runInstaller -silent \ oracle.install.option=INSTALL_DB_AND_CONFIG \ ORACLE_HOSTNAME=localhost \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/Oracle/oraInventory \ SELECTED_LANGUAGES=en \ ORACLE_HOME=/Oracle/oracle/product/11.2.0.3/dbname \ ORACLE_BASE=/Oracle/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.DBA_GROUP=dba \ oracle.install.db.OPER_GROUP=oper \ oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \ oracle.install.db.config.starterdb.globalDBName=prod \ oracle.install.db.config.starterdb.SID=ORACLE \ oracle.install.db.config.starterdb.characterSet=AL32UTF8 \ oracle.install.db.config.starterdb.memoryOption=true \ oracle.install.db.config.starterdb.memoryLimit=1024 \ oracle.install.db.config.starterdb.installExampleSchemas=false \ oracle.install.db.config.starterdb.password.ALL=Root_root123 \ oracle.install.db.config.starterdb.control=DB_CONTROL \ oracle.install.db.config.starterdb.automatedBackup.enable=false \ oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE \ oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/Oracle/oracle/data \ oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/Oracle/oracle/fast_recovery_area \ oracle.install.db.config.starterdb.automatedBackup.enable=false \ DECLINE_SECURITY_UPDATES=true
10、安装
执行安装脚本后,中途可能会报错,此时可以根据提示的日志位置,去查看日志,并进行解决。如果之前没有安装依赖,会在这里报错,可以去日志里看看缺啥。反正我安装了 gcc之后就不再报错了。对了,如果磁盘啥的空间不足也会在这里报错。
日志文件中需要关注 WARNING 和 FATAL
时间稍长,精心等待。若安装成功,则会显示如下:
11、相关问题与解决方案
(1)bash: sqlplus: command not found
在 oracle 用户中无法运行 sqlplus。sqlplus是位于 $ORACLE_HOME/bin 目录下的可执行文件。有如下两个方向排查问题:
a. 查看 oracle 用户下的 $ORACLE_HOME 环境变量路径是否正确。本次安装过程中该路径地址为:
[oracle@localhost home]$ echo $ORACLE_HOME /Oracle/oracle/product/11.2.0.3/dbname [oracle@localhost home]$ echo $ORACLE_BASE/ /Oracle/oracle/
b. 添加 sqlplus 执行文件软连接到 /usr/bin 中(root 用户下)
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
(2)runinstaller: line 97 /db/database/install/.oui: cannot execute binary file
权限问题,不要将 oracle 的安装目录放在子目录中,即使将 oracle 用户对该目录赋权了,oracle用户也没有权限通过父目录找到子目录。具体做法参考 第七节 目录的创建。
(3)Insufficient disk space on this volume for the selected Oracle home.
额,没解决,重装系统了。如果对自己有信心,且时间充足,可以尝试解决。其实思路也不难,增加centos主机额外的磁盘,之后进行分区扩展磁盘空间(但我没成功,系统直接崩了,也没想细想,不如重装系统快些,主要也还是我的centos上啥也没有,嘿嘿)
参考: Linux_虚拟机增加一块新磁盘并设置磁盘挂载_大数据面试宝典的博客-CSDN博客_linux虚拟机新加一块硬盘 https://blog.csdn.net/weixin_43893397/article/details/102599330
(4)bash: lsnrctl: command not found
解决方法同(1)
(5)ORA-01031: insufficient privileges
原因:无权限。正常本地登陆的时候应该不需要授权的,检查sqlnet.ora文件,文件路径为$ORACLE_HOME/network/admin/sqlnet.ora。在linux下,在 SQLNET.AUTHENTICATION_SERVICES 的值设置为ALL,或者不设置的情况下,OS验证才能成功;
ORA-01031: insufficient privileges问题解决办法 - 博客 - 编程圈 (bianchengquan.com) https://www.bianchengquan.com/article/192189.html
标签:centos,etc,数据库,db,Oracle,ORACLE,install,oracle From: https://www.cnblogs.com/elfin/p/16744945.html