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