04.14.2011-oracle-silent-install

[1]

http://www.google.com.hk/search?q=%E9%9D%99%E9%BB%98%E5%AE%89%E8%A3%85+oracle+redhat&hl=en&safe=active&prmd=ivns&ei=usSlTbjyAoO4vQOzpMCfCg&start=30&sa=N

[2]

http://tech110.blog.51cto.com/438717/169652

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://tech110.blog.51cto.com/438717/169652
在看这篇文章时请先看完图形安装,有个了解之后看这篇比较好。
在静默安装之前必须将先前装的数据库卸载掉,并删除相应的目录,必须得删除干净
除了product目录外,其余的全部删掉.进入到下面目录,将其中的文件全部删掉

以root登陆,进入/etc目录,执行:rm –rf ora*,删除以ora开始的文件
编辑/database/response目录下的enterprise.rsp文件
修改enterprise.rsp文件的权限,以便oracle用户能够操作。
chown oralce.oinstall enterprise.rsp
chomd 777 enterprise.rsp
vi enterprise.rsp
UNIX_GROUP_NAME="oinstall"
ORACLE_HOME="/u01/app/oracle/product/10.2.0/db1"
ORACLE_HOME_NAME="oracle10g_home1"
INSTALL_TYPE="EE"
s_nameForDBAGrp="dba"
s_nameForOPERGrp="dba"
n_configurationoption=3(表示安装)
进入到解压软件的database目录下执行(oracle用户)

命令运行完后要求执行两个脚本
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/10.2.0/db1/root.Sh(以root用户)

以oracle用户建立oracle数据库所需目录,到/u01/app/oracle/下建立。
cd $ORACLE_BASE可以进入上面目录,注意这都是上面建立好的,环境变量设置的。
mkdir -p admin/db1
cd admin/db1
mkdir adump bdump cdump dpdump udump

adump :审计信息, 于监视用户所执行的数据库操作,Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)中。默认情况下审计是没有开启的。
bdump :记录后台进程产生trace文件,后台进程trace 和alert log ,就是说 alert_sid.log也存在这个目录中ORACLE数据库的日志文件$ORACLE_BASE/admin/orasid/bdump/alert_orasid.log记录了重作日志的转换,数据库启动和关闭,数据库结构的改变,回退段的修改,死锁,内部错误等信息.
cdump :core trace,一般是用来日志应用程序的除非数据库出了问题 否则基本上不会有什么信息
dpdump :是存放一些登录信息的
pfile :初始化参数文件 initSID
udump :记录用户产生的trace文件,前台手动trace的,比如sql trace之后session的trace文件
然后返回到/u01/app/oracle/目录下,创建以下目录,用来存放库文件(使用create database时的库文件)
mkdir -p oradata/db1
创建密码文件
cd /u01/app/oracle/product/10.2.0/db1/dbs
orapwd file=orpwdb1 password=123456 force=y


(注意,file=orpwdb1这句必须这样设置,linux下oracle的密码文件名格式为orpwSID,这里我的SID为db1)
进入下面目录创建数据库启动文件initdb1.ora,写入下面必须也是最基本的四项参数.
cd /u01/app/oracle/product/10.2.0/db1/dbs


