一.安装RedHat7.4系统
1.安装Redhat7.4,进入安装界面选择Install Red Hat Enterprise Linux 7.4,按Enter。
2.语言选择English,Continue
3.时区选择Shanghai,并调整时间。
4.SOFTWARE SELECTION,安装Server with GUI,额外环境勾选如下两项:
5.MANUAL PARTITIONING分区如下,也可以选择自动分区(我的硬盘为40GB,内存2GB)
6.关闭KDUMP,网络打开,点击Begin Installation:
7.设置root账户密码及创建的新用户(这里创建的新用户可以是oracle):
8.如果你设置的密码强度较弱,需要双击Done。
9.安装完成,选择Reboot重启:
10.接受LICENSE,FINISH CONFIGURATION:
11.RedHat7.4安装完成,选择账户登录,点击Not listed?,选择root账户登录。
12.Next,Next,Next,Skip设置完成,进入桌面:
二.配置网络ip
1.鼠标在桌面上右键,选择Open Terminal,打开终端:
2.在终端中使用vi编辑器配置网卡ip地址配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
按ESC
退出编辑模式,按:x
保存退出。
设置DNS:
# vi /etc/resolv.conf
保存退出后,使用systemctl restart network
重启网络,使用ifconfig
查看网络信息:
三.可选操作
大多数Oracle安装文章中,都会选择关闭防火墙和SeLinux,具体是否这样做,请阅读另一位小伙伴的文档 《Oracle与iptables和SELinux禁用关系说明》。
关闭防火墙:
# systemctl stop firewalld #停止防火墙服务
# systemctl disable firewalld #禁止开机启动
关闭SELINUX:
# vim /etc/sysconfig/selinux
SELINUX=disabled
#SELINUXTYPE=targeted #注释掉
重启系统,然后查看SELinux状态
#/usr/sbin/sestatus -v #查看SELinux状态
四.设置本地ISO源
1.在 /mnt下创建cdrom目录:
# mkdir /mnt/cdrom
2.挂载光盘到/mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
3.使用vi创建cdrom.repo文件:
# vi /etc/yum.repos.d/cdrom.repo
添加:
[CDROM]
name=isofile
baseurl=file:///mnt/cdrom
enable=1
gpgcheck=0
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
4.清除yum缓存:yum clean all
安装gcc测试:yum install gcc
5.为了使下次开机后,ISO镜像能自动挂载,在/etc/fstab文件添加:
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0
# mount –a #挂载fstab文件所有设备
注意:本例中,是把光驱中的Redhat安装光盘(dev/cdrom)挂载到/mnt/cdrom
目录,如果您要把Redhat安装镜像ISO文件上传至root目录下,只需把第5步中的/dev/sr0改为/root/Redhat.***.iso,执行mount –a
即可。
五.修改主机名及ip映射
1.修改主机名为Server:
# vi /etc/hostname
2.添加ip主机名映射:
# vi /etc/hosts
注销下,重新登录,配置即可生效。
六.开始为安装Oracle做准备
1.安装所需软件包:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
安装i686软件包时,可把x86_64修改成i686,如图:
下面的两个软件包可以在RedHat6镜像里找到,Redhat7不包含,可使用XFTP上传到root用户的家目录:
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
安装:
# rpm –ivh compat-libstdc++-33-3.2.3-71.el7.i686
# rpm –ivh compat-libstdc++-33-3.2.3-71.el7.x86_64
如果使用ODBC,你必须安装ODBC包依赖:
# yum install unixODBC-2.3.1-11.el7.x86_64
# yum install unixODBC-2.3.1-11.el7.i686
# yum install unixODBC-devel-2.3.1-11.el7.x86_64
# yum install unixODBC-devel-2.3.1-11.el7.i686
额外需要安装的包:
# yum install elfutils-libelf-0.168-8.el7.x86_64
# yum install elfutils-libelf-devel-0.168-8.el7.x86_64
2.安装最新的Linux-PAM库,使系统管理员能够选择应用程序如何对用户进行身份验证,添加以下内容到/etc/pam.d/login
#vi /etc/pam.d/login #在最下面加入如下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
3.修改/etc/profile
# vi /etc/profile
将以下代码新增到profile , pathmunge ()下方。添加代码的时候,千万注意,在这里的语法中,if
和[]
之间,还有=
两边,都是需要空格的,如果不加空格,之后执行到这里的代码的时候会报错。
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
4.创建要求的用户和组
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# id oracle
如果oracle用户存在,这命令展示信息关于该用户属于哪个组,输出类似如下,显示oinstall是主要组,dba是次要组:
uid=440(oracle) gid=200(oinstall) groups=201(dba),202(oper)
如果您安装Redhat7.4时创建的新用户是oracle,但是它首选组不是oinstall或者它不是dba组中的一员,执行下面命令:
# /usr/sbin/usermod -g oinstall -G dba oracle
如果您安装Redhat7.4时创建的新用户不是oracle,使用下面命令创建它:
# /usr/sbin/useradd -g oinstall -G dba oracle
这个命令创建oracle用户并指定oinstall作为首选组,dba作为次选组.
设置oracle用户密码:
# passwd oracle
七.配置内核参数和限制
验证以下表中所示的内核参数设置为大于或等于所示的最小值的值。下面的过程描述如何验证和设置这些值
注意:
本节中的内核参数和shell限制值仅是最小值。对于生产数据库系统,Oracle建议您调整这些值以优化系统的性能。有关调优内核参数的更多信息,请参考操作系统文档。
①使用/sbin/sysctl -a|grep sem
查看系统中semmsl, semmns, semopm, 和semmni的值:
kernel.sem = 250 32000 32 128
②使用/sbin/sysctl -a | grep shm
查看系统中shmall, shmmax, 和 shmmni的值:
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
③使用/sbin/sysctl -a | grep file-max
查看系统中的file-max值:
fs.file-max = 197244
④使用/sbin/sysctl -a | grep ip_local_port_range
查看系统中的
ip_local_port_range的值:
net.ipv4.ip_local_port_range = 32768 60999
⑤使用/sbin/sysctl -a | grep rmem_default
查看系统中rmem_default的值:
net.core.rmem_default = 212992
⑥使用/sbin/sysctl -a | grep rmem_max
查看系统中rmem_max的值:
net.core.rmem_max = 212992
⑦使用/sbin/sysctl -a | grep wmem_default
查看系统中wmem_default的值:
net.core.wmem_default = 212992
⑧使用/sbin/sysctl -a | grep wmem_max
查看系统中的wmem_max的值:
net.core.wmem_max = 212992
⑨使用cat /proc/sys/fs/aio-max-nr
输出aio-max-nr的值:
1048576
Oracle官方文档推荐值:
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
系统中信息的值与官方推荐值不同时,若大于官方值,则不修改。否则修改为官方推荐值,编辑/etc/sysctl.conf
文件:
输入以下命令来更改内核参数的当前值:
# /sbin/sysctl -p
检查此命令的输出以验证值是否正确。如果值不正确,请编辑/etc/sysctl.conf文件,然后再次输入此命令.
输入命令/sbin/sysctl -a
,以确认正确设置了值.
在/etc/sysctl.conf文件中更新内核参数后,使用sysctl -p
使其生效.
八.配置您的操作系统设置资源限制
在Oracle Linux系统上,Oracle推荐安装Oracle预安装RPMs来满足预安装要求如在limits.conf文件中配置您的操作系统设置资源限制。Oracle预安装RPM只为Oracle用户配置limits.conf文件,如果您正在实现Oracle Grid 基础设施作业角色分离,那么在limits.conf文件中将值从oracle用户复制到grid用户
对于每个安装所有者,检查资源限制,使用下面推荐的范围:
检查资源限制:
$ ulimit -Sn
1024
$ ulimit -Hn
4096
$ ulimit -Su
4096
$ ulimit -Hu
7812
$ ulimit -Ss
8192
$ ulimit -Hs
unlimited
/etc/security/limits.conf
配置文件中为安装所有者更新资源限制但是,请注意,配置文件是特定于发行版的。请与系统管理员联系以获得特定于分发的配置文件信息。# vi /etc/security/limits.conf
添加:
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 4096
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
注销系统,然后登录使配置生效。
九.创建所需目录
# mkdir -p /u01/app/
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app
十.配置Oracle用户环境
1.输入以下命令,以确保X Window应用程序可以在此系统上显示,Server是Redhat系统的主机名,这里也可以是ip地址(192.168.1.130):
$ xhost + Server
2.运行启动脚本
$ . ./.bash_profile
3.切换root账户,安装xclock:
# yum install -y xclock
# xclock
出现时钟,ok。
4.把oracle加入到sudoers:
# chmod u+w /etc/sudoers
# vi /etc/sudoers
# chmod u-w /etc/sudoers
# exit
5.设置TMP和TMPDIR环境变量以在此文件系统上指定临时目录:
$ sudo mkdir /u01/tmp
$ sudo chmod a+wr /u01/tmp
$ exit
输入以下命令来设置TMP和TMPDIR环境变量:
$ TMP=/u01/tmp
$ TMPDIR=/u01/tmp
$ export TMP TMPDIR
6.输入以下命令来设置ORACLE_BASE和ORACLE_SID环境变量:
$ ORACLE_BASE=/u01/app/oracle
$ ORACLE_SID=sales
$ export ORACLE_BASE ORACLE_SID
在这个示例中,/u01/app/oracle是您先前创建或标识的Oracle基本目录,sales是数据库名称(通常不超过5个字符)。
7.输入以下命令以确保ORACLE_HOME和TNS_ADMIN环境变量没有设置:
$ unset ORACLE_HOME
$ unset TNS_ADMIN
如果设置了ORACLE_HOME环境变量, 那么Oracle Universal Installer使用它指定的值作为Oracle主目录的默认路径。但是,如果您设置ORACLE_BASE环境变量,那么Oracle建议您取消设置ORACLE_HOME环境变量,并选择Oracle Universal Installer建议的默认路径。
8.使用XFTP上传Oracle安装文件到Redhat7.4的oracle用户的home目录下:
在终端下切换到安装文件所在位置,使用unzip解压缩:
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
9.切换到解压后的database目录,执行./runInstaller
开始安装Oracle
①取消勾选I wish to receive security updates via My Oracle Support,然后Next。
②选择Create and configure a database,然后Next。
③选择Server Class,然后Next。
④选择Single instance database installation,然后Next。
⑤选择Typical install,然后Next。
⑥Global database name 要和前面设置的ORACLE_SID保持一致,或以ORACLE_SID为前缀的名称(本例中也可以是sales.xxx)。
⑦在内核参数已确认配置好,显示的软件包确认都已安装好时,才可以选择Ignore All,否则打开一个终端,使用yum install 软件包名
安装后Check Again。
⑧在Redhat7.4系统中,Oracle安装进程大约在68%时出现错误:
解决方法:在makefile中添加链接libnnz11库的参数
$ vi /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
将 $(MK_EMAGENT_NMECTL)
修改为:$(MK_EMAGENT_NMECTL) -lnnz11
点击Retry继续安装,安装成功。
10.设置oracle用户的环境变量
$ vi /home/oracle/.bash_profie #添加以下内容:
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=sales
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
保存后使用如下命令,使设置生效:
$ source /home/oracle/.bash_profile
11.启动数据库实例
Linux 下启动oracle步骤
$ lsnrctl start //打开监听
$ sqlplus /nolog //进入sqlplus
SQL> conn /as sysdba //连接到sysdba
SQL> startup //启动数据库实例
SQL> shutdown immediate //关闭数据库实例
$ lsnrctl stop //关闭监听
启动或关闭数据库:
$ dbstart/dbshut
注意要直接通过命令启动关闭数据库需先修改两个地方
修改自动启动和关闭数据库实例和监听
$ vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
#把ORACLE_HOME_LISTNER=$1修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME
$ vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
#把ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
启动关闭实例:
启动数据库
$ dbstart
关闭数据库
$ dbshut
启动/关闭EM(企业管理):
$ emctl start dbconsole #启动EM
$ emctl stop dbconsole #关闭EM
可以使用火狐浏览器根据给出的地址登陆https://192.168.1.130:1158/em
或http://192.168.1.130:1158/em
。如果要使用远程的浏览器登录,则需要firewall放出Redhat7.4的1158和1521端口:
①查看开放出的端口
# firewall-cmd --list-ports
②永久放开端口
# firewall-cmd --zone=public --add-port=1158/tcp --permanent
# firewall-cmd --zone=public --add-port=1521/tcp --permanent
③重启firewall
# systemctl restart firewalld
12.登录EM管理
登录em管理,使用SYS,连接身份使用SYSDBA,如果没有配置sys账户密码,则打开终端:
sqlplus /nolog //进入sqlplus
SQL> conn /as sysdba //连接到sysdba
SQL> alter user sys identified by zseR245you; //修改sys账户密码为zseR245you
SQL>exit
EM界面按钮乱码问题,参考《Oracle11g EM界面乱码解决方法》。
Oracle启动配置成功,现在可以使用Oracle连接客户端进行连接了。
解锁scott用户:
sqlplus /nolog //进入sqlplus
SQL> conn /as sysdba //连接到sysdba
SQL> alter user scott account unlock; //解锁scott账户
SQL>alter user scott identified by tiger; //设置scott账户密码为tiger
使用Navicat 连接数据库
13.扩展
Oracle服务自动启动脚本,参考《Oracle服务自动启动脚本》。
一般oracle11G R2启动主要用到这3个命令:(也可以根据你的要求开启一些其他的服务)
启动关闭代理
emctl start agent #开启代理
emctl stop agent #关闭代理
启动关闭实例
startup #启动实例
shutdown immediate #关闭实例
shutdown有四个参数,四个参数的含义如下:
Normal
:需要等待所有的用户断开连接
Immediate
:等待用户完成当前的语句
Transactional
:等待用户完成当前的事务
Abort
:不做任何等待,直接关闭数据库
①normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
②immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
③transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
④abort 执行强行断开连接并直接关闭数据库。
前三种方式不会丢失用户数据。第四种在不得已的情况下使用,不建议采用!