作为新手的我前面花了较长的时间来研究在虚拟机linux中安装oracle,安装了好几次,才差不多把它弄懂了,不过我也是看小布老师的教程安装的,下面是我自己的总结,其中包括遇到的一些问题以及解决方法:
用到的工具
centos 4.7 --linux
virtual box --虚拟机
oracle 9i --oracle版本,这里我用的是比较旧的版本,
Xmanager --文件传输还有安装oracle的时候要用的SecureCRT --远程连接,这里要自己设置好局域网网络,否则是登陆不上去的,可以参考这篇文章http://www.cnblogs.com/adforce/p/3363373.html
至于如何安装linux就不多说了,安装Centos注意点:注意分配静态IP不要选择防火墙和SELINUX
安装oracle之前要先在linux中安装一些rpm包
问题1:为什么要安装这些包
这是oracle官方说明,安装一些相关的软件支持包,这些包可以在linux的安装盘里找到。
问题2:在centos输入遇到命令行乱码问题
将页面改成英文
修改i18n文件
#vi
/etc/sysconfig/i18n
--------------内容---------------------
LANG="en_US.UTF-8"
-----------------------------------------
还有一种方法就是改变环境变量LANG
#export
LANG="en_US.UTF-8"
不过这样一重新启动就没有,所以要加到/etc/profile里面,这样一开机就会运行这个变量了。
安装前的准备:
1:先创建两个组
命令:groupadd oinstall
groupadd dba
2:创建oracle的安装目录
mkdir -p /u01/oracle --这里的mkdir -p是递归创建文件夹得意思,如果不加的话要自己先建好一个,再建另一个。
3:创建用户:
useradd -g ointsll -G dba-d /u01/oracle oracle
--g表示主要的组 --G表示不主要的组 -d 指定每个目录成为主文件夹,而不要使用默认值,务必使用绝对路径。
问题3:
bash:
groupadd: command not found
退出换成SU - 再切换到ROOT用户就好了。
su
只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路径
su - 不但能切换到管理员权限而且使用管理员登陆脚本和搜索路径
4:设置环境变量
问题4:为什么要设置环境变量
linux不像windows,有很多软件是自动帮你设置好环境变量的,
这个环境变量就是以后在执行oracle程序时用到的路径,就是程序知道在哪里可以执行这个程序了.而linux不会为你自动配置,所以得你自己写。
命令:进入用户,如su - oracle --这里的oracle是我自己建的用户,名字可以随便取
进入工作目录,命令:cd ~
编辑环境变量:vi .bash_profile
在文件的组后加入
ORACLE_SID=lx92
ORACLE_BASE=/u01 这里
ORACLE_HOME=/u01/92
PATH=$ORACLE_HOME/bin:$PATH:.
LD_ASSUME_KERNEL=2.4.19
DISPLAY=192.168.110:0 --用于安装oracle是用到的xmanager
export ORACLE_SID ORACLE_BASE ORACLE_HOME PATH LD_ASSUME_KERNEL DISPLAY
stty erase ^h --用于设置空格删除键。
问题5:oracle_home与oracle_base的区别:
ORACLE_BASE是oracle的根目录,
ORACLE_HOME是oracle产品的目录,用来安装oracle公司的不用产品。
问题6:Oracle的profile里,PATH=$ORACLE_HOME/bin:$PATH; export PATH,这里的bin:$PATH怎么理解
首先你要知道$XXXX 代表引用XXXXX变量,
$ORACLE_HOME表示引用ORACLE_HOME变量的值
$PATH表示引用$PATH变量的值,
假如你ORACLE_HOME=/opt/ora10g/product/10.2.0
你的PATH=:/usr/bin:/abc/
那么你贴出的这2句话就可以理解为:
PATH=/opt/ora10g/product/10.2.0/bin:/usr/bin:/abc/
也就是说修改path的值,将oracle的bin路径添加到PATH环境变量中
关于PATH:
PATH前面的$表示变量的意思
注意:不建议将.(本目录)加入到PATH中
问题7:
LD_ASSUME_KERNEL 这个变量是确定什么的啊?
原文如下
LD_ASSUME_KERNEL=2.4.19:这会覆盖 NPTL 的实现。这种实现通常都表示使用标准的 LinuxThreads 模型,并启用浮动堆栈的特性。
问题8:
Linux/Unix的profile里,stty erase ^H是做什么用的?
由于终端默认ctrl + backspace为删除操作很不方便,这样设置后直接backspace就能删除了,呵呵。用stty -a可以查看所有终端设置,里面就有这一项
stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数。
查看环境设置变量的情况:
env
| grep ORA
问题9:
这是一条UNIX/Linux的shell命令。env的意思是打印当前的环境变量,竖线“|”的意思是管道,即将env命令所打印出来的东西传给竖线之后的命令处理。grep是正则表达式过滤命令。当遇到包含“oracle“的行时会显示该行。整个命令就是显示包含“oracle”关键字的环境变量。
5:设置内核参数
vi /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
最后 /sbin/sysctl -p 使之生效。
6:解压安装
gunzip *.gz
cpio -idm < ship_9204_linux_disk1.cpio #(should report 1288238 blocks)
cpio -idm < ship_9204_linux_disk2.cpio #(should report 1263504 blocks)
cpio -idm < ship_9204_linux_disk3.cpio #(should report 585396 blocks)
rm -f *.cpio
问题10:
Cpio命令
解压cpio文件
cpio -idmv
常用参数:
-o :将数据copy到文件或设备上
-i :将数据从文件或设备上还原到系统中
-t :查看cpio建立的文件或设备内容
-c :一种比较新的portable format方式存储
-v :在屏幕上显示备份过程中的文件名
-B :让预设的blocks可以增加到5120bytes,默认是512bytes,这样可以使备份速度加快
-d :自动建立目录,这样还原时才不会出现找不到路径的问题
-u :更新,用较新的文件覆盖旧的文件
cpio命令有三种操作方式:
cpio -o
(copy-out) 将系统的文件生成一个cpio格式的包
cpio -i
(copy-in) 将一个cpio格式的包解开
cpio -p
(copy-pattern) 相当于一个cp命令,不进行任何的压包和解包的工作,经常用来复制文件
d参数在目录树被保存时,允许cpio命令创建适合的目录,m参数在保存文件时,保持最后的修改时间。 v参数使得cpio命令显示每一个被拷的文件名
最后用oracle用户运行解压出来的DISK1下面的./runInstall的命令就行了。--注意这里要将xmanager开起来。
下面的就是图形界面了,跟在windows安装差不多,这里就不多讲了。