Oracle 11g 新特性之 Oracle Restart Database 的安装与配置完全详解




Oracle Restart improves the availability of your single-instance Oracle database. Oracle Restart automatically restarts the database instance, the Automatic Storage Management (ASM) instance, the listener, and other components after a hardware or software failure or whenever your database host computer restarts. Server Control (SRVCTL) is the command line interface to manage Oracle processes that are managed by Oracle Restart on a standalone server.

This feature provides improved reliability and automated management of a single-instance Oracle database and the management of any process or application running on the database server.




Oracle Restart 是 Oracle 11g 引入的新特性,是利用 Clusterware 为单实例提供高可用性保护。
在 Oracle 11g R2 中,restart database 依赖于 grid infrastructure 架构,在安装数据库软件之前,需要先安装 grid infrastructure软件。
Oracle Restart database 可以利用 clusterware 提供的 srvctl crsctl 等工具管理数据库,在服务器或进程异常终止时,grid infrastructure 会
自动进行重启,提供高可用性保护。
本文将以安装配置实验的形式详细介绍 Oracle 11g r2 restart database 步骤:


OS:Oracle Enterprise Linux 5.6
Grid Infrastructure 11.2.0.3.0
Oracle Database 11.2.0.3.0


grid --- p10404530_112030_LINUX_3of7.zip
oracle --- p10404530_112030_LINUX_1of7.zip
oracle --- p10404530_112030_LINUX_2of7.zip






1、检查物理内存是否满足安装要求
[root@asm Server]# grep MemTotal /proc/meminfo
MemTotal: 2229472 kB


2、检查swap空间是否满足安装要求
[root@asm Server]# grep SwapTotal /proc/meminfo
SwapTotal: 4292600 kB


[root@asm Server]# free
total used free shared buffers cached
Mem: 2229472 229844 1999628 0 18628 159852
-/+ buffers/cache: 51364 2178108
Swap: 4292600 0 4292600


3、检查处理器架构
[root@asm Server]# uname -m
i686


4、检查/tmp空间是否满足安装要求
[root@asm Server]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
16G 2.9G 12G 20% /


5、检查磁盘空间是否满足安装要求
[root@asm Server]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
16G 2.9G 12G 20% /
/dev/sda1 99M 35M 59M 38% /boot
tmpfs 1.1G 0 1.1G 0% /dev/shm
/dev/hdc 3.0G 3.0G 0 100% /mnt/cdrom


