当前位置:Gxlcms > mysql > LINUX+ORACLE+RAC最简化最重要步骤及多数据库自动启动方法

LINUX+ORACLE+RAC最简化最重要步骤及多数据库自动启动方法

时间:2021-07-01 10:21:17 帮助过:11人阅读

一、安装LINUX 我安装的是ORACLE公司编译的LINUX 4.4 (5也出来了,但对中文支持不好,乱码) 另外:oracle 10g支持的liunx版本有redhat-2.1, redhat-3, SuSE-9, SuSE-8 or UnitedLinux-1.0 所以可以运行: ./runInstaller -ignoreSysPrereqs 来逃避ORACLE对

一、安装LINUX

我安装的是ORACLE公司编译的LINUX 4.4 (5也出来了,但对中文支持不好,乱码)
另外:oracle 10g支持的liunx版本有redhat-2.1, redhat-3, SuSE-9, SuSE-8 or UnitedLinux-1.0
所以可以运行: ./runInstaller -ignoreSysPrereqs 来逃避ORACLE对操作系统的检查

1、如果这台服务器最重要的作用是安装ORACLE,则直接给ORACLE分配文件系统。如:
/boot 100M,/ 15G,/swap 2G,/opt 20G(将来ORACLE的程序将放在此目录下,/opt相当于WINDOWS的 C:/Program File 文件夹),/OracleData 20G (用来放ORACLE的物理数据库文件),当然如果您的空间够大,多给/ 一些应该也没错。
2、在选择安装软件时:
(1)需要安装“开发”下的所有“开发”及“遗留开发”。如果这些文件不安装,您就需要在操作系统装完后再安装:gcc-3.2.3-2 等等一些程序,验证您是否安装软件的方法是(以刚才那个软件为例):rpm -q gcc
(2)系统 下的“管理工具”和“系统工具”。EL版本和ELsmp的区别是: SMP 是指一台服务器中存在多个CPU,包括现在的多核。如果您的空间够大,就把这2个全部装完,但不要重复安装 ocfs-2-2.6.9-42.0.0.0.1ELocfs-2-2.6.9-42.0.0.0.1ELsmp因为 通过命令查操作系统的内核版本时:uname -r,会发现,可能因为安装的是企业版,所以,出现的是:2.6.42-4.0.1.ELsmp,所以,类似的3个ocfs,只需安装最后的一个ELsmp。(当然,在LINUX 5中,我却发现没有了ELsmp了,估计应该选择ELxen了,看操作系统版本吧,要不就都安装,然后再把没用的删除)。另外,只所以让全部安装,是因为,安装完后,您会发现,这时安装的管理工具和系统工具,都是安好后“应用程序”下的“系统工具”里的东西,反正不会引起冲突。如果您不想全安装,那么至少应该安装:系统工具下所有开头带:ORACLE和ocfs的文件。还有:sysstat 。如果您还想进行远程控制,如WINDOWS下使用Xmanager,则最好安装“系统工具”下的一个以大写 X 开头的程序,以后您会在“应用程序”》》“系统设置”》》“登录屏幕”下配置,选择XDMCP,启用它。
(3)“服务器”下,可以只选“FTP”和“遗留服务器”中的 telnet 和 rsh-server ,后者可能会在RAC中用到。
(4)如果您想要FTP工具,还可在“互联网”中选择gFTP。
(5)安装数据库前,一定要安装下面第一个包(第二个包在RAC时会用到)。
libaio-0.3.105-2.i386.rpm 这个包在32位情况下是此,如果64位,则带*64符号。否则可能会出现:ORA-12547:TNS:lost contact 错误
openmotif21-2.1.30-11.RHEL4.6.i386.rpm (这个可能RAC需要)

二、ORACLE 安装

下面把必要条件写为红色,把重要条件写为蓝色. 把代码写为绿色.

1、只建立一个用户及组,如: oracle dba。当然,最简单的方法是,用系统自带工具进行分配。
附:常用命令(一下只是例子,实际中,我是用图形界面把OracleData用root分给了oracle用户,并在/opt下建立了一个文件夹oracle,也分给了oracle用户及其组):
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata


