Linux下oracle10g安装配置说明

注意:可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。
但不提供支持,且该许可不允许用于生产目的。
一.资源需要:
至少1024 MB物理内存
1024-2048 需1.5倍的交互空间
2048-8192 需1倍的交互空间
8192- 需0.75倍的交互空间
至少400 MB /tmp 临时目录空间
oracle软件需要1.5 GB 到 3.5 GB 磁盘空间
默认数据库需要1.2 GB

二.虚拟机分区情况:

Linux下oracle10g安装配置说明_第1张图片

三.查看系统资源相关语句:
uname命令介绍
1.名称:uname
2.适用对象:所有使用者
3.命令格式:uname [选项]...
4.作用:打印出系统信息
5.参数详解:
  -a, --all                #打印出所有信息,如果-p,-i的结果为unknown,将不显示-p,-i的结果
  -s, --kernel-name        #打印出内核名称
  -n, --nodename           #打印出网络上主机名称
  -r, --kernel-release      #打印出操作系统发行号
   -v, --kernel-version     #打印出操作系统的版本
  -m, --machine            #打印出电脑硬件类型
  -p, --processor          #打印出处理器类型
  -i, --hardware-platform  #这个不懂什么意思 高手解释下
  -o, --operating-system   #打印出运行的系统

四.查看系统配置:
cat /etc/issue
uname -r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free

Linux下oracle10g安装配置说明_第2张图片
df -k /tmp
df –k

Linux下oracle10g安装配置说明_第3张图片
五.安装前的检查和准备工作:(下面是我在RHEL4.0上面安装oracle时需要按章的软件包,一定按顺序安装)

Glibc-kernheaders-2.4-9.1.87.i386.rpm

Glibc-headers-2.3.4-2.i386.rpm

Glibc-devel-2.3.4-2.i386.rpm

Compat-gcc-32-3.2.3-47.3.i386.rpm

Compat-libstdc++-33-3.2.3-47.3.i386.rpm

compat-gcc-32-c++-3.2.3-47.3.i386.rpm

compat-libgcc-296-2.96-132.7.2.i386.rpm

compat-libstdc++-296-2.96.132.7.2.i386.rpm

gcc-3.4.3-9.EL4.i386.rpm

libstdc++-devel-3.4.3-9.EL4.i386.rpm

gcc-c++-3.4.3-9.EL4.i386.rpm

libaio-0.3.102-1.i386.rpm

libaio-devel-0.3.102-1.i386.rpm

openmotif21-2.1.30-11.RHEL4.2.i386.rpm

zlib-devel-1.2.1.2-1.i386.rpm

freetype-devel-2.1.9-1.i386.rpm

fontconfig-devel-2.2.3-7.i386.rpm

pkgconfig-0.15.0-3.i386.rpm

xorg-x11-devel-6.8.1-23.EL.i386.rpm

xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm

compat-libcwait-2.0-2.i386.rpm(补丁包)

compat-oracle-rhel4-1.0-5.i386.rpm(补丁包)

1.创建数据库安装的准备工作:
⑴ 创建user/group;
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
passwd oracle
如果nobody用户不存在(id nobody命令查看),则创建:
useradd nobody

Linux下oracle10g安装配置说明_第4张图片
⑵ 建立oracle安装文件夹(sample);
mkdir -p /opt/oracle/product/10g
mkdir /opt/oracle/database
chown -R oracle.oinstall  /opt/oracle
chmod 755 -R /opt/oracle

clip_image010
2. 配置环境变量;
要使用 Oracle 产品,应该或必须设置几个环境变量。
如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。
ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。
对于数据库服务器,建议设置以下环境变量:
使用Oracle用户登陆:
su oracle
vi ~/.bash_profile
以下是配置文件的内容
export ORACLE_BASE=/opt/oracle/
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=ge01
export PATH=$ORACLE_HOME/bin:$PATH      
# 安装好后再取消屏蔽这些环境变量设置
# export TNS_ADMIN=$ORACLE_HOME/network/admin
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#export LANG=AMERICAN_AMERICA.ZHS16GBK
配置好后用 source .bash_profile 命令使配置生效

Linux下oracle10g安装配置说明_第5张图片

3.置系统参数;
Oracle 数据库 10g 需要以下所示的内核参数设置。
其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。
切换到root用户:
su root
a) 修改/etc/sysctl.conf(vi /etc/sysctl.conf), 添加:
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
修改后运行"/sbin/sysctl -p"命令使得内核改变立即生效;
Linux下oracle10g安装配置说明_第6张图片
B) 设置oracle对文件的要求:
编辑文件:vi /etc/security/limits.conf 加入以下语句:
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
编辑文件:vi /etc/pam.d/login 加入以下语句(可能应该加在最后一条规则之前):
session    required     /lib/security/pam_limits.so
六.解压缩Oracle10G的安装文件 :
1. Oracle 用户登录
(1) 简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快)
在/tmp下解压缩10201_database_linux32.zip:
unzip 10201_database_linux32
2.开始安装oracle
以oracle用户登录系统,进行Oracle的安装:
cd /tmp/database (或者你解压缩安装程序包的目录)
./runInstaller
过一会儿就会出现Oracle的安装界面
注意:一定在linux图形界面下安装oracle,否则会报错!
1、选择advance install
2、数据库home设置为/opt/oracle/product/10g
3、数据库全局名称设置为ge01
4、数据库字符集选Simplified Chinese ZHS16GBK
5、其他用默认设置!
注意:安装过程中会提示以root用户登陆执行一些脚本 ,执行后再按“ok”按钮继续安装。
Linux下oracle10g安装配置说明_第7张图片

