Menghe

导航

在Redhat9下安装Oracle9

在安装之前有几个地方需要注意的:
你的交换分区最好有一个G左右那么大,第二你的硬盘分区最好也要有足够大的空间。

下面我那个转贴的中译本:

1、创建用户和组:
[roko@miniroko] su -

[root@miniroko]# groupadd oinstall
[root@miniroko]# groupadd dba
[root@miniroko]# useradd -g oinstall -G dba oracle
[root@miniroko]# passwd oracle


2、准备文件目录:

[root@miniroko]# mkdir -p /opt/ora9/product/9.2
[root@miniroko]# mkdir /var/opt/oracle
[root@miniroko]# chown oracle.dba /var/opt/oracle
[root@miniroko]# chown -R oracle.dba /opt/ora9

3、调节系统内核参数及安装支持软件包:
3.1、首先用命令rpm -qa|grep compat 查看系统中是否安有以下几个软件包:

compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm

如果没有,请拿出你的安装盘,安装以上的包。不要用原文给的那个APT的东东,不熟的人遇上没有解决的依赖性问题的话,就特别讨厌。

3.2、设置内核参数,调节信号灯及共享内存:
[root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem
[root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax
[root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni
[root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall
[root@miniroko]# echo 65536 > /proc/sys/fs/file-max
[root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

当然为了一开机系统就能自动帮你设好这些参数,也可改动 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 536870912
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.ipv4.ip_local_port_range不要改动,可以用cat /proc/sys/net/ipv4/ip_local_port_range 看到红帽子对这个所定义的范围已经符合,而且端口范围比这个小。

3.3、设置oracle对文件的要求:
编辑文件:/etc/security/limits.conf 加入以下语句:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

这个需要重启后才能生效的。但是安装的时候无所谓了。

4、设置oracle的系统环境:
以oracle用户的身份登录:
su oracle

cd ~

编辑它的.bashrc文件加入以的东东:
#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH= $ORACLE_HOME/bin: $ORACLE_HOME/Apache/Apache/bin: $PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib: $LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin: $PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
#export NLS_LANG='croatian_croatia.ee8iso8859p2' (注意这个东东把它注释掉,因为我们用的是中文系统。然而为了能够显示中文加入以下一行:
export LC=en_US

退出,将你下载的三个iso文件准备好。
5、解压你下载的文件:
5.1、新建一个目录:mkdir /mnt/Oracle
5.2、将三个文件拷入新建的目录:cp ln_* /mnt/Oracle
5.3、解压三个文件: cd /mnt/Oracle
gunzip gunzip lnx_920_disk1.cpio.gz
gunzip lnx_920_disk2.cpio.gz
gunzip lnx_920_disk3.cpio.gz
cpio -idmv < lnx_920_disk1.cpio
cpio -idmv < lnx_920_disk2.cpio
cpio -idmv < lnx_920_disk3.cpio
5.4、这个将生成三个文件夹:DISK1, DISK2, DISK3
6、开始安装:
以oracle的用户身份进入:
su oracle
cd ~
/mnt/Oracle/DSIK1/runInstall.sh

在安装的过程中会遇到几个错误:
第一个错误提示关于这个文件ins_oemagent.mk的,不要去管它,选择忽略,我们将在下面的步骤中修复它。
第二错误提示:Error in invoking target install of makefile  $ORACLE_HOME/ctx/lib/ins_ctx.mk
这个时候就先不要选择忽略了,这个时候你要先打开一个终端:以oracle用户的身份登录进去,运行以下的命令:
[oracle@miniroko oracle] $ cd  $ORACLE_HOME/install
[oracle@miniroko install] $ tail make.log

可以看到这个,然后在其下有错误提示:
gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9
我们运行以下的命令来修改它:
[oracle@miniroko] $ cd  $ORACLE_HOME/bin
[oracle@miniroko bin] $ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl
也就重新在这个地方编译一下上面出错的地方。然后再回到安装界面,对那个错误对话框选择忽略。继续安装就行了。

第三个错误会在启动和配置助手程序的时候出错,不要管它,选择忽略就行了。我们在下面的步骤将会对第一个错误和第三个错误进宪修补。

7、修改系统:
以oracle用户的身份登入,执行以下命令:
[oracle@miniroko oracle] $ cd  $ORACLE_HOME/network/lib
[oracle@miniroko lib] $ make -f ins_net_client.mk install

然后编辑这个文件:
oracle@miniroko lib] $vi  $ORACLE_HOME/ctx/lib/ins_ctx.mk找到第13行、第14行由ctxhx:  $(CTXHXOBJ)
 $(LINK)  $(CTXHXOBJ)  $(INSO_LINK)

改为:
ctxhx:  $(CTXHXOBJ)
 $(LINK) -ldl  $(CTXHXOBJ)  $(INSO_LINK)
存盘退出,执行以下命令:
[oracle@miniroko lib] $ make -f  $ORACLE_HOME/ctx/lib/ins_ctx.mk install

现在可以重新启动agents了。
[oracle@miniroko lib] $ /opt/ora9/product/9.2/bin/agentctl start

8、为了方便管理,可以写一个启动脚本:
以ROOt身份进入,编写以下脚本:
#!/bin/bash
#
# (c) denis.klaric@in2.hr
#
# name: /etc/rc.d/init.d/ora9
# description: starts and stops oracle 9i database, TNS listener
# http server, and fixes kernel parameters for oracle


#oracle environment
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH= $ORACLE_HOME/bin: $ORACLE_HOME/Apache/Apache/bin: $PATH
export NLS_LANG='croatian_croatia.ee8iso8859p2'
export ORACLE_SID=tis

export DISPLAY=:0
oracle_user=oracle

# see how we're called

case  $1 in
start)
# fix kernel parameters
echo 250 32000 100 128 > /proc/sys/kernel/sem
echo 536870912 > /proc/sys/kernel/shmmax
echo 4096 > /proc/sys/kernel/shmmni
echo 2097152 > /proc/sys/kernel/shmall
echo 65536 > /proc/sys/kernel/fs/file-max
echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

# start listener, apache and database
su - " $oracle_user"<<EOO
lsnrctl start
apachectl start
sqlplus /nolog<<EOS
connect / as sysdba
startup
EOS
EOO
;;

stop)
# stop listener, apache and database
su - " $oracle_user"<<EOO
lsnrctl stop
apachectl stop
sqlplus /nolog<<EOS
connect / as sysdba
shutdown immediate
EOS
EOO
;;

*)
echo "Usage: ora9 [start|stop]"
;;

esac

存为ora9后,然后用chmod a+x ora9,即可在以后以root身份运行/etc/rc.d/init.d/ora9 start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:
chkconfig --level 3(或者是5) --add ora9
即可。


-----------------------------------------------------------------

cpio - 存取归档包中的文件 
语法 Syntax 
cpio -o [ -aBLuvV ] [ -C bufsize ] [ -c | -H format ][ -K volumesize ] [ [ -O file [, file ... ] ] [ -M message ] ] [ -Pifd,ofd ] 

cpio -i [ -6AbBcdfkmnqrsStTuvV ] [-C bufsize ] [ [ -I file [, file ... ] ] 
[ -M message ] ] [ -Pifd,ofd ] [ pattern ... ] 

cpio -p [ -adlLmruvV ] [ -Pifd,ofd ] directory 

描述 (DEscriptION) 
  cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。 

cpio 有三种操作模式: 
在copy-out模式中, cpio 把文件复制到归档包中。它从标准输入获得文件名列表 (一行一个), 把归档包写到标准输出。生成文件名列表的 典型方法是使用find 命令; 你可能要在 find 后面用上 -depth选项, 减少因为进入没有访问权限的目录而引起的麻烦。 

在copy-in模式中, cpio 从归档包里读取文件, 或者列出归档包里的内容。它从标准输入读入归档包。任何不是选项的命令行参数被视为 shell的通配符模式串 (globbing pattern); 在归档包中, 只有文件名匹配这些模式串的文件才能复制出来。 和 shell 中 不一样, 文件名起始处的 '.' 可以匹配模式串起始处的通配符, 文件名中的 '/' 也可以匹配通配符。 如果没有给出模式串, 那么将读出所有文件。 

  在copy-pass模式中, cpio把文件从一棵目录树复制到另一棵, 它结合了 copy-in 和 copy-out 的操作, 但不使用归档包。 cpio从标准输入读取欲复制的文件名列表; 目标目录作为非选项的命令行参数给出。 

  cpio支持下列的归档格式: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, 和 POSIX.1 tar。 

  "binary"格式是过时格式, 因为它保存文件信息的方法无法应用在不同体系的机器间移植。"old ASCII" 格式可以跨平台使用, 但是不能用于超过 65536 个 i 节点的文件系统中。 "new ASCII" 格式可以跨平台使用, 也适用于任意大小的文件系统, 但不是所有版本的 cpio 都支持; 目前只有 GNU 和 System VR4 的 cpio 支持。"crc" 格式 类似于 "new ASCII" 格式, 同时对每个文件计算校验和。cpio 在创建归档包时算出校验和, 解开文件时进行校验。 "HPUX" 格式用于兼容 HP UNIX 的 cpio, 它用了独特的方法来保存设备文件。 

  "tar" 格式用以兼容 tar 程序。它不能归档文件名超过 100 个字符的文件, 也不能归档特殊文件 (块设备或字符设备)。 "POSIX.1 tar" 格式不能归档文件名超过 255 个字符的文件(小于, 除非文件名的最右边有一个 "/")。 

  缺省情况下, cpio 为了兼容老式的 cpio 程序, 创建 "binary" 格式的归档包。当展开归档包时, cpio 能够自动识别归档包的格式, 而且可以读取在其他字节顺序的机器上创建的归档包。 
  cpio 的某些选项只能用在对应的操作模式上; 参见总览小节, 里面列出了什么选项可以用在什么模式上。 
 

选项 (OPTIONS) 
-0, --null 在copy-out 和 copy-pass 模式中, 认为输入的文件名以 null字符结尾,而不是换行符, 这样即使文件名中包含换行符, 也不影响归档。 GNU find 是生成 null 结尾文件名列表的方法之一。 

-a, --reset-access-time 读取完文件后重置文件的访问时间, 这样看上去就象没被访问过一样。 

-A, --append 追加到已经存在的归档包中。仅用于 copy-out模式。该归档包必须是用 -O 或 -F (--file) 选项指定的磁盘文件。 

-b, --swap 在 copy-in 模式中, 颠倒数据中字中的半字和半字中的字节顺序。 相当于 -sS 使用这个选项,可以在大端数和小端数机器之间转换 32 位整数。 

-B 把 I/O 块大小设置成 5120 字节,最初的块大小是 512 字节。 

--block-size=BLOCK-SIZE 
设置 I/O 块 大小 为 BLOCK-SIZE * 512 字节。 

-c 使用老式的跨平台 (ASCII) 归档格式。 

-C IO-SIZE, --io-size=IO-SIZE 设置 I/O 块大小为 IO-SIZE 字节。 

-d, --make-directories 在需要的地方创建开始目录。 

-E FILE, --pattern-file=FILE 在 copy-in 模式中, 从 FILE 中读取用于匹配文件名的模式串, FILE 中的内容就象 cpio 的非选项参数一样看待。 

-f, --nonmatching 只复制那些不匹配任何给定的模式串的文件。 

-F, --file=archive 使用归档文件名, 而不是标准输入或输出。 如果把其他机器上的磁带机作成归档文件使用, 文件名要用 "HOSTNAME:" 开始。 主机名前面可以加上用户名和一个 '@', 作为访问远程磁带机的用户 (如果你有这样的权限, 一般在用户的 ~/.rhosts 文件中会有这么一项)。 

--force-local 和 -F, -I, 或 -O, 一起用, 即使文件名中含有一个冒号,也把归档文件看作本地文件, 一般说来冒号指出一个远程主机名字。 

-H FORMAT, --format=FORMAT 使用归档格式 FORMAT。 有效的格式在下面列出, 大小写均可. "copy-in" 模式的缺省动作是自动检测归档格式, "copy-out" 的缺省格式是 "bin"。 
  bin 老式的 binary 格式。 
  odc 老式的 (POSIX.1) 跨平台格式。 
  newc 新型 (SVR4) 跨平台格式, 支持大于 65536 i节点的文件系统。 
  crc 新型 (SVR4) 跨平台格式, 并且计算校验和。 
  tar 老式的 tar 格式。 
  ustar POSIX.1 tar 格式, 也能识别 GNU tar 归档文件, 它们相似但不全相同。 
  hpbin HP UNIX 上的 cpio 使用的老式的 binary 格式。(用独特的方法储存设备文件) 
  hpodc HP UNIX 上的 cpio 使用的跨平台格式。 (用独特的方法储存设备文件) 

-i, --extract 进入 copy-in 模式。 
-I archive 使用归档文件名, 而不是标准输入。 如果把其他机器上的磁带机作成归档文件, 文件名要用 "HOSTNAME:" 开始。 主机名前面可以加上用户名和一个 '@', 作为 访问远程 磁带机的用户 (如果你有这样的权限, 一般在用户的 ~/.rhosts 文件中会有这么一项)。 

-k 无效操作; 只是用来兼容其他版本的 cpio。 

-l, --link 如果有可能, 连接文件, 而不是复制。 

-L, --dereference 解除符号连接的关联 (复制符号连接指向的 文件, 而不是连接本身)。 

-m, --preserve-modification-time 当创建文件时, 保留以前的文件修改时间。 

-M MESSAGE, --message=MESSAGE当备份介质(例如 磁带或软盘) 到达卷尾时, 显示一条消息, 提醒用户插入下一卷。如果 MESSAGE 包含字符串 "%d", 它被替换成当前卷号 (从 1 开始)。 

-n, --numeric-uid-gid 以详细方式 (verbose) 显示内容时, 用数字显示 UID 和 GID, 而不是翻译成名称。 

--no-absolute-filenames 在copy-in模式中, 即使它们在归档包中有绝对路径名。也在当前目录中创建所有相关文件, 

-- no-preserve-owner 在 copy-in 和 copy-pass 模式中, 不改变文件的属主关系 (译注: 疑为不保留); 使它们 属于展开它们的用户。这是普通用户的缺省行为, 因此 System V 的用户不致于无意中把文件泄露(give away)。 

-o, --create 进入 copy-out 模式。 
-O archive 使用归档文件名, 而不是标准输出。 如果把其他机器上的磁带机作成归档文件, 文件名要用 "HOSTNAME:" 开始。 主机名前面可以加上用户名和一个 '@', 作为访问远程磁带机的用户 (如果你有这样的权限, 一般在用户的 ~/.rhosts 文件中会有这么一项)。 

--only-verify-crc 当在 copy-in 模式读入 CRC 格式的归档包时, 不展开里面的文件, 而只是测试文件的 CRC 码。 

-p, --pass-through 进入 copy-pass 模式。 
--quiet 不显示复制的块数。 
-r, --rename 交互式文件改名。 
-R  [user][:.][group], --owner [user][:.][group] 在 copy-out 和 copy-pass 模式中,  把所有文件的属主设置为指定的用户和/或用户组。 无论用户还是用户组都必须存在。 如果省略用户组, 但是给出了分隔符 ":" 或 "', 则使用给定用户登录时的用户组。 只有超级用户能够改变文件的属主。 

--sparse 在 copy-out 和 copy-pass 模式中, 把大块数据 0 的文件写成稀疏文件 (sparse file)。 

-s, --swap-bytes 在 copy-in 模式中, 交换文件中每一个半字(字节对) 中的字节。 
-S, --swap-halfwords 在 copy-in 模式中, 交换文件中每一个字(4字节) 中的半字。 
-t, --list 显示输入归档包的内容。 

-u, --unconditional 替换所有文件, 不再提问是否用旧文件替换已经存在的新文件。 
-v, --verbose 列出处理的文件, 加上 -t 选项可以列出一个 'ls -l' 风格的列表。在一个归档包内容的详细列表 (verbose) 中, 如果本地系统不存在归档文件的用户和用户组名称, 它们将被替换成其数字 UID和GID 对应于本地系统的用户和用户组名称。 

-V --dot 每处理一个文件, 显示一个 "."。 
--version 显示 cpio 程序的版本号, 然后退出。

posted on 2006-05-24 09:21  孟和  阅读(329)  评论(0编辑  收藏  举报