observe

 

       之前在Windows server上安装Oracle 11g是有图形界面的对于我这样的新手是非常友好的。可是今天想要在Linux上使用下Oracle(我自己使用MySQL更多,Oracle使用的很少),虽然centos是可以安装图形界面的,但是我们知道大部分的Linux服务器基于资源暂用是不使用图形界面的,那么要怎么在无图形界面下进行安装呢。。。下面的我的小段爬坑经历,有不对的地方还望能够指出。

一、准备centos系统(centos6与centos7有比较大的区别,具体的系统命令参考各自的手册就好,当然也可以使用其他Linux)这里我使用的是centos7.3x

安装过程省略(我使用的是带开发工具的最小安装)

二、下载Oracle 11g R2和其他软件工具

1.

官方下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

选择64位下载。一共有两个文件:linux.x64_11gR2_database_1of2.zip 和linux.x64_11gR2_database_2of2.zip

ps:为保证文件完整性可以测下md5值与官方比对。

2.为方便操作VMware里的Linux虚拟机,使用远程登录工具进行操作:

xshell和xftp:链接: https://pan.baidu.com/s/1MQYcPpgSNLQRNQ7srl7bEA 提取码: 63fn  (此为学校or家庭使用的免费版,企业版请购买正版)

putty:链接: https://pan.baidu.com/s/1ygPEXSb37laU5g_CwJqDLg 提取码: w9ui 

ftp工具也可以使用:filezilla(个人认为也是比较好用的一款工具)

三、安装

1.安装依赖包:

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc   libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel

使用yum方式不能安装pdksh因此需要自己去下载安装:

安装pdksh的RPM包:

cd /opt
wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

ps:有可能会遇到

pdksh和ksh只能保留一个,这里我们保留pdksh

 

这里我把yum源改成了国内的yum源使用的是系统自带的yum源有时候会很慢,更换方法为:

创建备份

mkdir /back
cd /etc
mv yum.repos.d /back/yum.repos.d.bak

更新阿里的yum源

mkdir yum.repos.d

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all

yum makecache      #生成缓存

 检查安装的依赖包,使用rpm -qa 或者再次使用yum来检查所有包是否安装。

2.安装前的环境准备

添加用户和用户组:

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle

oinstall为Oracle的主组,dba设置为附加组

初始化Oracle用户密码:

passwd oracle

在安装centos时我没有进行主机名初始化,现在来配置hostname:

vim /etc/hosts

ip地址的查看方式:ifconfig 或者ip addr

修改好了以后:ping 修改的主机名 能ping通就ok!

优化系统内核参数:

因为是虚拟机的原因我们选择最小化(具体配置需要根据自己的硬件参照手册进行修改):

vim /etc/sysctl.conf     #在文本末尾加入

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4294967295

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 = 1048586

使参数生效:

sysctl -p

设置创建的Oracle用户权限

vim /etc/security/limits.conf   #末尾加入

oracle              soft    nproc   2047          #oracle 在 linux上打开 proc 数量

oracle              hard    nproc   16384     

oracle              soft    nofile  1024           #oracle 在 linux上打开 file 数量

oracle              hard    nofile  65536

vim /etc/pam.d/login     #末尾加入

session  required   /lib64/security/pam_limits.so

session  required   pam_limits.so

vim /etc/profile    

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

创建Oracle安装路径:

mkdir -p /app/oracle/product/11.2.0
mkdir -p /app/oracle/inventory
mkdir -p /app/oracle/oradata
chown -R oracle:oinstall /app

配置Oracle环境变量

vim ~oracle/.bash_profile

 

ps:

export ORACLE_BASE=app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 #path路径设置方法与jdk基本一致
export ORACLE_SID=orcl # 最多 8个字符 ; 操作系统和 oracle实例关联的纽带 ;ORACLE_HOME+ORACLE_SID==>hash==> 共享内存段
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #将安装后的 oracle 命令追加到执行搜索路径
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #动态库的位置
export nls_lang="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" #客户端字符集设置

到此重启系统:

reboot 
init 6
shutdown -r now
#上面3个命令都可以用于重启。

hostname等设置已经生效

3.开始安装

 使用xftp或者其他ftp工具上传从官网下载的安装包:(也可以直接使用wget工具直接将安装包下载到Linux)这是上传到/opt路径下

分别解压2个压缩包:

