Solaris10 安装Oracle11g汇总.docx
《Solaris10 安装Oracle11g汇总.docx》由会员分享,可在线阅读,更多相关《Solaris10 安装Oracle11g汇总.docx(11页珍藏版)》请在冰豆网上搜索。
![Solaris10 安装Oracle11g汇总.docx](https://file1.bdocx.com/fileroot1/2023-1/24/1e91e8d2-d114-4db6-aabf-b69d04672409/1e91e8d2-d114-4db6-aabf-b69d046724091.gif)
Solaris10安装Oracle11g汇总
Solaris10系统安装Oracle数据库
一、实验环境
操作系统:
OracleSolaris101/13s10x_u11wos_24aX86(64位)
数据库版本:
Oracle11gR2forx86(64位)
二、安装前准备工作
1.内存要求
最小内存:
1G
推荐内存:
2G或更高
bash-3.2#prtconf|grep"Memorysize"
Memorysize:
8192Megabytes
2.交换分区要求
物理内存:
1G~2G交换分区:
物理内存的1.5倍
物理内存:
2G-16G交换分区:
与物理内容大小相等
物理内存:
大于16G交换分区:
16G
3.系统架构
系统架构符合Oracle数据库软件要求
bash-3.2#isainfo-kv
64-bitamd64kernelmodules
4.磁盘要求
/tmp最少1G的空间
bash-3.2#df-h/tmp
FilesystemsizeusedavailcapacityMountedon
swap15G40K15G1%/tmp
5.软件要求
OracleDatabase11gRelease2(11.2)要求的系统版本必须是U6以上,08年10月之后的版本。
bash-3.2#uname-r
5.10
bash-3.2#cat/etc/release
OracleSolaris101/13s10x_u11wos_24aX86
Copyright(c)1983,2013,Oracleand/oritsaffiliates.Allrightsreserved.
Assembled17January2013
6.系统补丁要求
在OracleSolaris10操作系统上,安装OracleDatabase11gRelease2(11.2),必须包含以下系统补丁:
●SUNWarc
●SUNWbtool
●SUNWhea
●SUNWlibC
●SUNWlibm
●SUNWlibms
●SUNWsprot
●SUNWtoo
●SUNWi1of
●SUNWi1cs(ISO8859-1)
●SUNWi15cs(ISO8859-15)
●SUNWxwfnt
●SUNWcsl
bash-3.2#pkginfo-iSUNWarcSUNWbtoolSUNWheaSUNWlibCSUNWlibmsSUNWsprot\
>SUNWtooSUNWi1ofSUNWi1csSUNWi15csSUNWxwfnt
systemSUNWarcLintLibraries(usr)
systemSUNWbtoolCCStoolsbundledwithSunOS
systemSUNWheaSunOSHeaderFiles
systemSUNWi1ofISO-8859-1(Latin-1)OptionalFonts
systemSUNWlibCSunWorkshopCompilersBundledlibC
systemSUNWlibmsMath&MicrotaskingLibraries(Usr)
systemSUNWsprotSolarisBundledtools
systemSUNWtooProgrammingTools
systemSUNWxwfntXWindowSystemplatformrequiredfonts
ERROR:
informationfor"SUNWi1cs"wasnotfound
ERROR:
informationfor"SUNWi15cs"wasnotfound
对于提示“ERROR”的"SUNWi1cs"与"SUNWi15cs"软件包,可从系统安装光盘中查找:
“/cdrom/sol_10_113_x86/Solaris_10/Product”
bash-3.2#pkgadd-d/cdrom/sol_10_113_x86/Solaris_10/ProductSUNWi1cs
Processingpackageinstancefrom
……………………………
bash-3.2#pkgadd-d/cdrom/sol_10_113_x86/Solaris_10/ProductSUNWi15cs
Processingpackageinstancefrom
两个补丁都安装完后,再进行检查,无报错:
bash-3.2#pkginfo-iSUNWarcSUNWbtoolSUNWheaSUNWlibCSUNWlibmsSUNWsprotSUNWtooSUNWi1ofSUNWi1csSUNWi15csSUNWxwfnt
systemSUNWarcLintLibraries(usr)
systemSUNWbtoolCCStoolsbundledwithSunOS
systemSUNWheaSunOSHeaderFiles
systemSUNWi15csX11ISO8859-15CodesetSupport
systemSUNWi1csX11ISO8859-1CodesetSupport
systemSUNWi1ofISO-8859-1(Latin-1)OptionalFonts
systemSUNWlibCSunWorkshopCompilersBundledlibC
systemSUNWlibmsMath&MicrotaskingLibraries(Usr)
systemSUNWsprotSolarisBundledtools
systemSUNWtooProgrammingTools
systemSUNWxwfntXWindowSystemplatformrequiredfonts
三、操作系统配置修改
1.创建用户和组
bash-3.2#groupaddoinstall
bash-3.2#groupadddba
bash-3.2#useradd-d/export/home/oracle-m-s/bin/bash-goinstall-Gdbaoracle
bash-3.2#passwd-rfilesoracle
NewPassword:
Re-enternewPassword:
passwd:
passwordsuccessfullychangedfororacle
2.设置内核参数
1)Oracle相关知识
sharedmemory(共享内存段)
一个内存区域,可以被不同的进程读取。
Oracle使用它来构成SGA。
Oracle使用以下三种方法来创建一个SGA区:
使用单个共享内存段。
使用连续多个共享内存段。
使用多个不连续共享内存段。
Oracle优先使用第一种方法,如果成功,则继续初始化,不成功则使用第二种方法,再不成功则使用第三种方法。
如果再不成功,则初始化失败,Oracle报告错误代码
Semaphore
可以看作一个标记。
可以有On和Off两种状态。
Oracle使用semaphores来实现服务器进程对SGA区的存取控制。
Sharedmemory和semaphore是Oracle在Unix上运行的重要资源。
如果Oracle实例得不到所需要的资源,实例启动就会失败。
参数
对于运行一个Oracle实例的Solaris系统,改变/etc/system文件中的一些关于共享内存的参数,以使Oracle实例可以正常运行,如果有多个实例的话,还需根据下面方法重新计算某些值。
●shmmax
含义:
这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。
这个设置也不影响操作系统的内核资源。
设置方法:
0.5*物理内存。
如果物理内存为20G,则0.5×20G×1024×1024=10485760
例子:
Setshmsys:
shminfo_shmmax=10485760
●shmmin
含义:
共享内存的最小大小。
设置方法:
一般都设置成为1。
例子:
Setshmsys:
shminfo_shmmin=1
●shmseg
含义:
每个用户进程可以使用的最多的共享内存段的数目。
推荐
值为20或者10。
例子:
Setshmsys:
shminfo_shmseg=20
●semmni
含义:
系统中semaphoreidentifierer的最大个数。
推荐值为100或
者128。
设置方法:
把这个变量的值设置为这个系统上的所有Oracle的实例
的init.ora中的最大的那个processes的那个值加10。
例子:
Setsemsys:
seminfo_semmni=100
●semmns
含义:
系统中semaphores的最大个数。
设置方法:
这个值可以通过以下方式计算得到:
各个Oracle实例的
initSID.ora里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数。
详见下面“(semmns计算实例)”。
例子:
Setsemsys:
seminfo_semmns=200
●semmsl
含义:
一个set中semaphore的最大个数。
设置方法:
设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值。
详见下面“(SEMMSL计算实例)” .
例子:
Setsemsys:
seminfo_semmsl=-200
2)修改/etc/system
在以前的Solaris发行版中,IPC功能由内核可调参数来控制。
要更改这些功能的缺省值,必须修改/etc/system文件并重新引导系统。
采用Oracle安装手册需要配置参数
setnoexec_user_stack=1
setsemsys:
seminfo_semmni=100
setsemsys:
seminfo_semmns= processes×2+10
setsemsys:
seminfo_semmsl= processes+10
setsemsys:
seminfo_semvmx=32767
setshmsys:
shminfo_shmmax=内存一半或者4294967295(4g)
setshmsys:
shminfo_shmmni=100
例子:
bash-3.2#vi/etc/system
setnoexec_user_stack=1
setshmsys:
shminfo_shmmax=4294967295
setsemsys:
seminfo_semmni=100
setsemsys:
seminfo_semmns=1024
setsemsys:
seminfo_semmsl=256
setsemsys:
seminfo_semvmx=32767
setshmsys:
shminfo_shmmni=100
但在solaris10及以后的版本中,此方法不在建议
3)资源控制
根据Oracle安装手册需要配置参数
setnoexec_user_stack=1
setsemsys:
seminfo_semmni=100
setsemsys:
seminfo_semmns= processes×2+10
setsemsys:
seminfo_semmsl= processes+10
setsemsys:
seminfo_semvmx=32767
setshmsys:
shminfo_shmmax=内存一半或者4294967295(4g)
setshmsys:
shminfo_shmmni=100
但在Solaris10之后,很多参数都过时或者取消,如下文所示:
setnoexec_user_stack=1
setsemsys:
seminfo_semmni 已过时用project.max-sem-ids代替 默认128 保持默认
setsemsys:
seminfo_semmns已删除
setsemsys:
seminfo_semmsl 已过时 用process.max-sem-nsems代替 默认512,实际设置500+10 保持默认设置
setsemsys:
seminfo_semvmx 已删除
setshmsys:
shminfo_shmmax 已过时 用project.max-shm-memory代替 默认 物理内存的1/4即4G,实际设置4G保持默认
setshmsys:
shminfo_shmmni 已删除
故在Solaris10及之后的版本,/etc/system只需修改一个参数即可:
修改/etc/system,加入 setnoexec_user_stack=1 即可:
Oracle安装配置的内核参数主要是共享内存、信号量、消息队列3块内容。
如要修改内核参数,采用如下操作(系统不用重启,且在系统重启后配置依旧生效)
●先检查oracle用户的project配置
bash-3.2#su-oracle
OracleCorporationSunOS5.10GenericPatchJanuary2005
-bash-3.2$id-p
uid=100(oracle)gid=100(oinstall)projid=3(default)
如果是default,则添加projd配置
●创建oracle用户的project
bash-3.2#projaddgroup.dba
●logout在/etc/user_attr文件添加一行
bash-3.2#vi/etc/user_attr
oracle:
:
:
:
project=group.dba
●修改内核参数
bash-3.2#projmod-sK"project.max-shm-memory=(privileged,4294967295,deny)"group.dba
bash-3.2#su-oracle
-bash-3.2$id-p
uid=100(oracle)gid=100(oinstall)projid=100(group.dba)
-bash-3.2$exit
●检查/etc/project
bash-3.2#cat/etc/project
system:
0:
:
:
:
user.root:
1:
:
:
:
noproject:
2:
:
:
:
default:
3:
:
:
:
group.staff:
10:
:
:
:
group.dba:
100:
:
:
:
project.max-shm-memory=(privileged,4294967295,deny)
●检查资源控制
-bash-3.2$prctl-nproject.max-shm-memory-iprocess$$
process:
1786:
-bash
NAMEPRIVILEGEVALUEFLAGACTIONRECIPIENT
project.max-shm-memory
privileged4.00GB-deny
system16.0EBmaxdeny
3.配置ShellLimits
ulimit用于限制shell启动进程所占用的资源,支持以下各种类型的限制:
所创建的内核文件的大小、进程数据块的大小、Shell进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU时间、单个用户的最大线程数、Shell进程所能使用的最大虚拟内存。
同时,它支持硬资源和软资源的限制。
作为临时限制,ulimit可以作用于通过使用其命令登录的shell会话,在会话终止时便结束限制,并不影响于其他shell会话。
而对于长期的固定限制,ulimit命令语句又可以被添加到由登录shell读取的文件中,作用于特定的shell用户。
ulimit限制的是当前shell进程以及其派生的子进程。
举例来说,如果用户同时运行了两个shell终端进程,只在其中一个环境中执行了ulimit–s100,则该shell进程里创建文件的大小收到相应的限制,而同时另一个shell终端包括其上运行的子程序都不会受其影响
在安装数据库过程中会用到的ulimit参数:
-H:
设置硬资源限制,一旦设置不能增加
-S:
设置软资源限制,设置后可以增加,但是不能超过硬资源设置。
-a:
显示当前所有的limit信息。
-s:
线程栈大小,以Kbytes为单位。
-n:
可以打开最大文件描述符的数量。
-u:
用户最大可用的进程数。
根据官方文档,Oracle建议配置Shell限制和系统配置参数
ulimit相应的值符合此表中的值即可:
1)线程栈资源限制
-bash-3.2$ulimit-Hs
unlimited
bash-3.2$ulimit-Ss
10240
官方建议的线程栈软资源限制为最大10240KB,硬限制最大32768
目前系统参数不符合要求,故需进行设置,可在.profile中进行设置,以防止失效。
-bash-3.2$cat.profile
ulimit-Hs32768
ulimit-Ss10240
2)可以打开最大文件描述符数量限制
bash-3.2#ulimit-Hn
65536
bash-3.2#ulimit-Sn
256
官方建议可以打开最大文件描述符数量软资源限制为少在1024,硬限制最少在65536,目前系统参数不符合要求,故需进行设置,可在.profile中进行设置,以防止失效。
-bash-3.2$cat.profile
ulimit-Hs32768
ulimit-Ss10240
ulimit-Hn65536
ulimit-Sn65536
3)用户最大可用进程数
-bash-3.2$ulimit-Hu
27557
-bash-3.2$ulimit-Su
27557
官方建议可以用户最大可用进程软资源限制为少可使用2047个进程,硬限制最少16384个进程,目前系统参数符合要求,故可不修改。
4.创建oracle目录
1)建立文件夹
创建两个文件夹u01与u02
u01:
存放oracle软件。
u02:
存放oracle数据文件。
bash-3.2#mkdir-p/u01/app/oracle
bash-3.2#mkdir-p/u02/oradata
2)设置文件属组
bash-3.2#chown-Roracle:
oinstall/u01/app/oracle
bash-3.2#chown-Roracle:
oinstall/u02/oradata
3)设置文件权限
bash-3.2#chmod-R755/u01/app/oracle/
bash-3.2#chmod-R755/u02/oradata/
5.设置环境变量
-bash-3.2$cat.profile
MAIL=/usr/mail/${LOGNAME:
?
}
ulimit-Hs32768
ulimit-Ss10240
ulimit-Hn65536
ulimit-Sn65536
exportDISPLAY=10.78.150.44:
0.0
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=sales
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
PATH=/usr/sbin:
/usr/bin:
/u01/app/oracle/product/11.2.0/dbhome_1/bin/
exportPATH
exportORACLE_BASEORACLE_SIDORACLE_HOME