前言

本教程自己经过5遍的实践检验,每一遍都会有各种报错,但是多安装几遍,多百度找找原因,应该不是什么问题。最后一遍安装时间花费1个小时

没有虚拟机,centos7镜像和oracle11安装包的,我已经给大家提供好了,不用谢
链接:https://pan.baidu.com/s/1zRcf959F3X2mJ5lfmZUY_A 提取码:uh0z

环境准备

1.CentOS7 / CentOS8 64位最小化安装的虚拟机环境,需要图像化桌面

准备图形化桌面 
  安装oracle之前,Centos需要安装桌面环境,如果你的机器一开始就已经装好了桌面环境,可以忽略此步骤。我这里安装完系统,默认是命令行界面,这时就需要手动来安装用户图形界面了。
  查看一下当前的运行级别和可以安装的group:

[root@localhost ~]# systemctl get-default
[root@localhost ~]# yum grouplist

用命令行安装GNOME包,这需要等待很长一段时间:

[root@localhost ~]#yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
# 更新系统的运行级别为graphical.target,设置默认启动图形界面:
[root@localhost ~]#systemctl set-default graphical.target
[root@localhost ~]#ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
[root@localhost ~]#systemctl get-default  #检查一下

重启系统reboot,然后开机就能进入图形界面,按照提示设置普通用户登录密码,语言和时区等。

2.Oracle 11gR2 64位 Linux版安装包

下载好这两个安装包

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

安装过程

1.关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service

[root@localhost etc]# vim /etc/selinux/config
将SELINUX=active改为SELINUX=disabled,保存退出
2.安装依赖包

执行如下命令安装依赖包。

[root@localhost ~]# yum install -y automake autotools-dev binutils bzip2 elfutils expat \
gawk gcc gcc-multilib g++-multilib lib32ncurses5 lib32z1 \
ksh less lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 \
libc6-i386 libelf-dev libltdl-dev libodbcinstq4-1 libodbcinstq4-1:i386 \
libpth-dev libpthread-stubs0-dev libstdc++5 make openssh-server rlwrap \
rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc unzip cifs-utils \
libXext.x86_64  glibc.i686

如果上述命令报错,则直接直接下面的命令。

[root@localhost ~]# yum -y install xz wget gcc-c++ ncurses ncurses-devel \
cmake make perl openssl openssl-devel gcc* libxml2 \
libxml2-devel curl-devel libjpeg* libpng* freetype* \
make gcc-c++ cmake bison perl perl-devel  perl perl-devel \
glibc-devel.i686 glibc-devel libaio readline-devel \
zlib.x86_64 zlib-devel.x86_64 libcurl-* net-tool*  \
sysstat lrzsz dos2unix telnet.x86_64 iotop unzip \
ftp.x86_64 xfs* expect vim psmisc openssh-client* \
libaio bzip2  epel-release automake binutils bzip2 \
elfutils expat gawk gcc  ksh less make openssh-server \
rpm sysstat unzip unzip cifs-utils libXext.x86_64  \
glibc.i686 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 sysstat unixODBC unixODBC-devel libnsl

3.创建oracle用户

1.[root@localhost etc]# groupadd oinstall
2.[root@localhost etc]# groupadd dba
# 新增oracle用户,该用户初始组为oinstall,控制软件和补丁的安装;附加组为dba,负责控制数据库的创建和管理等
3.[root@localhost etc]# useradd -g oinstall -G dba -m oracle
4.[root@localhost etc]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
5.[root@localhost etc]# groups oracle
oracle : oinstall dba
6.[root@localhost etc]# id oracle
uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)

上述命令执行完毕后,为oracle用户设置密码,例如,我这里设置的密码为123456

#oracle是数据库安装目录,oraInventory存放所有日志
[root@localhost data]# mkdir oracle
[root@localhost data]# mkdir oraInventory
[root@localhost data]# ls
oracle oraInventory

4.解压Oracle数据库安装包

将Oracle 11gR2安装文件上传(可以使用sftp上传)到该操作目录/data下面,然后顺序解压安装文件到该目录。

[root@localhost data]# unzip linux.x64_11gR2_database_1of2.zip 
[root@localhost data]# unzip linux.x64_11gR2_database_2of2.zip
#解压安装程序后自动生成的安装包目录database
[root@localhost data]# ls
database  oracle  oraInventory
# 并授予他们所属用户所属组
[root@localhost src]# chown -R oracle:oinstall data/
# 在给data下的所有文件授权
[root@localhost src]# chmod -R 777 data/

5.修改操作系统配置

