【Oracle】Oracle数据库多实例安装

需求:因为需要从RAC的多实例迁移至单虚拟机的多实例。因此,简要概述一下,如何安装数据库的多实例。

不管是Oracle 11g还是10g的多实例,其基本思路都是一致的。

1.调用dbca

在root账号,运行:

[root@db u01]# xhost +

在oracle账号,运行:

[oracle@db ~]$ export LANG=en_US[oracle@db ~]$ dbca

出现如下页面:

安装新的数据库实例,实践环境名字分别为:
irc3db,managedb,servdb

开始创建数据库:

输入指定的数据库实例名称:

后面的界面是配置:字符集,内存,进程数等,就不一一列出,可以参看以前我写的数据库【Oracle11g和Oracle10g】安装的文档。

安装完毕之后,可以继续调用dbca,看到三个实例是否安装成功。

2.环境变量配置

由于数据库是多实例。因此,需要对应的sid才能进入对应的数据库实例里面,配置的环境变量如下:

[root@arprac02 expbackup]# su - oracle[oracle@arprac02 ~]$ pwd/home/oracle[oracle@arprac02 ~]$ cat .bash_profile ###添加如下内容export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1export NLS_LANG="AMERICAN_AMERICA.zhs16gbk"export ORACLE_SID=irc3dbexport PATH=$ORACLE_HOME/bin:$PATH:$ORA_CRS_HOME/bin:/usr/bin:/usr/X11R6/bin:/bin:/sbinexport LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:$ORACLE_HOME/lib:/usr/lib:/usr/local/libexport TNS_ADMIN=$ORACLE_HOME/network/admin

其中export ORACLE_SID=irc3db,根据指定不同的实例进行修改。

3.修改SGA内存

新建的虚拟机,增加内存。可能会报如下错误:

  1. 使用dbca安装数据库时报错"SGA size can not be greater than、ORA-27102"
  2. ORA-27102: out of memory

虽然服务器增加了内存,但是内存要达到最大功效,需要修改内核参数,这是重点,要记得,考试会考

kernel.shmmax
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的 SGA , 设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及 ServerProcess 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低 ( 在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响 ) ,但是其他时候都不会有影响。

官方建议值:

1 内存为 12G 时,该值为 12*1024*1024*1024-1 = 128849018872 内存为 16G 时,该值为 16*1024*1024*1024-1 = 171798691833 内存为 32G 时,该值为 32*1024*1024*1024-1 = 343597383674 内存为 64G 时,该值为 64*1024*1024*1024-1 = 687194767355 内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471

kernel.shmall:
该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页),

官方建议值:

1 当内存为 12G 时, kernel.shmall = 31457282 当内存为 16G 时, kernel.shmall = 41943043 当内次为 32G 时, kernel.shmall = 83886084 当内存为 64G 时, kernel.shmall = 167772165 当内存为 128G 时, kernel.shmall = 33554432

因此,修改SGA的时候,要考虑的内核参数的修改。

相关文章