<b>Linux</b><b>下oracle10g安装配置说明</b>
注意:可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。
但不提供支持,且该许可不允许用于生产目的。
<b></b><b>一.资源需要:</b>
至少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
<b>二.虚拟机分区情况:</b>

<b>三.查看系统资源相关语句:</b>
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 #打印出运行的系统
<b>四.查看系统配置:</b>
cat /etc/issue
uname -r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free
df -k /tmp
df –k
<b></b><b>五.安装前的检查和准备工作:(下面是我在RHEL4.0上面安装oracle时需要按章的软件包,一定按顺序安装)</b>
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(补丁包)
<b>1.</b><b>创建数据库安装的准备工作: </b>
⑴ 创建user/group;
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
passwd oracle
如果nobody用户不存在(id nobody命令查看),则创建:
useradd nobody
⑵ 建立oracle安装文件夹(sample);
mkdir -p /opt/oracle/product/10g
mkdir /opt/oracle/database
chown -R oracle.oinstall /opt/oracle
chmod 755 -R /opt/oracle
<b>2. </b><b>配置环境变量;</b>
要使用 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 命令使配置生效
<b>3.</b><b>置系统参数;</b>
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"命令使得内核改变立即生效;
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
<b></b><b>六.解压缩Oracle10G的安装文件 :</b>
<b>1</b><b>. Oracle 用户登录</b>
(1) 简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快)
在/tmp下解压缩10201_database_linux32.zip:
unzip 10201_database_linux32
<b>2.</b><b>开始安装oracle </b>
以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”按钮继续安装。
<b>3</b><b>、登陆并启动数据库的操作。</b>
[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&gt; connect / as sysdba
Connected.
SQL&gt; shutdown immediate 关闭数据库 (OR "dbshut" command)
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL&gt; 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.
<b>4</b><b>。dbstart脚本修改</b>
数据库创建完成后,修改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
<b>5. </b><b>编写启动脚本(OPTION)</b>
为了方便管理,可以写一个启动脚本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]"
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"
<b>6</b><b>。关于数据库删除重新安装的问题: </b>
把ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f /etc/ora*.*
<b>7.</b><b>修改Oracle10g数据库字符集</b>
SQL&gt; connect sys/oracle as sysdba
SQL&gt; startup mount
SQL&gt; alter session set sql_trace=true;
Session altered.
SQL&gt; alter system enable restricted session;
System altered.
SQL&gt; alter system set job_queue_processes=0;
SQL&gt; alter system set aq_tm_processes=0;
SQL&gt; alter database open;
Database altered.
SQL&gt; set linesize 120;
SQL&gt; 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&gt; ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE
SQL&gt; shutdown immediate;
SQL&gt; STARTUP
SQL&gt; select name,value$ from props$ where name like '%NLS%';
NLS_CHARACTERSET
ZHS16GBK
<b>8. oracle database</b><b>备份</b>
(1)vi bachupDb.sh
#!/bin/sh
#oracle用户下
#crontab -e 增加 "35 4 * * * /home/oracle/dbbackup/backupDb.sh",保存后自动安装
#或echo "35 4 * * * /home/oracle/dbbackup/backupDb.sh" &gt; backupDb.cron
#crontab backupDb.cron
#############
#@tip 修改为本机数据库home目录
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
<b>9. restore oracle backup</b>
su - oracle
imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile commit=y grants=y full=y