1. 将服务器名写入到hosts文件,可以测试ping sername 是否返回127.0.0.1
[root@localhost data]# echo '192.168.80.12 localhost localhost.localdomain' >> /etc/hosts
2. 对oracle用户设置限制,提高软件运行性能
[root@localhost data]# vim /etc/security/limits.conf
在文件的末尾添加如下配置项。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
3. 修改用户登录认证
# 添加两条内容
[root@localhost ~] vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
4. 修改环境变量

设置环境变量(ORACLE_HOME 设置为安装目录product下默认目录)

默认安装完成后在product/11.2.0/dbhome_1下,如果有不同,回头修改

[root@localhost ~] vim /etc/profile
#oracle
export ORACLE_HOME=/usr/local/src/data/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

[root@localhost ~] source /etc/profile
5. 修改Oracle用户环境变量
[root@localhost ~] vim ~/.bash_profile

在文件末尾添加如下配置项
export ORACLE_BASE=/usr/local/src/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

# 使得环境变量生效。
[root@localhost ~] source ~/.bash_profile

------------------------准备条件已经完成,开始安装---------------------------------------

准备安装

  1. 通过桌面方式安装Oracle
    使用oracle用户登录桌面,打开终端运行安装程序

DISPLAY变量是用来设置将图形显示到何处.比如CENTOS,你用图形界面登录进去,DISPLAY自动设置为DISPLAY=:0.0表示显式到本地监视器,那么通过终端工具(例如:xshell)进去,运行图形界面的程序,如果没有设置,系统是不允许程序启动的。

[oracle@localhost database]$ su - root
Password: 
Last login: Mon Apr 26 15:27:31 CST 2021 on pts/1
[root@localhost ~]# DISPLAY=:0.0
[root@localhost ~]# export DISPLAY
[root@localhost ~]# echo $DISPLAY
:0.0

# 在执行xhost +命令(使得所有客户都可以访问)
[root@localhost ~]# xhost
access control enabled, only authorized clients can connect
SI:localuser:root
[root@localhost ~]# xhost +
access control disabled, clients can connect from any host

切换到oracle用户
[root@localhost ~]# su - oracle
上一次登录:一 4月 26 15:33:42 CST 2021pts/1 上
[oracle@oracle ~]$ DISPLAY=:0.0
[oracle@localhost ~]$ export DISPLAY
[oracle@localhost ~]$ echo $DISPLAY
:0.0

真的准备开始安装了

[oracle@localhost ~]$ cd /usr/local/src/data/database
# 临时修改编码,不然乱码
[oracle@localhost database]$ export LANG=en_US.UTF-8
# 显示弹框,不设置的话,弹框特别难看
[oracle@localhost database]$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0 

安装过程
1.订阅邮件这些就直接跳过不填了
在这里插入图片描述

2.这里选择仅安装数据库,稍后再配置初始化数据。
在这里插入图片描述

3.选择单实例安装。
在这里插入图片描述

4.默认英文
在这里插入图片描述

5.默认
在这里插入图片描述

6.这里就出现最开始创建的相应目录信息了,会自动读取;如果路径不一,记得修改
在这里插入图片描述

7.默认
在这里插入图片描述

8.选择group 组为之前创建好的oinstall
在这里插入图片描述

9.直接忽略这些提示(勾选 ignore all)
在这里插入图片描述

10.有警告直接忽略
在这里插入图片描述
在这里插入图片描述

11 等待完成
在这里插入图片描述

报错:OUI-10182 The effective user ID does not match the owner of the file …

解决方法:用root帐户在/etc下建立文件oraInst.loc,并写入以下内容:

[root@localhost etc]$ touch oraInst.loc
[root@localhost etc]$ vim oraInst.loc
inventory_loc=/usr/local/src/data/oraInventory(oraInventory所在目录)
inst_group=oinstall

在这里插入图片描述
在这里插入图片描述

-------------------------到这就安装完成,接下来进行配置-------------------------------

安装完成准备配置

根据上一步完成信息提示,执行以下两行命令,具体位置需要根据你的安装位置决定:

[root@localhost ~]$ /usr/local/src/data/oraInventory/orainstRoot.sh
[root@localhost ~]$ /usr/local/src/data/oracle/product/11.2.0/dbhome_1/root.sh

安装完成后还需要创建数据库,还是同样在Oracle用户桌面环境下,重新打开一个终端,输入 dbca 命令即可弹出相应的数据库创建向导。