2、配置:shellmax shellall 等参数(但按照ORACLE官方教材的说法,这一步也可以省略。实践证明,省略这一步,如果仅仅是安装数据库程序,是可以的,但如果您要创建数据库实例,则会提示要配置这些参数)以下代码直接复制粘贴.
cat >> /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
EOF

对以上参数的说明内存大过2g的,就按shmmax(表示最大共享内存)=shmall*1*1024 (shmall=实际内存*1024)。对于32bit的linux来说,不管实际的内存有多大,shmmax的最大值不应该超过 4294967295。

3、配置: .bash_profile中的参数 。这一步虽然不是安装必须的。但如果不配,特别是PATH等,那么以后你要执行命令,如:sqlplus,就要先进到数据库的安装目录,然后在bin下执行./sqlplus,麻烦。

export ORACLE_BASE=/OracleData

export ORACLE_HOME=/opt/oracle #一般人都会在这行写:=$ORACLE_BASE/ora10g 等等,但实际为了提升效率,您大可不必

#export ORACLE_SID=DEMO #实例名,只所以不配,是因为如果你有多个数据库,你根本就没办法配

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK " #一开始我没有配置此参数,发现管理的EM页面竟然是英文。然后就到处google这个参数到底该怎么配,后来才发现,这个参数完全可以不配,其实你dbca的时候会发现,有一页配置时默认字符集竟然是CHS16GBK。一开始出现英文的原因是这个LINUX自带的浏览器是英文的,如果你在你的远程IE中打开,就会是中文了,哈)

PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #最后,在PATH后添加上: :$ORACLE_HOME/bin,当然,这个参数一定要在$ORACLE_HOME定义后哦
如果点击安装后,无法出现X页面,估计还需要设置
export DISPLAY=你的IP:0.0
xhost + (就是让任何机器可以访问本机的图形界面)

4、在安装时,需要确定 ./runInstaller 对ORACLE用户有执行权。
如果您把oracle复制到了本地,那就需要:
chown -R oracle /opt/oracle/Soft(装ORACLE源程序的文件夹)
chmod -R 777 /opt/oracle/Soft
进入Soft, chmod 777 runInstaller

然后就可以执行:./runInstaller 了

三、部分概念及实现多个数据库的自动启动

1、全局数据库名称概念。该名称应包括 ORACLE_SID和服务器域名。如:demo1.ora.com,其中,demo1是ORACLE_SID,ora.com是域名。

2、如果您的机器在安装是有域,则需要:
cat sqlnet.ora
然后屏蔽掉:
#NAMES.DEFAULT_DOMAIN = localdomain
否则,会出现错误:
ORA-12154: TNS:could not resolve service name
参见:http://blog.chinaunix.net/u/15472/showart_286991.html


3、ORACLE数据库的手动启动及多个数据库手动全启动方法
一般是执行:(在oracle用户下)
$ lsnrctl start
$ dbstart
$ emctl start dbconsole
$ isqlplusctl start
如果你有多个数据库,当执行完以上后,还需要设置ORACLE_SID参数,以启动另外一个数据库:
$exopt ORACLE_SID=ORA2
$ lsnrctl start
$ dbstart
$ emctl start dbconsole
$ isqlplusctl start
如果想执行一个命令,就启动多个数据库,同时您的数据库是10g,那么您很幸运,您可以只需在oracle库所有者用户下执行一个命令:dbstart。其原理步骤为:
(1)在 $ORACLE_HOME/bin 下有一个shell脚本dbstart 。实际上它是调用了当时您在建数据库时,最后你用root脚本执行并生成的一个脚本:etc/oratab。这个oratab里面放了您所有的数据库,其形式为多行的:实例名:HOME地址:Y。默认最后一个是N。在dbstart脚本中,会循环查找oratab中的多个行,当遇到Y时,就启动这个库,如果是N,则不启动。
(2)同时幸运的是,在10g中,这个脚本还自带了监听的自启动,所以您只要执行了这个脚本,就不用在执行监听的启动了。但您需要修改这个dbstart脚本的第78行,系统默认把监听的位置指向了:
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle #我也不知ORACLE为何执行此无用目录!?你需要改为一下:
ORACLE_HOME_LISTNER=$ORACLE_HOME #如果您前面没有配$ORACLE_HOME,还可以接指向您的数据库程序存放地址。
(3)我想,既然这个dbstart中可以存放除启动以外的程序,如监听,那也应该可以存放其他程序,如企业管理器。一开始,我把EM的命令放在了监听命令上面,如果是您配置了SID,那么是可以启动成功的;但后来,我经过了几乎一天的测试,才发现这是个愚蠢的做法。应该把命令写进启动数据库的旁边,而不是监听旁边,因为监听是不分那个数据库的,只要执行一次。于是,我把命令放在了第135行,就是代码:echo "$0:Starting up database /"$ORACLE_SID/""的上上行。我添加了:
ORACLE_HOME/bin/emctl start dbconsole #启动企业管理器,加了此行后,在启动时,您会发现启动非常慢!就是因为EM启动慢的原因。当然,您还可以在此行后添加 iSQL的启动:
isqlplusctl start
(4)当然,还建议您把相同位置的相反代码(stop)放进:dbshut 脚本中!

