我是菜鸟,很笨很笨,从未接触过Linux,某些命令我只知道用,不知道啥意思,也是第一次写教程,不能算是教程吧,应该算是我掉过的坑。记录下学习的过程。全程无图,也不太会用这个编辑器。各位大神看了还请高抬贵手,轻拍。

注意U盘格式!!! Fat32

本教程以戴尔PowerEdge R720为例。装系统过程可先安装中文版,熟练之后安装英文版。由于各翻译不同及中文乱码问题,建议生产环境以英文版为主。

在实际生产环境中,由于保密需求,需要无网络环境安装Linux。

一.配置raid
Ctrl+R进入raid卡,选择raid类型。

二.Bios调整启动项,U盘启动
开机F2

三.U盘安装linux
安装教程一大把,此处略

四.检查驱动

cat /proc/devices

五.使用系统镜像,安装配置本地yum

  1. 挂载U盘
fdisk -l                              #查看U盘符,
mkdir /mnt/centos                     #在mnt创建挂载点,
mount -o loop /dev/sdb4 /mnt/centos   #[盘符路径] [挂载点路径]
  1. 备份原yum源
cd /etc/yum.repo.d
rename .repo .repo.bak *

由于我的服务器都是内网,所以这步我选择删除,之后重建yum仓库。互联网的用户可以选择网络源的yum仓库
删除所有以.repo结尾的文件:rm-rf *.repo 重建仓库:touch CentOS-Local.repo

  1. 创建本地yum源
vi /etc/yum.repo.d/CentOS-Local                         #名称随便起,以.repo为结尾

i编辑

[CentOS-Local]
name=CentOS-Local                                   #名称
baseurl=file:///mnt/centos                          #刚才创建U盘挂载点的路径
gpgcheck=1                                          #gpg校验 1开0关
gpgkey=file:///mnt/centos/RPM-GPG-KEY-CentOS-7      #gpgkey路径,注意版本号
enabled=1                                           #是否启用 1开0关

保存退出:wq

  1. 清除yum缓存 yum clean all
  2. 更新本地yum yum makecache
  3. 安装ifconfig命令,也可以不装,我习惯用这个命令。
yum install net-tools.x86_64

这里说一下,由于ifconfig这个命令,是在net-tools.x86_64这个包里,所以这安装的是包名,如果你也有想安装的命令,却不知道在那个包里,可以用 yum search 名称查一下。

六.配置网络IP

vi /etc/sysconfig/network-scripts/ifcfg-em1  #这个路径最好背下来,以后会经常用

i编辑

TYPE=Ethernet             #网络类型=以太网
PROXY_METHOD=none         #代理方式
BROWSER_ONLY=no           #只是浏览器
BOOTPROTO=static          #动态主机配置协议=固定   [dhcp=动态]
DEFROUTE=yes              #默认路由
IPV4_ FAILURE FATAL=no
IPV6 IN IT=yes            #ipv6开启
IPV6 AUTOCONF=yes         #ipv6自动获取
IPV6 DEFROUTE=yes         #ipv6所在网段
IPV6 PEERDNS=yes
IPV6 PEERROUTES =yes
IPV6 FAILURE FATAL=no
NAME=em1
UUID=3b65f 3dc -Zd2b-4Z62 -83016Zea733ca368
DEUICE =enpBs3
ONBOOT=yes               #随系统启动
IPADDR=192.168.1.100     #ip地址
NETMASK=255.255.255.0    #子网掩码

保存、退出:wq

生效service network restart

七.安装图形界面

  1. 安装X Window System
yum groupinstall "X Window System" -y

安装完成后, yum grouplist 可查看已安装的环境和组

  1. 安装图形界面GNOME(GNOME Desktop)
yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y
  1. 安装完成后 init 5测试,此时不要创建任何新用户,因为等下还要创建Oracle用户,现在创建了会乱,可用root登录看看桌面环境,语言尽量选英文
  2. 调整默认启动页
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.targe
  1. 重启 shutdown -r,不要用reboot
  2. 重复步骤五-1,挂载U盘

八.修改主机名

[root@oracledb ~]sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network

[root@oracledb ~]hostname oracledb

九.Oracle安装前准备

1.准备工作
①.关闭selinux
查看selinux状态:getenforce

临时关闭:setenforce 0 #重启后失效
永久关闭:vim /etc/selinux/config 设置SELINUX=disabled

②.关闭firewalld

systemctl stop firewalld.service
systemctl disable firewalld.service

③.安装iptables

yum -y install iptables-services
systemctl restart iptables.service
systemctl enable iptables.service
  1. 创建用户及安装目录,安装依赖包

①.创建用户

[root@oracledb ~] groupadd oinstall
[root@oracledb ~] groupadd dba
[root@oracledb ~] useradd -g oinstall -G dba -m oracle
[root@oracledb ~] passwd oracle
-g:指定用户所属的群组             
            -G:指定用户所属的附加群组        
            -u:指定用户ID                    
            -d:指定用户主目录                 
            -s:指定用户登录shell               
            -m:若用户主目录不存在,则自动创建

