Oracle 10g

三月 17, 2009

Sun Solaris 10 Update 3 (11/06)
Oracle 10g R2 (10.2.0.2)

安装操作系统的步骤自己解决。这里,我重点说一下分区情况:/分给了10G(20552)的空间,SWAP分给了2G(2055)的空间,而剩余的空间都给了/export/home,大约15G(15500)的样子。

前提条件:soralis 必须图形界面安装,如果数据库需要支持中文的话,soralis安装时选择中文语言,这样可以省去很多语言配置麻烦。

安装完操作系统后,我们忽略要做的一些安全设置和优化,直接安装Oracle,具体步骤如下:

swap 需要1.5G以上 ,内存1G以上。

# cd /
# ls
Desktop cdrom export lost+found platform tmp
Documents dev home mnt proc usr
bin devices kernel net sbin var
boot etc lib opt system vol

下面这个步骤是Quick Installation上明确要求的,以下的11个包都是被要求安装的,若察看是否已经安装,则可执行下面的命令
# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs 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
错误: 未发现”SUNWi1cs”的信息
错误: 未发现”SUNWi15cs”的信息

很明显,上面提示了有2个包没有被装,那么我们就执行以下命令从安装光盘里直接安装,下面的/cdrom/sol_10_1106_x86就是我的安装光盘,Solaris 10这点还是做得不错的,光盘放入后可直接使用,而无须mount。
# pkgadd -d /cdrom/sol_10_1106_x86/Solaris_10/Product SUNWi1cs
处理软件包范例来自
X11 ISO8859-1 Codeset Support(i386) 2.0,REV=2004.10.17.15.04
Copyright 2004 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
使用作为包的基本目录
## 正在处理软件包信息.
## 正在处理系统信息.
8软件包路径名已经正确地安装
## 检查软件包的从属性
## 检查磁盘空间需求
## 检查同已经安装的软件包之间的冲突.
## 检查setuid/setgid程序。
在这个软件包中包含了正文程序,只有具有超级-用户的权限才能在这个软件包
的安装过程中执行它们.
要继续安装 [y,n,?] y
安装X11 ISO8859-1 Codeset Support成为
##正在安装1部分- 1.
232 块
安装成功

下面这个不必说了,继续安装第二个软件包
# pkgadd -d /cdrom/sol_10_1106_x86/Solaris_10/Product SUNWi15cs
处理软件包范例来自
X11 ISO8859-15 Codeset Support(i386) 2.0,REV=2004.10.17.15.04
Copyright 2004 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
使用作为包的基本目录
## 正在处理软件包信息.
## 正在处理系统信息.
6软件包路径名已经正确地安装
## 检查软件包的从属性
## 检查磁盘空间需求
## 检查同已经安装的软件包之间的冲突.
## 检查setuid/setgid程序。
在这个软件包中包含了正文程序,只有具有超级-用户的权限才能在这个软件包
的安装过程中执行它们.
要继续安装 [y,n,?] y
安装X11 ISO8859-15 Codeset Support成为
##正在安装1部分- 1.
1460 块
安装成功

安装完成后对光盘进行umount,然后用eject命令将光驱弹出,取走光盘
# umount /cdrom/sol_10_1106_x86
# eject

下面是建立安装相关的组和帐户,不明白没有关系,照着去做……保证你能够安装成功
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba -d /export/home/oracle -s /usr/bin/bash -m oracle
64 块
# id -a oracle
uid=100(oracle) gid=100(oinstall) groups=101(dba)
# passwd oracle
新口令:
请重新输入新口令:
passwd:oracle 的口令已成功更改

这个是建立Oracle的安装目录,chown这个东西很重要,写不对的话……即便安装完成了,你的数据库也无法启动,因为刚才所建立的名字为oracle的帐户无权对相关目录进行操作
# mkdir -p /export/home/oracle/oradata
# chown -R oracle:oinstall /export/home/oracle
# chmod -R 775 /export/home/oracle

这个是修改一下内存参数,我直接从Quick Installation上拷贝的
# vi /etc/system
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmni=100
# reboot

out of memory问题的解决,困扰了我好久的问题,呵呵

# prctl -n project.max-shm-memory -i project 3

增加max-shm-memory到10G
# prctl -n project.max-shm-memory -r -v 10G -i project 3
# prctl -n project.max-shm-memory -i project 3

project: 3: defaultNAME PRIVILEGE VALUE FLAG ACTION RECIPIENTproject.max-shm-memory privileged 10.0GB – deny – system 16.0EB max deny –

