`

从服务器构建说起(四).Linux下安装配置Oracle

 
阅读更多

从服务器构建说起(四).Linux下安装配置Oracle

草木瓜

20070417

一、序


早在《虚拟机RedHatLinux9安装Oralce92全过程》一文中,(链结:http://blog.csdn.net/liwei_cmg/archive/2006/05/28/759286.aspx)
就详细说明了Linux环境安装Oracle的过程。不过再次尝试去发现了不少漏洞和新问题,
不得不感叹Linux安装配置Oracle的复杂性。本文平台RedHat 企业版4+Oracle 9.2.0.4
服务器构建系列:http://blog.csdn.net/liwei_cmg/category/227512.aspx


二、修正错误

在《虚拟机RedHatLinux9安装Oralce92全过程》一文中,提到:

[注意事项]
1.最好在Windows下解压缩出cpio文件,Winrar支持gz格式。经测试,Linux下执
行gunzip速度太慢。

这是十分不妥的!一方面Windows下Winrar解压缩速度,比起PC Server SCIS,实
在太慢了。另一方面解压缩出的安装文件,在Linux下安装会有大量问题,每遇到
完全大写的文件,就提示没有权限操作。后来在Linux解压安装未发生任何问题。

后分析,当时得出这个结论原因是虚拟机的性能比较低,主观臆断而已。

三、安装与配置中新的问题

除了以上的严重错误,其他安装过程是没有任何问题的。
本次安装,只建立了一个oracle用户和对应组,组名也为oracle。

第一个问题:
在访问Windows共享资源时,smbmount不能打开端口,即mount -t smbfs无效。
原因是Windows机器开了防火墙,禁止了相关端口。

第二个问题:
图形化安装过程,提示不能创建文件,无相关权限,这是由于在Windows下对
gz文件做了解压缩,后来在Linux gunzip即可。

第三个问题:
首次安装,设置oraInventory目录,系统提示用root执行orainstRoot.sh。如果此
后有问题终止安装后,重装发现oraInventory目录不能更改。原因是存在/etc/oraInst.loc
文件。删除后,即可进行设置更改

第四个问题:

Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target install of makefile /home/oracle/ora9/oracle/plsql/lib/ins_plsql.mk

编译make -f ins_plsql.mk提示什么找不到对应的glic2.3 ...

这个问题是由于Oracle安装要求低版本的gcc,原来在虚拟机安装的gcc版本是3.2.2
可以通过,这个企业版本Linux的gcc是3.4.4,后来发现存在/usr/bin/gcc32,将
mv /usr/bin/gcc /usr/bin/gccnew
mv /usr/bin/gcc32 /usr/bin/gcc
再进行安装,没有任何问题,不过安装之后须要改回原样。


第五个问题:
使用dbca时创建数据库时,最后一步出现错误:
home/oracle/ora9/oracle/bin/dbca: line 124: 31614 Segmentation fault $JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

修改dbca,将最后一行改为:
# Run DBCA
$JRE_DIR/bin/jre -native -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
fi

即添加了一个native参数即可。


四、数据库的导入导出

这里采用imp,exp进行针对性的数据导入导出。

1.建立bat文件(expdata.bat),至于bat用法可help 命令查询帮助。内容如下:

copy E:/backup/*.* E:/old_backup
del /q E:/backup/*.*
oracle_bakup.vbs


2.VB Script 脚本 oracle_bakup.vbs:

Option Explicit
On Error Resume Next

Dim fname, cmd
Dim WshShell

Set WshShell = CreateObject("WScript.Shell")

fname = Date
cmd = "exp log=e:/" & fname & ".log file=e:/" & fname & "_.dmp parfile=exp.txt"

WshShell.run cmd
Set WshShell = Nothing
'WScript.Echo cmd

3.exp.txt文件内容:

userid=test/test@zjyx68
buffer=209715200
tables=
(
CNT_INFO,
CNT_OPERATOR
)
compress=yes
consistent=no
grants=yes
indexes=yes
rows=yes
constraints=yes

三个文件均在同一目录,双击执行bat即可,这里需要着重说明的是:

A.字符集的一致性(字符集的经典文章《Oracle字符集问题总结》http://blog.csdn.net/liwei_cmg/archive/2006/06/04/772674.aspx)

B.导入导入段的客户端版本和服务器版本的兼容性,如在9.2客户端导出9.0数据库
再导入时会出现如下错误:

. importing CUSTOM's objects into CUSTOM
IMP-00017: following statement failed with ORACLE error 922:
"CREATE TABLE "LIWEI_TEST" ("NAME" VARCHAR2(10)) PCTFREE 10 PCTUSED 40 INIT"
"RANS 1 MAXTRANS 255 STORAGE(INITIAL 524288 FREELISTS 1 FREELIST GROUPS 1) T"
"ABLESPACE "CUSTOM" NOLOGGING NOCOMPRESS"
IMP-00003: ORACLE error 922 encountered
ORA-00922: missing or invalid option
Import terminated successfully with warnings.

即使创建相关表结构,使用ignore参数仍然出错,将相关语句放在sqlplus执行
会提示NOCOMPRESS为无效选项,这里推测还是版本的兼容性问题,即保证向下兼容。

如用9.2客户端导出9.0数据库,提示
EXP-00056: ORACLE error 942 encountered
ORA-00942: table or view does not exist
EXP-00000: Export terminated unsuccessfully

后使用9.0客户端导入导出,则无任何问题。

C.导入导出的buffer十分重要,如果内存够大,尽量设置大一些,尤其是在导出
的情况,否则频繁的磁盘IO会导致导入导出十分缓慢。

D.对于Package Function Procedure Sequence DBLink之类的导出,实际上就
导出创建语句,可以使用PL/SQL进行操作,导入时只须执行导入的.sql文件即可。


五、最后的说明

相关的系列文章到此就结束了,总体看来十分琐碎,然解决起来通常令人头疼。
故用了大量篇幅罗列记录,以备查阅。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics