狮子的雄心,骆驼的耐力,孩子的执著!
分类: Oracle
2012-11-05 16:26:29
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/oracle,oracle用户将无法登陆
#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/install里oraparam.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目录里创建一个大约100MB的swap文件,命名为 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 0或init 6,不能用reboot,否则,不会执行dborastop脚本的。
================
在solaris 10 x386和solaris 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 <
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”