centos510安装oracle教程及问题分析Word文档格式.docx
《centos510安装oracle教程及问题分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《centos510安装oracle教程及问题分析Word文档格式.docx(15页珍藏版)》请在冰点文库上搜索。
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
#让内核参数生效
sysctl-p
5.修改limits.conf
vi/etc/security/limits.conf
#oraclesettings
oracle
soft
nproc
2047
hard
16384
nofile
1024
65536
6.改/etc/pam.d/login
#添加以下内容:
session
required
/lib64/security/pam_limits.so
pam_limits.so
注意:
如果使用的是32位的操作系统,则上面要写成
/lib/security/pam_limits.so
7.修改/etc/profile
vi/etc/profile
if[$USER="
oracle"
];
then
if[$SHELL="
/bin/ksh"
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
8.改/etc/csh.login
vi/etc/csh.login
#添加以下内容:
if($USER=="
)then
limitmaxproc16384
limitdeors65536
endif
9.创建oracle用户
groupaddoinstall
groupadddba
useradd-goinstall-Gdbaoracle
passwdoracle
mkdir-p/data/oracle
mkdir-p/data/oraInventory
mkdir-p/data/software
chown-Roracle:
oinstall/data/oracle
oinstall/data/software
oinstall/data/oraInventory
10.设置用户环境变量
#su-oracle
$vi.bash_profile
ORACLE_SID=orcl;
exportORACLE_SID
ORACLE_BASE=/data/oracle;
exportORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;
exportORACLE_HOME
PATH=$PATH:
$ORACLE_HOME/bin:
$HOME/bin;
exportPATH
说明:
ORACLE_BASE下是admin和product
ORACLE_HOME下则是ORACLE的命令、连接库、安装助手、listener等等一系列的东东。
这只是ORACLE自己的定义习惯。
ORACLE_HOME比ORACLE_BASE目录要更深一些。
也就是说:
ORACLE_HOME=$ORACLE_BASE/product/version
ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。
简单说,你如果装了2个版本的oracle,那么ORACLE_BASE可以是一个,但ORACLE_HOME是2个
全局数据库名用于区别分布式数据库各个不同机器上的实例。
SID用于区别同一台机器上的不同实例,
即一个用于外部区分。
一个用于内部区分。
$source.bash_profile
11.安装oracle
#可以使用winscp上传oracle安装文件到/data/software目录下,并解压
cd/data/software
unziplinux_11gR2_database_1of2.zip
unziplinux_11gR2_database_2of2.zip
xhost+
(这里使用root用户执行,一定要执行以下2步,如果没有执行,将无法启动图形安装界面)
xhost+localhost
su-oralce
cd/data/software/database
$./runInstaller
#(到oracle安装文件所在目录执行该命令)
安装过程省略
12.开机启动设置
#自动启动和关闭数据库实例和监听
vi/data/oracle/product/11.2.0/db_1/bin/dbstart
ORACLE_HOME_LISTNER=$1
#修改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME
vi/data/oracle/product/11.2.0/db_1/bin/dbshut
vi/etc/init.d/oracle
#!
/bin/sh
#chkconfig:
3456161
#description:
Oracle11gAutoRunServices
#/etc/init.d/oracle
#
#Run-levelStartupscriptfortheOracleInstance,Listener,and
#WebInterface
exportORACLE_BASE=/data/oracle
exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
exportORACLE_SID=luke
exportPATH=$PATH:
$ORACLE_HOME/bin
ORA_OWNR="
#iftheexecutablesdonotexist--displayerror
if[!
-f$ORACLE_HOME/bin/dbstart-o!
-d$ORACLE_HOME]
then
echo"
Oraclestartup:
cannotstart"
exit1
#dependingonparameter--startup,shutdown,restart
#oftheinstanceandlistenerorusagedisplay
case"
$1"
in
start)
#Oraclelistenerandinstancestartup
su$ORA_OWNR-lc$ORACLE_HOME/bin/dbstart
OracleStartSuccesful!
OK."
;
;
stop)
#Oraclelistenerandinstanceshutdown
su$ORA_OWNR-lc$ORACLE_HOME/bin/dbshut
OracleStopSuccesful!
reload|restart)
$0stop
$0start
*)
echo$"
Usage:
`basename$0`{start|stop|reload|reload}"
esac
exit0
chmod750/etc/init.d/oracle
chkconfig--level345oracleon
chkconfig--addoracle
#启动oracle
serviceoraclestart
自动启动和关闭EM
vi/etc/init.d/oraemctl
#/etc/init.d/oraemctl
echo-n$"
StartingOracleEMDBConsole:
"
su-
$ORA_OWNR
-c"
$ORACLE_HOME/bin/emctlstartdbconsole"
OK"
StoppingOracleEMDBConsole:
$ORACLE_HOME/bin/emctlstopdbconsole"
echo$"
$0{start|stop}"
chmod750/etc/init.d/oraemctl
#启动EM
serviceoraemctlstart
问题分析:
linux安装oracle时DISPLAY解决方法
在Linux上安装Oracle时,经常会报以下错误:
无法使用命令/usr/X11R6/bin/xdpyinfo自动检查显示器颜色。
请检查是否设置了DISPLAY变量。
可以使用下述命令解决这个问题:
1.在root下执行
#xdpyinfo若不能正常显示继续下面步骤
2.进入桌面环境运行终端
在root下执行
#xhost+localhost
3.切换到Oracle用户:
4.在Oracle用户下执行命令:
exportDISPLAY=:
1.0
5.#xhost+
返回信息为:
accesscontroldisabled,clientscanconnectfromanyhost
6.在Oracle下执行xdpyinfo命令,如果能正常显示,说明设置成功
linux下oracle设置环境变量
需要设置ORACLE_HOME和ORACLE_SID两个环境变量,再把ORACLE的bin目录添加到PATH中即可,
通常缺省安装的情况下ORACLE_SID=orcl,ORACLE_HOME=/home/oracle/oracle/product/10......这样的形式,
操作步骤:
1、suoracle并回车切换到oracle用户;
2、cd并回车回到oracle用户目录;
cd/home/oracle
ls-a
3、vi.bash_profile并回车编辑该文件,按I键进入插入状态,在最后加入以下行:
exportORACLE_SID=orcl
exportORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
exportPATH=$ORACLE_HOME/bin:
$PATH
输入完毕后按ESC键退出vi编辑状态,
输入:
wq并回车存盘退出。
注销所有oracle用户,再使用oracle登录即可。
安装时若遇到如下错误直接忽略
Errorininvokingtarget'
agentnmbnmonmhs'
ofmakefileins_emagent.mk'
这个错误。
从网上的一些解决方法,我感觉像是ORACLE暂时对RHEL6支持不够造成的。
我直接忽略了,点击继续安装
在linux下出现cannotrestoresegmentprotafterreloc:
Permissiondenied
应用程序连接oracle的库时会出现如下错误:
XXXXX:
:
errorwhileloadingsharedlibraries:
/usr/local/oracle/product/10.2.0/lib/libnnz10.so:
cannotrestoresegmentprotafterreloc:
或者:
/usr/local/oracle/product/10.2.0/lib/libclntsh.so.10.1:
等错误。
解决办法是用chcon命令把相应文件的属性改一下即可,如:
chcon-ttexrel_shlib_t
/usr/local/oracle/product/10.2.0/lib/libnnz10.so
/usr/local/oracle/product/10.2.0/lib/libclntsh.so.10.1
上诉文件目录参考时要改成自己的。
解决执行Oracle控制脚本时遇到的“cat:
/etc/oratab:
没有那个文件或目录”的问题
打开dbshut
指令查看,发现了引起错误的语句:
#$Header:
dbshut.sh.pp03-apr-2001.13:
38:
20jboyceExp$dbshut.sh.ppCopyr(c)1991Oracle
###################################
#usage:
dbshut
#ThisscriptisusedtoshutdownORACLEfrom/etc/rc(.local).
#ItshouldONLYbeexecutedaspartofthesystembootprocedure.
#####################################
ORATAB=/etc/oratab
查看相应的文件
#find
/etc/oratab
find:
没有那个文件或目录
这个文件居然不存在,确定是由于该文件的丢失引起的原因。
通过如下指令查看该文件是否在系统其它地方
#find/-name“oratab”
结果居然没找到。
估计是当初安装Oracle的遗留问题。
解决方案
由于该文件已经丢失,所以到另外一台安装了同样版本的Oracle的服务器上查询相应的文件,果然找到了相应的文件,内容如下:
#ThisfileisusedbyORACLEutilities.
Itiscreatedbyroot.sh
#andupdatedbytheDatabaseConfigurationAssistantwhencreating
#adatabase.
#Acolon,'
'
isusedasthefieldterminator.
Anewlineterminates
#theentry.
Linesbeginningwithapoundsign,'
#'
arecomments.
#Entriesareoftheform:
#
$ORACLE_SID:
$ORACLE_HOME:
<
N|Y>
#Thefirstandsecondfieldsarethesystemidentifierandhome
#directoryofthedatabaserespectively.
Thethirdfiledindicates
#tothedbstartutilitythatthedatabaseshould,"
Y"
orshouldnot,
#"
N"
bebroughtupatsystemboottime.
#Multipleentrieswiththesame$ORACLE_SIDarenotallowed.
#*:
/opt/ora9/product/9.2:
N
*:
oracle:
demo:
拷贝完以后一定记得要修改相应的内容。
P.S.
对于oratab文件的说明:
1.只在Linux环境中存在
2.设置格式:
ORACLE_SID>
ORACLE_HOME>
Y|N>
示例:
3.可以为不同的数据库设置相应的选项
4.如果想用$ORACLE_HOME/bin/dbstart脚本来启动数据库,则需要将/etc/oratab文件中相应的数据库的项置为Y,
简单的说即dbstart脚本根据oratab文件中的配置决定启动哪几个数据库。
5.如果不使用dbstart脚本启动数据库,而是用自己的脚本来启动,那么根本不用关心oratab文件。
EnvironmentvariableORACLE_UNQNAMEnotdefined.PleasesetORACLE_UNQNAMEtodatabaseuniquename
解决方法:
在启动的时候先设置一下oracle_unqname
setoracle_unqname=$ORACLE_SID
如果还是失败,在环境变量中添加:
vi~/.bash_profile
在最后添加:
export
ORACLE_UNQNAME=$ORACLE_SID
启动dbconsole
emctl
start
dbconsole
如果还出现上述的错误:
删除dbconsole重新配置
emca-deconfigdbconsoledb-reposdrop
如果删除失败,进入数据库删除dbconsole以前的用户,并且修改DBSNMP密码
sql>
alteruserdbsnmpidentifiedbyorcl;
删除早期DBCONSOLE创建的用户:
droproleMGMT_USER;
dropuserMGMT_VIEWcascade;
dropusersysmancascade;
删除早期DBCONSOLE创建的对象:
dropPUBLICSYNONYMMGMT_TARGET_BLACKOUTS;
droppublicsynonymSETEMVIEWUSERCONTEXT;
重新创建DBCONSOLE:
(如果是在windows下,要先到注册表删除DBCONSOLE的服务,重启电脑)
emca-configdbcontroldb-reposcreate
根据提示,先输入SID,再输入Y继续;
输入端口1521,输入SYS密码,输入DBSNMP