linux下oracle搭建

一.资源需要:

至少1024MB物理内存

1024-2048需1.5倍的交互空间

2048-8192需1倍的交互空间

8192-需0.75倍的交互空间

至少400MB/tmp临时目录空间

oracle软件需要1.5GB到3.5GB磁盘空间

默认数据库需要1.2GB

二.查看系统资源相关语句:

cat/etc/issue

uname-r

grepMemTotal/proc/meminfo

grepSwapTotal/proc/meminfo

grep"modelname"/proc/cpuinfo

free

df-k/tmp

df-k

安装前的检查和准备工作:

p4198954_21_linux.zip在运行runInstaller之前打.

rpm-ivhcompat-oracle-rhel4-1.0-5.i386.rpm(p4198954_21_linux.zip)

(不打PATCH也可以)

安装libaio-0.3.102-1.i386.rpm

libaio-devel0.3.102-1.i386.rpm

在RedHatEnterpriseLinux介质的第三张CD,以root用户身份运行以下命令:

rpm-ivh/mnt/cdrom/RedHat/RPMS/libaio-0.3.102-1.i386.rpm

三.创建数据库安装的准备工作:

1.创建用户和组(user/group);

groupadddba

groupaddoinstall

useraddoracle-goinstall-Gdba

passwdoracle

如果nobody用户不存在(idnobody命令查看),则创建:

useraddnobody

2.建立oracle安装文件夹(sample);

mkdir-p/opt/oracle/product/10g

mkdir/opt/oracle/database

chown-Roracle.oinstall/opt/oracle

chmod755-R/opt/oracle

2,配置环境变量;

要使用Oracle产品,应该或必须设置几个环境变量。如果您在同一服务器上安装了多个Oracle产品或数据库,则ORACLE_HOME、ORACLE_SID和PATH变量可能会更改。ORACLE_BASE变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle提供了一个称作oraenv的实用程序来设置其他变量。

对于数据库服务器,建议设置以下环境变量:

使用第一步创建的用户名Oracle登陆:

suoracle

vi~/.bash_profile

修改以下是配置文件的内容

exportORACLE_BASE=/opt/oracle/

exportORACLE_HOME=/opt/oracle/product/10g

exportORACLE_SID=ge01(可随意定义)

exportPATH=$ORACLE_HOME/bin:$PATH

ESC(退出vi的编辑环境)

:wq(退出vi应用程序并保存修改)

安装好后再取消屏蔽这些环境变量设置

#exportTNS_ADMIN=$ORACLE_HOME/network/admin

#exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#exportLANG=AMERICAN_AMERICA.ZHS16GBK

配置好后用source.bash_profile命令使配置生效

四.设置系统参数;

Oracle数据库10g需要以下所示的内核参数设置。

其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。

切换到root用户:

suroot

a)修改/etc/sysctl.conf(vi/etc/sysctl.conf),添加:

kernel.shmmax=2147483648

kernel.shmmni=4096

kernel.shmall=2097152

kernel.sem=25032000100128

fs.file-max=65536

net.ipv4.ip_local_port_range=102465000

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加入以下语句:

oraclesoftnproc2047

oraclehardnproc16384

oraclesoftnofile1024

oraclehardnofile65536

编辑文件:vi/etc/pam.d/login加入以下语句(可能应该加在最后一条规则之前):

sessionrequired/lib/security/pam_limits.so

安装Oralce10G

解压缩Oracle10G的安装文件:

1.Oracle

(1)简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快)

在/tmp下解压缩10201_database_linux32.zip:

unzip10201_database_linux32

开始安装oracle

(一)开始安装:

1.以oracle用户登录系统,进行Oracle的安装:

cd/tmp/database(或者你解压缩安装程序包的目录)

./runInstaller

过一会儿就会出现Oracle的安装界面

注意:

1、选择advanceinstall

2、数据库home设置为/opt/oracle/product/10g

3、数据库全局名称设置为ge01

4、数据库字符集选SimplifiedChineseZHS16GBK

2.其他用默认设置!

注意:安装过程中会提示以root用户登陆执行一些脚本,执行后再按“ok”按钮继续安装。

3、登陆并启动数据库的操作。

[oracle@oracleoracle]$lsnrctlstart

[oracle@oracleoracle]$sqlplus/nolog

SQL*Plus:Release9.2.0.0-ProductiononSatMar1222:58:532005

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

SQL>connect/assysdba

Connected.

SQL>shutdownimmediate关闭数据库(OR"dbshut"command)

Databaseclosed.

Databasedismounted.

ORACLEinstanceshutdown.

SQL>startup;启动数据库

ORACLEinstancestarted.

TotalSystemGlobalArea236000356bytes

