- 第二十四章 Centos下的Oracle 11g安装
- Oracle安装文档
第二十四章 Centos下的Oracle 11g安装
Oracle安装文档
本次安装是在自己所建的虚拟机上安装的,用到了视图链接工具VNC
1.本次所用安装包:
linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip
2.参考链接如下:
Oracle安装参考链接:http://www.linuxidc.com/Linux/2015-02/113222.html
VNC安装参考链接:http://www.linuxidc.com/Linux/2015-01/112326.html
Oracle 11G CentOS 6.5:
http://www.aiplaypc.com/229.html
http://blog.csdn.net/cafardhaibin/article/details/25071249
3.安装前的配置:
(1)安装前的基本准备工作:
- 安装VMware Workstation
- 安装CentOS,主机命名为:oracledb
- 磁盘需要大于30G(经验值)
- 内存必须大于1G(官方要求)
- 操作系统swap分区大于2G(如果物理内存小于2G,则需要设置,设置值为物理内存的1-2倍,如果物理内存大于2G,则无需设置。)
- 虚拟机网络连接方式:桥接模式(B)直接连接物理网络
- 安装完成后设置虚拟机网络(ipv4)为固定IP地址(system-config-network)
- 进行网络测试OK,则操作系统环境准备完毕
- 安装虚拟机时一定要选择:先创建虚拟机后安装操作系统
- 为了安装Oracle,故选择安装类型为:桌面版本。
- 安装SSH Secure Shell Client并连接主机
(2)基本的主机配置
- 以下步骤中的命令太长的可通过:SSH Secure Shell Client 直接复制进行
- vi基本命令:i—编辑状态 退出编辑并保存时先按ESC键,再按符合“:wq”或者”:x”即可
- 注意每个步骤时的当前用户,是root还是oracle
step-1#修改主机名
[root@oracledb ~]# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network
[root@oracledb ~]# hostname oracledb
step-2#添加主机名与IP对应记录
[root@oracledb ~]# vi /etc/hosts
192.168.1.8 oracledb
step-3#关闭防火墙Selinux
[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracledb ~]# setenforce 0
修改网络配置
1.修改网卡配置 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
#设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BOOTPROTO=static
BROADCAST=192.168.0.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
IPADDR=192.168.1.147 #如果设置网卡获得 ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址
NETMASK=255.255.255.0 #网卡对应的网络掩码
NETWORK=192.168.1.0 #网卡对应的网络地址
2.修改网关配置
编辑:vi /etc/sysconfig/network 修改后如下:
NETWORKING=yes(表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动)
HOSTNAME=centos(设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应)
GATEWAY=192.168.0.1(设置本机连接的网关的IP地址。)
我在修改这里打开编辑时前三项已经默认有了所以只增加了GATEWAY
3.修改DNS 配置
编辑:vi /etc/resolv.conf 修改后如下:
nameserver 即是DNS服务器IP地址,第一个是首选,第二个是备用。
4.重启网络服务
执行命令:
service network restart 或 /etc/init.d/network restart
(3)安装以下RPM软件包(加32bit括号注解的是32位版本的软件包,对应同名未加注解的则是64位版本的该软件包。在64位版本平台上,两种版本都要安装)
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
直接执行以下的yum安装命令,若已安装会有提示
yum install -y binutils
yum install -y compat-libstdc
yum install -y elfutils-libelf
yum install -y gcc
yum install -y glibc
yum install -y ksh
yum install -y libaio
yum install -y libgcc
yum install -y libstdc
yum install -y make
yum install -y sysstat
yum install libXp -y
yum install -y glibc-kernheaders
或者通过以下方法更加快一些:
yum install gcc libaio libaio-devel libstdc++ libstdc++-devel libgcc elfutils-libelf-devel glibc-devel glibc-devel gcc-c++ compat-libstdc++-33 unixODBC unixODBC-devel
有一个rpm包需要独立下载pdksh-5.2.14-37.el5_8.1.x86_64,然后rpm -ivh安装即可。下载地址:pdksh-5.2.14-37.el5_8.1.x86_64
(4)调整内核参数及用户限制
以root用户进行配置文件的编辑
Ⅰ.编辑/etc/sysctl.conf文件,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行
[root@oracledb ~]#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 = 1048586
[root@oracledb ~]# sysctl -p (备注:用于输出配置后的结果,如果有错误会提示)
Ⅱ.编辑/etc/security/limits.conf文件,修改操作系统对oracle用户资源的限制。在该文件中添加如下行
[root@localhost ~]#vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
(5)目录结构及空间规划可查看参考链接
http://www.linuxidc.com/Linux/2015-02/113222.htm
(6)数据库安装用户和组的创建
使用root用户,进行如下操作:
创建oinstall组
[root@localhost ~]#groupadd -g 5000 oinstall
创建dba组
[root@localhost ~]#groupadd -g 501 dba
创建oracle用户
[root@localhost ~]#useradd -g oinstall -G dba oracle(执行后会在/home目录下创建oracle次目录)
(7)创建相应的文件系统(或安装目录)并改变相应的权限(记住路径,方便之后的查找)
[root@localhost ~]# cd /home/oracle
[root@localhost oracle]# mkdir -p /home/oracle/app/oracle
[root@localhost oracle]# chown -R oracle:oinstall /home/oracle/*
[root@localhost oracle]# chmod -R 775 /home/oracle/*
[root@localhost oracle]#
(执行命令后将Oracle安装包用Xftp导入到/home/oracle目录下解压)
(8)数据库安装用户的profile文件的设置
使用oracle用户进行如下操作
假设数据库(实例)名为powerdes。编辑/home/oracle/.bash_profile(./bash_profile文件是解压包解压后生成),插入以下内容(数据库实例名可以自己设置,但是要记住。.bash_profile文件是主要配置环境变量的文件,如果出现执行文件没有找到的情况,很有可能就是里边的path写错了)。
export ORACLE_BASE=/home/oracle/app/oracle #这个路径为(5)中的你创建的目录
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=powerdes #数据库实例名。实例名必须记住,创数据库时会用到
export PATH=$ORACLE_HOME/bin:$PATH #非常重要!涉及的所有的可执行的文件都在PATH下边
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/lib
export LANG=en_US.gbk
export NLS_LANG=american_america.ZHS16GBK
export EDITOR=vi
(9)准备VNC远程连接linux桌面
参考链接:http://www.linuxidc.com/Linux/2015-01/112326p2.html
Ⅰ.在Windows上安装VNC
Ⅱ.在linux上安装VNC
先检查一下服务器是否已经安装了VNC服务。检查服务器是否安装VNC的命令如下:
[root@localhost ~]# rpm -qa | grep vnc
[root@localhost ~]#
如果没有安装vnc可以使用下面命令进行安装:
yum install -y tigervnc tigervnc-server
顺利安装完,检查一下
[root@localhost ~]# rpm -qa|grep vnc
tigervnc-1.1.0-16.el6.CentOS.x86_64
tigervnc-server-1.1.0-16.el6.centos.x86_64
libvncserver-0.9.7-4.el6.x86_64
[root@localhost ~]#
Ⅲ.配置VNC
编辑/etc/sysconfig/vncservers配置文件(这是设置VNC用户的文件),在该文件里编辑以下内容:
vim /etc/sysconfig/vncservers
VNCSERVERS="1:root" #配置远程桌面登录的用户名,如果两个用户,则使用VNCSERVERS="1:user1 2:user2"(VNCSERVERS="usernumber:myusername")
VNCSERVERARGS[1]="-geometry 800x600" #设置分辨率,连接上服务器后也可以更改
Ⅳ.设置VNC密码
使用下面的命令为VNC设置密码(需要使用su命令切换到需要设置VNC密码的用户上,例如:
su - oracle,其中oracle就是在上面配置文件内写的帐号)
[root@localhost ~]# vncpasswd
Password:
Password must be at least 6 characters - try again
Password:
Verify:
[root@localhost ~]#
注意:密码至少为6个字符
Ⅴ.建立VNC链接
配置VNC完成后,需要执行命令service vncserver restart重新启动VNC。然后打开安装在Windows中的VNC,输入要连接的服务器IP。注意冒号后边对应的是你设置的VNC用户对应的用户名编号。如下图所示
注意:直接连接会发现连接超时。如下图所示:
解决方法:开启防火墙VNCServer端口
首先编辑/etc/sysconfig/iptables文件
#vim /etc/sysconfig/iptables
在“-A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT”下面添加一行“-A INPUT -m state —state NEW -m tcp -p tcp —dport 5901 -j ACCEPT”,然后重启iptables服务。
#/etc/init.d/iptables restart
连接成功后会显示出虚拟机的桌面。然后点击system下的preferences下的display
点击display后会弹出如下图所示的窗口,根据自己的需求更改分辨率
然后新打开一个终端,在命令行中执行
export DISPLAY=localhost:1.0(要连接服务器IP:vnc用户对应的编号)命令与xhost +命令
[root@powerlong4 rlwrap-0.37]# xhost +
access control disabled, clients can connect from any host
[root@powerlong4 rlwrap-0.37]#
表示linux下视窗环境已经准备OK,可以进行oracle安装。如下图
4.安装过程
FAQ问题—用oracle用户安装报错
1.用oracle用户安装报错
Checking monitor: must be configured to display at least 256 colors Failed <<<<
>>> Could not execute auto check for display colors using command /usr/X11R6/bin/xdpyinfo. Check if the DISPLAY variable is set.
解决方法:
1、root 下先执行#xhost +
2、su oracle
3、export DISPLAY=:0.0
(1)开始安装oracle
切换oracle用户然后cd到你解压完安装包的database下,执行./runInstaller。
然后vnc就会弹出安装界面窗口。过程如下各图:
不建议填写email,下边的创建密码选项可以不选,点击next(填写有可能卡死在这个地方)
选择i want to remain……..,点击continue
选择第二个仅安装数据库软件,点击next
选择第一个,点击next
选择如下图所示的languages,点击next
选择第一个,点击next
默认点击next
默认点击next
按下图选择组名,点击next
由于CentOS版本较高,所以Oracle11g在check的时候不识别高版本lib包,选择lgnore All,点击next
点击finish开始安装
安装快结束时,会弹出一个窗口通知要执行两个脚本,点击OK,再点击close结束安装
执行之前提示的两个脚本,分别cd进入相应的路径下,执行sh orainstRoot.sh和sh root.sh如下图
至此oracle安装已经完成
(2)数据库建库
注意:以下命令都是在oracle用户下执行的。
在执行以下所需的命令时,如果不能弹出相应的设置窗口,可以执行命令service vncserver restart将VNC重新启动一下,然后再将视图环境重新设置一遍:执行
export DISPLAY=localhost:1.0
xhost +
显示如下图:
然后再执行相应的执行命令。
在建库前首先创建监听器,切换用户oracle,cd到安装时配置环境变量中的export ORACLE_HOME下的bin中,执行./netca,会在vnc上弹出添加监听器的窗口。需要注意的是在选定监听程序的协议的时候,选择TPC协议,选择标准端口1521(可以参考下列各图)
选择Listener configuration,点击next
默认选择Add,点击next
设置监听器名称,点击next
默认选择TCP,点击next
默认选择Use the standard port number of 1521,点击next
默认选择No,点击next
点击next
点击next后点击finish完成监听器创建。创建完监听器后执行./dbca文件创建数据库。
点击Next
选择Create a Database,点击Next
选择Custom Database,点击Next
Global Database Name框:输入前面设定的数据库名
SID框:自动出现和数据库名相同的内容作为数据库实例名,单实例情况下不作改动
点击Next
注意:下图的global database name必须跟之前.bash_profile里边设的ORACLE_SID的名字相同。
默认所选,点击Next
Use Different Administrative Passwords表格的Password和Confirm Password列中分别为User Name列SYS、SYSTEM、DBSNMP和SYSMAN用户输入口令并重复一次输入(如密码设置过于简单,下一步前会有弹出窗口提示确认接受安全风险)sys和system密码设置可以在数据库建立后修改。
这里选择使用相同密码。点击Next
提示设置的密码过于简单存在安全风险是否继续
按照图示选择,点击Next
默认所选,点击Next
默认所选,点击Next
默认所选,点击Character Sets
按照图示选择兼容utf8的选项,点击Next
在File Location Variables里可以看到一些基础参数信息。点击Next
选择Generate Database Creation Scripts,默认为/home/oracle/app/oracle/admin/powerdes/scripts,点击Finish
点击OK
点击OK
等待创建
点击Exit完成创建
创建完数据库后启动数据库
如果在切换用户进入数据库时,执行lsnrctl start或是执行sqlplus “/ as sysdba ”报出如下错误
bashcommand not found.
bashcommand not found.
可能是因为在切换oracle用户时没有加“-”,如#su - oracle。
注:su 和 su - 的区别
su是不更改环境变量的,而su -是要更改环境变量的。也就是说su只是获得了oracle的权限,su -是切换到oracle并获得oracle的环境变量及执行权限。
(3)Linux下操作数据库的步骤:
Ⅰ.以oracle用户登录
Ⅱ.执行:lsnrctl start (启动监听)
Ⅲ.执行:sqlplus /nolog
Ⅳ.执行:sql>conn /as sysdba
Ⅴ.执行:sql>startup
Ⅵ.进行数据库操作
Ⅶ.执行:sql>shutdown
Ⅷ.执行:sql>quit
Ⅸ.执行:lsnrctl stop(关闭监听)
注意:如果执行sql>conn /as sysdba时出现Connected to an idle instance.那么先执行sql>startup,后执行sql>conn /as sysdba
(4)创建Oracle的启动脚本
复制以上脚本内容,在/etc/init.d目录下创建一个名为oracle的文件,然后黏贴进去,保存退出,然后chmod +x 给它执行权限,别忘了chkconfig添加开机启动以及防火墙规则的添加,到此数据库就安装完成了。
chkconfig参考:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html
#!/bin/bash
# chkconfig: 2345 90 10
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=powerdes
export PATH=$PATH:$ORACLE_HOME/bin
ORCL_OWN="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- start, stop, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/subsys/oradb
su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/subsys/oradb
echo "OK"
;;
reload|restart)
$0 stop
$1 start
;;
*)
echo "Usage: 'basename $0' start|stop|restart|reload"
exit 1
esac
exit 0