②.创建安装目录

[root@oracledb ~]mkdir -p /oracle/base/home    
[root@oracledb ~]chown -R oracle:oinstall /oracle
[root@oracledb ~]chmod 755 /oracle

③.安装oracle所需依赖的组件

yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
  1. 修改内核(/etc/sysctl.conf)
[root@oracledb ~] vi /etc/sysctl.conf

i编辑

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 17179869183
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

保存退出:wq 完成后使用命令,使之生效

[root@oracledb ~] sysctl -p

内核参数需要注意,shmall 和shmmax 的值由服务器内存决定。
kernel.shmall :
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取1610241024*1024-1=17179869183。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

上面的这段文字,每个字我都认识,组合到一起是啥意思,我就不明白了。只知道这是修改内核的东西,很重要,改不对就无法安装。

  1. 修改系统资源限制( /etc/security/limits.conf)
[root@oracledb ~] vi /etc/security/limits.conf  #末尾添加如下

i编辑

oracle   soft  nproc   2047
oracle   hard  nproc   16384
oracle   soft  nofile   1024
oracle   hard  nofile   65536
*        hard  nofile   131072

保存退出:wq

  1. 修改Oracle用户环境变量(~/.bash_profile),注意$符,切换Oracle用户了,su - oracle
[oracle@oracledb ~]$ vi ~/.bash_profile

i编辑

# .bash_profile
        # Get the aliases and functions
            if [ -f ~/.bashrc ]; then
            . ~/.bashrc
            fi
        export ORACLE_BASE=/oracle/base  
        export ORACLE_HOME=/oracle/base/home
        export ORACLE_OWNER=oracle
        export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
        export ORACLE_SID=oracle #名称
        export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
        export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin:$ORACLE_BASE/common/oracle/bin
        export ORACLE_TERM=xterm
        export LD_LIBRARY_PATH=$ORACLE_HOME/lib:${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib:${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
        export CLASSPATH=$ORACLE_HOME/JRE:${CLASSPATH}:$ORACLE_HOME/jlib:${CLASSPATH}:$ORACLE_HOME/rdbms/jlib:${CLASSPATH}:$ORACLE_HOME/network/jlib
        export TEMP=/tmp
        export TMPDIR=/tmp
        #export DISPLAY=      #X manager地址
        #export TERM=vt100

保存退出:wq

  1. 解压Oracle
[oracle@oracledb ~]unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracledb ~]unzip linux.x64_11gR2_database_2of2.zip
  1. 安装oracle(./runInstaller)
[oracle@oracledb database]./runInstaller

①.订阅邮件这些就直接跳过不填了。

②.这里选择忽略更新 skip software updates

③.这里选择仅安装数据库 Install database software only

④.选择单实例安装。 Single instance database installation

⑤.语言,默认英文

⑥.默认 企业版 Enterprise Edition
标准版 Standard Edition
个人版 Standard Edition One

⑦.这里出现刚才创建Oracle环境变量的相应目录信息,会自动读取

⑧.默认,下一步

⑨.选择group 组为之前创建好的oinstall

⑩.如有缺少的包,查询yum search安装yum install,某些包比如pdksh可忽略(右上角Ignore All)

⑪.安装到最后的时候会出现一个提示:需要用root权限su - root执行2个shell脚本,那么我们在之前的root用户终端下运行提示中的对应脚本文件即可。

⑫.安装完成

安装过程中,尽量不要出现报错,生产库,数据无价。有报错就重装。

各种问题:

  1. 【问题】:弹窗不显示,安装界面显示为灰色
    【解决方法】:
    执行安装时带上一下参数
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
  1. 【问题】:Oracle安装日志路径
    【解决方法】:
./oracle/oraInventory/logs
  1. 【问题】:pdksh冲突。这个可以忽略,【问题4】好像就是因为安装了pdksh才出现的。
    error: Failed dependencies:
    pdksh conflicts with ksh-20120801-10.el7.x86_64
    【解决方法】:
    先删除原本ksh
[root@oracledb tmp]rpm -e ksh-20120801-10.el7.x86_64

再执行

[root@oracledb tmp]rpm -Uvh pdksh-5.2.14-36.el5.x86_64.rpm

注意el后的版本号

  1. 【问题】:报错
    make: *** [emdctl] Error 2
    collect2: error: ld returned 1 exit status
    INFO: make[1]: Leaving directory `/oracle/base/home/sysman/lib’
    INFO: make[1]: *** [/oracle/base/home/sysman/lib/emdctl] Error 1
    make: *** [emdctl] Error 2
    INFO: End output from spawned process
    【解决方法】:
    在文件/oracle/base/home/sysman/lib/ins_emagent.mk
    找到$(MK_EMAGENT_NMECTL)并改为$(MK_EMAGENT_NMECTL) -lnnz11,Retry即可