对于在Linux单机上安装的Oracle Instance,以前需要配置dbstart或者dbstop脚本来实现在操作系统起停时自动起停数据库实例的操作,现在通过Oracle Restart则无需这两个脚本了。安装其实很简单,实际上没有单独安装Oracle Restart的过程,只需要安装Oracle Grid Infrastructure就可以,在安装的时候选择“仅安装网格基础结构软件”,也可以不配ASM。
安装的准备工作见 Linux 5.8 自定义静默安装Oracle 11gR2 全攻略
配置用户环境
有一点小区别,就是要新建一个grid用户
groupadd asmdba
groupadd asmadmin
groupadd asmoper
useradd -g oinstall -G dba,asmdba,asmadmin,asmoper -d /home/grid -s /bin/bash -m grid
usermod -G dba,asmdba oracle
vi /home/grid/.bash_profile
export ORACLE_BASE=/u01/app/grid
export GI_HOME=/u01/app/grid_home
export ORACLE_HOME=${GI_HOME}
export ORACLE_HOME_LISTNER=${ORACLE_HOME}
export ORACLE_PATH=${ORACLE_HOME}/rdbms/admin
export ORACLE_SID=+ASM
export PATH=${PATH}:${ORACLE_HOME}/bin::~/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib
export SQLPATH=~/script
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
alias ct='crs_stat -t'
配置文件要特别注意,ORACLE_HOME不能在ORACLE_BASE路径下面。(oracle用户的要求相反,ORACLE_HOME要在ORACLE_BASE下面)
静默安装
老规矩静默安装,修改配置文件为 ~/upload/my_grid_install_swonly.rsp , 内容如下
ORACLE_HOSTNAME=xxxx
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
oracle.install.option=CRS_SWONLY
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/grid_home
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
$ ./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /home/grid/upload/my_grid_install_swonly.rsp
顺利执行完安装之后,还是以root身份运行配置文件
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/grid_home/root.sh
重点来了,当执行root.sh之后,有提示信息要求看log文件的,一定要看。日志最后有这样的内容
To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user:
/u01/app/grid_home/perl/bin/perl -I/u01/app/grid_home/perl/lib -I/u01/app/grid_home/crs/install /u01/app/grid_home/crs/install/roothas.pl
To configure Grid Infrastructure for a Cluster execute the following command:
/u01/app/grid_home/crs/config/config.sh
大意就是说,如果是安装standalone的,要运行roothas.pl,如果是RAC,运行config.sh。这里是安装单机的,
# /u01/app/grid_home/crs/install/roothas.pl
配置监听
安装Grid之后,监听已经数据库的启动都由has来负责,所以在grid用户下建立监听。这里可以自动注册
$ ./netca -silent -responseFile /u01/app/grid_home/assistants/netca/netca.rsp
安装顺序差异
如果是先安装Grid,再安装Oracle,那么基本上是一气呵成,不需要额外配置什么东西。但是如果是先安装Oracle,然后安装Grid,就有一些特别重要的调整。
0. 磁盘空间。安装过程中需要至少5.9G空间,实际安装完成只用了不到3G。
1. 确认inventory目录的权限。安装之前要确认grid用户对inventory下的配置文件有写权限
chmod 664 /u01/app/oraInventory/ContentsXML/*.xml
2. 手动注册监听。以grid用户重新配置监听,并且手动注册,切记是grid用户,并且指定grid的ORACLE_HOME
$ srvctl add listener -o $GI_HOME
PS: 如果注册监听过程中遇到TNS-12555: TNS:permission denied问题,检查下/var/tmp/.oracle目录的权限。如果是先安装Oracle,那么这个owner信息是oracle:oinstall,需要修改成grid:oinstall
# chown grid:oinstall /var/tmp/.oracle
3. 手动注册数据库。以oracle用户注册数据库,切记是oracle用户,并且指定oracle的ORACLE_HOME
$ srvctl add database -d vmdb -o $ORACLE_HOME
查看状态
$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....ER.lsnr ora....er.type ONLINE ONLINE centos01
ora.cssd ora.cssd.type OFFLINE OFFLINE
ora.diskmon ora....on.type OFFLINE OFFLINE
ora.evmd ora.evm.type ONLINE ONLINE centos01
ora.ons ora.ons.type OFFLINE OFFLINE
ora.vmdb.db ora....se.type ONLINE ONLINE centos01
$ srvctl config database -d vmdb
Database unique name: vmdb
Database name: vmdb
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Database instance: vmdb
Disk Groups:
Services: