嗯……果真是二。
    背景:远程在CentOS 6.3系统里面安装Oracle和部署项目。
    难点: 1、用ssh远程登陆成都的app服务器,再从app服务器内部命令ssh远程内网数据库服务器,并且安装ORACLE。
                2、字符界面安装oracle,即静默安装。
                3、手工创建oracle数据库。
    使用外挂:网管(成都服务器管理员)
    总结:坑爹。
    
    好吧,在队友极其给力的情况下,我侥幸以抢人头的方式拿到了linux超神之旅的第一滴血,并且还很恬不知耻的盗用了别人的攻略。对于此,像哥这样的有为青年怎么能甘心呢,我可是一直都是支持原创!这要我如何面对我那正直的灵魂~。。。so,哥哥我必须来写一篇攻略来教导一下和我遇到同样问题的小白们。

正文开始。

获取服务器的信息资源,从网上down一个ssh软件,我这里用的是SSH Secure Shell Client。
    ok,下载好了以后输入服务器ip,用户名密码,登陆服务器。

神马,为什么不先用虚拟机试水先?魂淡,像哥如此拉风的人还需要试水吗??

登陆服务器了,首先我们应该先安装oracle,而oracle数据库是安装在数据库服务器里面的,上面说过,我需要从app服务器跳转到数据库的服务器,因为app服务器连接了外网,数据库服务器没有。
    
    (#表示root用户命令 $表示oracle用户命令)
    在app服务器里面输入命令:#service sshd start              //开启linux自带的远程ssh服务
    再输入使用ssh服务命令:#ssh xx.xx.xx.xx                        //xx.xx.xx.xx是数据库服务器的内网ip
     
    这个时候需要你输入数据库服务器root用户的密码
    输入成功以后就进入到了数据库服务器。

好嘛,进来是如此easy,然后呢?我的数据库咋装?安装文件咧?
    小case, 拿起你的电话,赶快拨打以下号码,你将会有意想不到的惊喜。
    “嘿,网管不?帮我把oracle的安装文件挂到服务器上去呗。”
    事情就是这么简单。


    来,先给服务器妹纸做个体检。当然我这配置是绝对不需要检查什么玩意了。网上的标准是

体检完了,手感不错,继续往下走。(哥哥光顾着手感了,埋下了一个天大的坑,尼玛,后面会花大力气填坑的,也就是开头说的难点2,因为oracle安装的时候是需要图形化安装的,而ssh是不支持的,需要配置vnc和可视化桌面。如果配置vnc顺利的话,这个时候赶紧配置,然后使用图形化界面远程。否则就跟着哥哥走静默安装吧。)

先干掉碍事的防火墙  #setup  在界面上把防火墙改为enabled。或者直接用#service iptables stop及时生效,重启后会打开。使用#chkconfig iptables off 永久关闭,但是需要重启才能生效。建议用第一个。
    另外请勿开启SELinux,oracle官方不建议使用SELinux 。# vi /etc/selinux/config 修改SELINUX=disabled,然后重启。如果不想重启系统,使用命令#setenforce 0

环境准备好了,要准备oracle了,安装linux版的oracle软件需要添加很多依赖包

    直接全部安装
# 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 
    直接复制这一串命令,然后安装吧,骚年!

嘎?报错了??

    这是我遇到的拦路虎1号!百度之。。。
    原来是没有配置dns。不就是dns么,使用google的公用dns,8.8.8.8
    配置过程:命令# vi /etc/resolv.conf (vi不会用的骚年自行百度……)


    然后重启网卡:使用命令: #service network restart 
    
    你以为磨难就如此结束了么?骚年,你想的太简单了,哥哥的这台数据库服务器是没有连外网的啊啊啊啊啊啊!(如果你的连上了外网,那就ok了)
    怎么办,连不上外网,装不了包……
    easy,老办法,拿起你的电话……
    "网管,帮我外挂一个ios到我的虚拟光驱里面去……"
    网管果然是个外挂啊。咦?我为毛不直接让他帮我装oracle得了呢?

好,接下来是属于我一个人的战斗了。使用挂载了ios的虚拟光驱,绑定yum连接。使用yum命令安装依赖包
    (同样需要这个步骤的童鞋自行百度去吧,懒得找资料了。这个时候使用yum安装命令的要加上yum --disablerepo=\* --enablerepo=c6-media install XXXXX)

接下来安装依赖包没有什么错误,事后写的攻略,也就没有截图了,网上的攻略大同小异,我只是针对我遇到的问题做一丢丢的补充。

最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。
     # yum install libXp

创建Oracle用户与组

在这里只讨论单主机环境,不考虑RAC环境的配置。

执行以下指令以新增oracle安装时所需要的使用者与群组。

(1) 建立群组oinstall 
    # groupadd oinstall

(2) 建立群组dba
    # groupadd dba

(3) 新增使用者oracle并将其加入oinstall和dba群组
    # useradd -m -g oinstall -G dba oracle

(4) 测试oracle账号是否建立完成
    # id oracle

(5) 建立oracle的新密码

    # passwd oracle

复制黏贴,这些都太easy了。

将oracle使用者加入到sudo群组中

# vi /etc/sudoers

找到
    root        ALL=(ALL)        ALL 
    这行,并且在底下再加入
    oracle        ALL=(ALL)        ALL

    输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter 

文档很长,耐心找找。
    因为这是只读属性的文件,使用vi编辑完以后退出保存的时候要用 wq!

配置系统内核参数

# vi /etc/sysctl.conf

修改和添加以下内容:

kernel.shmall = 4294967296                           //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改
    kernel.shmmax = 68719476736                      //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G
    kernel.shmmni = 4096                                    //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改
    kernel.sem = 250 32000 100 128                    //表示设置的信号量
    net.ipv4.ip_local_port_range = 1024 65000
    net.core.rmem_default=4194304                     //默认的接收窗口大小
    net.core.rmem_max=4194304                        //接收窗口的最大大小
    net.core.wmem_default=262144                      //默认的发送窗口大小
    net.core.wmem_max=262144                         //发送窗口的最大大小

会有一些与目前的参数重复的,就修改成文件上提供的。


这些都没啥问题要说,复制黏贴,看仔细就成。

编辑完之后,储存,然后执行:

# sysctl -p

启用刚刚所做的变更。

编辑/etc/security/limits.conf

# vi /etc/security/limits.conf

添加以下四行
oracle  soft        nproc   2047
oracle  hard        nproc   16384
oracle  soft        nofile  1024
oracle  hard        nofile  65536

编辑/etc/pam.d/login

# vi /etc/pam.d/login

添加以下两行
session required /lib64/security/pam_limits.so
session required pam_limits.so

修改/etc/profile

# vi /etc/profile

将以下代码新增到profile档案中。
if [ $USER = "oracle" ]; then 
    if [ $SHELL = "/bin/ksh" ]; then 
        ulimit -p 16384 
        ulimit -n 65536 
    else 
        ulimit -u 16384 -n 65536 
    fi 
 fi

修改Linux发行版本信息

由于Oracle 10g发行的时候,CentOS 6没有发行,所以Oracle 10g并没有对CentOS 6确认支持,需要修改文件让Oracle 10g支持CentOS 6。
我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS 6。
编辑/etc/redhat-release文件
# vi /etc/redhat-release
将其中的内容CentOS release 6.3 (Final)修改为redhat 4

创建Oracle安装文件夹以及数据存放文件夹

#mkdir /opt/oracle
#mkdir /opt/oracle/102
#chown -R oracle:dba /opt/oracle

配置Linux主机

检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

艾玛,复制黏贴的事情,当时做的时候眼睛都花了。

配置oracle用户环境变量

$ cd /home/oracle
$ vi .bash_profile
修改并加入以下內容

ORACLE_BASE=/opt/oracle                      //上面创建的Oracle安装文件夹
ORACLE_HOME=$ORACLE_BASE/102
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

尼玛,这里又是一个大大大大大坑     因为我是需要字符界面安装oracle的,还需要手工创建数据库,所以这些属性完全不够!!必须得自己添加
 # .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
#ORACLE_HOME=$ORACLE_BASE/102
#LD_LIBRARY_PATH=$ORACLE_HOME/lib
#PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
#PATH=$PATH:$HOME/bin
#export PATH=$ORACLE_HOME/bin:$PATH

ORACLE_BASE=/opt/oracle 
ORACLE_SID=mini

export ORACLE_BASE ORACLE_SID 
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
 

我这里的SID是mini

继续

保存后使用如下命令,使设置生效:

$ source /home/oracle/.bash_profile

安装Oracle,并进行相关设置

1、解压缩安装文件

将下载的10201_database_linux_x86_64.cpio放至即将安装oracle的文件夹/opt/oracle
回到终端模式并且进入到oracle文件夹:

$ cd /opt/oracle

解压缩10201_database_linux_x86_64.cpio

$ cpio -idmv < 10201_database_linux_x86_64.cpio

接着会看到一连串的解压缩动作。

这个文件就是我让网管放在硬盘上的安装文件。

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

$ cd database

准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令

$ export LANG=en_US

接着执行

$ ./runInstaller

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:
# export DISPLAY=:0.0 
# xhost + 

$ ./runInstaller

接下来就是图形界面的安装了,和在windows上面安装的差不多。如果前期的依赖包都装好了,那么基本上是不会有什么问题了。

到这里就是分歧了,网上攻略说的很好。。。但是不适用于偶。。。偶必须去找怎么用字符界面安装oracle了

在这里的时候,还花了我半天的时间去研究vnc,但是数据库服务器无法连接外网,所以无法直接远程桌面到数据库服务器,中间要经过一次跳转。那样就还得在app服务器上面配置vnc,实在是太麻烦,研究了半天,只好放弃。

vnc不行,所以只能采取字符界面安装,也就是接下来可以把死人折磨活的静默安装了。

…………………………………………休息下,先把这个发布,另外的静默安装和手工创建数据库再分出来写。

linux超神之旅二相关推荐

  1. 原创 | Java 2019 超神之路,很肝~

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 N ...

  2. 今天,「神舟十二号」发射!这次载人航天有什么不一样?

    来源|爱范儿 文|周宇 上个月,天问一号成功登陆火星,并释放出我国首辆火星车「祝融」,在一次发射中出色地完成了围绕火星飞行.降落.巡航的任务,堪称人类航天史上的壮举. 而今天,我们将再进一步. 就在今 ...

  3. 谷歌自揭“家丑”:医疗AI实验室表现超神,临床结果却不佳

    来源:澎湃新闻 在医疗领域,尤其是在医学影像筛查过程中,人工智能常被描述为完美的工作者.它们能准确识别疾病,拥有人类专家级的发现能力,还不知疲倦.但与许多技术一样,在实验室取得成功是一回事,而到了临床 ...

  4. MOBA手游《小米超神》案例精讲

    原文链接:https://blog.uwa4d.com/archives/2130.html 今天我们为大家带来由福州朱雀网络研发的MOBA手游<小米超神>的UWA测评报告分析.该游戏在不 ...

  5. GNU/Linux 初學之旅

    GNU/Linux 初學之旅 李果正 Edward G.J. Lee 目 錄 0.1 前言 0.2 強烈建議手頭上要有一.二本基礎書籍!!! 0.3 行前準備 0.4 GNU/Linux 的 dist ...

  6. 一只猴子和那些超神的脚本......

    声明:本文首发微信公众号[菜鸟要飞],如有转载,请标明出处! 上次推荐了一个可以看VIP视频的开源项目,但主要目的还是分享其开发技术,所以对VIP视频破解的支持很不友好,有兴趣的可以看这里分享两个开源 ...

  7. Linux多定时器实现之二

    Linux多定时器实现之二 本文为多定时器的工业级实现,实现了秒级的多定时器,时间复杂度近似O(1).具有以下特点: 新建定时器的时间复杂度降近似为O(1).它根据定时器的超时值,将新定时器散列到ha ...

  8. 神舟十二号发射,VR全景让航天科技离民众更亲近

    神舟十二号载人飞船于北京时间6月17日9时22分在酒泉卫星发射中心点火发射,飞行乘组航天员聂海胜.刘伯明和汤洪波将成为空间站天和核心舱首批入驻人员.神舟十二号为中国载人航天工程发射的第十二艘飞船,是空 ...

  9. 神舟十二号“飞天”,盘点背后的“测试秘密”

    2021年6月17日,是一个不平凡的日子,1967年的6月17日,中国第一颗氢弹爆炸成功.2021的年6月17日,我国神舟十二号载人飞船发射成功! 这消息一出,令人热血沸腾,这是我国载人航天工程立项实 ...

最新文章

  1. 方德系统装exe文件_CAXA CAD与国产操作系统全面适配
  2. Nacos客户端配置
  3. Microsoft发布新工具,简化JavaScript Web应用的创建
  4. html 闪烁字,HTML最简单的文字闪烁代码
  5. [Windows Phone 7] Storage
  6. 计算任意两个圆的交点
  7. java中extends怎么用_Java 中extends與implements使用方法
  8. mycat是什么_MyCat
  9. 不是生活所迫,谁特么想努力!
  10. 北京集训②DAY1 Morning
  11. VC下揭开“特洛伊木马”的隐藏面纱
  12. 像计算机科学家一样思考(C++)
  13. lvgl v8之Styling the scrollbars
  14. 用插值法求国债收益率
  15. flutter版本升级
  16. 【帧率倍频】基于FPGA的视频帧率倍频系统verilog开发实现
  17. linux企业实战-haproxy(2)动静分离
  18. wpsppt页面卷曲在哪里_2013版ppt怎么制作页面卷曲动画效果
  19. 使用Python调用有道翻译接口实现翻译任务
  20. 基于和芯星通UM482的RTK差分定位

热门文章

  1. 操作系统2022简答8选4
  2. HTML代码风格检查工具对比
  3. 实现局部放大图片功能
  4. 7-Zip自解压sfx解决方案简介
  5. ErrorCannot find module XXX 解决方法
  6. C语言报错:error: expected ‘while’ at end of input } ^
  7. 解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题
  8. 使用poi实现excel导入导出
  9. Centos7下安装Tkinter的一些问题
  10. 主流相机镜头分析与代表作