6、检查操作系统版本
[root@asm Server]# cat /proc/version
Linux version 2.6.18-238.el5PAE (mockbuild@ca-build10.us.oracle.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Jan 4 15:50:36 EST 2011


[root@asm Server]# lsb_release -id
Distributor ID: EnterpriseEnterpriseServer
Description: Enterprise Linux Enterprise Linux Server release 5.6 (Carthage)


[root@asm Server]# uname -r
2.6.18-238.el5PAE


7、检查系统是否已安装所需的rpm包
rpm -q binutils-2.17.50.0.6
rpm -q compat-libstdc++-33-3.2.3
rpm -q elfutils-libelf-0.125
rpm -q elfutils-libelf-devel-0.125
rpm -q elfutils-libelf-devel-static-0.125
rpm -q gcc-4.1.2
rpm -q gcc-c++-4.1.2
rpm -q glibc-2.5-24
rpm -q glibc-common-2.5
rpm -q glibc-devel-2.5
rpm -q glibc-headers-2.5
rpm -q kernel-headers-2.6.18
rpm -q ksh-20060214
rpm -q libaio-0.3.106
rpm -q libaio-devel-0.3.106
rpm -q libgcc-4.1.2
rpm -q libgomp-4.1.2
rpm -q libstdc++-4.1.2
rpm -q libstdc++-devel-4.1.2
rpm -q make-3.81
rpm -q sysstat-7.0.2
rpm -q unixODBC-2.2.11-7.1.i386.rpm
rpm -q unixODBC-devel-2.2.11-7.1.i386.rpm


8、修改 UDP/TCP 内核参数
[root@asm Server]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
[root@asm Server]# echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range


9、修改 /etc/hosts 文件
vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.8.160 restart.oracle.com restart
~
10、创建所需的目录和用户及组


groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
useradd -g oinstall -G dba,asmdba,asmadmin,asmoper grid
useradd -g oinstall -G dba,oper,asmdba oracle
echo -n oracle|passwd --stdin grid
echo -n oracle|passwd --stdin oracle




mkdir -p /u01/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle


chown grid:oinstall /u01/app/grid
chown grid:oinstall /u01/11.2.0/grid


chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
chown -R grid:oinstall /u01




11、配置Linux内核参数限制


sed -i 's/kernel.shmmax/#kernel.shmmax/g' /etc/sysctl.conf
sed -i 's/kernel.shmall/#kernel.shmall/g' /etc/sysctl.conf


cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF


/sbin/sysctl -p


12、配置Oracle软件及Grid软件安装用户的限制


cat >> /etc/security/limits.conf << EOF


oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240


grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240


EOF


cat >> /etc/profile << EOF


if [ \$USER = "oracle" ] || [ \$USER = "grid" ];then
if [ \$SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else ulimit -u 16384 -n 65536

fi

umask 022
fi

#############################
export PATH=\$PATH:/u01/11.2.0/grid/bin
#color of grep
alias grep='grep --color=auto'
EOF


cat >> /etc/profile <<EOF








cat >> /etc/profile <<EOF


export TMP=/tmp;
export TMPDIR=\$TMP;
export ORACLE_HOSTNAME=restart.oracle.com;
export CRS_BASE=/u01/app/grid;
export CRS_HOME=/u01/11.2.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=\$CRS_HOME/bin:\$PATH;
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8;

EOF




13、配置 grid 用户环境变量
cat >> /home/grid/.bash_profile <<EOF


export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=restart.oracle.com;
##export ORACLE_SID=+ASM;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/11.2.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH;
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8;
export DISPLAY=192.168.8.100:0.0

EOF




14、配置Oracle用户环境变量
cat >> /home/oracle/.bash_profile <<EOF




export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=restart.oracle.com;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;
export ORACLE_UNQNAME=restart;
export ORACLE_SID=restart;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=/bin:/OPatch:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/u01/app/11.2.0/grid/bin:/root/bin;
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8;
export DISPLAY=192.168.8.100:0.0




EOF




二、开始安装 Grid 软件


1、用 grid 用户解压 grid 软件
[grid@asm soft]$ unzip p10404530_112030_LINUX_3of7.zip
[grid@asm grid]$ ls
doc install readme.html response rpm runcluvfy.sh runInstaller sshsetup stage welcome.html




[grid@restart grid]$ ./runInstaller
Starting Oracle Universal Installer...


Checking Temp space: must be greater than 120 MB. Actual 11437 MB Passed
Checking swap space: must be greater than 150 MB. Actual 4191 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-02-08_10-59-57PM. Please wait ...[grid@restart grid]$




2、在出现的图形化界面中选择“skip software update",然后单击”next“


3、在接下来的界面中有四个选项,其中要安装和配置 Restart datbase,可以选择”Configure Oracle Grid infrastructure for a Standalone Server"
和“Install Grid Infrastructure Software Only”
二者的区别在于,选择前者必须有ASM支持,用于存放ocr文件,而后者则可以用文件系统来存储OCR文件。
同时还要注意,配置 restart database 时,grid 用户必须属于 DBA 组。
由于之前的实验中,我已配置过 standalone server 选项,这里我选择仅安装grid 软件


4、选择 English 和 simplified Chinese


5、然后按照默认操作即可(确保前面的grid用户的环境变量设置正确)


6、安装进度到 94% 时,用root用户按顺序执行如下两个脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/11.2.0/grid/root.sh


[root@restart ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.


Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.


[root@restart ~]# /u01/11.2.0/grid/root.sh
Performing root user operation for Oracle 11g


The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/11.2.0/grid


Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...




Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.


To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user:
/u01/11.2.0/grid/perl/bin/perl -I/u01/11.2.0/grid/perl/lib -I/u01/11.2.0/grid/crs/install /u01/11.2.0/grid/crs/install/roothas.pl




To configure Grid Infrastructure for a Cluster execute the following command:
/u01/11.2.0/grid/crs/config/config.sh
This command launches the Grid Infrastructure Configuration Wizard. The wizard also supports silent operation, and the parameters can be passed through the response file that is available in the installation media.




7、根据执行 root.sh 命令多的提示配置 Stand-Alone Server


[root@restart ~]# /u01/11.2.0/grid/perl/bin/perl -I/u01/11.2.0/grid/perl/lib -I/u01/11.2.0/grid/crs/install /u01/11.2.0/grid/crs/install/roothas.pl
Using configuration parameter file: /u01/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
LOCAL ADD MODE
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node restart successfully pinned.
Adding Clusterware entries to inittab


restart 2013/02/08 23:27:59 /u01/11.2.0/grid/cdata/restart/backup_20130208_232759.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server




8、检查 Stand-Alone Server 的状态


[root@restart ~]# crsctl check has
CRS-4638: Oracle High Availability Services is online
[root@restart ~]# crsctl check css
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
[root@restart ~]# crsctl check evm
CRS-4533: Event Manager is online


对于 Stand-Alone Server 没有 cluster 和 crs 参数,由于没有配置 ASM ,因此 CSS 未启动


9、检查 OCR 文件
[root@restart ~]# cat /etc/oracle/ocr.loc
ocrconfig_loc=/u01/11.2.0/grid/cdata/localhost/local.ocr
local_only=TRUE




[root@restart ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 152
Available space (kbytes) : 261968
ID : 1741811272
Device/File Name : /u01/11.2.0/grid/cdata/localhost/local.ocr
Device/File integrity check succeeded


Device/File not configured


Device/File not configured


Device/File not configured


Device/File not configured


Cluster registry integrity check succeeded


Logical corruption check succeeded

10、Grid 软件安装完成后,用 Oracle 用户安装数据库软件(步骤略,注意选择仅安装数据库软件)


11、用 grid 用户运行netca配置监听,grid 要属于 dba 组才能执行


12、用 oracle 用户运行 dbca 创建数据库,这时创建的数据库就回自动注册到 Grid 软件中,我们可以使用 srvctl 工具对数据库进行管理。
当某个数据库进程意外终止或者服务器重启时,Grid 会自动重启该进程或数据库,这些都是通过加入到 /etc/inittab 文件中的 ohasd 进程完成的。
注意,通过 sqlplus 关闭数据库实例,即使是 shutdown abort ,restart database 也不会自动重启




13、安装完成后验证,Restart database 的高可用性




[grid@restart ~]$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE restart
ora.ons
OFFLINE OFFLINE restart
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 OFFLINE OFFLINE
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE restart
ora.prod.db
1 ONLINE ONLINE restart Open

意外终止 listener


[root@restart soft]# ps -ef | grep LISTENER | grep -v grep
grid 14142 1 0 00:03 ? 00:00:00 /u01/11.2.0/grid/bin/tnslsnr LISTENER -inherit
[root@restart soft]# kill -9 14142




[root@restart soft]# ps -ef | grep LISTENER | grep -v grep
[root@restart soft]# ps -ef | grep LISTENER | grep -v grep
[root@restart soft]# ps -ef | grep LISTENER | grep -v grep
[root@restart soft]# ps -ef | grep LISTENER | grep -v grep
[root@restart soft]# ps -ef | grep LISTENER | grep -v grep
grid 20408 1 0 00:34 ? 00:00:00 /u01/11.2.0/grid/bin/tnslsnr LISTENER -inherit


我们发现杀掉 listener 进程后等待一会,listener会自动重启




意外终止数据库进程
[root@restart soft]# ps -ef | grep pmon | grep -v grep
oracle 16104 1 0 00:23 ? 00:00:00 ora_pmon_prod
[root@restart soft]# kill -9 16104


[root@restart soft]# ps -ef | grep pmon | grep -v grep
[root@restart soft]# ps -ef | grep pmon | grep -v grep
[root@restart soft]# ps -ef | grep pmon | grep -v grep
[root@restart soft]# ps -ef | grep pmon | grep -v grep
[root@restart soft]# ps -ef | grep pmon | grep -v grep
oracle 20783 1 0 00:37 ? 00:00:00 ora_pmon_prod


此外,我们还可以用 srvctl 集群管理工具来管理 restart database,当然和 RAC 环境有些差别,请自己尝试




本文乃本人原创,如需转载请以链接形式注明出处,否则将追究法律责任

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值