Linux下oracle10g安装配置说明_第8张图片

Linux下oracle10g安装配置说明_第9张图片

Linux下oracle10g安装配置说明_第10张图片

Linux下oracle10g安装配置说明_第11张图片

Linux下oracle10g安装配置说明_第12张图片

Linux下oracle10g安装配置说明_第13张图片

Linux下oracle10g安装配置说明_第14张图片

Linux下oracle10g安装配置说明_第15张图片

Linux下oracle10g安装配置说明_第16张图片

Linux下oracle10g安装配置说明_第17张图片

Linux下oracle10g安装配置说明_第18张图片

Linux下oracle10g安装配置说明_第19张图片

Linux下oracle10g安装配置说明_第20张图片
3、登陆并启动数据库的操作。
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.0 - Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate 关闭数据库 (OR "dbshut" command)
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup; 启动数据库
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
4。dbstart脚本修改
数据库创建完成后,修改vi /etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行最后的N改成Y,
然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件:
cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/product/10.2.0/dbs/initge01.ora
重新执行dbstart就可以了。
修改vi /opt/oracle/product/10g/bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/oracle/product/10g/
vi /etc/rc.local 加入下面一行 起动ORACLE ON system boot
/opt/oracel/product/10g/bin/dbstart
5. 编写启动脚本(OPTION)
为了方便管理,可以写一个启动脚本ora10g:
以root身份进入,编写以下脚本:
#!/bin/bash
#
# chkconfig: 2345 91 19
# description: starts the oracle listener and instance
status() {
    pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print $8}'`
    if [ "X$pid" = "X" ]
    then
        echo "oracle10g is not running."
        exit 1
    else
        echo "oracle10g is running."
        exit 0
    fi
}
case "$1" in
    start)
        #startup the listener and instance
        echo -n "oracle begin to startup: "
        su - oracle -c "lsnrctl start"
        su - oracle -c dbstart
        echo "oracle10g started"
        ;;
    stop)
        # stop listener, apache and database
        echo -n "oracle begin to shutdown:"
        su - oracle -c "lsnrctl stop"
        su - oracle -c dbshut
        echo "oracle10g shutdowned"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    'status')
        status
        ;;
     *)
        echo "Usage: ora10g [start|stop|reload|restart]"
        exit 1
esac
exit 0
存为ora10g后,然后
chmod a+x ora10g
ln -s /opt/oracle/product/10.2.0/bin/ora10g /etc/rc.d/init.d/
即可在以后以root身份运行/etc/rc.d/init.d/ora10g start |stop 来管oracle的启动和停止了。
如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:
chkconfig --level 345 ora10g on
或者可在/etc/rc.d/rc.local中加入如下:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"
6。关于数据库删除重新安装的问题:
把ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f /etc/ora*.*
7.修改Oracle10g数据库字符集
SQL> connect sys/oracle as sysdba
SQL> startup mount
SQL> alter session set sql_trace=true;
Session altered.
SQL> alter system enable restricted session;
System altered.
SQL> alter system set job_queue_processes=0;
System altered.
SQL> alter system set aq_tm_processes=0;
System altered.
SQL> alter database open;
Database altered.
SQL> set linesize 120;
SQL> alter database character set zhs16gbk;
alter database character set zhs16gbk
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
SQL> select name,value$ from props$ where name like '%NLS%';
NLS_CHARACTERSET
ZHS16GBK
8. oracle database备份
(1)vi bachupDb.sh
#!/bin/sh
#oracle用户下
#crontab -e 增加 "35 4 * * * /home/oracle/dbbackup/backupDb.sh",保存后自动安装
#或echo "35 4 * * * /home/oracle/dbbackup/backupDb.sh" > backupDb.cron
#crontab backupDb.cron
#############
#@tip 修改为本机数据库home目录
export ORACLE_HOME=/opt/oracle/product/10g
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
# 注意字符集必须和数据库的字符集一致,以避免字符集转化失败
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
#@tip 125修改为要备份的oracle的ip地址的最后一段
dmpfile="`echo ~/`dbbackup/gedb_`date +%w`.dmp"
logfile="`echo ~/`dbbackup/gedb_`date +%w`.log"
if [ -w $dmpfile ]
then
  echo "rm -f $dmpfile"
  rm -f "$dmpfile"
fi
#@tip ip地址修改为要备份的oracle的主机地址
exp USERID=gedb/[email protected]/ge01 file=$dmpfile log=$logfile  owner=gedb grants=y
  (2)copy bachupDb.sh 到slave oracle srever 相应目录,
     chown oracle.oinstall bachupDb.sh
     chmod 744 bachupDb.sh   
     vi bachupDb.sh 以符合安装情况
(3)以oracle user role
    crontab -e
    35 4 * * * /home/oracle/dbbackup/backupDb.sh
9. restore oracle backup
su - oracle
imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile  commit=y  grants=y full=y