前一阵子忽然想学习一下oracle9i下的编程,可是在redhat 9.0 下安装oracle。出现了不少问题,幸运的是都解决了,下面与诸君分享一下心的。
首先 在虚拟机VMWare上安装redhat9.0 ,如果想要中文安装还需要下载一下j2sdk-1_4_2_17-linux-i586.bin 安装JDK,以及安装中文字体需要的sm.sh和font.properties这两个文件,如果没有请给我发邮件caiwei8888@163.com。其他的中文字体比如simsun.ttc
、simsun18030.ttc、tahoma.ttf、tahomabd.ttf。均可在google上搜到。下面开始安装中文字体。
一.安装JDK
在/tmp下建立一个临时的文件夹
---------------------------------------------------
[root@tooth root]# cd /tmp
[root@tooth root]# mkdir javacn
[root@tooth root]# cd javacn
----------------------------------------------------
将 j2sdk-1_4_2_17-linux-i586.bin并保存到/tmp/javacn
给文件加上可执行的权限
----------------------------------------------------
[root@tooth root]# chmod 755 j2sdk-1_4_2_17-linux-i586.bin
----------------------------------------------------
执行文件安装JDK
----------------------------------------------------
[root@tooth root]# ./j2sdk-1_4_2_17-linux-i586.bin
----------------------------------------------------
......(一大堆的license的信息)
询问是否同意,当然选yes
----------------------------------------------------
[root@tooth root]# mv j2sdk1.4.2_17 /usr/j2sdk
----------------------------------------------------
现在JDK还不能算安装完成了,还要设置一下环境变量:
----------------------------------------------------
[root@tooth root]# vi $HOME/.bash_profile
在export PATH前加入下面一段
JAVA_HOME=/usr/j2sdk
export JAVA_HOME
JRE=$JAVA_HOME/jre
export JRE
PATH=$JAVA_HOME/bin:$JRE/bin:$PATH
----------------------------------------------------
存盘退出,执行[root@tooth root]# source .bash_profile 这样设置的环境变量就生效了
二. 安装系统字体
将附件文件解压到/tmp/javacn中,解压后的结果如下所示:
----------------------------------------------------
[root@tooth root]# cd /tmp
[root@tooth root]# cd javacn
[root@tooth javacn]# ls -l
----------------------------------------------------
-rw-r--r-- 1 root root 8102 1970-01-01 font.properties
drwxr-xr-x 9 root root 4096 6月 24 15:36 j2sdk1.4.2_17
-rw-r--r-- 1 root root 12642204 1970-01-01 SimSun18030.ttc
-rw-r--r-- 1 root root 10500352 1970-01-01 simsun.ttc
-rw-r--r-- 1 root root 7764 1970-01-01 sm.sh
-rw-r--r-- 1 root root 260472 1970-01-01 tahomabd.ttf
-rw-r--r-- 1 root root 265528 1970-01-01 tahoma.ttf
下面需要将$JRE/lib中的font.properties文件改名备份,并将/tmp/javacn中的font.properties文件拷贝到$JRE/lib中
----------------------------------------------------
[root@tooth root]# cd $JRE
[root@tooth jre]# cd lib
[root@tooth lib]# mv font.properties font.properties.bak
[root@tooth lib]# cp /tmp/javacn/font.properties ./
----------------------------------------------------
剩下的操作就是执行/tmp/javacn/sm.sh了。
在执行sm.sh后系统后自动重启,所以在执行下面的操作前请一定保存正在进行的工作!
----------------------------------------------------
[root@tooth root]# cd /tmp
[root@tooth tmp]# cd javacn
[[root@tooth javacn]# chmod 755 sm.sh
[root@tooth javacn]# ./sm.sh
----------------------------------------------------
此处操作系统会重新启动。重启后 开始-》控制中心-》字体 可以将那上面四个字体全部修改为宋体simsun。然后确定退出,这是你会发现redhat的中文字体变得舒服多了(^_^)。
然后就是安装oracle9i的准备工作了。
在安装之前有几个地方需要注意的:
你的交换分区最好有一个G左右那么大,第二你的硬盘分区最好也要有足够大的空间。
查看内存命令:grep MemTotal /proc/meminfo
查看交换命令:/sbin/swapon -s
如果交换区不足,可以用以下操作实现:
dd if=/dev/zero of=/swapfile bs=1024 count=65536(建立 /swapfile 档案,单位为 KB,所以这是 64MB)
mkswap /swapfile(将该档案空间格式化为 swap)
swapon /swapfile(立即启用新的 swap 档案)
修改 /etc/fstab 加入下面这一行
/swapfile swap swap defaults 0 0
安装前的准备工作
建立一个用户和组,Oracle 往往要求建立两个组,一个负责安装,另一个负责管理,但很多老资格的DBA都认为建立一个组就足够了。以root用户运行下列命令:
groupadd dba
useradd oracle -g dba
passwd oracle
Oracle安装的位置应遵守OFA( Optimal Flexible Architecture )规范,但在我的机器上,由于空间有限,所以将ORACLE_HOME设定为/u01/oracle,并要确保oracle用户对这个目录可写。
如果/u01/oracle目录不存在,则用mkdir创建。然后进入到soft的前一层目录,执行:
chown –R oracle.dba u01
chmod –R u01 soft
安装和运行Oracle需要配置内核参数,我的电脑具有512M内存。在 /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
修改后运行sysctl -p 命令使得内核改变立即生效。
还需要设置oracle对文件的要求:在/etc/security/limits.conf 文件增加如下内容:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
配置Oracle 的环境变量如下:
export DISPLAY="127.0.0.1:0.0"
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/9.2.0.4
export ORACLE_SID=or9i
export ORACLE_TERM=xterm
export NLS_LANG=american_america.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$ORACLE_HOME/bin:$PATH
;下面这个是中文安装所必须要的一个变量,如果没有它后面的dbca什么的安装出现乱码
export LANG=zh_CN
最好将上边的环境变量写入/home/oracle/.bash_profile 中,使得oracle 每次登录时都带有这些环境变量。
执行 source /home/oracle/.bash_profile使之生效。
把oracle安装盘放到Redhat的硬盘上:
如果需要在硬盘上安装,则需要把oracle安装盘的内容放在Redhat上
在windows中下载oracle安装盘(为.cpio.gz文件);
设置Redhat的网络:在系统设置->网络中设置静态设置的IP地址(与window相似),然后激活。
在Redhat中安装telnet及ftp:在添加/删除应用程序中的FTP服务品中增加FTP服务,在网络服务器中增加TELNET服务,然后确认在服务(系统设置->服务器设置->服务)中启动:telnet、vsftpd、xinetd服务.
在window下通过ftp上传到Redhat(如/mnt/oracle).
准备oracle的安装文件:
在/mnt/oracle中执行:
gunzip ship_9204_linux_disk1.cpio.gz
gunzip ship_9204_linux_disk2.cpio.gz
gunzip ship_9204_linux_disk3.cpio.gz
cpio –idmv < ship_9204_linux_disk1.cpio
cpio –idmv < ship_9204_linux_disk2.cpio
cpio –idmv < ship_9204_linux_disk3.cpio
将生成三个文件夹:Disk1、Disk2、Disk3
查找是否已安装下列软件包:用命令rpm –qa | grep compat(或其它对应名)
compat-gcc-7.3-2.96.118.i386.rpm(存在)
cpp-3.2.2-5.i386.rpm(存在)
glibc-devel-2.3.2-11.9.i386.rpm(存在)
compat-libgcj-7.3-2.96.118.i386.rpm(2)
compat-libgcj-devel-7.3-2.96.118.i386.rpm(2)
nss_db-compat-2.2-20.i386.rpm(2)
gcc-3.2.2-5.i386.rpm(2)
binutils-2.13.90.0.18-9.i386.rpm(1)
glibc-kernheaders-2.4-8.10.i386.rpm(存在)
如果有软件包不存在,则需要安装:
假设compat-libgcj-7.3-2.96.118.i386.rpm不存在,则需要:
解压缩Redhat的安装盘.ISO文件(只需要解压缩1、2即可,因为上述文件都在第一张或第二张盘文件中)
用ftp上传对应文件(/mnt/oracle/rpms)
执行:rpm –ivh compat-libgcj-7.3-2.96.118.i386.rpm,安装对应软件包.
解决安装时中文乱码的问题:
这个是和上面的对应的流程,需要先进行开头所说的安装中文字体。
新建目录/usr/share/fonts/TrueType
从windows拷贝simsun.ttf(simsun.ttc in windows,so change it's name to simsun.ttf)及其他你想要得字体文件到新建的目录/usr/share/fonts/TrueType
ttmkfdir -d /usr/share/fonts/TrueType/ -o/usr/share/fonts/TrueType/fonts.dir
ttmkfdir -d /usr/share/fonts/TrueType/ -o /usr/share/fonts/TrueType/fonts.scale
运行这两个命令来产生fonts.dir fonts.scale这两个文件
chkfontpath --add /usr/share/fonts/TrueType 运行这个命令,把字体路径加入 X 字体服务器的路径中,其实就是加入了/etc/X11/fs/config这个文件中.
重起xwindow
Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib/font.properties.zh中的-tlc-song-都替换成-misc-simsun-(:%s/-tlc-song-/-misc-simsun-)。括号里面是在vi中替换所用的命令。
以上是oracle9i中文安装的准备工作,接下来还有一项重要的工作 kill掉chinput这个进程因为如果不杀掉它,在中文安装时就会有输入框输入不了文字的情况。
在root用户下,执行 ps –ef |grep chinput 记住它的进程号 然后用 “kill -9 进程号” 杀掉,过程执行完后会出现一个对话框,选择关闭就OK了。(这时所有的终端窗口会关闭,所以前面一定要保存哦。^_^)
下面,就可以安装了
解补丁包p3006854_9204_LINUX.zip
# unzip p3006854_9204_LINUX.zip
打p3006854_9204_LINUX.zip补丁
# cd 3006854
# sh rhel3_pre_install.sh
xhost +
su – oracle
在/mnt/oracle/Disk1下执行./runInstaller,将出现与window下相似的界面。
输入Unix 的组名"dba",下一步后,根据提示,需要打开一个新窗口,执行
su - root
/tmp/orainstRoot.sh
一直按"next "键即可。
--------------------------------------------------------------------------------------------------------------------
oracle9204补丁:p3006854_9204_LINUX.zip,p3119415_9204_LINUX.zip,p2617419_210_GENERIC.zip;在安装oracle9204前必须打p3006854_9204_LINUX.zip补丁,p3119415_9204_LINUX.zip和p2617419_210_GENERIC.zip是agent的补丁,如果不打这两个补丁agent就没法正常启动(http://chinaunix.net/jh/19/597500.html)
打agent补丁以修正agent不能正常启动的bug (还是oracle 用户身份)
先停止oracle的一些后台服务
$ sqlplus “sys/as sysdba” ---提示输入oracle sys用户的密码,直接回车就可以
SQL>shutdown immediate
SQL>lsnrctl stop
下面是用oracle用户登录的操作
$ unzip p3238244_9204_LINUX.zip
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/Opatch
$ export PATH=$PATH:/sbin
$ cd ../../ 3238244
$ pwd
/u01/Patch/3238244
$ opatch apply –no_inventory /u01/Patch/3238244
注意:上面这条命令后面的3238244后面一定不要跟”/”。否则会提示错误安装失败。
$find $ORACLE_HOME -name "*.mk" | xargs grep -l dbsnmp
$cd $ORACLE_HOME/network/lib
$make -f ins_oemagent.mk install
$ cd $ORACLE_HOME/network/lib
$ make –f ins_oemagent.mk install
$ sqlplus “sys/as sysdba” --提示输入密码回车略过
SQL>startup
SQL>exit
$ lsnrctl start
运行 $ agentctl start 测试agent代理能否正常工作
$ agentctl start
单机模式( Stand-alone )测试以上安装的数据库组件是否能够正常运转。
首先,我们必须以oracle的身份登录操作系统,以下如不做特殊说明,所有操作
均为oracle帐户执行。
先打开数据库监听程序,输入以下命令:
$ lsnrctl start
当监听进程运转正常后,在控制台键入命令:
$ sqlplus /nolog
然后会进入sqlplus环境,再键入命令:
SQL>conn as sysdba
当询问帐户名以及口令时,依次正确输入即可.
帐户/口令无误后,会显示连接到一个空闲的实例,此时键入命令:
$ startup
启动数据库并打开
(下面这个操作有个前提,你必须先在 root用户下执行过了:xhost + 命令)
另外开启一个控制台,键入命令:
$ oemapp console
打开OEM Console工具,选择单独登录(Launch standalone),点击OK
第一次登录时,要求添加数据库:
按照选项提示,依次输入主机名( Hostname )、端口号( Port Number)、SID以及网络
服务名称( Net Service Name ),其中“端口号”与“网络服务名称”是默认的或自动
生成的,若没有特殊需要,保持默认值.点击OK。
然后点击窗口左边刚刚生成的数据库,会弹出登录窗口要求输入登录信息,
依次输入正确的用户名( sys )、口令,并选择以SYSDBAS身份连接( SYSDBA );
点击OK.不出意外的话数据库连接测试成功。
监听问题:
确保$ORACLE_HOME/network/admin/lstener.ora里面有类似以下的信息
(SID_DESC =
(GLOBAL_DBNAME = ora9i.database)
(ORACLE_HOME = /u01/oracle/9.2.0.4)
(SID_NAME = ora9i)
)
否则,根据实际情况,保证监听文件的完整性。
如果想学习pro * c 编程的朋友请 在安装一次oracle9i 在“installation type”页面选择自定义安装,然后选择重新安装oracle program development 就可以了
如果你想要在另外一台机器上安装 plsql development 进行连接的话需要在那一台机器上安装oracle9i客户端。然后修改 oracle9i客户端安装目录下network->>ADMIN文件夹下的tnsname.ora,将HOST和SERVICE NAME输入相应内容保存,然后启动plsql development。
至此大功告成!GOOD LUCK! 如果有不明的地方与我联系!