CentOS7安装Oracle11g

2023-02-21 18:06:25 浏览数 (1)

社会犹如一条船,没跟人都要有掌舵的准备。——易卜生

CentOS7安装Oracle11g

项目

版本

操作系统

CentOS 7.6.1810 x86_64(Py3.7.9)

oracle

linux.x64_11g_11.2.0.4

Oracle11g版本选择:

强烈建议下载 11.2.0.4版本的,oracle版本是官网下载的11.2.0.1有点小坑在里面,我是后来遇到坑后换成的 11.2.0.4版本。

准备工作

兵马未动,粮草先行。

在安装之前,我们要做一些简单的准备工作,大致如下:

1:创建oracle用户和组

2:图形化的操作环境:VNC远程或者直接本地图形化操作。

参考网站

一键安装和配置VNC图形化相关

root执行以下命令 可以直接整体复制粘贴到终端就行(不用一行一行复制)。

代码语言:shell复制
#图形界面必备`X Window System`
yum -y groupinstall "X Window System"
#安装epel源
yum -y install epel-release
#安装VNC 图形需要的软件
yum -y install tigervnc-server openbox xfce4-terminal tint2 cjkuni-ukai-fonts network-manager-applet
#自动修改/etc/xdg/openbox/autostart配置文件
echo 'if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then' > /etc/xdg/openbox/autostart
echo '       eval `dbus-launch --sh-syntax --exit-with-session`' >> /etc/xdg/openbox/autostart
echo 'fi' >> /etc/xdg/openbox/autostart
echo 'tint2 &' >> /etc/xdg/openbox/autostart
echo 'nm-applet  &' >> /etc/xdg/openbox/autostart
echo 'xfce4-terminal &' >> /etc/xdg/openbox/autostart
echo ' ' >> /etc/xdg/openbox/autostart
#防火墙放行VNC端口
firewall-cmd --add-port=5901/tcp
firewall-cmd --add-port=5901/tcp --permanent

创建用户

为了安全起见,不建议使用root做为vnc用户。单独创建一个用户比较安全。

既然安装oracle,用户名我使用oracle

root执行以下命令 可以直接整体复制粘贴到终端就行(不用一行一行复制)。

代码语言:shell复制
#创建database用户组
groupadd database
#创建oracle用户并放入database组中
useradd oracle -g database
#设置oracle密码
passwd oracle 

执行完之后会提示new password 设置用户密码 我这里设置的:admin

开启 VNC服务

切换到oracle用户

代码语言:shell复制
su oracle
#首次运行,生成~/.vnc/xstartup等配置文件
vncserver :1 -geometry 1024x768

我这里设置的密码是 :vncadmin

oracle用户执行以下命令,可以直接整体复制粘贴到终端就行(不用一行一行复制)。

代码语言:shell复制
#配置VNC默认启动openbox
echo "openbox-session &" > ~/.vnc/xstartup
# 停止服务
vncserver -kill :1
#重新开启vnc服务
vncserver :1 -geometry 1024x768

客户端连接VNC实现远程控制

使用你的VNC客户端连接就行了,会的就略过吧。

我用的是:VNC Viewer点击下载

我的地址如下:47.99.54.83:5901

公网IP 端口回车就可以,如果提示Timed out waiting for a response from the computer

端口未被开放,我这里是阿里云服务器给安全组配置好端口就可以连接上了,输入设置的密码就可以

如果你连接的时候发现,没有界面,是黑屏的只有一个鼠标,那么可以重启一下VNC服务试试。

切换到oracle用户su oracle

命令:

代码语言:shell复制
vncserver -kill :1
vncserver :1 -geometry 1024x768

安装oracle安装程序依赖程序包

root用户执行以下命令:su root

代码语言:shell复制
yum -y install binutils compat-libcap1  compat-libstdc  -33 compat-libstdc  -33*.i686 elfutils-libelf-devel gcc gcc-c   glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc   libstdc  *.i686 libstdc  -devel libstdc  -devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp

