场景描述:我在自己电脑的虚拟机上linux环境下安装oracle11g数据库。
Linux版本为:CentOS release 6.8 (Final),Oracle版本为:linux.x64_11gR2
问题描述:在oracle安装到Prerequisite Checks这一步的时候,出现两个问题。一个是swap size检查失败,一个是Packages检查失败。关于Packages依赖包检查失败的问题将在下一篇博客进行细述。
错误截图
由错误截图可知,oracle在安装过程中进行检查系统环境的时候,关于swap(交换分区)的大小预期为3.74G,而系统实际上只有1.94G。
因此我们需要增加大约2G的系统swap才符合oracle的要求。
-----------------------百度百科关于 swap的解释----------------------------------------
swap:Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率。
交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。
----------------------------------------------------------------------------------------------------
解决办法:增加大约2G左右的swap!
步骤如下:
设置完成后,在oracle安装界面点击check again,错误提示消失。1、使用root用户,在/tmp(随意),下执行下面语句
dd if=/dev/zero of=swapfree bs=32k count=65515(增加swap大小为bs*count,bs为block,count为数量)
上图可以看出,通过这个语句创建了一个2G的文件swapfree
2、将创建的文件用做交换分区
执行语句:mkswap swapfree
3、开启这个交换空间
执行语句:swapon swapfree
4、通过free命令查看,交换空间在原来交换空间的基础上增加了2G
5、在/etc/fstab中加入下面两行,设置此交换分区开机启动/dec/hdb5 swap swap defaults 0 0/tmp/swapfree swap swap defaults 0 0
安装界面如果出现乱码
export LANG="en_US"
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /home/orcl/app/oracle/product/12.1.0/db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = pdborcl)
(ORACLE_HOME = /home/orcl/app/oracle/product/12.1.0/db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.8.53)(PORT = 1529))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.localdomain)
)
)
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)