安装环境
Linux服务器:SuSe10 sp2 64位
Oracle服务器:Oracle11gR2 64位
系统要求
- Linux安装Oracle系统要求
系统要求 | 说明 |
内存 | 必须高于1G的物理内存 |
交换空间 | 一般为内存的2倍,例如:1G的内存可以设置swap 分区为3G大小 |
硬盘 | 5G以上 |
2.修改操作系统核心参数
在Root用户下执行以下步骤:
1**)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 设置Oracle用户的资源占用情况**
输入命令:vi /etc/security/limits.conf**,按i键进入编辑模式,将下列内容加入该文件。oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
1.<span class="pln">Oracle soft nproc 2047</span>
2.<span class="pln">oracle hard nproc 16384</span>
3.<span class="pln">oracle最多允许开启2047个进程,软限制和硬限制都是起限制作用。不过策略稍有不同</span>
4.<span class="pln">oracle soft nofile 1024 </span>
5.<span class="pln">oracle hard nofile 65536</span>
6.<span class="pln">这两句就是限制epg用户最多允许打开10000个文件。</span>
7.8.<span class="pln">硬限制就是“绝对不能超过”</span>
9.<span class="pln">软限制是可以超过的,但必须小于等于硬限制值。</span>
2)修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。
session required /lib/security/pam_limits.so session required pam_limits.so |
# 整个系统同时可以开启的文件数 fs.file-max = 6815744 # 同时可以拥有的的异步IO请求数目 fs.aio-max-nr = 1048576 #一个共享内存段所能容纳的内存数量 kernel.shmall = 2097152 #一个共享内存段所能容纳的内存数量 kernel.shmmax = 2147483648 #整个系统最多可有几个共享内存段 kernel.shmmni = 4096 #对信号量的设置 kernel.sem = 250 32000 100 128 #程序可自由使用端口范围 net.ipv4.ip_local_port_range = 9000 65500 #接收TCP封包的预设缓存空间 net.core.rmem_default = 4194304 #接收TCP封包的最大缓存空间 net.core.rmem_max = 4194304 #发送TCP封包的预设缓存空间 net.core.wmem_default = 262144 #发送TCP封包的最大缓存空间 net.core.wmem_max = 1048576 |
编辑完成后按**Esc键,输入“:wq”**存盘退出
4**)要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p 显示如下:
5)编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件。
if [ $USER = “oracle” ]; then if [ $SHELL = “/bin/ksh” ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi |
创建用户,输入命令: groupadd oinstall groupadd dba 创建Oracle用户和密码,输入命令: useradd -g oinstall -g dba -m oracle passwd oracle 然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认 |
7**)创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:
8)**更改目录属主为Oracle用户所有,输入命令:
9)**配置oracle用户的环境变量,首先,切换到新创建的oracle用户下,
输入:su – oracle ,然后直接在输入 : vi .bash_profile
按i编辑 .bash_profile,进入编辑模式,增加以下内容:
umask 022 export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib |
编辑完成后按**Esc键,输入“:wq”**存盘退出
## 安装过程
1) 当上述系统要求操作全部完成后,注销系统,在图形界面以Oracle用户登陆。首先将下载的Oracle安装包复制到linux中,推荐用Xmanager 或其他ftp工具拷贝。
打开一个终端,运行unzip命令解压oracle安装文件,如:
输入命令: unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip |
解压完成后 cd 进入其解压后的目录database
输入命令: cd database |
使用ls命令可以查看解压后database所包含的文件,如下图:
2) 执行安装,输入命令:./runInstaller
装到这一步,可以看到,可以查看到有很多的rpm**包没有,我们可以从安装linux的光盘或ISO中查找所缺的包,使用ftp上传到linux中,然后使用rpm –ivh xxx.rpm –nodeps –force 来进行安装(其中加上–nodeps – force 代表强制安装,是在直接使用rpm –ivh xxx.rpm**安装不成功的情况下用的)安装过程略。
方法一:将安装盘挂在到虚拟机上,去/media/RHEL_6.2 x86_64 Disc 1/Packages 中
执行 rpm –ivh xxx.rpm –nodeps –force 进行安装,
方法二:
可以直接去网上下载 相关的xxx.rpm,然后进入目录,然后进行安装
**等到把包全部都安装好的情况下,再次在oracle图形界面中,执行安装过程2,下来在环境检查过程中,就通过了。**
安装完成后,系统会提示你需要用root权限执行2个shell脚本。按照其提示的路径,找到其所在的位置,如:我的就在/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
和 /home/oracle/app/oraInventory/orainstRoot.sh 新开启一个终端,输入命令:
su – root cd /home/oracle/app/oracle/product/11.2.0/dbhome_1 sh root.sh cd /home/oracle/app/oraInventory sh orainstRoot.sh |
数据库建库
1) 还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库。
输入统一密码(也可以分别设置其密码)
数据库存放位置,我这里采用默认
不指定快速恢复和归档
去掉不常用的模块
内存分配及指定字符集
经过漫长的等待,当看到此界面,说明oracle建库完成
可以用sqlplus来检验下,新开启一个命令窗口,输入sqlplus,然后输入用户名和密码,可以测试下,这里就不做过多的介绍了。
配置监听及本地网络服务
1) 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面。
2)创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)
3)配置本地网络服务名(充当oracle客户端,连接别的oracle服务器)
输入连接的oracle服务器的数据库的实例名
输入oracle服务器的ip地址
选中测试
点击change Login 输入所连接oracle服务器的其中某一个用户名和密码,点击OK
看到此界面说明测试成功(如果不成功,请查看网络是否畅通,所连接的oracle服务器是否启动,监听是否启动等原因)
为你所设置的本地网络服务名起个名字
然后下一步,下一步即可
这样oracle服务器安装配置基本就完成了。
常见问题分析:
问题一: vi .bash_profile 修改保存后报错: “.bash_profile” “.bash_profile” E212: Can’t open file for writing Press ENTER or type command to continue 解决办法: 此问题是权限不够 chmod 755 .bash_profile,就可以了问题二: 在执行检查的时候,会遇到check failed的情况,这是由于依赖包没有安装,可以根据check的情况,到网上下载相应的rpm包,使用:rpm -ivh ……rpm 安装 但是在oracle用户下无法执行rpm依赖包,因为权限不够 解决办法: su到root用户下执行 备注:如何在linux下查看rpm包是否安装完毕,可以执行命令:rpm -q gcc cpp compat-libstdc++ glibc-devel kernel-headers binutils
问题三: 在linux下安装rpm包时经常会遇到下面这个问题: 例如: [root@test Server]# rpm -ivh elfutils-libelf-devel-0.137-3.el5.i386.rpm warning: elfutils-libelf-devel-0.137-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 error: Failed dependencies: elfutils-libelf-devel-static-i386 = 0.137-3.el5 is needed by elfutils-libelf-devel-0.137-3.el5.i386 解决办法: 遇到此问题时可以在安装rpm包命令的后面加两个参数:–nodeps –force 如 rpm -ivh elfutils-libelf-devel-0.137-3.el5.i386.rpm –nodeps –force –nodeps意思是解决依赖问题 –force意思是强制安装
问题四: 安装过程中,会出现下面这句话: Enter the full pathname of the local bin directory: [/usr/local/bin]: 解决办法:直接回车
问题五: 执行sqlplus时出错,错误信息如下: cannot restore segment prot after reloc: Permission denied 解决办法: 原因是selinux的问题,selinux的设置太过严格导致的。解决的办法是在root用户下 编辑/etc/selinux/config,找到这段: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=enforcing
把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为: SELINUX=disabled 保存,关闭。 ……
编辑/etc/sysconfig/selinux,找到: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=enforcing
如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行: SELINUX=disabled 保存,退出。 重启电脑 问题六: 使用用户登录Oracle时报错: ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory 解决办法: 首先查看ORACLE_HOME 和ORACLE_SID是否正确,并且,ORACLE_HOME不能在尾部有斜杠“/” [oracle@localhost ~]$ echo $ORACLE_HOME /home/oracle/app/oracle/product/11.2.0/dbhome_1 [oracle@localhost ~]$ echo $ORACLE_SID orcl 上面内容为正确结果
接着执行下面的语句便可解决此问题。 [oracle@localhost ~]$ sqlplus /nolog SQL> connect /as sysdba Connected to an idle instance. SQL> startup ORACLE instance started 执行完后,exit退出Oracle,然后用sqlplus重新登录测试。 做到最后配置完监听后了 问题七 开始安装时候报如下错误
[oracle@localhost database]$ ./runInstaller Starting Oracle Universal Installer… Checking Temp space: must be greater than 80 MB. Actual 244 MB Passed Checking swap space: must be greater than 150 MB. Actual 2015 MB Passed Checking monitor: must be configured to display at least 256 colors >>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<< Some requirement checks failed. You must fulfill these requirements before continuing with the installation,at which time they will be rechecked. Continue? (y/n) [n] y |
Rechecking installer requirements….
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-03-23_02-36-20AM. Please wait …[oracle@localhost database]$ No protocol specified
Exception in thread “main” java.lang.InternalError: Can’t connect to X11 window server using ‘:0.0’ as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$000(X11GraphicsEnvironment.java:53)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:142)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at java.awt.Window.init(Window.java:270)
at java.awt.Window.<init>(Window.java:318)
at java.awt.Frame.<init>(Frame.java:419)
at oracle.ewt.popup.PopupFrame.<init>(Unknown Source)
at oracle.ewt.lwAWT.BufferedFrame.<init>(Unknown Source)
at oracle.sysman.oio.oioc.OiocOneClickInstaller.<init>(OiocOneClickInstaller.java:328)
at oracle.sysman.oio.oioc.OiocOneClickInstaller.<clinit>(OiocOneClickInstaller.java:168)
解决方案,重新启动redhat