安装中文字体解决中文乱码问题

默认情况下,因CentOS 中缺少中易宋体18030所以会导致中文显示成□□□□□的问题。

中文是世界上最美的文字,不能显示太可惜了。很简单增加所需字体就行了。操作如下:

下载字体:

https://download.csdn.net/download/lxyoucan/14968070

root执行以下命令:

新建文件夹

代码语言:shell复制
mkdir -p /usr/share/fonts/zh_CN/TrueType
~~~

`zysong.ttf`上传到/usr/share/fonts/zh_CN/TrueType目录

```shell

chmod 75 /usr/share/fonts/zh_CN/TrueType/zysong.ttf

代码语言:txt复制
字体安装完成,这样安装oracle就不会中文乱码了。

就喜欢英文安装界面,想用英文界面怎么办呢?
如果不想用中文界面安装,安装前运行以下命令,临时使用英文环境。

```shell

LANG=en_US

代码语言:txt复制
## 上传并解压安装包

安装包我上传到网盘上了需要直接 [下载](https://pan.baidu.com/s/1ocf-jBwHwk0mDQm7eUBTRw)

提取码:366c

上传安装包到 CentOS7服务器。我上传到 `/home/oracle/`目录了。
上传以后,文件路径和名称如下:

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414151341.png)

我这里是使用宝塔面板上传解压的,也可以使用unzip解压

如果没有unzip工具,安装unzip用于文件解压root执行以下面

```shell

yum install unzip

unzip 需要解压的文件

代码语言:txt复制
安装oracle实战
准备工作已经结束了,接下来的安装工作就跟在windows下安装oracle差不多了。先总结一下,基本就是根据界面提示就可以一路“下一步(N)”就可以完成了。
需要稍微注意的就是:

桌面类与服务器类的选择
超级管理员密码的设置
先决条件检查
其它的根据自己的需要,或者一路“下一步(N)”就可以完成了。为了一些朋友更直观的观看,我把每一步都截图了,可以跳着看。

oracle用户登录vnc远程桌面。
进入`~/database/`目录。

```shell

#进入安装目录

cd ~/database/

#运行安装程序

./runInstaller

代码语言:txt复制
## 配置安全更新

根据需要设置,我这里就不设置了。![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414151535.png)



## 网络安装选项

选择“`创建和配置数据库(C)`”

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414151716.png)

## 桌面类 or 服务器类

描述中已经说的很清楚了,根据自己需要选择。这里我选择的是`服务器类(S)`。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414151940.png)

## 安装类型

我选默认的,`单实例数据库安装(S)`根据实际需要选择。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414152014.png)

## 典型安装

默认`典型安装(T)`即可。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414152103.png)

## 典型安装配置

主要设置一下密码,其他默认即可。这里密码要在大写字母 小写字母 数字组合。比如:我设置的是`Admin0102`。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414152410.png)

## 创建产品清单

默认即可。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414152438.png)

执行先决条件检查
这一步要稍花一些时间处理。每个人的显示可能略有不同。比如:物理内存的检测,我这个1G内存就会提示小于预期。
处理方法:

根据提示信息做处理即可,比如:内存小了,加大内存啊。
执行修补并再次检查(F) 可以自动修复

方法上面描述的很清楚。
root权限执行:

~~~shell
/tmp/CVU_11.2.0.1.0_oracle/runfixup.sh
~~~

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414153544.png)

修复之后,警告我全部忽略了。

## 概要

这里显示了安装配置的概要部分,检查一下是否正确。没问题就开始安装吧!

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414162916.png)

## 安装产品

上面折腾了这么久终于迎来了真正的安装操作了。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414163116.png)

## 进度70% ins_emagent.mk错误弹框

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414165108.png)

编辑:
/home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
约176行,可以搜索`$(MK_EMAGENT_NMECTL)` 关键字快速找到。

修改后如下:

~~~shell
#===========================
#  emdctl
#===========================

$(SYSMANBIN)emdctl:
	$(MK_EMAGENT_NMECTL) -lnnz11

#===========================
#  nmocat
#===========================

~~~

点击重试。

## 复制数据库文件

上面的问题解决后,安装一会儿就会出现如下的界面。耐心等待即可。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414165220.png)

## 数据库创建完成

经过一段时间的等待,终于弹出如下界面。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414170035.png)

## 执行配置脚本

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414170238.png)

根据上图提示,root 执行上面两个脚本就可以了。
执行结果如下:
[root@localhost ~]# /home/oracle/app/oraInventory/orainstRoot.sh
更改权限/home/oracle/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。

更改组名/home/oracle/app/oraInventory 到 database.
脚本的执行已完成。

```shell

root@localhost ~# /home/oracle/app/oraInventory/orainstRoot.sh

更改权限/home/oracle/app/oraInventory.

添加组的读取和写入权限。

删除全局的读取, 写入和执行权限。

更改组名/home/oracle/app/oraInventory 到 database.

脚本的执行已完成。

root@localhost ~# /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

Performing root user operation for Oracle 11g

The following environment variables are set as:

代码语言:txt复制
ORACLE_OWNER= oracle
代码语言:txt复制
ORACLE_HOME=  /home/oracle/app/oracle/product/11.2.0/dbhome_1

Enter the full pathname of the local bin directory: /usr/local/bin:

Copying dbhome to /usr/local/bin ...

Copying oraenv to /usr/local/bin ...

Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

root@localhost ~#

代码语言:txt复制
执行完点击Ok

## Oracle Database 的安装已成功

经过我们的努力,终于走到了这一步。
Oracle Database 的安装已成功。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414170343.png)

点击`关闭`即可。

# 防火墙放行1521

默认端口是1521

```shell

防火墙放行1521oracle端口

firewall-cmd --add-port=1521/tcp

firewall-cmd --add-port=1521/tcp --permanent

代码语言:txt复制
# 配置环境变量

```shell

su oracle

代码语言:txt复制
切换到oracle用户操作。
编辑配置文件

```shell

vi ~/.bash_profile

代码语言:txt复制
文件末尾加入以下内容,ORACLE_HOME中换成你实际安装的路径

```shell

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1/

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin

代码语言:txt复制
使用配置文件立即生效。

```shell

source ~/.bash_profile

代码语言:txt复制
# 日常运维 启动oracle

```shell

su oracle

sqlplus /nolog

SQL> connect /as sysdba

SQL> startup

代码语言:txt复制
## sys用户登录

```shell

oracle@localhost ~$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Tue Feb 2 02:59:38 2021

Copyright (c) 1982, 2013, Oracle. All rights reserved.

SQL> connect as sysdba

Enter user-name: sys

Enter password:

Connected.

SQL> select 1 from dual;

代码语言:txt复制
 1

代码语言:txt复制
 1

SQL>

代码语言:txt复制
如果启动报错:ORA-27154: post/wait create failed

还会伴随以下几个错误:

ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
查看当前设置

```shell

cat /proc/sys/kernel/sem

代码语言:txt复制
4个数据分别对应:SEMMSL SEMMNS SEMOPM SEMMNI

具体的意义这里不作説明,只说下修改方案。

将`/proc/sys/kernel/sem`下的`kernel.sem`改成`kernel.sem =5010 641280 5010 128`

然后执行

```shell

sysctl -p

代码语言:txt复制
然后重新连接就可以了。

![](https://minking.oss-cn-beijing.aliyuncs.com/img/20220414173944.png)

没有问题,说明oracle本地连接oracle成功。

## 启动监听

```shell

lsnrctl start

使用Navicat16连接测试!

到此结束!!!

0 人点赞