昨天下载了11.2 for Linux X86-64版本的Oracle,今天尝试安装一下,也算尝尝鲜。
首先检查硬件是否满足安装需求。
Oracle11.2需要至少1G的物理内存;当内存小于2G时,SWAP大小应该是内存的1.5倍,内存小于16G,SWAP和内存大小相等即可,如果内存大于16G,SWAP保证16G空间即可。
[root@bjtest ~]# grep MemTotal /proc/meminfo
MemTotal: 16418944 kB
[root@bjtest ~]# grep SwapTotal /proc/meminfo
SwapTotal: 8385888 kB
内存16G,SWAP分区8G,虽然SWAP不满足Oracle推荐的值,但是对于测试环境来说足够用了。
如果使用11g的新特性自动内存管理MEMORY_TARGET,则要求检查共享内存:
[root@bjtest ~]# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 7.9G 0 7.9G 0% /dev/shm
数据库启动时指定的MEMORY_TARGET参数不能超过这个设置。
检查操作系统架构:
[root@bjtest ~]# uname -m
x86_64
检查磁盘空间,确保/tmp有1G以上空间:
[root@bjtest ~]# df -k /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 20315812 176344 19090828 1% /tmp
检查软件和数据库安装空间,软件需要将近4G的空间,而数据库至少需要将近2G的空间,不过对于数据库环境来说,空间一般都不是问题:
[root@bjtest ~]# df -k /data
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda7 1023246840 710161448 260268896 74% /data
检查操作系统情况,对于64位Linux环境,需要Oracle Enterprise Linux 5 Update 2:
[root@bjtest ~]# more /etc/issue
Enterprise Linux Enterprise Linux Server release 5 (Carthage)
Kernel \r on an \m
[root@bjtest ~]# cat /proc/version
Linux version 2.6.18-8.el5xen (mockbuild@ca-build14) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Tue Jun 5 23:53:34 EDT 2007
当前的版本应该是Enterprise Linux 5 update 1,不知道如果不满足Oracle的安装条件是否能够安装成功。
检查系统内核版本,Linux 5需要2.18以上的内核:
[root@bjtest ~]# uname -r
2.6.18-8.el5xen
然后需要检查下列的包是否已经安装:
binutils-2.17.50.0.6compat-libstdc++-33-3.2.3compat-libstdc++-33-3.2.3 (32 bit)elfutils-libelf-0.125elfutils-libelf-devel-0.125gcc-4.1.2gcc-c++-4.1.2glibc-2.5-24glibc-2.5-24 (32 bit)glibc-common-2.5glibc-devel-2.5glibc-devel-2.5 (32 bit)glibc-headers-2.5ksh-20060214libaio-0.3.106libaio-0.3.106 (32 bit)libaio-devel-0.3.106libaio-devel-0.3.106 (32 bit)libgcc-4.1.2libgcc-4.1.2 (32 bit)libstdc++-4.1.2libstdc++-4.1.2 (32 bit)libstdc++-devel 4.1.2make-3.81sysstat-7.0.2unixODBC-2.2.11unixODBC-2.2.11 (32 bit)unixODBC-devel-2.2.11unixODBC-devel-2.2.11 (32 bit)
检查发现libaio-devel对应的两个包,以及unixODBC对应的4个包没有安装,而且剩下的包中有大部分都比要求的版本低。由于操作系统本身版本就比要求的低,光安装这些包的高版本也没有多大意义,不如直接尝试一下,不行的话,重装操作系统。
下面需要创建oracle用户和oinstall、dba组,这些与其他版本的安装没有任何的区别,这里就不重复介绍了。
对于Oracle安装来说,基本上已经不需要设置什么环境变量了,大部分环境变量的内容都可以在安装的时候指定,除了DISPLAY信息。
和其他版本的安装过程一样,设置一些操作系统的限制。
更改/etc/security/limits.conf文件,添加下面的内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑/etc/pam.d/login文件,添加下面的内容:
session required pam_limits.so
编辑/etc/sysctl.conf文件,增加下面的内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934592
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
为了避免重启数据库服务器,可以通过sysctl –p命令来设置系统内核变量:
[root@bjtest ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934592
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
下面建立安装Oracle所需的$ORACLE_HOME和$ORACLE_BASE,以及Oracle数据文件所需的路径,然后就可以开始安装了。
安装使用VNC图形方式,因此DISPLAY变量设置为服务器本身IP加VNC的端口,以root登陆后执行xhost +,然后切换到oracle用户,执行runInstaller开始安装过程。
11gr2的安装和以前版本还是有不少差别的,值得一提的是,数据库的安装过程借鉴了RAC安装过程,会前期进行硬件和软件的检查,并将可能导致问题的地方列表。有些问题,比如系统参数设置,Oracle的安装程序甚至可以直接修正。
前面已经提到了的所有问题,Oracle的安装程序都监测了出来。只能选择IGNORE ALL,硬着头皮上了。
本以为会在编译或链接的时候报错,没想到安装完成了。
用root执行root.sh脚本:
[root@bjtest ~]# /data/oracle/product/11.2/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /data/oracle/product/11.2
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
居然顺利完成,如果说当时SWAP分区不满足要求,我还确信安装可以成功,那么发现当前的Linux不是update 2的时候,我已经认为安装多半会失败,等到发现那么多需要的包没有安装的时候,我已经只是抱着试试看的想法,没有想到的是,最后居然成功了,真是没有天理。
下面利用DBCA建库,这个过程和以前版本比较类似,就不描述了。
最后登陆数据库,检查版本:
[oracle@bjtest ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月 3 23:37:20 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-613948/ ,如需转载,请注明出处,否则将追究法律责任。