CENTOS-7 64 安装oracle

前期准备

系统  CENTOS-7 64位 1804版本
ORACLE版本 :linux.x64_11gR2_database

检查依赖
```powershell
rpm -q \
 binutils \
 compat-libstdc++-33 \
 elfutils-libelf \
 elfutils-libelf-devel \
 expat \
 gcc \
 gcc-c++ \
 glibc \
 glibc-common \
 glibc-devel \
 glibc-headers \
 libaio \
 libaio-devel \
 libgcc \
 libstdc++ \
 libstdc++-devel \
 make \
 pdksh \
 sysstat \
 unixODBC \
 unixODBC-devel
```

或者
rpm -q binutils compat-libcap1 vsftpd gcc gcc-c++ glibc-devel glibc elfutils-libelf-devel compat-libcap1 libaio-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC unixODBC-devel

## 安装缺失的依赖

```powershell
yum install 

//离线安装
rpm -ivh *.rpm
//强制安装
rpm -ivh --replacefiles --force --nodeps *.rpm
```

## 添加用户及用户组

```powershell
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
```

## 设置oracle用户密码
```powershell
passwd oracle   设置密码
```
## 配置hosts文件
127.0.0.1  oracle

## 配置内核参数
vi /etc/sysctl.conf
```powershell
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 536870912
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=1048586
```
*更新配置  sysctl -p
## 设置oracle用户的shell权限
文件 /etc/security/limits.conf
新增内容
```powershell
oracle  soft    nproc   2047
oracle  hard    nproc   16384
oracle  soft    nofile  1024
oracle  hard    nofile  65536
oracle  soft    stack   10240
oracle  hard    stack   10240
```
文件 /etc/pam.d/login
新增内容
```powershell
session required   /lib64/security/pam_limits.so
session required   pam_limits.so
```
文件 /etc/profile
新增内容
```powershell
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
                ulimit -p 16384
                ulimit -n 65536
        else
                ulimit -u 16384 -n 65536
        fi
fi 
```

## 创建安装目录
```powershell
mkdir -p /opt/oracle/app/oracle/product/11.2.0
mkdir /opt/oracle/app/oracle/oradata
mkdir /opt/oracle/app/inventory
mkdir /opt/oracle/app/oracle/fast_recovery_area
chown -R oracle:oinstall /opt/oracle/app/oracle
chmod -R 775 /opt/oracle/app/oracle/
```

## 配置oracle用户变量

切换到oracle用户 su – oracle
修改文件 vi ~/.bash_profile
新增内容 

```powershell
umask 022
export ORACLE_HOSTNAME=dbserver
export ORACLE_BASE=/opt/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=orcl
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
```

重启 解压安装包到  /opt/oracle/

//界面安装,为了避免后期安装弹窗不出现采用以下命令进行安装
./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0


## 设置开机启动

```powershell
vi  /etc/oratab
```

修改 N为Y

```powershell
orcl:/opt/oracle/app/oracle/product/11.2.0:Y
```

```powershell
vi /opt/oracle/app/oracle/product/11.2.0/bin/dbstart
```

```powershell
ORACLE_HOME_LISTNER=$ORACLE_HOME
```

```python
vi /opt/oracle/app/oracle/product/11.2.0/bin/dbshut
```

```powershell
ORACLE_HOME_LISTNER=$ORACLE_HOME
```

 新增服务

 新增文件:vi /etc/rc.d/init.d/oracled
 

```powershell
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
# processname: oracled. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/oracle
ORACLE_HOME=/opt/oracle/app/oracle/product/11.2.0/
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
```


创建服务 : 
chkconfig --add oracled
服务自启动 
systemctl enable oracle

## 配置tmpfs大小

 新增或调整

```powershell
mount -t tmpfs shmfs -o size=4096M /dev/shm
```

```powershell
vi /etc/fstab
```

新增记录

```powershell
tmpfs /dev/shm tmpfs  defaults,size=4096M   0     0
```

# 手动启动数据库
    1.启动监听 
```powershell
lsnrctl start
```
    2.启动库
```powershell
 sqlplus / as sysdba
  conn / as sysdba
  startup
```

注  安装时使用32位oracle存在监听无法启动的问题,网上查找资料未能解决 
-----安装过程中出现的问题:

//监视器配置至少必须显示256种颜色
root:xhost +
oracle:export DISPLAY=:0.0 

//centos关闭防火墙
命令 查看是否运行 systemctl status firewalld.service
命令 进行关闭防火墙 systemctl stop firewalld.service
命令 永久关闭防火墙 systemctl disable firewalld.service
//在oracle用户下输入:sqlplus
抛出bash: sqlplus: command not found

解决办法:

在root用户下输入如下命令:

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
//在Linux CentOS7 中安装oracle 11g数据库过程中弹出错误:
Error in invoking target 'install' of makefile'/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/home/oracle/app/oraInventory/logs/installActions2020-01-02_11-43-42AM.log' for details.
修改文件/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,将

ctxhx: $(CTXHXOBJ)$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
改为:

ctxhx: $(CTXHXOBJ)-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a

点击重试后后面会报 ins_emagent 文件错

修改/home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk文件,将

$(MK_EMAGENT_NMECTL)
改为:

$(MK_EMAGENT_NMECTL) -lnnz11


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值