改变ogg抽取进程检查点文件中的检查点--相关实验

1) stop extract 
GGSCI (rac1) 38> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     DPFULL      00:00:00      00:00:09   
EXTRACT     RUNNING     EXTFULL     00:00:00      00:00:02   


GGSCI (rac1) 39> stop extract extfull

Sending STOP request to EXTRACT EXTFULL ...
Request processed.

2)从当前抽取获得相关检查点信息:recovery checkpoint、current checkpoint、output checkpoint、trial文件位置 

 
GGSCI (rac1) 40> info extfull,showch

EXTRACT    EXTFULL   Last Started 2016-11-18 09:44   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:29:35 ago)
Log Read Checkpoint  Oracle Redo Logs
                     2016-11-18 10:00:49  Thread 1, Seqno 13, RBA 7248896
                     SCN 0.1523137 (1523137)
Log Read Checkpoint  Oracle Redo Logs
                     2016-11-18 10:01:07  Thread 2, Seqno 20, RBA 6467584
                     SCN 0.1523135 (1523135)


Current Checkpoint Detail:

Read Checkpoint #1

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 4134416
    Timestamp: 2016-11-18 09:43:59.000000
    SCN: 0.1520391 (1520391)
    Redo File: +DATA2/orcl/onlinelog/group_1.286.926146015

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248400
    Timestamp: 2016-11-18 10:00:49.000000
    SCN: 0.1523137 (1523137)
    Redo File: +DATA2/orcl/onlinelog/group_1.286.926146015

  Current Checkpoint (position of last record read in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp: 2016-11-18 10:00:49.000000
    SCN: 0.1523137 (1523137)
    Redo File: +DATA2/orcl/onlinelog/group_1.286.926146015

Read Checkpoint #2

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 4170768
    Timestamp: 2016-11-18 09:44:19.000000
    SCN: 0.1520391 (1520391)
    Redo File: +DATA2/orcl/onlinelog/group_4.291.926147211

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467088
    Timestamp: 2016-11-18 10:01:07.000000
    SCN: 0.1523135 (1523135)
    Redo File: +DATA2/orcl/onlinelog/group_4.291.926147211

  Current Checkpoint (position of last record read in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp: 2016-11-18 10:01:07.000000
    SCN: 0.1523135 (1523135)
    Redo File: +DATA2/orcl/onlinelog/group_4.291.926147211

Write Checkpoint #1

  GGS Log Trail

  Current Checkpoint (current write position):
    Sequence #: 5
    RBA: 1090
    Timestamp: 2016-11-18 10:00:49.919591
    Extract Trail: /ggs/dirdat/sd
    Trail Type: EXTTRAIL

Header:
  Version = 2
  Record Source = A
  Type = 11
  # Input Checkpoints = 2
  # Output Checkpoints = 1

File Information:
  Block Size = 2048
  Max Blocks = 100
  Record Length = 4096
  Current Offset = 0

Configuration:
  Data Source = 3
  Transaction Integrity = 1
  Task Type = 0

Status:
  Start Time = 2016-11-18 09:44:12
  Last Update Time = 2016-11-18 10:00:49
  Stop Status = G
  Last Result = 400

与示例不同的是,这个RAC,有两个节点。
 
3)在./dirchk路径下,会有一个与抽取进程同名的以.cpe为后缀的文件。重命名该文件。这相当于将进程删掉了。 

GGSCI (rac1) 41> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     DPFULL      00:00:00      00:00:09   
EXTRACT     STOPPED     EXTFULL     00:00:00      00:32:36   


[oracle@rac1 dirchk]$ mv EXTFULL.cpe EXTFULL.cpe.bak

GGSCI (rac1) 42> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     DPFULL      00:00:00      00:00:04   


GGSCI (rac1) 43>
 
4)添加相同名称的抽取进程 
GGSCI (rac1) 43> ADD EXTRACT extfull, TRANLOG,THREADS 2, EXTSEQNO 13, EXTRBA 7248896
EXTRACT added.
GGSCI (rac1) 46> alter extract extfull,tranlog,thread 2,EXTSEQNO 20,EXTRBA 6467584
EXTRACT altered.


