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

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

WBOY
WBOYOriginal
2016-06-07 15:27:351117browse

一、安装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软件时,要先 建立用户等价关系。即执行:

LINUX + ORACLE +RAC 最简化最重要步骤及多数据库自动启动方法exec /usr/bin/ssh-agent $SHELL
LINUX + ORACLE +RAC 最简化最重要步骤及多数据库自动启动方法
/usr/bin/ssh-add

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

参考文档:
http://www.oracle.com/technology/global/cn/pub/articles/chan-ubl-vmware.html
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn