虽然是linux新到不能再新的新手,但是在看了一个星期的资料后还是自我感觉很有进步,因此记录一些细节,当做复习也好,当做留底方便以后系统出毛病看看也好。
整个过程基于这篇文章。
前面两部分比较容易。
一、准备服务器和操作系统
1)最好是安装了图形界面(没安装也没事)
2)如果是通过ssh或者telnet连到linux服务器的,建议用secureCRT,因为报错的时候能看到中文,仅仅是为了这个,我下载的是51cto.com里面的绿色版本什么的。
3)下载linux.x64_11gR2_database_1of2和linux.x64_11gR2_database_2of2
二、安装准备
检查redhat内核版本
[root@redhat ~]# uname -r
2.6.32-131.0.15.el6.i686(这个是32位的,64位的是x86_64)
安装软件包检查
redhat6.1当时刻了4张光盘,这里面没装的软件包在第3张光盘的Packages里面,所以先挂载光盘再安装:
mkdir /mnt/cdrom
mount -t iso9660 /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/Packages (由于忘记切换目录到Packages下,再加上ssh客户端不能显示中文,这里搞了我一天多!)
rpm -ivh *.rpm
[root@redhatsysconfig]# rpm -qa | grepbinutils
binutils-2.20.51.0.2-5.20.el6.i686
binutils-devel-2.20.51.0.2-5.20.el6.i686
[root@redhatsysconfig]# rpm -qa | grepcompat-libstdc++
compat-libstdc++-33-3.2.3-69.el6.i686
[root@redhatsysconfig]# rpm -qa | grepelfutils-libelf
elfutils-libelf-0.152-1.el6.i686
elfutils-libelf-devel-0.152-1.el6.i686
[root@redhatsysconfig]# rpm -qa | grepglibc
glibc-headers-2.12-1.25.el6.i686
glibc-devel-2.12-1.25.el6.i686
glibc-2.12-1.25.el6.i686
glibc-common-2.12-1.25.el6.i686
[root@redhatsysconfig]# rpm -qa | greplibaio
libaio-0.3.107-10.el6.i686
[root@redhatsysconfig]# rpm -qa | greplibgcc
libgcc-4.4.5-6.el6.i686
[root@redhatsysconfig]# rpm -qa | greplibstdc++
libstdc++-4.4.5-6.el6.i686
libstdc++-docs-4.4.5-6.el6.i686
libstdc++-devel-4.4.5-6.el6.i686
[root@redhatsysconfig]# rpm -qa | grepsysstat
sysstat-9.0.4-18.el6.i686
[root@redhatsysconfig]# rpm -qa | grepunixODBC
unixODBC-devel-2.2.14-11.el6.i686
unixODBC-2.2.14-11.el6.i686
修改内核参数,修改后运行sysctl –p 使修改生效
[root@redhat ~]# vi /etc/sysctl.conf
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
fs.aio-max-nr = 1048576
fs.file-max = 6815744
oracle 用户及组的创建
[root@redhat ~]# groupaddoinstall
[root@redhat ~]# groupadddba
[root@redhat ~]# useradd -g oinstall -G dba oracle
[root@redhat ~]# passwd oracle
更改用户oracle 的密码。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@redhat ~]# mkdir -p /u01/oracle
[root@redhat ~]# chown -R oracle:oinstall /u01/oracle
为oracle 用户设置环境变量
[root@redhat ~]# su -l oracle
[oracle@redhat ~]$ vi .bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/OraHome
export ORACLE_SID=test
export ORACLE_OWNER=oracle
export PATH=/usr/sbin:$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
--执行以下命令让配置马上生效或以oracle用户登录使设置生效
$ source $HOME/.bash_profile
设置Shell Limits
a.在/etc/security/limits.conf文件中加入下列行:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
b.在/etc/pam.d/login文件中加入下列行,如果里面没有的话:
session required /lib/security/pam_limits.so
session required pam_limits.so
c.在/etc/profile后加入以下语句:
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 16384
else
ulimit -u 16384 -n 16384
fi
fi
(到这里都很简单,细心点就好了。)
三、安装ORACLE软件
[root@redhat ~]# su -l oracle
[oracle@redhat ~]$ cd database/
[oracle@redhat database]$ ./runInstaller
这里可能会出现这个错误:
Invalid source path '../stage/Components/oracle.swd.oui/11.2.0.1.0/1/DataFiles' specified for unzip. Unzip command failed. Please check oraparam.ini and specify a valid source path. : No such file or directory。
原因可以参考这篇文章的末尾段
大概就是linux.x64_11gR2_database_1of2和linux.x64_11gR2_database_2of2这两个下载的包先不要解压传到系统后再一起解压就能解决这个问题。
关于传到系统。我一开始把这两个压缩包放u盘里,然后挂载u盘,发现文件名都缩短了,后来用ftp传到oracle用户下,文件名就显示正常了,不管怎样,既然用了u盘挂载就简单说一下u盘挂载方法吧。
关于解压。两个压缩包都是zip格式,所以分别unzip file.zip就可以了。分别解压后也是就有一个database目录了。
这个时候再./runInstaller。。。。。如果你安装linux时装了图形界面那恭喜,如果没有,有点麻烦,如果发现连yum也没有,就更麻烦。
装图形界面还是用yum吧,因为就三个命令就完事了,那yum的安装呢?
看前面一段就好了。
跟上一篇一样的,不过有图片,稍微详细一点。
我当时做到第四步的时候可能有点困扰,因为一个说要vi /etc/yum.repos.d/rhel-debuginfo.repo,一个有没说究竟是改哪个,况且我的/etc/yum.repos.d下面没有rhel-debuginfo.repo,看了一些资料后,决定就改这个vi /etc/yum.repos.d/rhel-source.repo,按照上面第二个的介绍去改就好了。试一下yum clean all 然后yum install gcc。
既然yum装好了,装图形界面就
yum install xorg*
yum groupinstall "X Window System"
yum groupinstall Desktop
yum groupinstall "Desktop Platform"
上面4步都是机器自己装,需要点时间。
安装完后,按照网上所说要vi /etc/inittab 把id:3:initdefault:改成id:5:initdefault:(启动默认到图形界面,而不再是文字界面),最后reboot
第一次按照这样做,系统重启后出现有图形界面的乱码(还不是桌面),我在客户端重新用root登录输入startx之后,客户端开始一直报错,一行一行地出现,而服务器那边就能去到图形界面的用户选择,更奇怪的是,这种情况只能用root在图形界面登录,用其他用户登录的话,显示器就一直只有一个鼠标键在屏幕上,桌面是不会出现的。所以图形界面装好后,我就到服务器前继续装。
图形界面好了之后,终于可以
[oracle@redhat database]$ ./runInstaller
又出现报错:
DISPLAY 尚未设置。请设置 DISPLAY 后重试。 根据所使用的 Unix Shell, 您可以使用以下示例中的一个命令来设置 DISPLAY 环境变量:
- 对于 csh: % setenv DISPLAY 192.168.1.128:0.0 - 对于 sh, ksh 和 bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY 使用以下命令来查看所使用的 shell: echo $SHELL 使用以下命令来查看当前的 DISPLAY 环境变量设置: echo $DISPLAY - 确保客户机用户有权连接到 X 服务器。 要允许客户机用户访问 X 服务器, 请以启动会话的用户身份打开 xterm, dtterm 或 xconsole, 并键入以下命令: % xhost + 要测试 DISPLAY 环境变量是否设置正确, 请运行本机操作系统自带的基于 X11 的程序, 例如 'xclock': % <xclock 的完整路径.. 参见下文> 如果无法成功运行 xclock, 请与您的 PC-X 服务器或操作系统供应商联系以获得帮助。 xclock 的典型路径为: /usr/openwin/bin/xclock 按照这篇文章去做就没问题了。再次[oracle@redhat database]$ ./runInstaller
终于可以进入图形界面去安装oracle了,但是乱码了?
这篇东西的后半部分搞掂这个问题。
然后利用netca、dbca创建监听和创建数据库。
这个是总流程。
但是在执行netca时可能会报错:
Command not found
建议先看这个,理解一下。
真正修改.bash_profile的时候按照这个的第3种改,记得改完要让它生效。
我的PATH是在/u01/oracle/product/OraHome/bin
好了,netca命令有了,输入netca回车。
又报错:
Oracle Net Services 配置:Xlib: connection to ":0.0" refused by server Xlib: No protocol specified Error: null 有关详细信息, 请查看跟踪文件: /oradata/oracle/cfgtoollogs/netca/trace_OraDb11g_home1-1204115下午2740.log Oracle Net Services 配置失败。退出代码是1完美解决。
执行完dbca创建数据库后测试一下
用 Oracle 用户 远程登录, 然后
$ sqlplus / nolog
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup;
ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/oracle/product/11.1.0/dbs/initorcl.ora'完美解决
虽然这篇文章里是用的不是11g,所提到的目录不同,但是大体类似,我的目录就是在/u01/oracle下好像就有admin了,然后一步一步找。
解决完这个再试一次startup,又来报错
ORA-00845: MEMORY_TARGET not supported on this system
稍微认真看一下就能明白了。
终于,解决完这一个我就再没有问题了。。。。。。