RMAN创建辅助实例(副本数据库)

辅助实例是创建副本数据库的重要一步,一般而言会有下列几个步骤

一、创建辅助实例的密码文件

orapwd file=$\database\PWDjssdup.ora password=oracle entries=30

二、连接实例

注意,windows环境需要先通过ORADIM命令创建一个新的OracleService, Linux环境可以跳过这一步,其它操作还是要继续。

oradim -new -sid jssdup

然后配置监听,修改tnsname.ora。总之能够连接上辅助实例就可以了。

三、创建辅助实例的初始化参数文件

1. 手工创建相应目录

2. 创建本地初始化参数文件并修改参数

在源数据库生成pfile

SQL> create pfile='D:\learnoracle\pfile.ora' from spfile;

用记事打开并更改相应的参数。并添加以下两参数:

db_file_name_convert='oradata\jssweb','oradata\jssdup'
log_file_name_convert='oradata\jssweb','oradata\jssdup'

 3. 在辅助数据库中创建初始化参数文件-在primary数据库生成的pfile基础上修改

SQL> create spfile from pfile='D:\learnoracle\pfile.ora';

 4. 启动辅助实例

接着上一步创建完spfile之后:

SQL> startup force nomount;

 

5. 确保源数据库处于mount或open的状态

 

6. 确认拥有必备的备份

 

7. 分配辅助通道

 首先运行rman连接到目标数据库和辅助实例

set oracle_sid=orcl

rman target/ auxiliary sys/oracle@jssdup

这里可能会出现如下的错误信息:

Recovery Manager: Release 11.1.0.6.0 - Production on Wed Nov 7 01:45:35 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: ORA11G (DBID=4026820313)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections

造成这个问题的原因是,实例虽然启动,但是没有注册到监听。实例是通过PMON进程注册到监听上的,而PMON进程需要在MOUNT状态下才会启动。因此造成了上面的错误。

Oracle给出了两种解决方案,一种方法是对AUXILIARY数据库直接使用/,对TARGET数据库通过网络访问。

a. rman target sys/oracle@orcl auxiliary /

b. 为AUXILIARY数据库设置静态监听

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = jssdup)
(ORACLE_HOME = /data/oracle/product/11.1)
)
)

 

启动正常后分配通道。如下例:

RMAN>RUN

{

ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;

ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;

ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK;

DUPLICATE TARGET DATABASE TO jssdup;

release channel aux1;

release channel aux2;

release channel aux3;

}

 执行到这一步辅助实例就已创建完成了:)

 

删除辅助数据库

-只须通过dbca即可

原文地址:https://www.cnblogs.com/landexia/p/2613124.html