前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7安装Oracle11g

CentOS7安装Oracle11g

原创
作者头像
Java king
发布2023-02-21 18:06:25
9540
发布2023-02-21 18:06:25
举报
文章被收录于专栏:后端Java后端Java

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

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连接测试!

到此结束!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一键安装和配置VNC图形化相关
  • 创建用户
  • 开启 VNC服务
  • 客户端连接VNC实现远程控制
  • 安装oracle安装程序依赖程序包
  • 防火墙放行1521oracle端口
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档