这样就ok啦。

OK,oracle用户的.profile也要进行设置的,理解为Windows的设置环境变量好了
$ vi .profile
umask 022
export ORACLE_BASE=/export/home/oracle
export ORACLE_SID=corrs
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
unset TNS_ADMIN
$ umask
$ env | more
# reboot

好了,以上准备工作就绪,我们可以直接安装了。先去Oracle的官方网站上下载Oracle 10g R2 (10.2.0.2) For x86吧,它的文件名为10202_database_solx86.zip,千万记得下载后不要在Windows系统里进行解压缩,不然会有很多麻烦。10202_database_solx86.zip在Solaris下解压缩后,会出现一个名叫database的文件夹,我一般习惯把它放在根目录下。OK,正式开始安装吧?

#unzip 10202_da.zip

# cd /database
# ./runInstaller

后面的需要我说吗?都是图形界面,我们完全可以自己解决,但是我在这里要特别说明一下,oracle检测界面必须没有error出现,如果有必须逐个解决,否则安装会出错。安装到了最后一步的时间,会弹出一个对话框要求你执行2个脚本文件,你只需另开一个终端并su到root后执行它们就OK了,这2个脚本执行完毕……也就意味着Oracle的安装正式结束。

name 输入 corrs
pid 输入 corrs

安装结束了,执行sqlplus “/as sysdba”试一下?恩,出错了,因为你没有在.profile里设置ORACLE_HOME,来吧……做如下操作:
# pwd
/export/home/corrs
# vi .profile
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
# reboot
OK了,现在你可以试一下sqlplus “/as sysdba”,是否看到久违的SQL>了呢?呵呵,startup吧!

在solaris 10下配置Oracle 10g的自动运行脚本
$ cd /export/home/oracle/oracle/product/10.2/db_1/bin
$ vi dbstart
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
$ cd /export/home/oracle/oracle/product/10.2/db_1/bin
$ vi dbshut
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
$ cd /var/opt/oracle
$ vi oratab
将sery:/export/home/oracle/oracle/product/10.2/db_1:N修改为sery:/export/home/oracle/product/10.2/db_1:Y
OK,这样设置完成后,每次启动系统时……我们可以通过执行dbstart来启动Oracle的监听和实例,而执行dbshut则可以停止监听和实例。

我要EM,还要isqlplus,我该如何做?
安装完成后,程序提示我说可以通过访问http://ADA:1158/em来使用EM,可以通过访问http://ADA:5560/isqlplus来使用isqlplus,还可以通过访问http://ADA:5560/isqlplus/dba来使用DBA工具。那么可以执行如下命令:
查询状态
$ emctl status dbconsole
启动程序
$ emctl start dbconsole
停止程序
$ emctl stop dbconsole
只有这个“监听”启动了,我们才可以顺利地访问http://ADA:1158/em这个东东。

如果出现OC4J Configuration issue,按提示修改当前目录先的目录名。
启动isqlplus
$ isqlplusctl start
停止isqlplus
$ isqlplusctl stop
同理,只有这个“监听”起来了,我们才可以顺利地访问http://ADA:5560/isqlplus和http://ADA:5560/isqlplus/dba的。

总结:
1. 用了1G内存的本本,才知道768M内存是无法顺利完成Oracle 10g R2安装的,但是个人建议还是将内存升级为2G。
2. 安装过程中还是要小心,每一个提示都要认真看,每一个步骤都要严格检查,要知道安装和卸载都是非常浪费时间的。

1. sqlplus / as sysdba
2. SQL>create pfile from spfile;
3. 修改$ORACLE_HOME/dbs/initxxx.ora文件中的sga_max_size
4. SQL>create spfile from pfile;
5. SQL>startup;

startup mount pfile=/export/home/oracle/admin/orcl/pfile/init.ora.721200820226

lsnrctl start 启动

shutdown immediate

自动启动脚本

# more /export/home/dbora
#!/bin/sh

su – oracle -c “emctl stop dbconsole”
su – oracle -c “emctl start dbconsole”
su – oracle -c “isqlplusctl start”
su – oracle -c “sqlplus / as sysdba @/export/home/dbstart.sql”
su – oracle -c “lsnrctl start”

# more /export/home/dbstart.sql
shutdown
startup
exit

# chmod 777 /export/home/dbstart.sql
# chmod 777 /export/home/dbora
# cp /export/home/dbora /etc/init.d/
然后作一个连接

ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora (2 开机启动项)
ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora (0 关机关闭项)

Hello world!

三月 17, 2009

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!