Centos7安装Oracle 11g数据库,一次安装成功完整步骤(安装前准备,过程图文结合)保姆级教程

一、安装前准备

目前Centos7的官方yum源已经停止维护,需要我们手动修改阿里镜像源

centos7官方yum源

http://mirror.centos.org/centos

oracle所需要的jdk8和oracle 11g安装包

链接:https://pan.baidu.com/s/1tPOwyQgAo26uWi1nkkQ4Kw?pwd=asd3
提取码:asd3

1.1 YUM源路径

vi /etc/yum.repos.d/CentOS-Base.repo 

1.2 配置阿里源内容

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 配置完成后,执行命令,更新yum源

yum clean all

yum makecache

1.3 安装openjdk8

官网下载jdk8,链接如下

https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html

将安装包解压到/usr/java/目录下,命令如下

tar -zxvf jdk-8u411-linux-x64.tar.gz
cp -r jdk1.8.0_411  /usr/java/

配置环境变量

vi  /etc/profile

添加下面内容

export JAVA_HOME=/usr/java/jdk1.8.0_411 
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

导入环境变量

source /etc/profile

检查是否配置成功

如果配置失败那就是配置环境变量的路径输入错误

1.4 安装支持oracle的依赖

安装依赖

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 libXtst

yum -y install vim tar net-tools wget perl python3 readline* deltarpm python-deltarpm \
 zip unzip bc compat-libcap1* compat-libcap* binutils compat-libstdc++-33 \
 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel \
 glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat \
 unixODBC unixODBC-devel binutils* compat-libstdc* elfutils-libelf* \
 gcc* glibc* ksh* libaio* libgcc* libstdc* make* sysstat* libXp* glibc-kernheaders\
 openssh-clients openssh-server;\

建议两个yum都执行,在我第一次安装时,丢失很多依赖,两个都执行

手动下载依赖包路径

https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/

两个yum执行后,是基本不需要手动下载的,我找到依赖包,防止版本问题冲突,作为备用,但是其实不需要。

检查依赖是否安装完成,如下命令和下图

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

1.5 关闭防火墙

防止oracle无法通信和启动GUI安装界面

systemctl disable firewalld.service

二、建立Oracle用户和用户组

groupadd oinstall

groupadd dba

groupadd oper

useradd -g oinstall -G dba, oper oracle

#将oracle用户附加组到dba和oper组,主用户组为oinstall

passwd oracle --stdin     

#设置oracle用户密码为info123456(自定义)


三、创建oracle安装目录

3.1、创建/home下目录,注意oracle用户目录为/home/oracle,不要重复了

mkdir -p /home/app/oracle/product/11.2.0/db_1

#创建/home下目录

chown -R oracle:oinstall /home/app

#更改目录所属和所属组

chmod -R 775 /home/app

#更改目录权限

3.2、创建安装包所在的目录

mkdir -p /usr/oracle  

#创建oracle

chown -R oracle:oinstall /usr/oracle 

#更改目录所属主和所属组

chmod -R 755 /usr/oracle/

#更改目录权限

将11G安装包移动到/usr/oracle路径下


四、查询并优化内核参数

4.1 配置有关参数路径如下

 vi /etc/sysctl.conf

4.2 查询有关参数命令 

sudo sysctl -a | grep fs.aio

sudo sysctl -a | grep fs.file

sudo sysctl -a | grep  sem

sudo sysctl -a | grep shm

sudo sysctl -a |grep net.ipv4.ip_local_port_range

sudo sysctl -a | grep  net.core.rmem

sudo sysctl -a |grep net.core.wmem

4.3 官方文档参数

# 这是官方文档各个参数的最小值,根据安装环境的情况进行修改
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

4.4 对比官方文档参数和系统查询的参数,修改为符合要求的值

sudo vim /etc/sysctl.conf
# 添加如下内容

fs.aio-max-nr = 1048576
#io读写参数
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
# 用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制
net.core.wmem_max = 1048576
# 因为刚自定义配置了shmmax、shmmni、shmall,所以注释掉原有自带的shmmax、shmall这些属性

4.5 退出保存后,使参数生效

sysctl -p

4.6 限制oracle用户的shell权限

4.6.1优化性能限制

vi /etc/security/limits.conf 

文件末尾添加下面四行

# 设置进程数软限制
oracle soft nproc 2047
# 设置进程数硬限制
oracle hard nproc 16384
# 设置文件数软限制
oracle soft nofile 1024
# 设置文件数硬限制
oracle hard nofile 65536

4.6.2进程会话限制

vim /etc/pam.d/login 