FixedSize451684bytes

VariableSize201326592bytes

DatabaseBuffers33554432bytes

RedoBuffers667648bytes

Databasemounted.

Databaseopened.

4,dbstart脚本修改

数据库创建完成后,修改vi/etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行最后的N改成Y,

然后执行dbstart启动数据库数据库可能无法启动,报告Can’tfindinitfile…的错误,需要复制一个初始化文件:

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加入下面一行起动ORACLEONsystemboot

/opt/oracel/product/10g/bin/dbstart

5.编写启动脚本(OPTION)

为了方便管理,可以写一个启动脚本ora10g:

以root身份进入,编写以下脚本:

#!/bin/bash

#

#chkconfig:23459119

#description:startstheoraclelistenerandinstance

status(){

pid=`ps-ef|grepora_pmon|grep-vgrep|awk'{print$8}'`

if["X$pid"="X"]

then

echo"oracle10gisnotrunning."

exit1

else

echo"oracle10gisrunning."

exit0

fi

}

case"$1"in

start)

#startupthelistenerandinstance

echo-n"oraclebegintostartup:"

su-oracle-c"lsnrctlstart"

su-oracle-cdbstart

echo"oracle10gstarted"

;;

stop)

#stoplistener,apacheanddatabase

echo-n"oraclebegintoshutdown:"

su-oracle-c"lsnrctlstop"

su-oracle-cdbshut

echo"oracle10gshutdowned"

;;

reload|restart)

$0stop

$0start

;;

'status')

status

;;

*)

echo"Usage:ora10g[start|stop|reload|restart]"

exit1

esac

exit0

存为ora10g后,然后

chmoda+xora10g

ln-s/opt/oracle/product/10.2.0/bin/ora10g/etc/rc.d/init.d/

即可在以后以root身份运行/etc/rc.d/init.d/ora10gstart|stop来管oracle的启动和停止了。

如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:

chkconfig--level345ora10gon

或者可在/etc/rc.d/rc.local中加入如下:

su-oracle-c"lsnrctlstart"

su-oracle-c"dbstart"

6,关于数据库删除重新安装的问题:

把ORACLE安装目录删除及/etc/ora*.*删除就行了

#rm–f/etc/ora*.*

7.修改Oracle10g数据库字符集

SQL>connectsys/oracleassysdba

SQL>startupmount

SQL>altersessionsetsql_trace=true;

Sessionaltered.

SQL>altersystemenablerestrictedsession;

Systemaltered.

SQL>altersystemsetjob_queue_processes=0;

Systemaltered.

SQL>altersystemsetaq_tm_processes=0;

Systemaltered.

SQL>alterdatabaseopen;

Databasealtered.

SQL>setlinesize120;

SQL>alterdatabasecharactersetzhs16gbk;

alterdatabasecharactersetzhs16gbk

*

ERRORatline1:

ORA-12712:newcharactersetmustbeasupersetofoldcharacterset

SQL>ALTERDATABASEcharactersetINTERNAL_USEzhs16gbk;#使用INTERNAL_USE可以跳过超集的检查,ALTERDATABASEcharactersetINTERNAL_USE

Databasealtered.

SQL>shutdownimmediate;

Databaseclosed.

Databasedismounted.

ORACLEinstanceshutdown.

SQL>STARTUP

SQL>selectname,value$fromprops$wherenamelike'%NLS%';

NLS_CHARACTERSET

ZHS16GBK

8.oracledatabase备份

(1)vibachupDb.sh

#!/bin/sh

#oracle用户下

#crontab-e增加"354***/home/oracle/dbbackup/backupDb.sh",保存后自动安装

#或echo"354***/home/oracle/dbbackup/backupDb.sh">backupDb.cron

#crontabbackupDb.cron

#############

#@tip修改为本机数据库home目录

exportORACLE_HOME=/opt/oracle/product/10g

exportPATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

#注意字符集必须和数据库的字符集一致,以避免字符集转化失败

exportNLS_LANG=AMERICAN_AMERICA.zhs16gbk

#@tip125修改为要备份的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

#@tipip地址修改为要备份的oracle的主机地址

expUSERID=gedb/[email protected]/ge01file=$dmpfilelog=$logfileowner=gedbgrants=y

(2)copybachupDb.sh到slaveoraclesrever相应目录,

chownoracle.oinstallbachupDb.sh

chmod744bachupDb.sh

vibachupDb.sh以符合安装情况

(3)以oracleuserrole

crontab-e

354***/home/oracle/dbbackup/backupDb.sh

9.restoreoraclebackup

su-oracle

impUSERID=gedb/gedbfile=gedb_6.dmplog=implogfilecommit=ygrants=yfull=y

相关推荐