CentOS安装oracle 11g

回复 收藏

本帖最后由 liulangren0533 于 2016-8-19 09:11 编辑 参考此网站:http://shamereedwine.blog.51cto.com/5476890/1760361

1.安装前须知:
1).内存(RAM)的最小要求是 1GB,建议 2GB 及以上。
使用命令:cat /proc/meminfo,这里是虚拟机,用的是2G内存
[root@192 ~]# cat /proc/meminfo|head -1
MemTotal:        1870496 kB
2).交换内存 swap 建议:内存为 1GB~2GB 时建议swap大小为内存大小的 1.5 倍;内存为 2GB~16GB 时建议swap大小为内存的大小;内存超过 16GB 时swap保持16GB。这里是虚拟机交换内存就设为和物理内存一样的大小。
[root@192 ~]# cat /proc/swaps
FilenameTypeSizeUsedPriority
/dev/dm-1                               partition20971480-1
3). 要求临时文件目录,如/tmp 的磁盘空间至少 1GB。这里/tmp是挂载在根目录下的,不止是1G的空间。
[root@192 tmp]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  3.8G   14G   22% /
devtmpfs                 904M     0  904M    0% /dev
tmpfs                    914M     0  914M    0% /dev/shm
tmpfs                    914M  8.9M  905M    1% /run
tmpfs                    914M     0  914M    0% /sys/fs/cgroup
/dev/sda1                497M  120M  378M   25% /boot
tmpfs                    183M     0  183M    0% /run/user/0
4). 磁盘空间要求:企业版为4.35GB的安装空间和1.7GB以上的数据文件空间;标准版为4.22GB的安装空间和1.5GB以上的数据文件空间。
[root@192 tmp]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  3.8G   14G   22% /
这里看是有超过4.35G的空间。
5). 需要 X window 图形界面。yum groupinstall "Desktop"   因最小安装centos,我执行安装了yum groupinstall "Desktop"
这里我们服务器时选择的最小安装的版本。
6). 需要 root 用户权限.
7). 设定主机名与IP地址的映射
vim /etc/hosts
127.0.0.1 localhost192.168.10.136 oracle_test  2.安装所需程序包yum install -y ksh binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl sysstat libXp unixODBC unixODBC-devel安装pdksh包(该程序包未被纳入CentOS的安装盘中):使用命令 rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm 进行安装(注意:该程序包与ksh冲突,如果已经安装ksh,建议使用命令 rpm -e ksh-* 卸载)我的这个安装不成功,提示[root@DBServer ~]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpmerror: open of pdksh-5.2.14-37.el5_8.1.x86_64.rpm failed: 没有那个文件或目录从网上又下载下来,安装又报错:[root@DBServer src]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpmwarning: pdksh-5.2.14-37.el5_8.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEYerror: Failed dependencies:        pdksh conflicts with ksh-20120801-21.el6.x86_64然后执行如下命令:[root@DBServer src]# rpm -qa | grep kshksh-20120801-21.el6.x86_64[root@DBServer src]# rpm -e ksh-20120801-21.el6.x86_64[root@DBServer src]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpmwarning: pdksh-5.2.14-37.el5_8.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEYPreparing...                ########################################### [100%]   1:pdksh                  ########################################### [100%][root@DBServer src]#
3.创建所需的用户组和帐号和设置系统的一些参数并安装数据库和配置数据库。
1).创建所需的用户组(在root帐号下操作):
groupadd oinstall;
groupadd dba;
groupadd oper;
2).创建所需的帐号(在root帐号下操作):
使用命令 id oracle; 查看 oracle 帐号是否已存在,若未存在则使用如下命令进行创建
useradd -g oinstall -G dba,oper oracle; #初始群组为 oinstall,有效群组为 dba、operpasswd oracle; #为oracle帐号设置密码(安装的时候需要登录)    密码修改为:Abcdefg0123
若oracle帐号已存在,则使用命令 usermod -g oinstall -G dba,oper oracle 将其加入群组 dba 和oper中
3).修改内核参数(在root帐号下操作):
编辑内核参数配置文件 vi /etc/sysctl.conf,在该文件下修改或添加如下行:
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax= 2147483648
kernel.shmmni= 4096
kernel.sem = 250 32000100 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
再执行以下命令使以上配置立即生效:
sysctl -p;
执行报错error: "net.bridge.bridge-nf-call-ip6tables" is an unknown keyerror: "net.bridge.bridge-nf-call-iptables" is an unknown keyerror: "net.bridge.bridge-nf-call-arptables" is an unknown key
执行下面的命令
modprobe bridge
再执行,就不报错了。
[root@kdzfu-test ~]# sysctl -pnet.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296fs.file-max = 6815744fs.aio-max-nr = 1048576kernel.shmmni = 4096kernel.sem = 250 32000100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576
4).修改系统资源限制(在root帐号下操作):
编辑系统资源限制配置文件 vi /etc/security/limits.conf,在该文件下添加如下行:
oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 102405).关闭SELinux(在root帐号下操作):
编辑SELinux配置文件 vim /etc/selinux/config,将SELINUX的值设为 disabled,如下:
SELINUX=disabled;
修改该文件可使重启系统后不启动SELinux。关闭当前已开启的SELinux使用如下命令:
setenforce 0
6).创建所需的目录(在root帐号下操作):
把oracle安装在 /opt/oracle 目录下,所以需创建该目录:
mkdir /opt/oracle;chown oracle:oinstall /opt/oracle;
chmod 755 /opt/oracle;
7).安装时还需要设置 Inventory 目录,所以需创建该目录:
mkdir /opt/oraInventory;chown oracle:oinstall /opt/oraInventory;
chmod 755 /opt/oraInventory;
8).安装包相关:
Oracle 11g R2的安装包被压缩成两个文件:linux.x64_11gR2_database_1of2.zip、 linux.x64_11gR2_database_2of2.zip,将它们上传到安装机器上,并使用 unzip linux.x64_11gR2_database_1of2.zip;unzip linux.x64_11gR2_database_2of2.zip; 进行解压缩,将得到一个名称为 database 的目录。我把它放在 /home/oracle/database 中。
由于安装过程是以 oracle 身份进行的,所以需确保oracle帐号对 /home/oracle/database 有执行权限,可使用如下命令将该目录赋予oracle帐号所有,并拥有执行权限:
chmod -R 700 /home/oracle/database;
chown -R oracle:oinstall /home/oracle/database;
退出 root,以 oracle 身份登录
9).设置oracle帐号登录时环境(以oracle身份登录):
编辑文件 vi /home/oracle/.bash_profile,添加如下行:
ORACLE_BASE=/opt/oracle; #安装目录ORACLE_HOME=$ORACLE_BASE/11g; #oracle家目录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;
保存退出后执行如下命令使以上设置立即生效:
source /home/oracle/.bash_profile
设置安装时默认语言为英文
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc10).开始安装(以oracle身份登录):/home/oracle/database/runInstaller; ##执行该程序开始安装我在这里碰到问题啦:>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。    未通过 <<<<解决办法:          正确的登录方式:在字符界面,使用 oracle 用户通过 start x登录 Xwindow,即可进行安装。或者以图形界面启动系统,再使用 oracle 用户登陆,即可进行安装。        失败的登陆方式:以root用户登录Xwindow,然后su - oralce,这样在进行安装时,就会提示上述那些错误了。  总结:但我当时第一次试着在字符界面通过 oracle 用户 startx 时,提示错误信息,无法进入图形界面。然后我把 /ect/inittab 改成图形方式启动时,以 oracle  用户登录,可以进入。然后在次将 /ect/inittab 改成字符界面启动,reboot 之后,通过 oracle 用户登陆系统,然后 startx ,这次竟然没有提示错误信息,直接进入图形界面了,不知是什么原因,在小布老师的视频中没出现过这种情况啊,难道必须使用新建的用户先登陆一次图形界面,才能在字符界面启动 startx 吗?不知大家是否遇见过类似情况,期待讨论。  网上http://blog.itpub.net/21256317/viewspace-1061135/    说的重启,再进入模式3(字符模式),但是通过oracle登陆后执行startx进不到图形桌面,并且执行上面的安装命令还是报错。参考:http://blog.sina.com.cn/s/blog_53e6076b0102vj3r.html安装yum groupinstall "X Window System"yum groupinstall "Chinese Support"然后修改 vi /etc/inittab   启动模式为5, 设置启动进,图形桌面,用oralce用户登陆系统,在terminal中运行/home/oracle/database/runInstaller  即可安装。以下插入一点( 解决方法——非root用户startx时报错OS:redhat9系统安装的时候只有X,没有kde之类的窗口桌面。root登录后以非root用户startx时报:PAM authentication failed, cannot start X server.Perhaps you do not have console ownership?解决方法:touch /var/run/console/比如 touch /var/run/console/oracle #我是执行这个命令,然后在字符模式下输入startx就可以把本机打开图形界面解决字符界面输入startx 开启图形界面
以下将进入图形安装界面   ####因图片上传有问题,具体参考最上方原网站。
输入email,点击next
由于我的安装没连通外网,所以提示我设置代理。选中复选框,点击Continue
选中第一项,在安装完成时创建并简单配置数据库,点击next
选中Server Class,点击next
以单例模式安装(若安装RAC,选择下一项),点击next
选中Advanced install,点击next
选Simple Chinese ,English.
选择安装企业版,点击next
安装基目录和Home目录,由于我们已设置好环境变量ORACLE_BASE和ORACLE_HOME,此处无需再选择,点击next
以oinstall群组身份进行安装,点击next
安装用于事务处理的数据库(数据仓库选中下一项),点击next
设置环境变量ORACLE_SID,点击next
可使用的最大内存,Oracle建议使用自动内存管理,点击选项卡Character sets选择字符集
选择UTF-8作为数据库字符集,点击Sample Schemas顺便创建Oracle提供的案例
选中复选框,点击next
根据自己需求设置,这里选择什么都不动,点击next
是否启用自动备份,在生产环境还是启用的好,点击next
为系统管理帐号设置密码,这里为统一设置密码。
选择DBA帐号所属群组dba和oper帐号所属群组,点击next
因为swap 空间过小,造成检查通过不了,扩充swap空间。加个1G左右
[root@oracle_test ~]# dd if=/dev/zero of=swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 12.8605 s, 83.5 MB/s
[root@oracle_test ~]# mkswap swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=796f3041-c278-4c72-b1b1-aa5d04fe2ad5
[root@oracle_test ~]# swapon swapfile
swapon: /root/swapfile: insecure permissions 0644, 0600 suggested.
[root@oracle_test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1826         325          68           8        1432        1284
Swap:          3071           0        3071
再重新检查
安装程序对环境进行检查,由于CentOS的32bit程序包都是i686的,而oracle要求i386,所以此处会失败,忽略即可。点击next
点击Finish,开始安装
先执行下一步:以root身份登录执行那两个sh文件
11).如中文显示乱码可参考以下的解决方法。
(1).修改显示中文乱码,把数据库字符集设置为UTF8
vim /etc/sysconfig/i18n
确认内容是否是 LANG="zh_CN.UTF-8"
(2).编辑/home/oracle/.bash_profile,在最后一行添加如下:
NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8";
export NLS_LANG;
执行source /home/oracle/.bash_profile
12).启动测试并修改一些系统的参数。
[oracle@kdzfu-test ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 4月 4 00:23:20 2016
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mount;ORACLE 例程已经启动。
Total System Global Area 1603411968 bytesFixed Size      2213776 bytesVariable Size    973080688 bytesDatabase Buffers   620756992 bytesRedo Buffers      7360512 bytes数据库装载完毕。SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
系统已更改。
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
系统已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup;ORACLE 例程已经启动。
Total System Global Area 1603411968 bytesFixed Size      2213776 bytesVariable Size    973080688 bytesDatabase Buffers   620756992 bytesRedo Buffers      7360512 bytes数据库装载完毕。数据库已经打开。SQL>
13).修改开机启动脚本dbstart和关闭脚本dbshut
先修改vim  /etc/oratab
将最后一行N变成Y
然后修改$ORACLE_HOME/bin/dbstart内容
将ORACLE_HOME_LISTNER=$1 修改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME
su - oracle
dbstart #启动oracle
这个只是启动oracle数据库和监听基本服务
不带3个网页的服务,相当于上面的sqlplus和lsnrtl start 两个操作
dbshut停止oracle了
使用dbshut脚本关闭数据库并查看监听端口是否关闭。
./dbshut
[oracle@kdzfu-test bin]$ ./dbshut Processing Database instance "orcl": log file /opt/oracle/11g/shutdown.log[oracle@kdzfu-test bin]$ ss -tnlpState      Recv-Q Send-Q                                     Local Address:Port                                       Peer Address:Port LISTEN     0      128                                                   :::22                                                   :::*     LISTEN     0      128                                                    *:22                                                    *:*     LISTEN     0      128                                            127.0.0.1:631                                                   *:*     LISTEN     0      128                                                  ::1:631                                                  :::*     LISTEN     0      128                                                   :::56535                                                :::*     LISTEN     0      100                                                  ::1:25                                                   :::*     LISTEN     0      100                                            127.0.0.1:25                                                    *:*     LISTEN     0      128                                            127.0.0.1:6010                                                  *:*     LISTEN     0      128                                                  ::1:6010                                                 :::*     LISTEN     0      128                                            127.0.0.1:6011                                                  *:*     LISTEN     0      128                                                  ::1:6011                                                 :::*     LISTEN     0      128                                            127.0.0.1:6012                                                  *:*     LISTEN     0      128                                                  ::1:6012                                                 :::*     LISTEN     0      128                                            127.0.0.1:6013                                                  *:*     LISTEN     0      128                                                  ::1:6013                                                 :::*     LISTEN     0      10                                                     *:3938                                                  *:*      users:(("emagent",22698,5))LISTEN     0      30                                                    :::1158                                                 :::*      users:(("java",26990,19))LISTEN     0      128                                                    *:35016                                                 *:*     LISTEN     0      128                                                   :::111                                                  :::*     LISTEN     0      128                                                    *:111                                                   *:*     LISTEN     0      30                                                    :::5520                                                 :::*      users:(("java",26990,14))
监听已关闭
[oracle@kdzfu-test bin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-4月 -2016 00:49:00
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误  TNS-00511: 无监听程序   Linux Error: 2: No such file or directory正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=kdzfu-test)(PORT=1521)))TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误  TNS-00511: 无监听程序   Linux Error: 111: Connection refused
使用dbstart脚本打开数据库并查看监听端口是否已打开。
[oracle@kdzfu-test bin]$ ./dbstart Processing Database instance "orcl": log file /opt/oracle/11g/startup.log
监听已开启
[oracle@kdzfu-test bin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-4月 -2016 00:51:32
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))LISTENER 的 STATUS------------------------别名                      LISTENER版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production启动日期                  04-4月 -2016 00:51:20正常运行时间              0 天 0 小时 0 分 11 秒跟踪级别                  off安全性                    ON: Local OS AuthenticationSNMP                      OFF监听程序参数文件          /opt/oracle/11g/network/admin/listener.ora监听程序日志文件          /opt/oracle/diag/tnslsnr/kdzfu-test/listener/alert/log.xml监听端点概要...  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=kdzfu-test)(PORT=1521)))服务摘要..服务 "orcl" 包含 1 个实例。  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...服务 "orclXDB" 包含 1 个实例。  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...命令执行成功
[oracle@kdzfu-test 11g]$ ss -tnlpState       Recv-Q Send-Q                                       Local Address:Port                                         Peer Address:Port LISTEN      0      128                                                     :::1521                                                   :::*      users:(("tnslsnr",29370,13))LISTEN      0      128                                                     :::22                                                     :::*     LISTEN      0      128                                                      *:22                                                      *:*     LISTEN      0      128                                              127.0.0.1:631                                                     *:*     LISTEN      0      128                                                    ::1:631                                                    :::*     LISTEN      0      128                                                     :::56535                                                  :::*     LISTEN      0      100                                                    ::1:25                                                     :::*     LISTEN      0      100                                              127.0.0.1:25                                                      *:*     LISTEN      0      128                                              127.0.0.1:6010                                                    *:*     LISTEN      0      128                                                    ::1:6010                                                   :::*     LISTEN      0      128                                              127.0.0.1:6011                                                    *:*     LISTEN      0      128                                                    ::1:6011                                                   :::*     LISTEN      0      128                                              127.0.0.1:6012                                                    *:*     LISTEN      0      128                                                    ::1:6012                                                   :::*     LISTEN      0      128                                              127.0.0.1:6013                                                    *:*     LISTEN      0      128                                                    ::1:6013                                                   :::*     LISTEN      0      10                                                       *:3938                                                    *:*      users:(("emagent",22698,5))LISTEN      0      128                                                     :::31619                                                  :::*      users:(("oracle",29484,17))LISTEN      0      30                                                      :::1158                                                   :::*      users:(("java",29182,18))LISTEN      0      128                                                      *:35016                                                   *:*     LISTEN      0      128                                                     :::111                                                    :::*     LISTEN      0      128                                                      *:111                                                     *:*     LISTEN      0      30                                                      :::5520                                                   :::*      users:(("java",29182,14))
14).为了使得其他电脑能访问管理器,需要给防火墙把1158端口开放
注意:主机防火墙要开的话,也要放通1521端口。
执行
iptables -I INPUT -p tcp --dport 1158 -j ACCEPT
iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
我 的防火墙都关闭了,这里面没配置。
15).修改 /etc/oratab   从这个向下没操作
su - root
#vim /etc/oratab
找到
#$ORACLE_HOME 替换为$ORACLE_HOME变量的值,$SID替换为$SID变量的值
$SID:$ORACLE_HOME:N
改为
$SID:$ORACLE_HOME:Y
把配置文件改为如下所示
orcl:/opt/oracle/11g:Y
16).编辑启动关闭脚本
# vim /etc/rc.d/init.d/oracle
#!/bin/bash
#chkconfig: 234 61 61
#description: Oracle 11g AutoRun Service
#/etc/rc.d/init.d/oracle
case "$1" in
  start)
     # starts oracle listener and instance
     echo "Starting Oracle Database:"
     su - oracle -lc "lsnrctl start"
     su - oracle -lc dbstart
     su - oracle -lc "emctl start dbconsole"
     ;;
 
2016-08-19 09:11 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: