exta进程不能访问+ASM实例的解决方法

  • A+
所属分类:技术

chatGPT账号

exta进程不能访问+ASM实例的解决方法

exta进程需要直接访问+ASM实例来获取PROD4实例的redo文件,因此exta进程必须能够登陆+ASM实例,并且可以找到redo文件的路径并能够正常访问。另外exta进程不仅仅要读取redo文件,有些情况还需要读取归档日志。因此让exta能够正常访问+ASM实例管理的redo和archivelog是成功抽取RPOD4实例的tranlog的前提。

以下是配置exta进程访问+ASM实例的步骤:

配置监听让+ASM实例能够动态注册

1、修改+ASM实例的local_listener参数的值

[oracle@edsir1p8-+ASM ~]$ . oraenv

ORACLE_SID = [+ASM] ? +ASM

[oracle@edsir1p8-+ASM ~]$ sqlplus / as sysasm

SQL> show parameter local

该参数指定了+ASM实例动态往哪个监听上注册,如果为空默认往端口号为1521的监听上注册,如果1521端口号的监听正常启动了可以查看是否注册了+ASM实例。如果要修改local_listener参数的值需要先配置注册目标监听的tnsname,然后修改该参数值。

SQL> alter system set local_listener=tnsname scope=spfile;

或者修改为默认往1521端口的监听上注册:

SQL> alter system set local_listener='' scope=spfile;

2、修改完成后重启数据库加载spfile

SQL> shutdown immediate

SQL> startup nomount

3、等待pmon进程注册+ASM实例到指定监听或者手动注册

手动注册指令:

SQL> alter system register;

4、查看+ASM实例是否动态注册到了指定监听上

[oracle@edsir1p8-PROD4 ~]$ lsnrctl status

截图中显示:+ASM实例已经动态注册到了监听LISTENER上,注册形式为:READY 即动态注册。

在源端配置登录+ASM实例的tnsname

因为实例名称为+ASM,所以在netmgr图形界面上配置tnsname时报错,提示实例名称或者服务名称不符合格式。所以只能通过修改tnsnames.ora文件来添加tnsname。

添加完成后的截图如下:

(tnsnames.ora文件截图)

添加如下内容到tnsnames.ora文件中:

ASM =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = edsir1p8.us.oracle.com)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = +ASM)

(INSTANCE_NAME = +ASM)

)

)

修改完tnsnames.ora文件后执行netmgr调出图形界面,确认tnsname是否能正常显示,如果ASM的tnsname正常显示,说明配置成功。

配置 exta进程的参数文件添加登录+ASM实例的凭证

1、修改exta参数文件添加登录+ASM实例的凭证和其他选项。

在137端:

GGSCI (edsir1p8.us.oracle.com) 13> edit param exta

添加如下内容:

TRANLOGOPTIONS ASMUSER SYS@asm, ASMPASSWORD oracle

说明:登录+ASM实例的用户名为SYS ,密码为oracle

配置完成后截图如下:

exta参数文件参考:ogg/exta_137.txt

2、重启exta进程

GGSCI (edsir1p8.us.oracle.com) 15> stop exta

GGSCI (edsir1p8.us.oracle.com) 15> start exta

查询进程状态信息:

GGSCI (edsir1p8.us.oracle.com) 15>info all

如果exta进程显示为running状态表示启动成功,如果为stopped或者abonden表示启动失败。

3、如果进程启动失败需要查看错误日志信息,从中排错。

GGSCI (edsir1p8.us.oracle.com) 15> view report exta

4、成功启动exta进程后,并且确认其运行状态一直都是running,不会出现频繁的stopped表示可用正常访问+ASM实例了

配置过程中的故障处理

启动exta的进程报错ogg-04466找不到对应的文件和目录,按照%t_%s_%r.dbf格式找归档,但是实际上归档是OMF文件,命名规则是oracle管理的文件。

exta进程启动失败报错:ogg-04466找不到对应的文件和目录,exta进程是按照PROD4中log_archive_format参数指定的归档格式去寻找归档日志的。但是实际的归档日志是OMF的即oracle 管理的文件,命名规则都是由oracle系统指定的,所有肯定找不到对应的文件。

解决方法:

1、切记不能在exta进程的参数文件中指定归档路径

2、解决该报错基本上只能通过重建该进程来实现

GGSCI > delete extract exta

GGSCI> add ext exta tranlog, begin now

GGSCI> add exttrail /home/oracle/goldengate/ra,ext exta , MEGABYTES 20

GGSCI>edit param exta

 

exta进程的参数文件参考:ogg/ exta_137.txt

[oracle@edsir1p8-PROD4 admin]$ cd /home/oracle/software/Goldengate/dirdat

删除该目录下的所的exta进程使用的队列文件

[oracle@edsir1p8-PROD4 dirdat]$ rm -rf ra*

注意:可别删除错了,配置了双活的话该目录下应该还有repb进程的replicate队列rb,千万别把rb*给删除了,那样就需要重新配置双活了。

GGSCI (edsir1p8.us.oracle.com) 17> start exta

启动exta进程,同时在/home/oracle/software/Goldengate/dirdat目录下产生本地抽取队列ra*

GGSCI (edsir1p8.us.oracle.com) 17> info all

确认exta进程的状态,重建后应该可以正常启动了。

本文由 知点 首发于【知点网http://www.zhidnet.com)】未经允许不得以任何方式转载,违者必将追究法律责任

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号
知点

发表评论

您必须登录才能发表评论!