Way to go farther, see more blue.

老服务器部署CentOS6.1+Oracle11gR2坎坷过程全纪录

浪潮2012年的一台老服务器,安装Linux的话内核只支持到CentOS6.1,高版本的话不支持阵列卡驱动。
由于业务需要一台oracle中间库服务器,找来一台浪潮NF5245M3闲置机废物利用。为了后期免维护的考虑,就选择linux环境来搭建此次任务。
在网上能找到的仅有几篇centos6部署oracle的文章,也只是简单搭建,中间很多实际出现的故障需要一一排查处理。而且我遇到了几乎所有的故障了。。。
下面就是中间遇到的种种困难坎坷以及解决排查处理的全过程。

  • 一、安装CentOS系统
    引用:http://www.4008600011.com/archives/1215
    http://isoredirect.centos.org/centos/6/isos/x86_64/
    https://mirrors.tuna.tsinghua.edu.cn/centos/6.10/isos/x86_64/

下载系统ISO镜像,然后用UltraISO刻录进16GB的U盘里。
服务器开机进入阵列卡启动界面后根据提示按Ctrl + H进入阵列卡管理界面,删除所有分区,重新部署Raid 5 。
使用U盘引导进入安装,
安装一定要选英文,否则系统内构建中文字符集,安装软件时会乱码。
时区选上海,取消UTC时间,
分区建议除/boot 和 /boot/efi 以外剩下的空间创建LVM逻辑卷(再分swap和/根空间)即可。
安装完成以后。记得创建一个基本用户。后面再说创建oracle用户。
yum update
连外网更新一下系统。

  • 二、安装Oracle
    引用:https://blog.51cto.com/niubdada/2163938

安装数据库之前所需要做的准备。
vim /etc/hosts
用root用户修改本地解析,按i编辑加入IP所对应的主机名后按Esc再输入:wq!

第一步、安装依赖

yum install -y binutils compat-libcap1 compat-libstdc++-33  gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel  make sysstat unixODBC-devel pdksh

卸载openjdk

yum remove -y java-1.8.0-openjdk java-1.8.0-openjdk-headless

下载java rpm包,安装oracle java

[root@o1 ~]# rpm -ivh jdk-8u121-linux-x64.rpm 
    Preparing...                ########################################### [100%]
   1:jdk1.8.0_121           ########################################### [100%]

第二步、创建所需用户和组

创建oracle用户并设置密码

[root@o1 ~]# useradd oracle
[root@o1 ~]# passwd oracle

然后登陆图形界面测试一下oracle用户
测试正常
最全的Centos6.10详细安装Oracle 11G R2图文教程

创建用户组

[root@o1 ~]# groupadd oinstall
[root@o1 ~]# groupadd dba

修改oracle用户组

usermod -g oinstall -G dba oracle

第三步、修改内核参数

追加一段内核参数
[root@o1 ~]# vim /etc/sysctl.conf
........
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

执行生效
[root@o1 ~]# sysctl -p

修改文件打开限制,追加一段

[root@o1 ~]# vim /etc/security/limits.conf
.......
oracle             soft    nproc           4096
oracle             hard    nproc           65536
oracle             soft    nofile          4096
oracle             hard    nofile          65536

创建oracle安装目录

[root@o1 ~]# mkdir -p /u01/app/
[root@o1 ~]# chown -R oracle:oinstall /u01/app/
[root@o1 ~]# chmod -R 775 /u01/app/

重启服务器,使limit生效

第四步、添加环境变量,准备安装

使用oracle用户登陆

[root@o1 ~]# su - oracle
[oracle@o1 ~]$ vim .bash_profile
#追加下面这段
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=sales
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_BASE ORACLE_SID ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH

检查主机名能访问不

[oracle@o1 ~]$ ping o1
PING o1 (192.168.1.18) 56(84) bytes of data.
64 bytes from o1 (192.168.1.18): icmp_seq=1 ttl=64 time=0.061 ms

检查正常

解压oracle安装包

[oracle@o1 ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@o1 ~]$ unzip linux.x64_11gR2_database_2of2.zip

第五步、开始安装

进入安装目录,开始安装
[oracle@o1 ~]$ cd database/
[oracle@o1 database]$ ./runInstaller

然后弹出安装程序,去掉下面那个勾,点next

最全的Centos6.10详细安装Oracle 11G R2图文教程

再点next

最全的Centos6.10详细安装Oracle 11G R2图文教程

选择server,再点next
最全的Centos6.10详细安装Oracle 11G R2图文教程

再点next
最全的Centos6.10详细安装Oracle 11G R2图文教程

选择高级安装,再点next
最全的Centos6.10详细安装Oracle 11G R2图文教程

再点next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

点击字符集,然后勾选UTF8,然后next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

勾选下面的所有账号使用同一个密码,next
最全的Centos6.10详细安装Oracle 11G R2图文教程

next
最全的Centos6.10详细安装Oracle 11G R2图文教程

开始检查依赖包,其实这些包都装了的,只是版本高了,勾选ignore all,然后next
最全的Centos6.10详细安装Oracle 11G R2图文教程

点击save response file可以保存所选择的配置,这个文件可以用来执行静默安装,点finish开始安装
最全的Centos6.10详细安装Oracle 11G R2图文教程

安装中
最全的Centos6.10详细安装Oracle 11G R2图文教程

安装完成后有提示,蓝色的是em控制台访问地址,点ok
最全的Centos6.10详细安装Oracle 11G R2图文教程

然后提示要执行两个脚本,使用root执行
最全的Centos6.10详细安装Oracle 11G R2图文教程

[root@o1 ~]# sh /u01/app/oraInventory/orainstRoot.sh 
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oracle.
The execution of the script is complete.
[root@o1 ~]# 
[root@o1 ~]# sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh 
Running Oracle 11g root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/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.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

执行完成,点ok,安装成功
最全的Centos6.10详细安装Oracle 11G R2图文教程

在本机打开1158端口,可以登陆控制台
最全的Centos6.10详细安装Oracle 11G R2图文教程

运行状态
最全的Centos6.10详细安装Oracle 11G R2图文教程

  • 三、挑战所有出现的错误
    引用:https://blog.51cto.com/niubdada/2163938
  • 一般会出现ora-12514无法监听的错误。
    修改listener.ora
    引用:https://blog.csdn.net/weixin_39609623/article/details/82772873
    https://blog.csdn.net/u010915017/article/details/80430386
    还会出现sys没权限的问题。ORA-01031: insufficient privileges
    给sys用户授予sysdba权限报ORA-01994: GRANT failed: password file missing or disabled错误
    引用:https://blog.csdn.net/wangym2017/article/details/81409999
    删除$ORACLE_HOME/dbs/orapworcl密码文件重新用命令生成。
    $orapwd file='$ORACLE_HOME/dbs/orapworcl' password='oracle' entries=10 force=y

    最后导入中间库oracle用imp导入dmp文件
    引用:https://www.cnblogs.com/maggieq8324/p/11414899.html
    先使用sys执行中间库用户及表空间创建脚本sql,
    然后用ZJK账户登录导入表dmp文件即可。

至此,已是深夜。敬程序!