[root@localhost ~]# su - oracle
上一次登录:一 4月 26 15:33:42 CST 2021pts/1 上
[oracle@localhost ~]$ DISPLAY=:0.0
[oracle@localhost ~]$ export DISPLAY
[oracle@localhost ~]$ echo $DISPLAY
:0.0
[oracle@localhost ~]$ export LANG=en_US.UTF-8
[oracle@localhost ~]$ dbca -jreLoc /etc/alternatives/jre_1.8.0

报错:bash: dbca: command not found…

解决方案:报错时检查下配置文件~/.bash_profile,重新添加oracle的配置文件
在这里插入图片描述
选择创建数据库
在这里插入图片描述

选择第一行:一般用途或事务处理
第二行:定制数据库
第三行:数据仓库
在这里插入图片描述

填写全局数据库与SID
在这里插入图片描述

不配置EM,费资源
在这里插入图片描述

选择下面的所有账户使用统一管理命令,你也可以选择上面使用不同管理命令
在这里插入图片描述

使用它默认的数据库文件所在位置
在这里插入图片描述

恢复配置这一步,选择指定快速恢复区
在这里插入图片描述

根据自己情况,是否将实例方案添加到数据库中,我也不太懂啥意思,就勾上了
在这里插入图片描述

上面四个:内存、调整大小、字符集、连接模式
字符集最好使用UTF8(当有中文时,防止出现乱码)
在这里插入图片描述
在这里插入图片描述

数据库存储,直接下一步
在这里插入图片描述

选择创建数据库和创建数据库脚本
在这里插入图片描述


在这里插入图片描述
报错:
故障原因:
在oracle database 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错。

解决办法:

[root@localhost db_1]# vim /etc/fstab
添加:
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
[root@localhost db_1]# mount -a
[root@localhost db_1]# df -h

在这里插入图片描述
在这里插入图片描述

点击Password Management…(口令管理)
解锁scott账户, 去掉前面的紫色小勾,输入密码。同样可以输入平常用的短小的密码

--------------------------------------------大功告成----------------------------------------------

启动数据库

1. 启动数据库
启动已经安装的数据库orcl。
操作用户oracle
启动监听,才能进行远程连接
[oracle@localhost ~]# lsnrctl  start

启动数据库过程如下:
[oracle@localhost ~]# sqlplus /nolog

使用dba权限连接Oralce
SQL> connect / as sysdba

启动数据库
SQL> startup

确认启动结果:
ORACLE instance started.
Total System Global Area  534462464 bytes
Fixed Size                  2215064 bytes
Variable Size            373293928 bytes
Database Buffers          150994944 bytes
Redo Buffers                7958528 bytes
Database mounted.
Database opened.
2.验证数据库

这里,我们使用DataGrip连接Oracle数据库,如下所示。
这里,输入的用户名为scott,密码为123456。
接下来,点击“连接测试”,如下所示。
在这里插入图片描述


报错:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file ‘/usr/local/src/data/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora’

解决:
如果该解决方案还不行,试试给initorcl.ora授权
[oracle@gettestlnx01 dbs]$ cd /usr/local/src/data/oracle/admin/flinkx11/pfile
[oracle@gettestlnx01 pfile]$ ls
init.ora.10262020153036
[oracle@gettestlnx01 pfile]$ cp init.ora.10262020153036 /usr/local/oracle/product/11.2.0/db_1/dbs/initorcl.ora

#如果没有initorcl.ora该文件
解决方案:将init.ora.10262020153036拷贝过去后重命名为initorcl.ora即可

报错:
SQL> startup
MEMORY_TARGET not supported on this system

在oracle database 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错。

解决办法:

1.[root@localhost db_1]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    2.0G  1.1G  965M   53% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   14G  3.6G   80% /
/dev/sda1               1014M  211M  804M   21% /boot
tmpfs                    378M   60K  378M    1% /run/user/0
/dev/sr0                 4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64

2. #为了确保操作系统重启之后能生效,需要修改/etc/fstab文件
[root@localhost db_1]# vim /etc/fstab
添加:
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
# 重新加载
3.[root@localhost db_1]# mount -a
[root@slave12 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    4.0G  1.1G  3.0G   27% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   14G  3.5G   80% /
/dev/sda1               1014M  211M  804M   21% /boot
tmpfs                    378M  8.0K  378M    1% /run/user/42
tmpfs                    378M     0  378M    0% /run/user/0

#如果调整后还是报错,那就是/dev/shm还不够大

参考链接:
https://blog.csdn.net/l1028386804/article/details/106313375/
https://www.cnblogs.com/hudong716/p/14705432.html
https://blog.csdn.net/csgd2000/article/details/100224722

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