Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

86

积分

0

好友

4

主题
1#
发表于 2012-8-17 10:29:22 | 查看: 9778| 回复: 4
环境参数:
     OS: Windows 2003/2008
     RDBMS: Sql Server 2005

在使用pump从源端到目标端同步trail文件的过程中发现在源端使用send pump06, status命令得到如下信息:
-----------------------------------------------------------------------------------------------------------------------------------
EXTRACT PUMP06 (PID 6468)
  Current status: Recovery complete: Processing data
  Current read position:
  Sequence #: 1315
  RBA: 4590807
  Timestamp: 2012-08-17 10:07:39.726666
  Extract Trail: ./dirdat/z6

  Current write position:
  Sequence #: 1520
  RBA: 1034
  Timestamp: 2012-08-17 12:12:51.588000
  Extract Trail: ./dirdat/z6
-----------------------------------------------------------------------------------------------------------------------------------
但是在目标端查看已经同步过来的trail文件发现其sequence #已经是1550, 且更新时间与当前的系统时间一致。 而查看目标端的lag,显示差5个小时。

请问pump在传输trail文件的过程中使用checkpoint的机制是怎样的? 为什么会出现trail文件已经同步到目标端,但源端的pump却显示比较长时间的滞后,且当我其send stop命令时起显示
-----------------------------------------------------------------------------------------------------------------------------------
EXTRACT PUMP06 (PID 8036)
  Current status: Recovery complete: Processing data
  Current read position:
  Sequence #: 1315
  RBA: 1645795
  Timestamp: 2012-08-17 06:41:53.073333
  Extract Trail: ./dirdat/z6

  Current write position:
  Sequence #: 1508
  RBA: 1034
  Timestamp: 2012-08-17 10:41:18.932000
  Extract Trail: ./dirdat/z6

PENDING
  STOP request pending end-of-transaction (150133 records so far)
-----------------------------------------------------------------------------------------------------------------------------------
有一个长transaction.
2#
发表于 2012-12-6 09:51:36
每个进程有自己的检查点,各写各的,使用info xxx,detail可以清楚的看到,使用info showch也可以看到当前读的位置,写的位置,每个进程自己写的文件序号跟其他文件的序号没有相等的关系……不知道我是否说清楚了……

回复 只看该作者 道具 举报

3#
发表于 2012-12-17 13:48:58
谢谢lunar姐, 我困惑的就是pump的写对象,就应该是replicat的读对象-----目标端的trail文件。
而之所以出现,pump显示自己目前sequnence 1520, 而目标端显示读为1550,的原因就是, 我觉得的是, pump显示的是它最近一次checkpoint的sequence no,而目标端显示的是它正在处理的sequence no。两者不一样。不知道我的理解对不对?

回复 只看该作者 道具 举报

4#
发表于 2012-12-17 14:04:31
pump进程不写文件吧。pump进程应该是这样工作的,首先根据其参数文件里的RMTHOST主机及 MGRPORT 端口信息,向目标端的mgr进程发起tcp/ip连接请求,如果握手成功,目标端mgr就会自动产生一个后台进程connector进程.实际上目标端的队列文件的写操作是由目标端的connetor后台进程来完成的哦,不要产生一种错觉认为目标端的队列文件是pump进程写的,呵呵。所以好多种情况下pump进程报tcp/ip错误,就是因为connector进程hang到那里导致的。

回复 只看该作者 道具 举报

5#
发表于 2012-12-17 14:20:55
哦,原来还有这么一个进程。那么请问一下,pump的write的sequence no 和 replicat的read 的sequence no的是什么关系呢?请参看该贴的问题描述

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-5-2 11:35 , Processed in 0.045815 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569