GGSCI (rac1) 47> info extfull

EXTRACT    EXTFULL   Initialized   2016-11-18 12:11   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:00:03 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 13, RBA 7248896
                     SCN 0.0 (0)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 2, Seqno 20, RBA 6467584
                     SCN 0.0 (0)

GGSCI (rac1) 44>  INFO EXTRACT extfull

EXTRACT    EXTFULL   Initialized   2016-11-18 12:06   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 13, RBA 7248896
                     SCN 0.0 (0)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 2, Seqno 13, RBA 7248896
                     SCN 0.0 (0)


这里current checkpoint和recovery checkpoint是一样的。 
GGSCI (rac1) 48> info extfull,showch

EXTRACT    EXTFULL   Initialized   2016-11-18 12:11   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:02:37 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 13, RBA 7248896
                     SCN 0.0 (0)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 2, Seqno 20, RBA 6467584
                     SCN 0.0 (0)


Current Checkpoint Detail:

Read Checkpoint #1

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

  Current Checkpoint (position of last record read in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

Read Checkpoint #2

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

  Current Checkpoint (position of last record read in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

Header:
  Version = 2
  Record Source = U
  Type = 11
  # Input Checkpoints = 2
  # Output Checkpoints = 0

File Information:
  Block Size = 2048
  Max Blocks = 100
  Record Length = 2048
  Current Offset = 0

Configuration:
  Data Source = 3
  Transaction Integrity = 1
  Task Type = 0

Status:
  Start Time = 2016-11-18 12:11:36
  Last Update Time = 2016-11-18 12:11:36
  Stop Status = G
  Last Result = 0

5)改变recovery checkpoint 
GGSCI (rac1) 49> ALTER EXTRACT extfull,thread 1, IOEXTSEQNO 13, IOEXTRBA 7248400

2016-11-18 12:16:45  INFO    OGG-00988  WARNING: Unsupported operation. This might cause transactional inconsistency. Modifying input checkpoint #1, Oracle thread #1 of EXTRACT: ioseq = 13 iorba = 7248400.
Are you sure you want to continue? yes
EXTRACT altered.


GGSCI (rac1) 50> ALTER EXTRACT extfull,thread 2, IOEXTSEQNO 20, IOEXTRBA 6467088

2016-11-18 12:17:06  INFO    OGG-00988  WARNING: Unsupported operation. This might cause transactional inconsistency. Modifying input checkpoint #2, Oracle thread #2 of EXTRACT: ioseq = 20 iorba = 6467088.
Are you sure you want to continue? yes
EXTRACT altered.

GGSCI (rac1) 52> info extract extfull,showch

EXTRACT    EXTFULL   Initialized   2016-11-18 12:17   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:01:04 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 13, RBA 7248896
                     SCN 0.0 (0)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 2, Seqno 20, RBA 6467584
                     SCN 0.0 (0)


Current Checkpoint Detail:

Read Checkpoint #1

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248400
    Timestamp:
    SCN: Not available
    Redo File:

  Current Checkpoint (position of last record read in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

Read Checkpoint #2

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467088
    Timestamp:
    SCN: Not available
    Redo File:

  Current Checkpoint (position of last record read in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

Header:
  Version = 2
  Record Source = U
  Type = 11
  # Input Checkpoints = 2
  # Output Checkpoints = 0

File Information:
  Block Size = 2048
  Max Blocks = 100
  Record Length = 2048
  Current Offset = 0

Configuration:
  Data Source = 3
  Transaction Integrity = 1
  Task Type = 0

Status:
  Start Time = 2016-11-18 12:17:06
  Last Update Time = 2016-11-18 12:17:06
  Stop Status = G
  Last Result = 0

现在current及recovery检查点信息与刚开始得到的相同了。
6)添加远端trial文件(传输)或者本地trial文件(抽取) ,因为是抽取进程,所以添加本地trail文件
ADD EXTTRAIL /ggs/dirdat/sd, MEGABYTES 50, SEQNO 5 , RBA 1090, EXTRACT extfull


GGSCI (rac1) 58> info extfull,showch

EXTRACT    EXTFULL   Initialized   2016-11-18 12:17   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:07:44 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 13, RBA 7248896
                     SCN 0.0 (0)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 2, Seqno 20, RBA 6467584
                     SCN 0.0 (0)


Current Checkpoint Detail:

Read Checkpoint #1

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248400
    Timestamp:
    SCN: Not available
    Redo File:

  Current Checkpoint (position of last record read in the data source):
    Thread #: 1
    Sequence #: 13
    RBA: 7248896
    Timestamp:
    SCN: Not available
    Redo File:

Read Checkpoint #2

  Oracle Threaded Redo Log

  Startup Checkpoint (starting position in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467088
    Timestamp:
    SCN: Not available
    Redo File:

  Current Checkpoint (position of last record read in the data source):
    Thread #: 2
    Sequence #: 20
    RBA: 6467584
    Timestamp:
    SCN: Not available
    Redo File:

Write Checkpoint #1

  GGS Log Trail

  Current Checkpoint (current write position):
    Sequence #: 5
    RBA: 1090
    Timestamp: 2016-11-18 12:24:36.858865
    Extract Trail: ./dirdat/sd
    Trail Type: EXTTRAIL

Header:
  Version = 2
  Record Source = U
  Type = 11
  # Input Checkpoints = 2
  # Output Checkpoints = 1

File Information:
  Block Size = 2048
  Max Blocks = 100
  Record Length = 4096
  Current Offset = 0

Configuration:
  Data Source = 3
  Transaction Integrity = 1
  Task Type = 0

Status:
  Start Time = 2016-11-18 12:17:06
  Last Update Time = 2016-11-18 12:17:06
  Stop Status = G
  Last Result = 0



GGSCI (rac1) 59>

就这样,创建了一个跟原来一个样的进程。但是正式坏境,还是慎用。
涉及到文档中说的添加测试进程的情况,按照以上步骤添加抽取及应用进程,然后在目标端创建相应应用进程即可,经测试,可用。

<think>好的,我现在需要解决用户提出的问题:OGG在SQL Server 2012上无法抽取日志的问题。用户还提供了几个相关的引用内容,我需要结合这些信息来找到解决方案。 首先,用户提到的错误是OGG无法从SQL Server 2012抽取日志。根据引用[1],在Oracle环境中需要设置`enable_goldengate_replication`参数,但SQL Server可能没有这个参数,所以可能需要类似的配置。不过需要确认SQL Server是否也有类似的设置,比如开启CDC(变更数据捕获)或者复制功能。 然后,参考引用[2]中提到的配置检查步骤,尤其是添加replicat和检查点表的配置是否正确。用户可能在配置OGG抽取进程时遗漏了一些关键参数,或者在指定路径时出错。例如,检查点ogg.ggs_checkpoint是否存在,以及权限是否正确。 引用[3]提到Active Data Guard的故障切换需要将OGG部署到DBFS,但这里的问题是关于SQL Server,所以可能不适用。不过可以联想到是否SQL Server的日志文件路径或权限问题导致OGG无法访问。 引用[4]中的投递进程配置显示需要正确配置rmthost、mgrport以及用户认证信息。用户需要检查抽取进程的配置文件,确保目标主机和端口正确,用户名密码无误,并且网络连接正常。此外,动态解析表是否正确指定了需要捕获的数据库和表。 接下来,可能的错误原因包括: 1. SQL Server的日志未正确配置,未启用CDC或事务日志备份。 2. OGG抽取进程配置错误,比如表名、路径、权限问题。 3. 网络问题导致OGG无法连接到SQL Server实例。 4. SQL Server版本兼容性问题,需要确认OGG是否支持2012版本。 5. 防火墙或安全软件阻止了OGG访问日志文件或网络端口。 解决方案步骤可能包括: 1. 检查并启用SQL Server的CDC功能,确保日志记录足够详细。 2. 验证OGG抽取进程参数文件,确保正确指定了数据库、表和路径。 3. 检查网络连接和端口是否开放,使用telnet或测试工具确认连通性。 4. 确认使用的OGG版本是否支持SQL Server 2012,必要时升级OGG。 5. 检查SQL Server和OGG运行账户的权限,确保有足够的权限读取日志。 6. 查看OGG的错误日志,定位具体的错误信息,根据日志提示调整配置。 此外,用户可能需要参考官方文档或微软的支持文章,确认SQL Server 2012与OGG的兼容性,以及具体的配置步骤。比如,可能需要安装特定的驱动程序或补丁。 最后,生成的相关问题需要围绕OGG配置、SQL Server日志设置、故障排查方法等方面展开,帮助用户进一步理解可能遇到的挑战和解决方案。</think>### OGG在SQL Server 2012无法抽取日志的解决方案 #### **错误原因分析** 1. **日志配置未启用** SQL Server需启用变更数据捕获(CDC)或事务日志备份功能,否则OGG无法读取增量数据[^2]。 2. **OGG进程配置错误** 抽取进程(Extract)参数可能未正确指定数据库、表或路径,例如`rmttrail`路径权限不足或格式错误[^4]。 3. **权限问题** OGG运行账户可能缺乏访问SQL Server日志或目标表的权限。 4. **网络或端口限制** 防火墙可能阻止OGG与SQL Server的通信,或`mgrport`未正确配置。 5. **版本兼容性** OGG版本可能不支持SQL Server 2012,需确认官方兼容性列表。 --- #### **解决步骤** 1. **启用SQL Server的CDC功能** ```sql -- 启用数据库级别的CDC EXEC sys.sp_cdc_enable_db; -- 启用表级别的CDC(以scott.kafka为例) EXEC sys.sp_cdc_enable_table @source_schema = 'scott', @source_name = 'kafka', @role_name = NULL; ``` 完成后检查`sys.databases`确认CDC已启用。 2. **检查OGG抽取进程配置** 编辑抽取进程参数文件(如`d_ka`),确保以下配置正确: ```bash extract d_ka sourcedb <数据库名>@<SQL Server实例>, userid ogg, password ogg rmthost 192.168.1.21, mgrport 7809 rmttrail ./dirdat/ka dynamicresolution table scott.kafka; ``` 需确认: - `sourcedb`格式为`数据库名@实例名`(若为默认实例则省略`@`)。 - `rmttrail`路径存在且OGG用户有写入权限。 3. **配置检查点表** 在SQL Server中创建检查点表并授权: ```sql CREATE TABLE ogg.ggs_checkpoint ( group_name NVARCHAR(50) PRIMARY KEY, checkpoint XML ); GRANT SELECT, INSERT, UPDATE ON ogg.ggs_checkpoint TO ogg; ``` 4. **验证网络和端口** 使用`telnet 192.168.1.21 7809`测试目标主机的MGR进程端口是否可达。 5. **查看OGG错误日志** 在OGG安装目录的`dirrpt`文件夹中查找错误详情(如权限拒绝、表不存在等)。 6. **升级OGG版本** 若使用旧版OGG,需升级至支持SQL Server 2012的版本(如Oracle GoldenGate 12.3或更高)。 --- #### **配置示例** ```bash GGSCI> add extract e_cms, tranlog, begin now GGSCI> add exttrail ./dirdat/ms, extract e_cms GGSCI> edit params e_cms -- 抽取进程参数文件内容 -- extract e_cms sourcedb MyDB@SQL2012, userid ogg, password ogg exttrail ./dirdat/ms dynamicresolution table dbo.test_table; ``` ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丹心明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值