Oracle 11g Data Guard搭建过程中问题解决两例(一)

2014-11-24 17:24:50 · 作者: · 浏览: 2

相关参考:


1、环境背景介绍


使用Oracle 11.2.0.4进行实验,项目是进行Active Data Guard搭建过程。由于环境条件所限,笔者实现在一台物理机上实现Primary和Standby。


SQL> select * from v$version;

BANNER

--------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production

PL/SQL Release 11.2.0.4.0 - Production

CORE 11.2.0.4.0 Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production


2、/dev/shm过小引起故障


其他配置过程和官方推荐安装Active Dataguard方法相同。进行参数配置、密码文件创建、Oracle Net文件配置和Standby端参数文件创建后,使用RMAN进行duplicate过程,脚本如下:


run {

duplicat target database for standby from active database

spfile


parameter_value_convert 'ora11g','ora11gsy'

set db_unique_name='ora11gsy'

set log_archive_max_processes='5'

set fal_client='ora11gsy'

set fal_server='ora11g'

set standby_file_management='AUTO'

set log_archive_config='dg_config=(ora11g,ora11gsy)'

set log_archive_dest_2='service=ora11g async valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ora11g';

}


此时primary和standby实例都在启动状态,运行RMAN连接并执行脚本。


[oracle@SimpleLinux dbs]$ rman nocatalog


Recovery Manager: Release 11.2.0.4.0 - Production on Thu Apr 10 11:21:49 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.


RMAN> connect target sys/oracle@ora11g


connected to target database: ORA11G (DBID=4239941846)

using target database control file instead of recovery catalog


RMAN> connect auxiliary sys/oracle@ora11gsy

connected to auxiliary database: ORA11GSY (not mounted)


执行脚本:


RMAN> @cr_phy_standby


RMAN> run {

2> duplicate target database for standby from active database

3> spfile


4> parameter_value_convert 'ora11g','ora11gsy'

5> set db_unique_name='ora11gsy'

(篇幅原因,有省略……)

sql statement: alter system set log_archive_config = ''dg_config=(ora11g,ora11gsy)'' comment= '''' scope=spfile


sql statement: alter system set log_archive_dest_2 = ''service=ora11g async valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ora11g'' comment= '''' scope=spfile


Oracle instance shut down


connected to auxiliary database (not started)

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of Duplicate Db command at 04/10/2014 11:51:19

RMAN-05501: aborting duplication of target database

RMAN-03015: error occurred in stored script Memory Script

RMAN-04014: startup failed: ORA-00845: MEMORY_TARGET not supported on this system


duplicate过程报错,执行失败。

从分析看,应该是Oracle运行和内部共享内存分配有关。Linux中的/dev/shm对应tmpfs,也就是临时共享内存结构。当前大小为:


[root@SimpleLinux ~]# df -lh

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 48G 13G 33G 28% /

tmpfs 448M 160M 288M 36% /dev/shm


当前系统中包括两个实例对象,消耗的共享内存要超过一个实力的情况。所以需要调节增大这部分大小。


[root@SimpleLinux ~]# vi /etc/fstab



#

# /etc/fstab

# Created by anaconda on Wed Mar 12 08:33:33 2014

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=19248f54-250c-46a0-8e5d-ec26a6a08342 / ext4 defaults 1 1

UUID=5ce24d42-a713-4b6c-8d9b-0d780346e093 swap swap defaults 0 0

tmpf