VMWare6+RedhatLinux9+Oracle10g安装手册.docx
《VMWare6+RedhatLinux9+Oracle10g安装手册.docx》由会员分享,可在线阅读,更多相关《VMWare6+RedhatLinux9+Oracle10g安装手册.docx(14页珍藏版)》请在冰豆网上搜索。

VMWare6+RedhatLinux9+Oracle10g安装手册
VMWare6环境在Redhatlinux9上Oracle10g安装手册
1.运行环境2
1.1硬件安装环境2
1.2相关软件2
2.典型安装VmwareWorkstation6,具体过程省略。
3
3.安装RedhatLinux94
3.1运行VMwareWorkstation4
3.2新建虚拟机4
3.3安装RedHatLinux9操作系统4
3.4安装VMwareTools4
3.5检查硬件参数,并做出必要调整4
3.6创建用户和组5
3.7准备文件目录5
3.8设置内核参数,调节信号灯及共享内存5
3.9设置oracle环境6
4.安装Oracle10g7
4.1共享文件夹,对安装文件进行解压7
4.2安装过程7
4.3创建数据库7
4.4Linux配置oracle自动启动8
5.网络配置11
6.oracle10g的优化设置12
1.
运行环境
1.1硬件安装环境
●CPUIntelE5200
●2GBDDR2内存
●160GSATA硬盘
●集成声卡显卡网卡
1.2相关软件
●WindowsXPsp2
●VmwareWorkstation6
●RedHatLinux9
●Linux32-Oracle10g(10.2.0.1.0)
2.
典型安装VmwareWorkstation6,具体过程省略。
3.
安装RedhatLinux9
3.1运行VMwareWorkstation
3.2新建虚拟机
欢迎界面,下一步;
选择自定义配置,下一步;
默认工作站,下一步;
选择Linux系统,版本选择RedHatEnterpriseLinux5,下一步;
虚拟机名称可以不更改,位置更改到有足够空间(至少20G)的磁盘(例:
E:
\vm\RedHatEnterpriseLinux5),下一步;
选择一个cpu,下一步;
内存设置需要700MB以上,视可用内存大小可掉大到1G,下一步;
选择桥接网络,下一步;
选择LSILogic,下一步;
选择建立一个新的虚拟磁盘,下一步;
选择SCSI磁盘类型,下一步;
磁盘大小更改到20G,剩余两项不选择,下一步;
不更改默认磁盘配置文件,直接完成。
3.3安装RedHatLinux9操作系统
打开刚才新建的“RedHatEnterpriseLinux5”虚拟机,在“Devices”选项卡中双击“CD/DVD(IDE)”,在弹出的窗口中,可以选择从哪里安装OS,如果拥有的OS是.iso格式,那就选择“UseISOimagefile(使用ISO镜象文件)”项,然后点Browser选中OS的第一个.iso文件。
点击“Startthisvirtualmachine”启动虚拟机,这个时候就会检测到OS的光盘安装,然后按提示安装即可,这里要求安装Linux的完整版,还需注意,当需要更换光盘时,除了要选择下一个.iso文件,还需要点一下“connect”使更换的光盘生效。
3.4安装VMwareTools
启动RadHat9.0(图形界面方式登陆),并且以管理员(root)的身份登陆。
在VMware虚拟机的菜单中点击:
虚拟机(VM)->安装VMware工具(InstallVmwareTools)->install。
RedHat9.0自动挂载VMwareTools的虚拟光驱,并显示在桌面。
进去VMwareTools的虚拟光驱里,会发现VMwareTools-*.i386.rpm。
运行“系统终端”#rpm-ivh/mnt/cdrom/VMwareTools-*.i386.rpm回车(文件名是VMwareTools虚拟光驱里的文件名),然后开始安装,安装后
#cd/usr/bin回车
#ls*.pl回车
这时会找到这一个可执行文件:
vmware-config-tools.pl
#./vmware-config-tools.pl回车
然后按提示安装完毕,输入reboot(重启)生效。
3.5检查硬件参数,并做出必要调整
检查物理内存#grepMemTotal/proc/meminfo
检查交换空间#grepSwapTotal/proc/meminfo
//查阅网上资料,这里交换空间最优应该为物理内存的两倍,我在运行中设置交换空间为1G(不低于物理内存800MB)测试正常,所以建议交换空间大小不要低于1G。
若太小,则应进行下面的更改:
第一步:
确保系统中有足够的空间来用做swap交换空间
第二步:
添加交换文件并设置其大小为1G,使用如下命令
#ddif=/dev/zeroof=1024M.swapbs=1Mcount=1024
第三步:
创建(设置)交换空间,使用命令mkswap
#mkswap1024M.swap
第五步:
启动新增加的1G的交换空间,使用命令swapon
#swapon-s 查看现在的swap信息
#swapon-a/1024M.swap-p-2 激活分区同时设置其优先级
第六步:
确认新增加的2G交换空间已经生效
#grepSwapTotal/proc/meminfo
第七步:
修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效
在文件最后加入:
/1024M.swap swap swapdefaults00
3.6创建用户和组
#groupaddoinstall
#groupadddba
#useradd-goinstall-Gdbaoracle
#passwdoracle
3.7准备文件目录
#mkdir/opt/oracle10g
#mkdir/opt/oracle10g/product
#mkdir/opt/oracle10g/product/10.2.0.1.0
#chown–Roracle.oinstall/opt/oracle10g
#mkdir/var/opt/oracle10g
#chownoracle.dba/var/opt/oracle10g
#chmod775/var/opt/oracle10g
3.8设置内核参数,调节信号灯及共享内存
打开编辑/etc/sysctl.conf这个文件,在最末加入以下的语句并保存
kernel.shmmax=536870912
kernel.shmmni=4096
kernel.shmall=2097152
kernel.sem=25032000100128
fs.file-max=65536
net.ipv4.ip_local_port_range=102465000
注意:
kernel.shmmax的值至少是物理内存的一半,这里用512MB测试成功(物理内存800MB)
接下来打开编辑/etc/security/limits.conf文件,将下列数据添加到limits.conf的末尾并保存
oraclesoftnofile65536
oraclehardnofile65536
oraclesoftnproc16384
oraclehardnproc16384
使用#ntsysv打开服务设置,取消sendmail,iptables,rsh,rexec,rlogin,xinetd等服务。
3.9设置oracle环境
上述设置完成后重启(reboot)redhatLinux9系统,使这些参数生效,然后以oracle
用户身份登录,打开编辑/home/oracle/.bash_profile文件,这是隐藏文件,所以用终端打开:
#cd/home/oracle
#vi~/.bash_profile
在文件末尾添加如下数据行并保存:
(按i进行修改,Shift+z+z保存推出)
exportLD_ASSUME_KERNEL=2.4.1
exportORACLE_BASE=/opt/oracle10g
exportORACLE_HOME=/opt/oracle10g/product/10.2.0.1.0
exportORACLE_SID=**(数据SID,自定义,不要单独用ORCL和test为标识)
exportORACLE_TERM=xterm
exportTNS_ADMIN=$ORACLE_HOME/network/admin
exportLC_ALL=zh_CN
exportLANG=zh_CN
exportJAVA_FONTS=/usr/share/fonts/zh_CN/TrueType/
exportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:
/usr/local/lib
exportLD_LIBRARY_PATH
exportPATH=$PATH:
$ORACLE_HOME/bin
CLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:
$ORACLE_HOME/network/jlib
exportCLASSPATH
exportDISPLAY=”localhost:
0.0”
保存/home/oracle/.bash_profile文件后,建议先注销退出oracle用户,然后再以oracle用户身份重新登录,这样可以测试一下配置的环境变量是否出错。
如果出错,使用root用户登录,并修改此文件。
4.
安装Oracle10g
4.1共享文件夹,对安装文件进行解压
关闭虚拟机,点击“Editvirtualmachinesettings”,选择Options选项卡,点击SharedFolders,把它的设置更改为Alwaysenabled,再点击下面的Add按钮,下一步,给共享文件夹命名,然后Browse找到oracle10gforlinux32安装文件所在的文件夹,下一步,最后直接完成。
从新启动虚拟机,在/mnt/hgfs下就可以找到共享的windows文件夹,以root用户登录,新建目录/setup,把oracle10g安装文件复制到/setup里,并解压缩生成oracle10g文件夹,其中有runInstaller文件(解压缩出来的文件夹名可能不同,由你的安装文件压缩包确定)。
然后退出root用户,以oracle用户登录进行安装。
4.2安装过程
在oracle用户下,使用终端
#cd/setup/oracle10g
#xprop–root–remove_MOTIF_DEFAULT_BINDINGS
#./runInstaller–ignoreSysPrereqs(跳过安装检查)
当程序进行到,创建数据库时,建议先不要创建,选择最后一项,等安装完系统后,通过dbca命令来创建。
进入安装界面,一路下一步,当遇到输入“UnixGroupName”的时候,输入组名“dba”,点击“下一步”。
当遇到要输入“全局数据库名(GlobalDatabaseName)和数据库SID”的窗口时,SID设置需要和/home/oracle/.bash_profile中的ORACLE_SID相同,不可更改。
全局数据库名可以输入更改。
接下来的安装均按照默认设置来进行。
当遇到设置数据库的字符集的窗体时,不要选择默认的数据库字符类型。
字符集(CharacterSet)是建立Oracle数据库时最重要的一项设定,如果设定的不正确,很可能造成在使用中无法正常存取中文数据。
在这里我们最好选择第三个选项的下拉框,选择SimplifiledChineseZHS16GBK,进入下一步。
最后OracleUniversalInstaller会弹出一个提示框,需要用root身份来执行/orainstRoot.sh和/root.sh文件,此时可以再开启一个新的终端窗口(Terminal),先用#su–lroot切换到root用户,按照提示窗口所写的目录路径来执行orainstRoot.sh。
root.sh位于ORACLE_HOME所指向的目录下,可以继续使用上边的终端,以root用户运行以下的命令操作命令如下
#cd/opt/oracle10g/product/10.2.0.1.0
#./root.sh
接下来继续OK直到oracle安装完毕。
如果安装遇到如下错误:
Xlib:
connectionto"localhost:
0.0"refusedbyserver
Xlib:
Noprotocolspecified
说明你的oracle用户没有Xwindow权限,使用root用户登录(必要时重新启动os),然后输入:
#xhost+localhost
如果xwindow设置成功,可以用oracle用户登录后,输入:
$xclock会出现一个小闹钟
4.3创建数据库
以oracle用户登录,输入:
$dbca
注意:
在输入数据库SID时,要注意保持与oracle配置文件的$ORACLE_SID的值一致。
否则,创建完数据库后就启动不了。
4.4Linux配置oracle自动启动
一、使用root用户修改/etc/oratab文件:
$ vi/etc/oratab
orcl:
/oracle/app/product/10.2.0/db_1:
N
改为:
orcl:
/oracle/app/product/10.2.0/db_1:
Y
二、使用Oracle用户修改$ORACLE_HOME/bin/dbstart文件:
#su-oracle
$cd$ORACLE_HOME/bin
$ vidbstart
找到ORACLE_HOME_LISTNER=.....这行,修改成
ORACLE_HOME_LISTNER=$ORACLE_HOME
三、测试运行dbstart看能否启动Oracle服务及listener服务:
常用手动控制数据库命令
打开em
emctlstartdbconsole
关闭em
emctlstopdbconsole
启动listener
lsnrctlstart<监听名>(默认是LISTENER,可省略)
关闭
lsnrctlstop
启动emagent
emctlstartagent
关闭
emctlstopagent
启动实例
sqlplus/nolog
conn/assysdba
startup
关闭
shutdownimmediate
四:
创建服务
$su-root
#cd/etc/rc.d/init.d/
# vioracle10g
复制如下脚本内容到oracle10g文件:
注意:
(1)#开始的行不能少,否则后面运行chkconfig命令会报错:
oracle10g服务不支持chkconfig
(2)根据自己的环境修改环境变量配置部分
(3)在/etc/rc.d/rcN.d目录(N为运行级别)下生成的S99oracle10g文件的内容应该和/etc/rc.d/init.d/oracle10g文件内容相同才是正确的
--脚本(数据库、监听、dbconsole、sqlplus)
#!
/bin/bash
#chkconfig:
3459910
#description:
StartupScriptforOracleDatabases
#/etc/rc.d/init.d/dbstart
exportORACLE_BASE=/opt/oracle10g
exportORACLE_HOME=/opt/oracle10g/product/10.2.0.1.0
exportORACLE_SID=**(和前面设置的值要一致)
exportPATH=$PATH:
$ORACLE_HOME/bin
ORA_OWNR="oracle"
#iftheexecutablesdonotexist--displayerror
if[!
-f$ORACLE_HOME/bin/dbstart-o!
-d$ORACLE_HOME]
then
echo"Oraclestartup:
cannotstart"
exit1
fi
#dependingonparameter--startup,shutdown,restart
#oftheinstanceandlistenerorusagedisplay
case"$1"in
start)
#Oraclelistenerandinstancestartup
echo-n"StartingOracle:
"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/dbstart"
touch/var/lock/Oracle
su-$ORA_OWNR-c"$ORACLE_HOME/bin/lsnrctlstart"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/emctlstartdbconsole"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/isqlplusctlstart"
echo"OK"
;;
stop)
#Oraclelistenerandinstanceshutdown
echo-n"ShutdownOracle:
"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/emctlstopdbconsole"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/isqlplusctlstop"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/dbshut"
su-$ORA_OWNR-c"$ORACLE_HOME/bin/lsnrctlstop"
rm-f/var/lock/Oracle
echo"OK"
;;
reload|restart)
$0stop
$0start
;;
*)
echo"Usage:
`basename$0`start|stop|restart|reload"
exit1
esac
exit0
保存退出。
继续在终端运行:
#chownoracle.oinstall/etc/rc.d/init.d/oracle10g
#chmod775/etc/rc.d/init.d/oracle10g
然后执行:
#chkconfig--addoracle10g
#chkconfig--listoracle10g
运行结果:
oracle10g0:
off1:
off2:
off3:
on4:
on5:
on6:
off
5.
网络配置
用root用户登录,由系统设置找到网络,必须按照已知的ip地址、子网掩码、网关地址和DNS地址等信息,给予虚拟机正确的配置,这样其他地址的oracle客户端才能访问此oracle服务器
6.
oracle10g的优化设置
●检查v$librarycache中sqlarea的gethitratio是否超过90%,如果未超过90%,应该检查应用代码,提高应用代码的效率。
Selectgethitratiofromv$librarycachewherenamespace=’SQLAREA’;
v$librarycache中reloads/pins的比率应该小于1%,如果大于1%,应该增加参数shared_pool_size的值。
Selectsum(pins)“executions”,sum(reloads)“cachemisses”,sum(reloads)/sum(pins)fromv$librarycache;
reloads/pins>1%有两种可能,一种是librarycache空间不足,一种是sql中引用的对象不合法。
●sharedpoolreservedsize一般是sharedpoolsize的10%,不能超过50%。
V$shared_pool_reserved中的requestmisses=0或没有持续增长,或者free_memory大于sharedpoolreservedsize的50%,表明sharedpoolreservedsize过大,可以压缩。
●保留大的对象在sharedpool中。
大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。
因此需要将一些常用的大的对象保留在sharedpool中,下列对象需要保留在sharedpool中:
a.经常使用的存储过程;
b.经常操作的表上的已编译的触发器
c.Sequence,因为Sequence移出sharedpool后可能产生号码丢失。
方法:
首先查找没有保存在librarycache中的大对象:
Select*fromv$db_object_cachewheresharable_mem>10000andtypein('PACKAGE','PROCEDURE','FUNCTION','PACKAGEBODY')andkept='NO';
再将这些对象保存在librarycache中:
Executedbms_shared_pool.keep(‘package_name’);
● 查找是否存在过大的匿名pl/sql代码块。
两种解决方案:
A.转换成小的匿名块调用存储过程
B.将其保留在sharedpool中
查找是否存在过大的匿名pl/sql块:
Selectsql_textfromv$sqlareawherecommand_type=47andlength(sql_text)>500;
● Dictionarycache的优化
避免出现Dictionarycache的misses,或者misses的数量保持稳定,只能通过调整shared_pool_size来间接调整dictionarycache的大小。
Percentmisses应该很低:
大部分应该低于2%,合计应该低于15%