分类:
2007-06-01 21:20:04
一、创建用户组和用户
添加组和用户
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba -m -s /bin/bash -d /export/home/oracle oracle
修改用户密码
passwd oracle
二、设置内核参数
solaris的内核参数保存在/etc/system文件内,用VI之类的编辑器/etc/system,安装9i的要求,在system文件末端添加以下行:
set shmsys:shminfo_shmmax=4294967295 (如果是
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmseg=100
set shmsys:shminfo_shmmni=1
set semsys:seminfo_semmns=800
set semsys:seminfo_semmni=315
set semsys:seminfo_semmsl=300
各参数说明:
shmmax - 共享内存段的最大字节数,,oracle官方文档建议该值设为物理内存的1/2
shmmin - 共享内存段的最小尺寸.
shmmni - 共享内存段的最大数目.
shmseg - 每个进程可分配的最大共享内存段数目.
shmall - 最大的并发共享内存段数目,比SGA还要大.
semmns - 信号灯的最大数量,跟ORACLE的PROCESS数有关.
semmsl - 每个信号灯集合中最多的信号灯数目.
设置完毕后,保存,重启系统使设置生效
三、设置安装目录
mkdir /app/u01/oracle
mkdir /app/u01/oracle/product
mkdir /app/u01/oracle/product/
chown -R oracle:oinstall /app/u01/oracle
四、设置环境变量
编辑oracle用户的环境变量,修改.profile文件
进入oracle用户主目录
su - oracle
cd
用vi编辑器编辑oracle用户的配置文件
vi .profile
在.profile文件加入以下内容
ORACLE_BASE=/app/u01/oracle;export ORACLE_BASE
ORACLE_HOME=/app/u01/oracle/product/
ORACLE_SID=orawap;export ORACLE_SID
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH
NLS_LANG=american_america.ZHS16GBK;export NLS_LANG
PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ucb:/etc:/usr:$PATH;export PATH
运行. /.profile使环境变量生效
五、安装
注销、以oracle用户登录
运行:/cdrom/DISK1/runInstaller开始安装,
在安装过程中,需要输入一下信息。如Path,参照前面的设置即可。注意,在选择数据库服务器字符集时,不要用默认的,应选择
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
在安装过程中需要以root用户执行几个sh文件,按提示去做即可,最后设置sys、system用户的密码
六、安装失败的原因及应做动作
1)可能导致安装失败的一些原因:
1、在主机/etc/system文件中设置对oracle的内核参数有错误
2、在oracle用户目录下的.profile文件对oracle设置的环境变量有错误
以上错误都可导致oracle在安装完毕后建立数据库时产生错误并无法建立数据库
2)安装失败后应做动作:
将oracle安装盘第一张放入光驱,运行/cdrom/DISK1/runInstaller后在弹出界面中选择卸除安装,卸除后手动删除oracle安装目录中由安装程序自动生成的目录、手动删除/var/opt/oracle下oraInst.loc、oratab两个文件;并在修改安装失败时提示的错误后重新安装oracle
数据库自动启动与关闭
1、修改oratab文件
dbstart, dbshut会读Sun Solaris目录下/var/opt/oracle/oratab, 或者linux目录下/etc/oratab 文件。
先确认这里参数已正确设置:
#你要启动的数据库sid:ORACLE_HOME:Y
例如:
orawic:/app/oracle/product/
如果有两个在用的数据库,这里oratab里可以是两行。
例如:
orawic:/app/oracle/product/
orawap:/app/oracle/product/
2、编写脚本
以root权限的用户在Sun Solaris目录/etc/init.d下, 或者linux目录/etc/rc.d/init.d下编写脚本dbora(名字可随便起)linux下也可以把.
su - oracle -c "/app/oracle/product/
这两行直接加到/etc/rc.d/rc.local
#!/bin/sh
OPT_=$1
case "$OPT_" in
start)
/bin/echo "$0 : (start)"
#
# Your service startup command goes here.
#
su - oracle -c "/app/oracle/product/
su - oracle -c "/app/oracle/product/
# NOTE: Must exit with zero unless error is severe.
chmod 1777 /tmp
chown sys:sys /tmp
exit 0
;;
stop)
/bin/echo "$0 : (stop)"
#
# Your service shutdown command goes here.
#
su - oracle -c "/app/oracle/product/
su - oracle -c "/app/oracle/product/
# NOTE: Must exit with zero unless error is severe.
exit 0
;;
*) /bin/echo ''
/bin/echo "Usage: $0 [start|stop]"
/bin/echo " Invalid argument ==> \"${OPT_}\""
/bin/echo ''
exit 0
;;
esac
3、修改脚本dbora属性
chmod 755 /etc/init.d/dbora
4、添加文件链接
在UNIX机器开机后和关机前要执行的任务目录里加个文件链接。
开机后自动启动ORACLE数据库:
Sun Solaris
#cd /etc/rc2.d
#ln -s /etc/init.d/dbora S99oracle
Linux
#cd /etc/rc.d/rc3.d
#ln -s /etc/rc.d/init.d/oracle S99oracle
关机前自动关闭ORACLE数据库:
Sun Solaris
#cd /etc/rc0.d
#ln -s /etc/init.d/oracle K01oracle
Linux
#cd /etc/rc.d/rc0.d
#ln -s /etc/rc.d/init.d/oracle K01oracle
5、修改BUG
如果数据库是9i,则dbstart存在bug,运行dbstart出错信息如下:
Can't find init file for Database 'xxx'
需要修改dbstart脚本
1)备份原脚本
cp dbstart dbstart.bak
2)修改脚本
SPFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
找出下面的行:
PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora
在上一步找到的行下添加一下代码:
SPFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
然后再找出行:
if [ -f $PFILE ] ; then
将之改为:
if [ -f $PFILE -o -f $SPFILE ] ; then 或者 if [ -f $PFILE ] || [ -f $SPFILE ]; then
到此就完成了,重启OS,测试
数据库常规设置
1、修改用户默认密码及锁住无用的系统用户
修改密码:alter user DBSNMP identified by newpassword;
锁定用户:alter user scott account lock;
9i下一般只需要修改这两个系统用户(sys、system用户的密码应在数据库安装过程中设置)
2、建立用户的配置文件,限制用户连续失败的登录次数
create profile prof limit FAILED_LOGIN_ATTEMPTS 4;
在创建用户时,需指定配置文件
create user test identified by test profile prof;
3、如果有多块硬盘,应把控制文件放置到不同的硬盘上
1)更改系统信息
alter system set control_files=
'/app/oracle/oradata/orawic/control01.ctl',
'/app/oracle/oradata/orawic/control02.ctl',
'/app/oracle/oradata/orawic/control03.ctl',
'/disk2/orawic/control04.ctl'
scope=spfile;
2)拷贝物理文件
做完上一步后,只是在逻辑上增加了控制文件,并没有在物理上增加,我们要手工增加新增的控制文件。方法是复制其中一个已有的控制文件到步骤1设定的目录下,并改名为步骤1设定的名称。
3)关闭并重启数据库
shutdown immediate;
startup;
数据库重启后,就会同时往所有的控制文件里写数据。
4、如果存在多块硬盘,应把在线日志同一组成员放在不同硬盘上
1)查处oracle的所有日志组及其对应的组成员
select * from v$logfile;
2)为各日志组添加成员(一个日志组至少应该有2个成员),并放置到不同的硬盘上
alter database add logfile number '/disk2/ora/redo01b.log' to group 1;
alter database add logfile number '/disk2/ora/redo02b.log' to group 2;
alter database add logfile number '/disk2/ora/redo03b.log' to group 3;
5、修改oracle临时表空间
1)建立临时表空间
create temporary tablespace wic_temp
tempfile '/app/oracle/oradata/orawic/wic_temp.dbf' size
extent management local;
2)修改oracle默认临时表空间
alter database default temporary tablespace wic_temp;
6、修改oracle默认UNDO表空间
1)创建UNDO表空间
create undo tablespace wic_undo
datafile '/app/oracle/oradata/orawic/wic_undo.dbf' size
2)修改oracle默认UNDO表空间
alter system set undo_tablespace=wic_undo;
7、创建数据表空间
1)创建表空间
create tablespace wic_public datafile
'/app/oracle/oradata/orawic/wic_public.dbf' size
2)测试用户可使用这个表空间作为默认表空间,正式用户不建议使用该表空间,应为每一个正式用户创建对应的表空间
alter user wap_test default tablespace wic_public;