[root@centos7 opt]# unzip linux.x64_11gR2_database_1of2.zip
[root@centos7 opt]# unzip linux.x64_11gR2_database_2of2.zip
[root@centos7 opt]# cd ./database/
[root@centos7 database]# ls
doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html
[root@centos7 database]# cd ./response/
[root@centos7 response]# ls
dbca.rsp  db_install.rsp  netca.rsp
[root@centos7 response]# 

进入响应文件夹有3个文件分别是数据库静默响应文件、数据库安装响应文件以及监听响应文件。

修改安装响应文件:

[root@centos7 response]# vim ./db_install.rsp

修改以下选项:

 29 oracle.install.option=INSTALL_DB_SWONLY  #安装选项
37 ORACLE_HOSTNAME=centos7 #hostname
42 UNIX_GROUP_NAME=oinstall #主组
47 INVENTORY_LOCATION=/app/oracle/inventory
78 SELECTED_LANGUAGES=en,zh_CN 

83 ORACLE_HOME=/app/oracle/product/11.2.0

88 ORACLE_BASE=/app/oracle

   99 oracle.install.db.InstallEdition=EE    #版本

   108 oracle.install.db.isCustomInstall=true

   142 oracle.install.db.DBA_GROUP=dba   #admin管理组名

   147 oracle.install.db.OPER_GROUP=dba   #oper操作员组名

   160 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

   170 oracle.install.db.config.starterdb.SID=orcl

   200 oracle.install.db.config.starterdb.memoryLimit=800      #根据自己设定的物理内存设置,一般为物理内存的40%-60%

   233 oracle.install.db.config.starterdb.password.ALL=123456   #设置所有用户密码,方便后面更改。

开始静默安装:

[root@centos7 response]# su oracle
[oracle@centos7 response]$ ls
dbca.rsp  db_install.rsp  netca.rsp
[oracle@centos7 response]$ cd ../
[oracle@centos7 database]$ ls
doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html
[oracle@centos7 database]$ ./runInstaller -silent -ignorePrereq -responseFile /opt/database/response/db_install.rsp

另起一个终端查看安装实时日志:

注意安装过程会持续一会,没有出现[FATAL]或者[error]安装程序仍在运行。也可通过安装日志来确定安装进程:

 看到如下表示安装成功:

按要求运行脚本:

到此Oracle 11g r2就安装成功了!

4.配置Oracle。

配置监听:

 在Oracle用户下执行:

[oracle@centos7 ~]$ netca /silent /responseFile /opt/database/bakrsp/netca.rsp

我这里备份了response里的文件,bakrsp是备份目录,不需要备份直接从response文件夹中的文件执行!

结果反馈:

检查监听状态:

[oracle@centos7 ~]$ netstat -tnulp | grep 1521
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1521                 :::*                    LISTEN      18790/tnslsnr       

创建数据库:

[oracle@centos7 ~]$ dbca -silent -responseFile /opt/database/bakrsp/dbca.rsp

dbca.rsp可以根据自己的安装情况修改,大致需要修改的选项差不多有:

GDBNAME
SID
SYSPASSWORD
SYSTEMPASSWORD
SYSMANPASSWORD
DBSNMPPASSWORD
DATAFILEDESTINATION
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"     #物理内存的40-80%,一般80%

查看监听状态:

[oracle@centos7 ~]$ lsnrctl status

结果为:

如果遇到:上图中的实例状态REDAY为“UNKNOW”则需要检查自己的监听配置,或者查看/app/oracle/product/11.2.0/network/admin目录下的监听文件参考自己的情况进行排查。

最后,登录数据库:

[oracle@centos7 ~]$ lsnrctl start
[oracle@centos7 ~]$ sqlplus / as sysdba

常见问题:

  1. startup后出现:

    解决方法:参考:https://www.linuxidc.com/Linux/2012-12/76976.htm

  2. 无法使用
     sqlplus / as sysdba 登录,解决方法在/app/oracle/product/11.2.0/network/admin中编辑sqlnet文件加入SQLNET.AUTHENTICATION_SERVICES=(ALL)
  3. startup后出现:

 

 这个情况比较复杂具体参考:https://www.linuxidc.com/Linux/2016-10/135746.htm

看到这个基本就问题不大了:

尝试远程连接:

由于是在虚拟机内,可以关掉防火墙:

[root@centos7 ~]# systemctl stop firewalld

连接成功。。。。爬坑第一天到此结束啦。。。

PS:至于增加开机启动添加到服务等事宜,大家可以参考论坛等,或者我也会在开一个随笔来记录下。下一篇就说说简单点的MySQL的安装配置吧。

 

分类:

技术点:

相关文章: