欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-05-30 10:44:09
...

Oracle安装配置过程中,是与操作系统、存储、网络密切相关的。特别是在Linux、AIX环境中,配置过程相对复杂,一个环节错误可能就

Oracle安装配置过程中,是与操作系统、存储、网络密切相关的。特别是在Linux、AIX环境中,配置过程相对复杂,一个环节错误可能就会引起后续一系列的问题故障。

此外,随着Oracle版本的变化,相同安装项目执行的步骤方法有很大变化。比如Data Guard,发展到11g有三种安装方法,每种方法的配置都有所差异不同。我们很多朋友在安装过程中,往往不在意版本差异,只是简单从网络上搜索一些文章就去实验使用。网络资源的确丰富了我们解决问题的思路和广度,,但是网络中一些只言片语、张冠李戴的说法做法,也的确会给我们造成麻烦。

本篇记录了笔者安装Data Guard过程中遇到的两个小问题解决方法,记录下来留待需要的朋友不时之需。

相关参考:

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

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,也就是临时共享内存结构。当前大小为: