Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1684715
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: Oracle

2012-11-05 16:26:29

请验证一下solarisoracle的版本信息,如果版本号不对,可能会安装失败

solaris版本:SunOs 5.10
# cat /etc/release
                       Solaris 10 1/06 s10s_u1wos_19a SPARC
           Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                           Assembled 07 December 2005

oracle
版本: Oracle Database 10g Release 2 (10.2.0.1.0) for Solaris Operating System (sparc):10gr2_db_sol.cpio

**************************************************************************
第一步:ROOT身份登陆系统

第二步:创建用户和组:
#bash
#groupadd oinstall
#groupadd dba
#useradd -d /export/home/oracle  

**
注意这里一定要把oracle用户的目录改成自己定义的,不改的话,默认在/home/oracleoracle用户将无法登陆
#passwd oracle
#mkdir -p /export/home/oracle
#chown -R oracle:oinstall /export/home/oracle

第三步:
1.
建立oracle的基目录和数据库目录,我的硬盘是挂在/export/home下的,所以建立oracle基目录就在/export/home下创建一个文件夹,叫oracle10g
#mkdir -p /export/home/(oracle
基目录)
#mkdir /export/home/oracle/oradata (
数据文件目录)

2.
改变目录的属主和组
#chown -R oracle:oinstall /export/home/oracle
#chown -R oracle:oinstall /export/home/oracle/oradata

3.
改变目录权限
#chmod -R 775 /export/home/oracle
#chmod -R 775 /export/home/oracle/oradata

第四步:配置内核参数
1.
备份文件
# cp /etc/system /etc/system.bak
2.
打开文件并修改
# vi /etc/system
在文件末尾添加以下内容
set noexec_user_stack=1
set noexec_user_stack_log=1
set semsys:seminfo_semmni=110
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=500
set semsys:seminfo_semvmx=32767
set semsys:seminfo_semopm =100
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10

保存后重启: # 


第五步:验证系统条件
# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWsprox SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

如果验证没有通过,请在solaris10的安装盘中找到相应的安装包,复制到/var/spool/pkg目录下
在命令窗口中执行:pkgadd 

**
缺少的安装包一般在solaris10的第一张安装光盘的/solaris_10/product目录下
# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot  SUNWtoo SUNWi1of SUNWxwfnt
system      SUNWarc   Lint Libraries (usr)
system      SUNWbtool CCS tools bundled with SunOS
system      SUNWhea   SunOS Header Files
system      SUNWi1of  ISO-8859-1 (Latin-1) Optional Fonts
system      SUNWlibm  Math & Microtasking Library Headers & Lint Files (Usr)
system      SUNWlibms Math & Microtasking Libraries (Usr)
system      SUNWsprot Solaris Bundled tools
system      SUNWtoo   Programming Tools
system      SUNWxwfnt X Window System platform required fonts
    : "SUNWsprox"
    : "SUNWi1cs"
    : "SUNWi15cs"
测试发现SUNWsprox SUNWi1cs SUNWi15cs可以不用安装。


第六步:oracle用户登陆并配置用户环境

张志仁的安装习惯

vi .profile

export ORACLE_BASE=/export/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/Db_1

export ORACLE_SID=ORA10

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

export PATH=$PATH:$ORACLE_HOME/bin

 


1. $ su - oracle
2.$bash
3.
执行: $ export ORACLE_BASE=/export/home/oracle10g
$ export ORACLE_SID=WISETTMS
4.
确定ORACLE_HOME  TNS_ADMIN 没有被设置过:
$ unset ORACLE_HOME
$ unset TNS_ADMIN
5.
查看设置是否正确:
$ umask
$ env  ¦ more
如果输出为:0022,022,22则正确.

第七步:开始安装oracle数据库
1.
oracle安装包复制到/oracle_install目录下解压,修改/oracle_install/installoraparam.ini
 Solaris=5.6,5.7,5.8,5.9 这行中添加5.10,保存
**
如果下载的是oracle 10.2.0.2 for solaris(x86),默认的是5.10,不用做任何修改
#bash
#cp 10gr2_db_sol.cpio.gz /oracle_install
#gunzip 10gr2_db_sol.cpio.gz
#

2.
切换oracle用户登陆,进入oracle_install目录下,在命令窗口中执行 ./runInstaller 运行安 装程 .以后就是安装过程了,一定要选择 创建启动数据库 ,并配置服务器的 SID  sys/system用户的密码,其他的就不多说了.^_^
root用户执行脚本
$ su - root

Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
# bash
bash-3.00# cd /export/home/oracle10g/oraInventory/
bash-3.00# ./orainstRoot.sh 
/export/home/oracle10g/oraInventory  770.
/export/home/oracle10g/oraInventory  oinstall.

bash-3.00# cd /export/home/oracle10g/product/10.2.0/Db_2/
bash-3.00# ./root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /export/home/oracle10g/product/10.2.0/Db_2

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
Creating /usr/local/bin directory...
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /var/opt/oracle/oratab file...
Entries will be added to the /var/opt/oracle/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.
bash-3.00# 

第八步:开始使用oracle数据库
#su oracle
$ORACLE_HOME=$ORACLE_BASE/product/10.2.0/Db_2
$export ORACLE_HOME
$PATH=$ORACLE_HOME/bin:$PATH;
$export PATH
oracle用户下敲

$lsnrctl start
$sqlplus / as sysdba
SQL>startup
SQL>exit
$
$emctl start dbconsole
通过就可以用了。

:我第一次安装的时候ORACLE_HOME$ORACLE_BASE/product/10.2.0/Db_1,但我第二次装的时候是$ORACLE_BASE/product/10.2.0/Db_2,为什么会这样,数据库装的就是这样,需要以后查一下原因。

第九步:配置oracle用户的启动参数。在oracle用户的目录下,创建一个文件.profile
$su root
#mkdir -p /export/home/tmp
#chown -R oracle:oinstall /export/home/tmp
#su - oracle
$ gedit .profile

#tmp directory settings
TMP=/export/home/tmp
export TMP
TMPDIR=$TMP
export TMPDIR

#oracle settings
ORACLE_BASE=/export/home/oracle10g
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/Db_2
export ORACLE_HOME
ORACLE_SID=WISETTMS
export ORACLE_SID

#path settings
PATH=$ORACLE_HOME/bin:/usr/ccs/bin:$PATH;
export PATH

#SunStudio11 path,manpath
PATH=/opt/SUNWspro/bin:$PATH;
export PATH

#manpath for dbx
MANPATH=/opt/SUNWspro/man:$MANPATH;
export MANPATH

#lib path for oci
LD_LIBRARY_PATH=$ORACLE_HOME/lib32:/lib:/usr/lib; 
export LD_LIBRARY_PATH

umask 022


就行了。

第十步:重新启动操作系统后的,系统不会启动oracle的实例,所以要执行一段代码,来启动oracle的实例,文章后面有方法。
#su oracle
$lsnrctl start
$sqlplus "/ as sysdba"
SQL>startup
SQL>exit
$
$emctl start dbconsole
通过就可以用了。


安装过程中可能出现的问题
一、swap空间太小验证失败,增加swap空间
1.
成为超级用户 $su  root  
2.
创建Swap文件 #mkfile nnn[klblm] filename  
如:#mkfile  100m  swapfile1  
3.
激活Swap文件  
#/usr/sbin/swap 
a /path/filename  
Swap
文件必须以绝对路径来指定,filename指的是上一步创建的文件。  
4.
现在新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作 。因此要在/etc/vfstab文件中记录文件的名字,和Swap类型,如:  
/path/filename 
  Swap  no   
5.
效验Swap文件是否加上 /usr/sbin/swap l  

具体步骤如下:
1.
成为超级用户 
$su 
 root  
2.
创建一个swap文件目录:
# mkdir -p /usr/local/swap
3.
 /usr/local/swap目录里创建一个大约100MBswap文件,命名为 swapfile
# mkfile 100m /usr/local/swap/swapfile
4.
向系统swap空间中添加swap文件:
# swap -a /usr/local/swap/swapfile
5.
列出修改后的swap空间信息:
# swap -l
6.
/etc/vfstab文件中记录文件的名字,和Swap类型
#gedit /etc/vfstab
/usr/local/swap/swapfile 
  Swap  no   

二、临时目录空间不足
# mkdir /export/home/tmp
# chown -R oracle:oinstall /export/home/tmp  

三、我在solaris 10 x386下的oracle10g不能自动启动,在solaris 10 sparc下,oracle10g也不能启动
于是找到启动代码
$su - root
#bash
#gedit /etc/init.d/dbora
/etc/init.d下面新建一个文件dbora,内容:
#!/bin/sh
ORA_HOME=/export/home/oracle10g/product/10.2.0/Db_2
ORA_OWNER=oracle
echo "start tsnlisnter"
su - $ORA_OWNER -c "lsnrctl start"

echo "Start Oracle database instance"
su - $ORA_OWNER -c "sqlplus /nolog @$ORA_HOME/dbstart.sql"

echo " Start Emterprise Manager"
su - $ORA_OWNER -c "emctl start dbconsole"

echo "Start isqlplus"
su - $ORA_OWNER -c "isqlplusctl start"

dbora改成可执行
#cd /etc/init.d/
#chmod 744 dbora

ORA_HOME下创建dbstart.sql文件,如果ORA_HOME没有赋值,则先赋值
#ORA_HOME=/export/home/oracle10g/product/10.2.0/Db_2
#export ORA_HOME
#gedit $ORA_HOME/dbstart.sql
$ORA_HOME/dbstart.sql的内容:
conn / as sysdba
startup
exit

dbstart.sql改成oracle所有
#chown -R oracle:oinstall /export/home/oracle10g/product/10.2.0/Db_2/dbstart.sql

然后作一个连接 
#ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora 
#ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora 

==========

solaris 10 x386下的oracle10g好像能自动启动,在solaris 10 sparc下,oracle10g不能启动
于是找到启动代码
#gedit /etc/init.d/dbora
/etc/init.d下面新建一个文件dbora,内容:
#!/bin/sh
ORA_HOME=/export/home/oracle10g/product/10.2.0/Db_1
ORA_OWNER=oracle
echo "Start tsnlisnter" >> /var/adm/messages
su - $ORA_OWNER -c "lsnrctl start"

echo "Start Oracle database instance" >> /var/adm/messages
su - $ORA_OWNER -c "sqlplus /nolog @$ORA_HOME/dbstart.sql"

echo "Start Enterprise Manager" >> /var/adm/messages
su - $ORA_OWNER -c "emctl start dbconsole"

echo "Start isqlplus" >> /var/adm/messages
su - $ORA_OWNER -c "isqlplusctl start"

dbora改成可执行
#chmod 744 /etc/init.d/dbora

ORA_HOME下创建dbstart.sql文件
#gedit $ORA_HOME/dbstart.sql
$ORA_HOME/dbstart.sql的内容:
conn / as sysdba
startup
exit

dbstart.sql改成oracle所有
#chown -R oracle:oinstall /export/home/oracle10g/product/10.2.0/Db_1/dbstart.sql

然后作一个连接 
ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora 

*********************************************************************************************
#gedit /etc/init.d/dborastop
/etc/init.d下面新建一个文件dborastop,内容:
#!/bin/sh
ORA_HOME=/export/home/oracle10g/product/10.2.0/Db_1
ORA_OWNER=oracle

echo "Shutdown Oracle database instance" >> /var/adm/messages
su - $ORA_OWNER -c "sqlplus /nolog @$ORA_HOME/dbstop.sql"

echo "Stop Enterprise Manager" >> /var/adm/messages
su - $ORA_OWNER -c "emctl stop dbconsole"

echo "Stop isqlplus" >> /var/adm/messages
su - $ORA_OWNER -c "isqlplusctl stop"

echo "Stop tsnlisnter" >> /var/adm/messages
su - $ORA_OWNER -c "lsnrctl stop"

dbora改成可执行
#chmod 744 /etc/init.d/dborastop

ORA_HOME下创建dbstop.sql文件
#gedit $ORA_HOME/dbstop.sql
$ORA_HOME/dbstop.sql的内容:
conn / as sysdba
shutdown immediate
exit

dbstop.sql改成oracle所有
#chown -R oracle:oinstall /export/home/oracle10g/product/10.2.0/Db_1/dbstop.sql

然后作一个连接 
ln -s /etc/init.d/dborastop /etc/rc0.d/K10dborastop

使用>>可以把启动信息放到日志中/var/adm/messages,这样可以检验是否启动或关闭时,系统运行了这些脚本。
由于添加了">> /var/adm/messages"这个语句,你就可以通过cat /var/adm/messages看见启动或关闭信息了。

重新启动机子的时候要用init 0init 6,不能用reboot,否则,不会执行dborastop脚本的。

================

solaris 10 x386solaris 10 sparc下,Weblogic不能自动启动
于是根据Oracle10g能自动重启的方法,修改了代码.
#gedit /etc/init.d/startweb
/etc/init.d下面新建一个文件startweb,内容:
#!/bin/sh
LOGIC_OWNER=oracle 
echo "Start WebLogic" >> /var/adm/messages
su - $LOGIC_OWNER -c "./startweb_.sh"

