Debian Squeeze AMD64安装Oracle 10g x86_64 10.2.0.4数据库
openwares/database/debian_amd64_install_10g_r2_database.html
服务器操作系统为Debian Squeeze AMD64,没有安装X,通过ssh远程访问。客户端为debian testing,安装有gnome桌面环境。
先安装10.2.0.1,然后安装升级包10.2.0.4,比安装10g r2客户端多了一些操作,具体安装过程如下:
一、安装10.2.0.1
1、下载oracle 10g r2
下载回来的文件为10201_database_linux_x86_
$gunzip 10201_database_linux_x86_
$cpio -idmv < 10201_database_linux_x86_64.cpio
$gunzip 10201_database_linux_x86_
$cpio -idmv < 10201_database_linux_x86_64.cpio
解压缩后所有的安装文件位于database目录下。
2、检查硬件是否达到要求
物理RAM必须大于512M,现在的机器内存都没问题。超过8GB RAM时,swap应该在物理RAM的0.75倍以上。Enterprise Edition安装类型大约使用2G硬盘空间。
通过以下命令检查,如果不满足需要做相应的调整
通过以下命令检查,如果不满足需要做相应的调整
$grep MemTotal /proc/meminfo //检查物理内存大小
$grep SwapTotal /proc/meminfo //检查swap大小
$df -h //检查可用硬件空间大小
$grep SwapTotal /proc/meminfo //检查swap大小
$df -h //检查可用硬件空间大小
3、安装需要的软件包,创建需要的符号链接
安装依赖包
$sudo apt-get install build-essential ia32-libs ia32-libs-dev libc6 libc6-i386 libc6-dev libc6-dev-i386 rpm libstdc++5
$sudo apt-get install build-essential ia32-libs ia32-libs-dev libc6 libc6-i386 libc6-dev libc6-dev-i386 rpm libstdc++5
如果不安装ia32-libs,安装时会提示
/…/client/runInstaller: 63: /…/client/install/.oui: not found
创建符号链接
#ln -sf /usr/bin/awk /bin/awk
#ln -sf /usr/bin/rpm /bin/rpm
#ln -sf /usr/bin/basename /bin/basename
#ln -sf /usr/bin/awk /bin/awk
#ln -sf /usr/bin/rpm /bin/rpm
#ln -sf /usr/bin/basename /bin/basename
4、创建oracle需要的组和用户
oracle安装使用的组
#groupadd oinstall
#groupadd oinstall
系统管理使用的组
#groupadd dba
#groupadd dba
创建用户oracle
#useradd -g oinstall -G dba oracle
#useradd -g oinstall -G dba oracle
为用户oracle设置密码
#passwd oracle
#passwd oracle
创建nobody用户和nobody组
#groupadd nobody
debian默认已经创建了nobody用户,其属于nogroup组,但$ORACLE_HOME/root.sh为$ORACLE_HOME/bin/extjob设置的组为nobody,所以这里也要创建nobody组,否则root.sh会抱怨
/bin/chgrp: invalid group: `nobody’
#groupadd nobody
debian默认已经创建了nobody用户,其属于nogroup组,但$ORACLE_HOME/root.sh为$ORACLE_HOME/bin/extjob设置的组为nobody,所以这里也要创建nobody组,否则root.sh会抱怨
/bin/chgrp: invalid group: `nobody’
5、配置内核参数和oracle用户资源限制值
内核参数
oracle 10g要求的内核参数值如下
semmsl 250
semmns 32000
semopm 100
semmni 128
semmsl 250
semmns 32000
semopm 100
semmni 128
shmall 2097152
shmmax 物理内存的一半,以字节为单位
shmmni 4096
file-max 65536
ip_local_port_range 最小:1024 最大:65000
rmem_default 262144
rmem_max 262144
wmem_default 262144
wmem_max 262144
shmmax 物理内存的一半,以字节为单位
shmmni 4096
file-max 65536
ip_local_port_range 最小:1024 最大:65000
rmem_default 262144
rmem_max 262144
wmem_default 262144
wmem_max 262144
如果系统默认的内核参数值高于oracle 10g需要的值,则保持默认参数不变,否则用oracle 10g要求的值来修改内核参数。修改参数时在/etc/sysctl.d目录下新建f,将新的参数值写入此文件
kernel.sem = 250 32000 100 128
kernel.shmmax = 8589934592
kernel.shmmax = 8589934592
net.ipv4.ip_local_port_range = 1024 65000
_default = 262144
_max = 262144
wmem_default = 262144
wmem_max = 262144
_default = 262144
_max = 262144
wmem_default = 262144
wmem_max = 262144
kernel.sem参数值按semmsl semmns semopm semmni这个顺序指定,中间以空格隔开
为oracle用户所在组赋予分配大内存页的权限
oracle10g客户端安装步骤#id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
#echo “1002″ >/proc/sys/vm/hugetlb_shm_group
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
#echo “1002″ >/proc/sys/vm/hugetlb_shm_group
这样oracle才有权限分配大内存页,否则建库时会有错误提示:
ORA-27125:unable to create shared memory segment
ORA-27125:unable to create shared memory segment
不过这样设置重启后参数就丢失了,可以在/f或/etc/sysctl.f文件里
面添加该参数
vm.hugetlb_shm_group=1002
之后运行命令
vm.hugetlb_shm_group=1002
之后运行命令
#sysctl -p
或
#sysctl -p /etc/sysctl.f
或
#sysctl -p /etc/sysctl.f
可使该参数在内核内存中立即生效
如果oracle出现以下错误提示
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
则需要适当增加内核参数shmall的值
shmall是按页计数的所有共享内存的数量,可以设置shmall为SGA总量除以页面大小来解决这个错误
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
则需要适当增加内核参数shmall的值
shmall是按页计数的所有共享内存的数量,可以设置shmall为SGA总量除以页面大小来解决这个错误
获取页面大小
$getconf PAGE_SIZE
4096
也就是说页面大小为4K,如果SGA总数为16G,则shmall的值为16*1024*1024/4=4194304
$getconf PAGE_SIZE
4096
也就是说页面大小为4K,如果SGA总数为16G,则shmall的值为16*1024*1024/4=4194304
oracle用户资源限制值
在/etc/security/limits.d目录下新建文件f,文件名随意,但扩展名一定要是conf,输入一下内容
#
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
#
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
在/etc/profile.d目录下新建文件oracle.sh,文件名随意,但扩展名一定要是sh,输入以下内容
#for oracle 10g r2
#for oracle 10g r2
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
6、创建oracle基准目录
oracle安装目录的设置最好遵循oracle OFA(Optimal Flexible Architecture)规范的建议。
用以下命令来设置ORACLE BASE目录/u01/app/oracle
#mkdir -p /u01/app/oracle
#chown -R oracle:oinstall /u01/app/oracle
#chmod -R 775 /u01/app/oracle
#mkdir -p /u01/app/oracle
#chown -R oracle:oinstall /u01/app/oracle
#chmod -R 775 /u01/app/oracle
7、设置oracle用户的环境
设置oracle的用户的主目录home为/u01/app/oracle
#usermod -d /u01/app/oracle oracle
#usermod -d /u01/app/oracle oracle
修改oracle用户的shell为/bin/bash
#usermod -s /bin/bash oracle
#usermod -s /bin/bash oracle
从其他用户主目录下拷贝.profile,.bashrc,.bash_logout文件到oracle用户的主目录,在.bashrc文件增加下面的行
umask 022
然后
$source .bashrc
umask 022
然后
$source .bashrc
最后设置oracle用户远程ssh登录时启用X11 Forward
也可以不使用X远程静默安装oracle
8、安装oracle 10g x86_64数据库
登录到远程系统
$ssh -XY oracle@remotehost
$ssh -XY oracle@remotehost
执行oracle安装程序
$/path/to/client/runInstaller -ignoreSysPrereqs
$/path/to/client/runInstaller -ignoreSysPrereqs
因为oracle 10g认证的linux系统只有redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 和 asianux-2这几个,所以在其他linux发行版上安装时需要指定命令行参数-ignoreSysPrereqs,否则会提示:
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
然后退出安装
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
然后退出安装
之后在本地机器可以看到OUI(Oracle Universal Installer)界面,后面的安装根据提示来就可以了。安装目录修改为/u01/app/oracle/product/10.2.0/db_1
安装进度大约到65%时会有错误提示:
Error in invoking target 'collector' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'.
这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:
Error in invoking target 'collector' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'.
这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论