4、LINUX下多个数据库的自启动方法
在您掌握了上面的手动启动方法后,实现LINUX的自启动,实际就是掌握如何想WINDOWS的注册表那样,在RUN下添加一些路径、命令而已。
在LINUX下,启动的最后步骤是启动:/etc/rc.d/rc.local 中的命令。您只需要在最后一行添加下面代码即可:
su - oracle -c "dbstart"
LINUX的服务启动实际是在:/etc/rc.d/init.d 目录下,您甚至可以编一个脚本放到此目录下,就可以启动时执行了!

四、数据的导入与导出
在10g的EM下,要用一般用户进行数据的导入与导出,要先进入sys用户,然后给这个一般用户分配“管理员”权限,然后才能导入、导出。


五、其他
如果您正想建立一个 Tomcat 的WEB SERVER,那么您就不用很费劲的下载庞大的JDK了,因为ORACLE 10g在安装时,已经同时安装了JDK(应该是1.4版),位置在$ORACLE_HOME下的JDK文件夹中。您在配置tomcat时,只需要把 JAVA_HOME变量指向这个目录就行了。

好了,以上是我折腾了好些日子才总结出的经验,如果还有其他心得,我会陆续补充上的;如有不妥的地方,大家再切磋吧。


六、RAC
前段时间安装了多次RAC,经验如下:

1、在RAC安装帮助文档中,有的会建立多个用户组,如oinstall,dba,实际只需要建立一个dba;还把oracle用户的目录建在了多个目录 中,其实也不需要,我是建立在了 /u01 中了,然后修改了其下的.bash_profile文件。如果要建立 export ORACLE_BASE,最好建在/u01/app/ 下,即不要建在/01的根目录下,免得和其他用户文件冲突。
2、接上,要同时建立一个用于方OCR和表决磁盘的OCFS2格式分区。即: /ocfs 。以后在ASM时,不要对这个分区挂载,因为它要建立OCFS2分区。后来,在任何一个操作系统给这个分区添加文件后,在另外的操作系统中都可以看到。
2、 把ORACLE参数放在用户目录下的 .bash_profile或 .profile都行,好像 .profile会开机执行一样,区别:
和你使用的shell有关系
.profile 是Bourne Shell (sh)的配置文件.
.bash_profile是bash特有的, 由于bash被设计成兼容sh, ksh, 并有csh的特征, 所以会在用户主目录依次查找.bash_profile, .bash_login, .profile并用找到的第一个作为自己的配置文件.
在Linux下sh是bash的一个链接, 如果bash使用sh命令启动的, 就会以sh兼容方式运行使用.profile

3、参数:NLS_LANG和LANG最好直接设为:
="SIMPLIFIED CHINESE_CHINA.ZHS16GBK "
4、配置时间同步。否则后来在安装OCR时会出现错误:in the future。把 clock等内容放在 /boot/一行的后面,不能换行。
5、安装ORACLE软件时,要先 建立用户等价关系。即执行:

exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add

否则,安装数据库时,因为要同时在RAC1和RAC2上都安装,所以会出现 OUI-35000错误。

参考文档:
http://www.oracle.com/technology/global/cn/pub/articles/chan-ubl-vmware.html

人气教程排行