我是菜鸟,很笨很笨,从未接触过Linux,某些命令我只知道用,不知道啥意思,也是第一次写教程,不能算是教程吧,应该算是我掉过的坑。记录下学习的过程。全程无图,也不太会用这个编辑器。各位大神看了还请高抬贵手,轻拍。
注意U盘格式!!! Fat32
本教程以戴尔PowerEdge R720为例。装系统过程可先安装中文版,熟练之后安装英文版。由于各翻译不同及中文乱码问题,建议生产环境以英文版为主。
在实际生产环境中,由于保密需求,需要无网络环境安装Linux。
一.配置raid
Ctrl+R进入raid卡,选择raid类型。
二.Bios调整启动项,U盘启动
开机F2
三.U盘安装linux
安装教程一大把,此处略
四.检查驱动
cat /proc/devices
五.使用系统镜像,安装配置本地yum
- 挂载U盘
fdisk -l #查看U盘符,
mkdir /mnt/centos #在mnt创建挂载点,
mount -o loop /dev/sdb4 /mnt/centos #[盘符路径] [挂载点路径]
- 备份原yum源
cd /etc/yum.repo.d
rename .repo .repo.bak *
由于我的服务器都是内网,所以这步我选择删除,之后重建yum仓库。互联网的用户可以选择网络源的yum仓库
删除所有以.repo结尾的文件:rm-rf *.repo
重建仓库:touch CentOS-Local.repo
- 创建本地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
- 清除yum缓存
yum clean all
- 更新本地yum
yum makecache
- 安装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
七.安装图形界面
- 安装X Window System
yum groupinstall "X Window System" -y
安装完成后, yum grouplist
可查看已安装的环境和组
- 安装图形界面GNOME(GNOME Desktop)
yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y
- 安装完成后
init 5
测试,此时不要创建任何新用户,因为等下还要创建Oracle用户,现在创建了会乱,可用root登录看看桌面环境,语言尽量选英文 - 调整默认启动页
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.targe
- 重启
shutdown -r
,不要用reboot - 重复步骤五-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
- 创建用户及安装目录,安装依赖包
①.创建用户
[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
- 修改内核(/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()调用在一个信号量集合上可以执行的操作数量。
上面的这段文字,每个字我都认识,组合到一起是啥意思,我就不明白了。只知道这是修改内核的东西,很重要,改不对就无法安装。
- 修改系统资源限制( /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
- 修改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
- 解压Oracle
[oracle@oracledb ~]unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracledb ~]unzip linux.x64_11gR2_database_2of2.zip
- 安装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用户终端下运行提示中的对应脚本文件即可。
⑫.安装完成
安装过程中,尽量不要出现报错,生产库,数据无价。有报错就重装。
各种问题:
- 【问题】:弹窗不显示,安装界面显示为灰色
【解决方法】:
执行安装时带上一下参数
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
- 【问题】:Oracle安装日志路径
【解决方法】:
./oracle/oraInventory/logs
- 【问题】: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后的版本号
- 【问题】:报错
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即可