Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74595
  • 博文数量: 54
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-16 16:44
文章分类

全部博文(54)

文章存档

2011年(2)

2009年(28)

2008年(24)

我的朋友

分类:

2009-03-18 11:07:41

一、创建用户组和用户

   添加组和用户

   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 (如果是4G的物理内存,设为2147483647

  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 - 信号灯的最大数量,跟ORACLEPROCESS数有关.

semmsl - 每个信号灯集合中最多的信号灯数目.

 

设置完毕后,保存,重启系统使设置生效

 

三、设置安装目录

   mkdir /app/u01/oracle

   mkdir /app/u01/oracle/product

   mkdir /app/u01/oracle/product/9.2.0

   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/9.2.0;export ORACLE_HOME

   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文件,按提示去做即可,最后设置syssystem用户的密码

 

六、安装失败的原因及应做动作

   1)可能导致安装失败的一些原因:

      1、在主机/etc/system文件中设置对oracle的内核参数有错误

      2、在oracle用户目录下的.profile文件对oracle设置的环境变量有错误

   以上错误都可导致oracle在安装完毕后建立数据库时产生错误并无法建立数据库

   2)安装失败后应做动作:

        oracle安装盘第一张放入光驱,运行/cdrom/DISK1/runInstaller后在弹出界面中选择卸除安装,卸除后手动删除oracle安装目录中由安装程序自动生成的目录、手动删除/var/opt/oracleoraInst.locoratab两个文件;并在修改安装失败时提示的错误后重新安装oracle

数据库自动启动与关闭

1、修改oratab文件

   dbstart, dbshut会读Sun Solaris目录下/var/opt/oracle/oratab, 或者linux目录下/etc/oratab 文件。     

      先确认这里参数已正确设置:

      #你要启动的数据库sid:ORACLE_HOME:Y

      例如:

             orawic:/app/oracle/product/9.2.0:Y

       

      如果有两个在用的数据库,这里oratab里可以是两行。

     

      例如:

            orawic:/app/oracle/product/9.2.0:Y

             orawap:/app/oracle/product/9.2.0:Y

 

2、编写脚本

root权限的用户在Sun Solaris目录/etc/init.d, 或者linux目录/etc/rc.d/init.d下编写脚本dbora(名字可随便起)linux下也可以把.

 su - oracle -c "/app/oracle/product/9.2.0/bin/lsnrctl start"

 su - oracle -c "/app/oracle/product/9.2.0/bin/dbstart"

这两行直接加到/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/9.2.0/bin/lsnrctl start"

               su - oracle -c "/app/oracle/product/9.2.0/bin/dbstart"

 

               # 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/9.2.0/bin/lsnrctl stop"

               su - oracle -c "/app/oracle/product/9.2.0/bin/dbshut"

      

               # 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下一般只需要修改这两个系统用户(syssystem用户的密码应在数据库安装过程中设置)

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 1024M

    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 2048M;

  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 1024M;

  2)测试用户可使用这个表空间作为默认表空间,正式用户不建议使用该表空间,应为每一个正式用户创建对应的表空间

     alter user wap_test default tablespace wic_public;

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