执行创建数据库脚本:createdb.sql在目录/u01/app/oracle/product/10.2.0/db1/dbs下
脚本内容
CREATE DATABASE db1
USER SYS IDENTIFIED BY sys
USER SYSTEM IDENTIFIED BY sys
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/db1/redo01.log') SIZE 100M,
GROUP 2 ('/u01/app/oracle/oradata/db1/redo02.log') SIZE 100M,
GROUP 3 ('/u01/app/oracle/oradata/db1/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/app/oracle/oradata/db1/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/app/oracle/oradata/db1/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE usertbs DATAFILE '/u01/app/oracle/oradata/db1/usertbs.dbf' SIZE 10M REUSE
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/db1/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/db1/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
进入数据库:sqlplus / as sysdba

让数据库启动到nomount,因为开始没有控制文件,initdb1.ora不会被启用,当数据库脚本执行完毕后会生成控制文件

(→没有执行脚本之前的文件)

(执行脚本之后的文件)
进入目录执行两个脚本:cd /u01/app/oracle/product/10.2.0/db1/rdbms/admin
catalog.sql catproc.sql (以sys权限),数据库处于open状态。
用于创建PL/SQL语法和数据字典


进入目录/u01/app/oracle/product/10.2.0/db1/sqlplus/admin执行pupld.sql脚本(以system权限)

完毕


本文出自 “宗军” 博客,请务必保留此出处http://tech110.blog.51cto.com/438717/169652

[3]

http://hi.baidu.com/ldtrain/blog/item/4cec72da8369ca61d0164ea0.html

linux静默安装oracle 10g
2009年01月09日 星期五 17:45
1 安装前的准备
准备工作要用登录为root用户来进行。

1.1 选择安装环境的语言
Oracle安装时可以通过环境变量LANG指定安装语言,如果Linux命令行不能显示中文,就要将语言环境设置为英语。
例如:export LANG=en_US.UTF-8

1.2 修改gennttab
Oracle 10g在一些Linux系统下安装可能会被中断,在安装日志文件
$ORACLE_HOME/install/make.log
里可以看见以下错误信息
/bin/sed: -e expression #1, char 7: unterminated `s' command
要解决这个问题就必须编辑文件 gennttab。

先解压Oracle安装目录下的 stage/Components/oracle.network.rsf/10.2.0.1.0/1/DataFiles/filegroup6.jar,可以用以下方法之一进行解压
用jar解压:jar -xf filegroup6.jar bin/gennttab
用unzip解压:unzip filegroup6.jar bin/gennttab
再用文本编辑器(例如vi)打开解压出来的 gennttab,将以下内容
LIB=`$ECHO ${TtoLIB} | $SED 's/ /\\
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
INI=`$ECHO ${TtoINI} | $SED 's/ /\\
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
BAS=`$ECHO ${TtoBAS} | $SED 's/ /\\
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
改为
LIB=`$ECHO ${TtoLIB} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:
'{print $2}'`
INI=`$ECHO ${TtoINI} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:
'{print $2}'`
BAS=`$ECHO ${TtoBAS} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:
'{print $2}'`

保存后再用将gennttab更新到filegroup6.jar里面,可以用以下方法之一进行更新
用jar更新:jar -uvf filegroup6.jar bin/gennttab
用zip更新:zip -vu filegroup6.jar bin/gennttab

1.3 修改内核参数
编辑文件 /etc/sysctl.conf,修改以下项目,如果没有可以自己添加。
kernel.shmall = 2097152 # 可以使用的共享内存的总量。
kernel.shmmax = 2147483648 # 最大共享内存段大小。
kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。
kernel.sem = 250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
fs.file-max = 65536 # 系统中所允许的文件句柄最大数目。
net.ipv4.ip_local_port_range = 1024 65000 # 应用程序可使用的IPv4端口范围。
net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值

注:内核参数并非必须修改,可以根据自己实际情况而定。

1.4 为Oracle创建DBA组和用户
安装Oracle必须指定拥有DBA权限的组和运行Oracle的用户。
创建组:groupadd dba
groupadd oinstall
groupadd oper
创建用户:useradd -g oinstall -G dba oracle
passwd oracle
下面修改 oracle用户的.bash_profile文件
注:组名和用户名可以任意指定,不一定要照搬本文。

su - oracle
vi .bash_profile
#--------------------------------------
# Set for Oracle10g Install |
#--------------------------------------
trap " " 0 1 2 3 5 9 15
trap clear 0
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=orasid
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.9
export NLS_LANG="Simplified Chinese_china".UTF8
LC_CTYPE=zh_CN.UTF8
LC_ALL=zh_CN.UTF8
LANG=zh_CN.UTF8
umask 022
#
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
#------------------- Set Over


1.5 创建安装Oracle的目标目录
创建Oracle系统目录:mkdir /oracle
创建Oracle服务器主目录:mkdir /oracle/10g
将该目录的所有者设置为oracle:chown oracle /oracle -R
编辑 /etc/profile,在后面追加以下两行
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/10g

注:安装Oracle的目标目录可以任意指定,但是安装和运行Oracle的用户必须有完全修改该目录的权限。

1.6 下载安装32位JAVA所需的X环境的组件

如果你是在普通的32位的linux下安装oracle 10g,无需做此步骤。但在64位的linux上安装oracle 10g时,必须做此步骤,原因很简单,因为64位的oracle 10g安装包里内含的jdk1.4.2和jre1.4.2都是32位的,所以若不做此步骤便会在下面执行dbca的时候出现提示缺少了libXp.so.6包的错误。
下载安装安装xorg-x11-deprecated-libs-6.8.2-1.EL.13.20.i386.rpm包即可,据说在Oracle提供的ENTERPRISE Linux for X86-64 R4里有相应的包。不过我是在rpmbones.net上找到下载的。
rpm -ivh xorg-x11-deprecated-libs-6.8.2-1.EL.13.20.i386.rpm
然后,在/etc/ld.so.conf里添加:
/usr/X11R6/lib
执行:
ldconfig

2 安装
2.1 编辑安装需要的应答文件
静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。
在Oracle安装目录的response子目录里有enterprise.rsp有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。
以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。
ORACLE_HOME Oracle服务器的主目录位置,必须是绝对路径。
ORACLE_HOME_NAME Oracle服务器的名称,必须以字母开头。
COMPONENT_LANGUAGES Oracle服务器支持的语言,默认只有英语,可以添加多个语言。
s_nameForDBAGrp 用于Oracle系统管理的linux用户组名,该组的用户拥有管理Oracle服务器的权限,在本例中设置为 dba。
s_nameForOPERGrp 用于Oracle数据库常规操作的linux用户组名,该组的用户拥有常规操作Oracle数据库的权限,在本例中设置为 oper。
n_configurationOption 安装类型(1为在安装后创建数据库,2为安装后创建一个自动存储管理实例,3为只安装服务器软件),在本例中选择3。
其它项目用默认值即可,也可以根据自己的须要进行修改。

注:如果Oracle从光盘安装,必须先将应答文件复制到硬盘上,才能修改。

2.2 开始安装
现在万事具备,可以安装了。
用oracle用户登录,然后在Oracle安装目录里执行
./runInstaller -ignoreSysPrereqs -silent -responseFile <应答文件的绝对路径>
接下来就是等待安装结束了。
各安装参数的含义如下
ignoreSysPrereqs 让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。
silent 让安装程序以静默模式运行。
responseFile 指定一个应答文件。

3 安装后要做的工作
3.1 Oracle系统初始化
用root用户登录,然后运行$ORACLE_HOME/root.sh进行Oracle的系统初始化工作,通常一路按回车用默认值即可。

3.2 安装网络监听器
没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网络监听器,也只能使用静默模式。
编辑Oracle安装目录里response子目录下的应答文件 netca.rsp,修改以下项目。
INSTALL_TYPE=""custom"" 安装的类型
LISTENER_NUMBER=1 监听器数量
LISTENER_NAMES={"LISTENER"} 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" 监听器启动的名称
然后运行
$ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>

3.3 修改dbstart
用任意的文本编辑器打开 $ORACLE_HOME/bin/dbstart,将
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
否则网络监听器可能无法自动启动。

3.4 安装数据库实例
编辑Oracle安装目录里response子目录下的应答文件 dbca.rsp,修改以下项目。
GDBNAME 数据库全局名称
SID 数据库的SID
SYSPASSWORD SYS用户的初始密码
SYSTEMPASSWORD SYSTEM用户的初始密码
CHARACTERSET 数据库字符集(中文为 ZHS16GBK)
NATIONALCHARACTERSET 数据库国家字符集

然后运行
$ORACLE_HOME/bin/dbca -silent -responseFile <应答文件的绝对路径> -cloneTemplate
数据库创建成功后须要注册一些信息,运行
$ORACLE_BASE/oraInventory/orainstRoot.sh
然后编辑 /etc/oratab

<Oracle的SID>:<Oracle的主目录>:N
修改为
<Oracle的SID>:<Oracle的主目录>:Y
使数据库实例能够自动启动。

3.5 让Oracle运行为服务
创建文件 /etc/init.d/oracle,输入下列内容

#!/bin/sh
#
export ORACLE_HOME=<Oracle服务器主目录的绝对路径>
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE=oracle

. /etc/init.d/functions

export PATH=${PATH}:$ORACLE_HOME/bin

start()
{
daemon --user $ORACLE $ORACLE_HOME/bin/dbstart
daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl start"
}

stop()
{
daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl stop"
daemon --user $ORACLE $ORACLE_HOME/bin/dbshut
}

case $1 in
'start')
start
RETVAL=$?
;;
'stop')
stop
RETVAL=$?
;;
'restart')
stop
start
RETVAL=$?
;;
*)
echo "usage: $0 {start|stop|restart}"
exit
;;
esac
#
exit


然后将这个文件赋予可执行的权限,运行
chmod a+x /etc/init.d/oracle
让Oracle的服务在Linux启动时自动运行
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle
这样就可以用service来启动和停止Oracle了。

附1 Oracle 10g对硬件环境的要求
物理内存
基本 - 512MB
推荐 - 1024MB
内存交换分区相对于物理内存的比例
物理内存1024MB~2048MB - 150%
物理内存2049MB~8192MB - 100%
物理内存大于8192MB - 75%
磁盘空间
/tmp目录所在的分区至少要有400MB空闲磁盘空间。
根据安装类型,安装Oracle服务器软件的分区至少要有1.5GB到3.5GB的空闲磁盘空间。
1.2GB磁盘空间用于数据库预配置文件系统存储(可选)

附2 Oracle 10g对软件环境的要求
操作系统
Red Hat Enterprise Linux AS/ES 3.0 (update 4 or later)
Red Hat Linux 4.0
SUSE Linux Enterprise Server 9.0 with SP 2 or later
Asianux 1.0
Asianux 2.0
软件包
X11相关的库 (软件包名视操作系统而定,故不一一列出)
gcc (版本至少为2.96-124)
make (版本至少为3.79)
binutils (版本至少为2.11)
openmotif (版本至少为2.1.30)
setarch (版本至少为1.3)
compat-db (版本至少为4.0.14.5)
compat-gcc (版本至少为7.3-2.96.122)
compat-gcc-c++ (版本至少为7.3-2.96.122)
compat-libstdc++ (版本至少为7.3-2.96.122)
compat-libstdc++-devel (版本至少为7.3-2.96.122)
sysstat (版本至少为5.0.5-1)
libaio (版本至少为0.3.103-3)
libaio-devel (版本至少为0.3.103-3)

附3 相关链接
在 Linux x86 上安装 Oracle 数据库 10g
自动安装 Oracle 数据库 10g 和 Red Hat Enterprise Linux
Oracle® Database Installation Guide for Linux x86
Oracle数据库静默安装实践
Oracle的全球化支持
Oracle 10g文档库


4 结束语
现在Oracle 10g的安装已经完成,在任何一台电脑上装个Oracle客户端就可以对它进行管理了。
如果要卸载Oracle,只须运行
$./runInstaller -silent -deinstall -removeallfiles -removeAllPatches "REMOVE_HOMES={$ORACLE_HOME}" -responseFile <安装时使用的应答文件>

[4]

http://hi.baidu.com/bshcom/blog/item/8c371478fa04feff0ad187da.html/cmtid/45a52bf97790d6849f514674

[5]

http://www.huomo.cn/database/article-12cc4.html

[6]

http://topic.csdn.net/u/20091104/20/c3297fc2-30e0-43fa-9811-9c2b785b8feb.html

[7]

http://www.zxbc.cn/html/20071109/29192.html

http://space6212.itpub.net/post/12157/411610

[8]

http://topic.csdn.net/u/20091104/20/c3297fc2-30e0-43fa-9811-9c2b785b8feb.html

发表于:2009-11-04 20:22:19--初次在Oracle区发贴,小弟献丑,有什么不足的地方,敬请各位指教!
--希望对大家有所帮助!
//////////////////////////////////////////////////////////
---- Step 1. 准备文件

1). 拷贝文件 10201_database_linux32.zip 到 /oracle目录下;

2). 解压(可用鼠标右击解压,或用口令, cd /oracle)
[root@lym oracle]# uzip 10201_database_linux32.zip

3). 在/etc目录下创建一个名为 oraInst.loc 的文件,文件中的内容(两行代码)如下:
inventory_loc=ORACLE_BASE/oraInventory
inst_group= oinstall

4). 输入下面的命令在oraInst.loc文件上设置合适的拥有者,组和权限:
[root@lym oracle]# chown oracle:oinstall oraInst.loc
[root@lym oracle]# chmod 664 oraInst.loc
//////////////////////////////////////////////////////////
---- Step 2 检查硬件需求
1). 查看系统物理内存,以下输出可以看出,有1G的内存,内存最低要求256M。
[root@lym oracle]# grep MemTotal /proc/meminfo
MemTotal: 1035400 kB

2). 查看交换空间大小,以下输出可以看出,有2G的交换空间,交换空间的最优设置与你物理内存大小相关,详细说明请参考安装文档
[root@lym oracle]# grep SwapTotal /proc/meminfo
SwapTotal: 2096440 kB

3). 查看可用物理内存和交换空间
[root@lym oracle]# free
total used free shared buffers cached
Mem: 1035400 1019716 15684 0 10152 815440
-/+ buffers/cache: 194124 841276
Swap: 2096440 108 2096332

4). 查看挂载的临时分区空间情况
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda3 8823460 4068908 4299112 49% /

--客户端安装有四种安装模式供选择,各种安装模式的功能及其占用磁盘空间请见安装文档,
--我选择“Administrator”,占用空间为:820 MB,以适应sb1机器的使用要求!

5). 查看处理器类型,看是否适合安装此软件
[root@lym oracle]# grep "model name" /proc/cpuinfo
model name : Intel(R) Celeron(R) CPU 1.70GHz

/////////////////////////////////////////////////////////////////////
---- Step 3 检查软件需求

1). 查看Linux版本
[root@lym oracle]# cat /etc/issue
Red Hat Enterprise Linux Server release 5 (Tikanga)
Kernel \r on an \m

2). 查看内核版本
[root@lym oracle]# uname -a
Linux lym.oracle.com 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux

3). 检测及安装需要安装的系统软件包
[root@lym Server]# rpm -ivh glibc-headers-2.5-12.i386.rpm
[root@lym Server]# rpm -ivh glibc-devel-2.5-12.i386.rpm
[root@lym Server]# rpm -ivh libgomp-4.1.1-52.el5.i386.rpm
[root@lym Server]# rpm -ivh gcc-4.1.1-52.el5.i386.rpm
[root@lym Server]# rpm -ivh libstdc++-devel-4.1.1-52.el5.i386.rpm
[root@lym Server]# rpm -ivh gcc-c++-4.1.1-52.el5.i386.rpm
[root@lym Server]# rpm -ivh make-3.81-1.1.i386.rpm
[root@lym Server]# rpm -ivh libXp-1.0.0-8.i386.rpm
[root@lym Server]# rpm -ivh openmotif-2.3.0-0.3.el5.i386.rpm
[root@lym Server]# rpm -ivh setarch-2.0-1.1.i386.rpm
[root@lym Server]# rpm -ivh compat-db-4.2.52-5.1.i386.rpm
[root@lym Server]# rpm -ivh compat-gcc-34-3.4.6-4.i386.rpm
[root@lym Server]# rpm -ivh compat-gcc-34-c++-3.4.6-4.i386.rpm
[root@lym Server]# rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm

/////////////////////////////////////////////////////////////////////
---- Step 4 配置内核及其他参数
1). vi /etc/sysctl.conf --加入以下11行代码(并将原来的# kernel.shmmax和kernel.shmall这两行参数屏蔽)
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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

2). 执行以下命令使以上参数修改生效
[root@lym Server]# /sbin/sysctl -p

3). vi /etc/security/limits.conf --加入以下四行代码
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

4). vi /etc/pam.d/login --加入下面一行代码
session required /lib/security/pam_limits.so

5). vi /etc/selinux/config --(禁用SELINUX,安装完后可再还原成原值) 将SELINUX设置为
SELINUX=disabled

////////////////////////////////////////////////////////////
---- Step 5. 添加用户组和用户,并为oracle用户设置密码

[root@lym Server]# groupadd oinstall
[root@lym Server]# groupadd dba
[root@lym Server]# groupadd oper
[root@lym Server]# useradd -g oinstall -G dba oracle
[root@lym Server]# passwd oracle
Changing password for user oracle.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

/////////////////////////////////////////////////////////////
---- Step 6. 创建安装Oracle的文件夹,并设置其相应权限给Oracle用户。
[root@lym Server]# mkdir -p /u01/app/oracle/product/10.2.0/db_1
[root@lym Server]# chown -R oracle.oinstall /u01
[root@lym Server]# chmod 775 /u01

/////////////////////////////////////////////////////////////
---- Step 7. 伪装操作系统版本,使安装Oracle时,通过操作系统验证。
vi /etc/redhat-release --(可保存此文件的副本在某位置,以便安装完成后,复原此文件)
--将这文件中的内容( Red Hat Enterprise Linux Server release 5 (Tikanga) )
替换为如下代码:
redhat-4

/////////////////////////////////////////////////////////////
---- Step 8. Oracle 10g 默认不支持中文
安装时将 /etc/sysconfig/i18n 中的 LANG改为 en 即可

/////////////////////////////////////////////////////////////
---- Step 9. 设置Oracle环境变量(可根据你的需要作适当更改)
[root@lym Server]# vi /home/oracle/.bash_profile --加入内容如下
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=TSH1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

////////////////////////////////////////////////////////////
---- Step 10. 注销root用户,并登录oracle用户,在/home/oracle目录下建立一个名为enterprise01.rsp的文件,里面的具体内容如下(参考/oracle/database/response目录下面的enterprise.rsp文件,该目录下有三个文件enterprise.rsp(企业版静默安装文件),standard.rsp(标准版静默安装文件)和custom.rsp(客户版静默安装文件),另外还有其他三个静默安装文件)。

RESPONSEFILE_VERSION=2.2.1.0.0
FROM_LOCATION="../stage/products.xml"
ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1/"
ORACLE_HOME_NAME="OraDb10g_home1"
TOPLEVEL_COMPONENT={"oracle.server","10.2.0.1.0"}
DEINSTALL_LIST={"oracle.server","10.2.0.1.0"}
SHOW_SPLASH_SCREEN=false
SHOW_WELCOME_PAGE=false
SHOW_COMPONENT_LOCATIONS_PAGE=false
SHOW_CUSTOM_TREE_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=false
SHOW_REQUIRED_CONFIG_TOOL_PAGE=false
SHOW_CONFIG_TOOL_PAGE=false
SHOW_RELEASE_NOTES=false
SHOW_ROOTSH_CONFIRMATION=false
SHOW_END_SESSION_PAGE=false
SHOW_EXIT_CONFIRMATION=false
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=false
SHOW_DEINSTALL_CONFIRMATION=false
SHOW_DEINSTALL_PROGRESS=false
ACCEPT_LICENSE_AGREEMENT=true
COMPONENT_LANGUAGES={"en"}
CLUSTER_NODES=
INSTALL_TYPE="EE"
s_nameForDBAGrp=dba
s_nameForOPERGrp=dba
b_oneClick=false
SHOW_DATABASE_CONFIGURATION_PAGE=false
b_createStarterDB=false

///////////////////////////////////////////////////////////////////
---- Step 11. 开始安装
[oracle@lym ~]$ cd /oracle/database
[oracle@lym database]$ ./runInstaller -silent -responseFile /home/oracle/enterprise01.rsp

-------安装时终端输出类似如文件"安装过程中的终端显示2.txt"中的内容--------
-------请您耐心等待,可先去喝杯荼!---------

//////////////////////////////////////////////////////////////////
---- Step 12. 以root用户运行安装后环境所需脚本(千万主意:要以root用户去执行这两个脚本,执行后一个脚本时,回车一下就可以了)
[root@lym ~]# sh /u01/app/oracle/oraInventory/orainstRoot.sh
[root@lym ~]# sh /u01/app/oracle/product/10.2.0/db_1/root.sh

---- Step 测试看能否进sqlplus----
[oracle@lym ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 22 00:25:56 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL>

至此Oracle的产品已经安装完成,可是目前为止我们还没有建立数据库。
由于没有X界面无法启动dbca ,所以不能用dbca来帮我们建立数据库。这时候你可能会想到用create database 语句来建立数据库,可是语法实在是繁琐,并且还要运行许多的
oracle脚本 。

此时,我们可以利用oracle提供的种子数据库还原一个数据库出来(详细见以下操作)
假设我们要建立的数据库的名称为TSH1(这个名称跟你安装前设置的环境变量中的ORACLE_SID相一致)。
-----------------------------------------------------------------------------
---------利用oracle提供的种子数据库还原一个数据库出来 的详细步骤---------------
///////////////////////////////////////////////////////////////////////////
---- Step 1. 建立我们所需的目录,并刷新授权。
[root@lym Server]# mkdir -p /u01/app/oracle/admin/TSH1/{a,b,u}dump
[root@lym Server]# mkdir -p /u01/app/oracle/oradata/TSH1
[root@lym Server]# chown -R oracle.oinstall /u01
[root@lym Server]# chmod 775 /u01
--你可以在oracle用户下,看刷新授权前后,权限的变化(比较如下)。
[oracle@lym oracle]$ ls -l --刷新授权前/uo1/oracle/oracle下面各文件的权限
total 16
drwxr-xr-x 3 root root 4096 May 22 06:24 admin
drwxr-xr-x 3 root root 4096 May 22 06:25 oradata
drwxr-xr-x 6 oracle oinstall 4096 May 22 06:19 oraInventory
drwxr-xr-x 3 oracle oinstall 4096 May 22 06:08 product
[oracle@lym oracle]$ ls -l ----刷新授权后/uo1/oracle/oracle下面各文件的权限
total 16
drwxr-xr-x 3 oracle oinstall 4096 May 22 06:24 admin
drwxr-xr-x 3 oracle oinstall 4096 May 22 06:25 oradata
drwxr-xr-x 6 oracle oinstall 4096 May 22 06:19 oraInventory
drwxr-xr-x 3 oracle oinstall 4096 May 22 06:08 product

/////////////////////////////////////////////////////////////////////////////
---- Step 2. 找到oracle为种子数据库提供的控制文件并copy至/u01/app/oracle/oradata/TSH1目录下(在Oracle用户下操作)。
[oracle@lym oracle]$ cd /u01/app/oracle/product/10.2.0/db_1/assistants/dbca/templates/
[oracle@lym templates]$ cp Seed_Database.ctl /u01/app/oracle/oradata/TSH1

////////////////////////////////////////////////////////////////////////////
---- Step 3. 建立pfile文件(在Oracle用户下操作)。
[oracle@lym templates]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@lym templates]$ vi initTSH1.ora --输入以下三行并保存退出
*.db_name=SEEDDATA
control_files='/u01/app/oracle/oradata/TSH1/Seed_Database.ctl'
compatible=10.2.0.1.0

----注:因为Seed_Database.ctl控制文件中记录的db_name为SEEDDATA,所以第一行的设置如此。
/////////////////////////////////////////////////////////////////////////////
---- Step 4. 启动数据库到mount状态,并使用默认的参数建立spfile文件;然后重新启动数据库并更改sga_max_size,sga_target参数的值;然后再次重新启动数据库(具体操作如下)。
[oracle@lym dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 22 06:56:19 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area 113246208 bytes
Fixed Size 1218004 bytes
Variable Size 58722860 bytes
Database Buffers 50331648 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> create spfile from pfile;

File created.

SQL> shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 113246208 bytes
Fixed Size 1218004 bytes
Variable Size 58722860 bytes
Database Buffers 50331648 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> alter system set sga_max_size=200M scope=spfile;

System altered.

SQL> alter system set sga_target=160M scope=spfile;

System altered.

SQL> shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 209715200 bytes
Fixed Size 1218580 bytes
Variable Size 100665324 bytes
Database Buffers 104857600 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL>

///////////////////////////////////////////////////////////////////////////
---- Step 5. 用rman连接数据库
[oracle@lym ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 22 07:22:51 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: SEEDDATA (DBID=3891038516, not open)

RMAN> list backup;

using target database control file instead of recovery catalog

List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1 Full 89.23M DISK 00:00:36 30-JUN-05
BP Key: 1 Status: AVAILABLE Compressed: YES Tag:
Piece Name: /ade/aime_10.2_lnx_push/oracle/oradata/Seed_Database.dfb
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 446074 30-JUN-05 /ade/aime_10.2_lnx_push/oracle/oradata/seeddata/system01.dbf
2 Full 446074 30-JUN-05 /ade/aime_10.2_lnx_push/oracle/oradata/seeddata/undotbs01.dbf
3 Full 446074 30-JUN-05 /ade/aime_10.2_lnx_push/oracle/oradata/seeddata/sysaux01.dbf
4 Full 446074 30-JUN-05 /ade/aime_10.2_lnx_push/oracle/oradata/seeddata/users01.dbf

RMAN>

----可以看到,我们可以利用/ade/aime_10.2_lnx_push/oracle/oradata/Seed_Database.dfb这个备份集来还原数据库。
但是很明显我们系统中并没有这样一个文件/ade/aime_10.2_lnx_push/oracle/oradata/Seed_Database.dfb ,但是查找发现路径/u01/app/oracle/product/10.2.0/db_1/assistants/dbca/templates下有 Seed_Database.dfb文件 。

----此明有两种方法解决此问题,一个是建立一个软链接/ade/aime_10.2_lnx_push/oracle/oradata/Seed_Database.dfb 指向 /u01/app/oracle/product/10.2.0/db_1/assistants/dbca/templates/Seed_Database.dfb 。另一个是创建目录/ade/aime_10.2_lnx_push/oracle/oradata/
并将Seed_Database.dfb copy至其下 。

-- 这里,我们使用第二种方法(具体操作如下):
[root@lym ~]# mkdir -p /ade/aime_10.2_lnx_push/oracle/oradata/
[root@lym ~]# chown -R oracle.oinstall /ade
[root@lym ~]# chmod 775 /ade
[root@lym ~]# su - oracle
[oracle@lym ~]$ cd /u01/app/oracle/product/10.2.0/db_1/assistants/dbca/templates
[oracle@lym templates]$ cp Seed_Database.dfb /ade/aime_10.2_lnx_push/oracle/oradata/
[oracle@lym templates]$

////////////////////////////////////////////////////////////////////////////
---- Step 6. 还原数据库(先在RMAN下执行如下命令)
run {
set newname for datafile '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/system01.dbf' to '/u01/app/oracle/oradata/TSH1/system01.dbf';
set newname for datafile '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/sysaux01.dbf' to '/u01/app/oracle/oradata/TSH1/sysaux01.dbf';
set newname for datafile '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/undotbs01.dbf' to '/u01/app/oracle/oradata/TSH1/undotbs01.dbf';
set newname for datafile '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/users01.dbf' to '/u01/app/oracle/oradata/TSH1/users01.dbf';
restore database;
switch datafile all;
}

-- 然后,执行如下命令可以看到我们所需要的数据文件都还原回来了,但是现在还缺少log file 。
我们现在打开数据库。
[oracle@lym templates]$ cd /u01/app/oracle/oradata/TSH1
[oracle@lym TSH1]$ ls
Seed_Database.ctl sysaux01.dbf system01.dbf undotbs01.dbf users01.dbf
[oracle@lym TSH1]$

-- 因为控制文件中记录的log file路径为 /ade/aime_10.2_lnx_push/oracle/oradata/seeddata 所以要先创建相应的目录并再次刷新其权限(具体操作如下)。
[root@lym ~]# mkdir -p /ade/aime_10.2_lnx_push/oracle/oradata/seeddata
[root@lym ~]# chown -R oracle.oinstall /ade
[root@lym ~]# chmod 775 /ade

-- 然后在sqlplus中执行如下命令:
[oracle@lym TSH1]$ sqlplus / as sysdba
SQL> alter database open resetlogs;

Database altered.

SQL>

-- 此时,在目录/ade/aime_10.2_lnx_push/oracle/oradata/seeddata 下创建了redo01.log,redo02.log,redo03.log,temp01.dbf文件。

-- 我们要更改这几个文件的路径,所以先将数据库关闭,然后cp /ade/aime_10.2_lnx_push/oracle/oradata/seeddata/× /u01/app/oracle/oradata/orcl/
启动数据库到mount状态,并更改日志和临时文件的路径(具体操作如下)
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

[oracle@lym ~]$ cd /ade/aime_10.2_lnx_push/oracle/oradata/seeddata
[oracle@lym seeddata]$ cp redo01.log redo02.log redo03.log temp01.dbf /u01/app/oracle/oradata/TSH1/

-- 然后启动数据库到mount状态,并更改日志和临时文件的路径
SQL> startup mount;
ORACLE instance started.

Total System Global Area 209715200 bytes
Fixed Size 1218580 bytes
Variable Size 104859628 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> alter database rename file '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/redo01.log' to '/u01/app/oracle/oradata/TSH1/redo01.log';

Database altered.

SQL> alter database rename file '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/redo02.log' to '/u01/app/oracle/oradata/TSH1/redo02.log';

Database altered.

SQL> alter database rename file '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/redo03.log' to '/u01/app/oracle/oradata/TSH1/redo03.log';

Database altered.

SQL> alter database rename file '/ade/aime_10.2_lnx_push/oracle/oradata/seeddata/temp01.dbf' to '/u01/app/oracle/oradata/TSH1/temp01.dbf';

Database altered.

SQL> alter database open;

Database altered.

SQL>

-- 到此数据库已经建立,并且数据文件也放到了我们期待的地方。但是还有一个问题,就是数据库名称不是我们事先期待的。
SQL> show parameter name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string SEEDDATA
db_unique_name string SEEDDATA
global_names boolean FALSE
instance_name string TSH1
lock_name_space string
log_file_name_convert string
service_names string SEEDDATA
SQL>

////////////////////////////////////////////////////////////////////////
下面我们将数据库名称SEEDDATA改成我们需要的TSH1 。注意此时仅仅更改参数文件的值是不行的,因为控制文件中同样也记录着数据库的名称。

-- Step 7. 更改数据库名称
-- 首先备份控制文件脚本(具体操作如下)
SQL> alter database backup controlfile to trace as '/tmp/ctl.txt';

Database altered.

SQL> create pfile from spfile;

File created.

SQL>

-- 然后将spfile文件(spfileTSH1.ora)删除,编辑pfile文件(initTSH1.ora)将db_name="SEEDDATA" 改成 db_name="TSH1"(具体操作如下)。
[oracle@lym dbs]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@lym dbs]$ rm spfileTSH1.ora
[oracle@lym dbs]$ vi initTSH1.ora

-- 然后保存对initTSH1.ora的修改并退出。
-- 然后vi /home/oracle/ctl2.txt(参考/tmp/ctl.txt重建控制文件脚本),脚本的内容如下:

CREATE CONTROLFILE REUSE DATABASE "SEEDDATA" set database "TSH1" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/TSH1/redo01.log' SIZE 50M,
GROUP 2 '/u01/app/oracle/oradata/TSH1/redo02.log' SIZE 50M,
GROUP 3 '/u01/app/oracle/oradata/TSH1/redo03.log' SIZE 50M
DATAFILE
'/u01/app/oracle/oradata/TSH1/system01.dbf',
'/u01/app/oracle/oradata/TSH1/undotbs01.dbf',
'/u01/app/oracle/oradata/TSH1/sysaux01.dbf',
'/u01/app/oracle/oradata/TSH1/users01.dbf',
'/u01/app/oracle/oradata/TSH1/tt.dbf'
CHARACTER SET US7ASCII
;


-- 然后重新启动数据库到nomount状态,运行上面建立控制文件的脚本,然后打开数据库(具体操作如下) 。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 209715200 bytes
Fixed Size 1218580 bytes
Variable Size 104859628 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
SQL> @/home/oracle/ctl2.txt

Control file created.

SQL> alter database open resetlogs;

Database altered.

SQL>

如果想在Linux RH5上使用汉字的话,建议把Step8和Step9中稍微修改一下
Step8
从网上下载zysong.ttf文件。到本地
http://download.csdn.net/source/1073202
然后使用命令
mkdir -p /usr/share/fonts/zh_CN/TrueType
cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/
将字体放到以上位置,就可以在安装时,使用汉字了。

Step9中,

[root@lym Server]# vi /home/oracle/.bash_profile --加入内容如下
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=TSH1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

export NLS_LANG=AMERICAN_AMERICA.UTF8

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

添加上红色字体部分,让系统语言和数据库语言一致,那么在使用SQLPLUS的时候,就可以看到中文了,不会再是乱码了。




[9]

[10]

posted @ 2011-04-14 13:07  陳聽溪  阅读(307)  评论(0)    收藏  举报