文章末尾添加下面两行

session required /lib64/security/pam_limits.so

session required pam_limits.so

#一般计算机都是64位系统,64位系统需要上面的设置,如果不设置上面的命令,服务器重启后就会出现命令行无法登录,但是通过桌面能登陆的情况

getconf LONG_BIT
#查看计算机位数
source /etc/profile
#使得参数生效

 五、Oracle用户配置

su - oracle

#登录到oracle用户

vi .bash_profile

#修改.bash_profile文件

添加如下内容(添加时建议把中文去掉)

export ORACLE_BASE=/home/app/oracle 
#根据安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
#防止Oracle安装界面乱码,先把语言环境改为英文
#NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"
export LANG=en_US
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
   else
       ulimit -u 16384 -n 65536
   fi
fi

 退出后导入环境变量

source .bash_profile

 六、配置Hostname

 安装oracle时,需要保证主机名出现在/etc/hosts中

vi /etc/hosts

配置完成后,进行测试

ping -c 3 oracleAI

#测试解析hostname

配置/etc/sysconfig/network文件

vi /etc/sysconfig/network

/etc/sysconfig/network中的hostname要与/etc/hosts中一致


七、安装Xmanager

链接如下

https://www.xshell.com/zh/xmanager-download/

oracle安装包所在的机器先安装有关依赖,不然会报错

yum install xorg-x11-xauth
yum install xterm

新建Xstart会话

配置如下


 

在oracle虚拟机上,需要配置有关环境变量,我们使用oracle用户登录,不要使用root用户su。

我们设置Xstart会话中的显示编号为11,所以在这导入也设置11

export  DISPLAY=localhost:11.0

然后进入Xmanager进行测试

 双击如图

关闭,配置完成后,后面我们启动oracle安装程序,就可以使用GUI界面进行安装


八、安装oracle

1、先下载安装包,从oracle官网下载,由于甲骨文中国解散,支持的资源不是很好,方便起见,我从其他人那里直接抄了过来。

链接:https://pan.baidu.com/s/1tPOwyQgAo26uWi1nkkQ4Kw?pwd=asd3
提取码:asd3

2、将安装包放在/usr/oracle目录下,并将其解压

cd /usr/oracle
uzip V17530-01_1of2.zip
uzip V17530-01_2of2.zip

 3、将所有文件所属和权限更改为oracle:oinstall

 chown -R oracle:oinstall *

 

4、将虚拟机重启,使用oracle用户登录到虚拟机,不要使用root登录,su - 命令切换用户,有些环境变量不正确。(在步骤二、中已经创建了oracle用户,密码为info1234)

5、进入/usr/oracle/database目录

cd /usr/oracle/database

6、运行安装命令

./runInstaller

执行后会弹出图形化安装界面,如果没有弹出报错,那么需要我们重启一下虚拟机,很可能有些配置还没生效,需要重启。

同时检查登录用户是否为oracle,使用env | grep DISPALY命令检查环境变量参数是否和Xstart界面中给出的编号如果不相同使用如下命令进行导入

DISPLAY=localhost:11.0


 九、图形化界面安装

选择不获取oracle有关问题更新

确认不提供电子邮件

三个选项分别为
(1) 创建和配置数据库 (2)仅安装数据库软件 (3)升级现有数据库

由于我们安装在linux系统下,不是windows所以不选择Desktop

(1)单实例数据库安装
(2)Real Application Clusters数据库安装

(1)典型安装
(2)高级安装

选择简体中文和英文,箭头会将左侧栏中内容移动到右侧

选择数据库版本

(1)企业版
(2)标准版
(3)标准版1

 数据库安装位置,这里会读取配置的环境变量,默认即可

 创建存储

 选择数据库创建类型,这里选择一般类型

(1)一般用途/事务处理:为一般用途或高事务处理量应用而设计的启动数据库。
(2)数据仓库:为数据仓库应用程序而优化的启动数据库

指定Oracel全局数据库名和服务标识符为:orcl(一般为orcl),然后点击Next

这里会读取环境变量,保持二者一致即可,可以在虚拟机上env | grep SID查看

 在内存页中勾选启用自动内存管理,在字符集页中选择使用Unicode,然
后点击Next

选择不使用云管理

指定数据库存储选项,依然会读取环境变量

不启动备份

这里设置系统账户sys和system的密码,设置的是系统账户进入oracle的默认创建实例orcl的密码:

这里统一设置所有密码为同一个密码

设置数据库管理员组dba,数据库操作组oinstall,然后点击Next