dbora改成可执行
#chmod 744 /etc/init.d/startweb

然后作一个连接 
ln -s /etc/init.d/startweb /etc/rc2.d/S100startweb 

oracle用户登录系统,在oracle用户的根目录下
$gedit startweb_.sh
#!/bin/sh
cd /export/home/oracle/bea/user_projects/domains/mydomain
./startWebLogic.sh &

$chmod a+x startweb_.sh
***************************************************************

于是根据上面的代码和网上的资料,写了系统关闭时,关闭Weblogic的方法.
#gedit /etc/init.d/stopweb
/etc/init.d下面新建一个文件stopweb,内容:
#!/bin/sh
LOGIC_OWNER=oracle 
echo "Stop WebLogic" >> /var/adm/messages
su - $LOGIC_OWNER -c "./stopweb_.sh" 

dbora改成可执行
#chmod 744 /etc/init.d/stopweb

然后作一个连接 
ln -s /etc/init.d/stopweb /etc/rc0.d/K11stopweb

oracle用户登录系统,在oracle用户的根目录下
$gedit stopweb_.sh
#!/bin/sh
cd /export/home/oracle/bea/user_projects/domains/mydomain
./stopWebLogic.sh &

$chmod a+x stopweb_.sh

这个问题的关键点是利用oracle用户根目录下的脚本文件去启动/关闭WebLogic,而不是通过/etc/init.d下的脚

本文件来直接启动/关闭WebLogic,相当于有一个中间脚本文件。如果不这样的话,WebLogic会报错,叫输入密码

什么的。

由于添加了">> /var/adm/messages"这个语句,你就可以通过cat /var/adm/messages看见启动或关闭信息了。

如果遇到 EmbeddedLDAP.tran 权限被否定,那么进入目录
/export/home/oracle/bea/user_projects/domains/mydomain/myserver/ldap/ldapfiles
下把EmbeddedLDAP.tran  权限改成oracle的就行了。
chown -R oracle:oinstall 

/export/home/oracle/bea/user_projects/domains/mydomain/myserver/ldap/ldapfiles/EmbeddedLDAP.tran

 

SOLARIS9下安装ORACLE10G的几点注意事项:

1.       配置网关:

目录: /etc/defaultrouter.

2.       配置网卡接口地址:

目录: /etc/inet/hosts

3.       配置DNS

目录: /etc/resolv.conf

4.       配置子网掩码

目录: /etc/inet/netmasks

5.       统一配置文件

目录: /etc/inet/ipnodes

6.       配置hostname

目录:

7.       激活网卡命令/etc/nodename

Ifconfig  要激活的网卡name  plumb

8.       在启动数据库时出现:error in identifying control file,check alert log for more info.

说明控制文件出现错误,请检查是否建立了数据库实例,如果没建立则需要重启服务器以

ORACLE用户登陆并启动DBCA安装实例,若安装了实例还出此问题请检查控制文件并

进行替换.(控制文件和日志文件在export/home/oracle/oradata/目录下).

9.    在启动数据库时出现: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []

服务器hostname没有正确配置,通过hostname命令得到的主机名无法ping,Oracle10g认为主机无法达到所以启动数据库报错.检查一下本机的hosts文件,看对应的主机名是否一致.不一致就将hostname添加到/etc/hosts文件中,然后重新启动数据库.

10.   在启动数据库时出现关于share pool memory 共享池的错误

有很大可能是共享池的空间不足,进入/export/home/oracle/hostname.ora修改share_pool_size的大小.

11. ORACLE_SID 报错,修改.profile文件中的ORACLE_SID.(.profile/export/home/oracle)

12.主机非法重启,数据库没有停止,控制文件损坏,删除数据库,重新创建一个数据库。

 1 /home/oracle目录下,建立startdb文件,文件内容如下:
  echo "begin to start oracle"
  lsnrctl start
  sqlplus /nolog <   connect /as sysdba
  startup
  exit
  exit
  echo "oracle have started"
  给startdb执行权限
  2 /etc下建立文件rc.startdb,脚本如下:
  su - oracle "-c /oracle/startdb" #启动oracle
  给文件执行权限
  3 把启动信息放到/etc/inittab中,使用如下命令:
  mkitab “startdb:2:wait:/etc/rc.startdb”

阅读(1289) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~