在oracle安装到Prerequisite Checks这一步的时候,有好多个提示,一一解决

oracle在安装过程中进行检查系统环境的时候,关于swap(交换分区)的大小预期会有预期,正常我们找一个有空间的地方增加交换分区大小。
先看下自己服务器的交换内存

如下

free -h

df -h
cd /home/
dd if=/dev/zero of=/home/swapfile bs=1M count=30720

构建并激活交换分区

mkswap /home/swapfile
swapon /home/swapfile
swapoff /home/swapfile #卸载分区,卸载后才能删除

保存配置,使得设置交换分区永久生效

vi /etc/fstab
#新增加下面行
/root/swapfile swap swap defaults 0 0

成功扩容

回到图形安装界面

再开一个终端使用root用户执行下面语句

cd /tmp/CVU_11.2.0.1.0_oracle
ls
./runfixup.sh

执行完成后,回来点击OK 

这里报的semmin问题可以忽略,对安装影响不大,安装包因为yum安装的包版本会更高,所以会提示,影响不大可以忽略

剩下的点击忽略即可

同时点击next

点击Finish

执行到一半多会报错

查找了很多的文章和方法,甚至我找到了缺失的rpm包,下载安装glibc-static-2.17-292.el7.x86_64.rpm,装上去后,也是报错

执行yum install glibc-static*可以看到已经安装,只不过版本不同,所以点击Continue跳过即可,只是版本不一样,经过实践,不影响后续安装和使用。


后面还有个报错

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

$(MK_EMAGENT_NMECTL)
修改成
$(MK_EMAGENT_NMECTL) -lnnz11
保存后点击 Retry 即可

如果retry后还报错,那么点击Continue继续,也是不影响后续安装和使用的,安装完也可以更改的。

如果修改了,记得备份一下,作者本人选择的跳过,没有修改,也没有影响

继续后面会弹出另一个窗口

然后可以看到用户等信息,点击OK

安装进度%100弹出下面窗口

按照提示,root用户下执行这两个脚本

执行后,点击OK

然后到下图,点击Close

安装成功!


十、设置开机自动启动(可以不设置)

首先打开oratab文件

vi /etc/oratab

添加如下内容

orcl:/home/app/oracle/product/11.2.0/db_1:Y

然后进入/etc/rc.d目录

cd /etc/rc.d/
chmod +x /etc/rc.d/rc.local

修改rc.local文件

vi /etc/rc.d/rc.local

添加如下内容

su oracle -lc "/home/app/oracle/product/11.2.0/db_1/bin/lsnrctl start "
su oracle -lc /home/app/oracle/product/11.2.0/db_1/bin/dbstart

验证

reboot#重启
Ps -ef |grep ora

十一、启动oracl并创建第一个数据库

首先使用oracle用户登录

执行命令

lsnrctl start
lsnrctl help

首先要启动监听,才能进行后续操作,我这里监听器已经打开

新开一个terminal,运行dbca命令,打开数据库创建页面,选择对应选项,然后一直下一步即可

`注:之后所有的对数据库的操作都在 oracle用户下进行`

dbca

如图

输入数据库名称,SID会自动生成,SID连接数据库时会用到

 这里设置的密码是系统账户sys和system账户进入到新建数据库的密码:

等待完成即可。


十二、链接数据库

使用oracle账户,terminal中输入,连接默认实例 `orcl`

# 进入sql,这里进入到sqlplus客户端没有任何用户名和密码
lsnrctl start 
#启动监听
sqlplus sys as sysdba 
#连接到oracle 默认创建的实例orcl(实例名称就是前面个配置的环境变量 ORRACLE_SID)
# 输入前面配置的密码即可登录进入
Info1234

env | grep SID

退出数据库

exit

sqlplus sys as sysdba

 使用dba用户进入后,有关用户操作如下

创建用户

create user <user> identified by <passwd>;

修改密码

alter user <user> identified by <passwd>;

修改当前用户密码

password <new_passwd>;

删除用户

drop user <user>;

查询所有用户

select * from all_users;

 查询数据库有关链接参数的操作如下

查询对当前数据库名称

select name from v$database;

查询实例sid

select instance_name from v$instance;

 用户授权

授权链接

grant connect to username;

只可以登录,不可以创建实体,不能创建数据库结构

授权开发人员

grant resource to username;

只可以创建实体不可以创建数据库结构

数据库维护人员

grant dba to username;

拥有全部特权,系统最高权限,能创建数据结构

操作

授权

grant connect, resource,dba to username;

撤销

revoke 权限 from username;


十三、使用dbeaver链接oracle数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值