SAP 15.7.1 SP300 Replication Server Quick Start Guide

SAP 15.7.1 SP300 Replication Server Quick Start Guide

Below you will find brief information for SAP Replication Server 15.7.1 SP300. This guide provides instructions on how to install and configure SAP Replication Server for use with the ASE to ASE setup. This guide also includes information on how to manage the replication server, including starting and stopping the server, and viewing the server logs. Additionally, it provides information on how to use the SAP Replication Server for multi-node availability and establishing a hot backup application. It provides step-by-step instructions on how to add and configure both primary and secondary databases, as well as how to manage replication definitions and subscriptions. The guide also discusses how to manage the replication of both data definition language (DDL) and data manipulation language (DML) statements, and includes information on troubleshooting potential issues.

advertisement

Assistant Bot

Need help? Our chatbot has already read the manual and is ready to assist you. Feel free to ask any questions about the device, but providing details will make the conversation more productive.

SAP Replication Server 15.7.1 SP300 Quick Start Guide | Manualzz

SAP Replication Server 15.7.1 SP300

文档版本:

1.0 – 2015-09-03

ASE

ASE 快速入门指南

PUBLIC

内容

1

约定

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2

2.1

开始之前

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

前提条件

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.2

获取许可证

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.3

系统要求

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.4

使用示例设置复制环境

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.5

标识安装目录

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.6

SMP 下载 SAP Replication Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.7

interfaces 文件中添加服务器条目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

Interfaces 文件中添加服务器条目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.8

创建

Sybase 用户帐户. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3

安装和配置

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.1

装入安装介质

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.2

GUI 模式下进行安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.3

配置

SAP Replication Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.4

验证配置

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

4

4.1

管理

SAP Replication Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

启动

SAP Replication Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

4.2

停止

SAP Replication Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

4.3

查看

SAP Replication Server 日志. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

5

多节点可用性

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

5.1

多节点可用性图

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

5.2

SAP Replication Server 中添加主数据库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

5.3

SAP Replication Server 中添加复制数据库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

5.4

将主数据库标记为要复制

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

5.5

查看有关数据库复制定义的信息

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

5.6

查看有关数据库预订的信息

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

5.7

复制

DDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

5.8

复制

DML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

6

6.1

热备份应用程序

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

热备份应用程序图

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

35

6.2

创建逻辑连接

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

2

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

内容

6.3

SAP Replication Server 中添加活动数据库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

6.4

将活动数据库标记为要复制

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

6.5

SAP Replication Server 中添加备用数据库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

6.6

初始化备用数据库

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

6.7

切换活动数据库和备用数据库

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

6.8

在热备份环境中复制

DDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

6.9

在热备份环境中复制

DML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

6.10

跟踪目标数据库的

SAP Replication Server 事务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

6.11

用于提高性能的复制定义

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

创建复制定义

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

6.12

SQL 语句复制用于热备份. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

7.4

7.5

7.6

7.7

7.8

7

7.1

7.2

7.3

实现和重新同步

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

情形

1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

方案

2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

方案

3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

方案

4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

情形

5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

情形

6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

方案

7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

方案

8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

8 SAMPLE_RS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

8.1

创建

SAMPLE_RS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

8.2

刷新

SAMPLE_RS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

8.3

从系统中删除

SAMPLE_RS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

ASE 到

ASE 快速入门指南

内容

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

3

1

约定

SAP® 文档中使用以下样式和语法约定。

样式约定

1:

关键字

等宽字体(固定宽度)

<等宽斜体>

<斜体>

粗体 san serif

定义

● SQL 和程序代码

● 完全按照所示输入的命令

● 文件名

● 目录名

SQL 或程序代码段中,用户指定的值的占位符(请参见下面的示例)。

● 文件名和变量名

● 对其它主题或文档的交叉引用

● 在文本中,用户指定的值的占位符(请参见下面的示例)

● 文本中的词汇表术语

● 命令、函数、存储过程、实用程序、类和方法的名称

● 词汇表条目(在词汇表中)

● 菜单选项路径

● 在编号任务或过程步骤中,您单击的用户界面 (UI) 元素,如按钮、复选框、图标

如有必要,接下来会在文本中对占位符(特定于系统或设置的值)进行说明。例如:

运行:

<installation directory> \start.bat

其中 <installation directory>

是应用程序的安装位置。

4

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

约定

语法约定

|

( )

,

...

2:

关键字

{ }

[ ]

定义

大括号表示必须至少选择括号中的一个选项。不要在输入命令时键入大括号。

中括号表示可以选择括号中的一个或多个选项,也可不选。不要在输入命令时键入中括号。

小括号应作为命令的一部分输入。

竖线表示只能选择一个显示的选项。

逗号表示可以选择任意多个显示的选项,逗号作为命令的一部分输入以分隔选项。

省略号(三点)表示可以将最后一个单元重复任意多次。不要在命令中包括省略号。

区分大小写

● 所有命令语法和命令示例都以小写形式显示。但是,复制命令名称不区分大小写。例如,RA_CONFIG、

Ra_Config 和 ra_config 是等效的。

● 配置参数的名称区分大小写。例如,Scan_Sleep_Max 与 scan_sleep_max 不同,前者将被解释为无效参数

名称。

● 复制命令中的数据库对象名称不区分大小写。但是,若要在复制命令中使用混合大小写的对象名(以与主数据

库中混合大小写的对象名相匹配),请用引号字符分隔该对象名。例如:

pdb_get_tables "

<TableName>

"

● 根据有效的排序顺序,标识符和字符数据可能要区分大小写。

○ 如果使用区分大小写的排序顺序(如“binary”),则必须用正确的大写和小写字母组合形式输入标识符和字

符数据。

○ 如果使用不区分大小写的排序顺序(如“nocase”),则可以用任意大写或小写字母组合形式输入标识符或

字符数据。

术语

SAP® Replication Server® 可与各种组件结合使用,实现在

SAP® Adaptive Server® Enterprise (SAP® ASE)、

SAP HANA® 数据库、SAP® IQ、Oracle、IBM DB2 UDB 和

Microsoft SQL Server 等受支持的数据库之间进行复

制。

SAP Replication Server 对 Replication Server 系统数据库 (RSSD) 使用 SAP ASE,或者对嵌入式

Replication Server 系统数据库

(ERSSD) 使用 SAP® SQL Anywhere®。

Replication Agent

™ 是用于描述适用于 SAP ASE、SAP HANA 数据库、Oracle、IBM DB2 UDB 和 Microsoft

SQL Server 的

Replication Agent 的通用术语。 具体的名称包括:

RepAgent - 适用于

SAP ASE 的 Replication Agent 线程

Replication Agent for Oracle

Replication Agent for Microsoft SQL Server

Replication Agent for UDB

– 用于 Linux、Unix 和 Windows 上的 IBM DB2

Replication Agent for DB2 for z/OS

ASE 到

ASE 快速入门指南

约定

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

5

2

开始之前

了解创建简单复制环境的前提条件、准则和假设。

相关信息

6 页上的

“前提条件”

6 页上的

“获取许可证”

7 页上的

“系统要求”

7 页上的

“使用示例设置复制环境”

8 页上的

“标识安装目录”

8 页上的

“从 SMP 下载 SAP Replication Server”

9 页上的

“向 interfaces 文件中添加服务器条目”

10 页上的

“创建 Sybase 用户帐户”

2.1

前提条件

熟悉设置复制系统的前提条件。

您必须熟悉

SAP ASE 数据服务器并了解 SAP 复制。

您必须具有

SAP Replication Server 和 SAP ASE 的有效许可证。

使用具有同一命名的数据库的不同服务器。但是,您可以将位于不同服务器上的复制数据库替换为具有主数

据库的同一服务器上的不同数据库。

TCP/IP 连接必须可用。

2.2 获取许可证

请在开始安装之前获取有效的

SySAM 许可证。

上下文

6

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

开始之前

有关

SAP Replication Server 产品版本和许可选项(例如子容量许可)的详细信息,请参见《安装指南》中的

“获取许可证”。 有关配置 SySAM 许可的详细说明,请参见产品文档网站 ( http://sybooks.sybase.com

) 上的

SySAM 用户指南》。

2.3 系统要求

确保要在其上安装复制组件的目标计算机满足最低内存和磁盘空间要求。

请参见平台安装指南中的

“系统要求”。

2.4 使用示例设置复制环境

提供的示例可引导完成复制环境设置。

以下示例介绍如何:

安装

SAP Replication Server

配置并验证软件安装

将主数据库和复制数据库添加到

SAP Replication Server

将数据和

DDL 从主数据库复制到复制数据库

管理热备份应用程序

管理实现

在使用这些示例设置复制环境时,请遵循以下常规说明:

某些目录、文件、可执行命令和示例是仅为

Solaris 提供的;请针对 Windows 或其它 UNIX 和 Linux 平台

相应地进行调整。

对于对象名称和连接名称,请勿使用

SAP Replication Server 的保留字。此软件还保留了所有以“rs_”开头

的关键字和标识符。请参见《参考手册》中的

“保留字”。

可自定义示例中的值以满足您复制环境的需求。

这些示例进行了多个假设:

简单的复制环境使用三个

SAP Adaptive Server Enterprise (SAP ASE) 数据库和一个 SAP Replication

Server。主数据库是要复制更改的源;复制数据库是更改应用的位置,而

Replication Server 系统数据库

(RSSD) 保留一个

SAP Replication Server 的系统表。每个 SAP Replication Server 需要一个 RSSD,而且在

生产环境中,必须像其它关键数据库或文件一样维护

RSSD。

注意

本示例场景不讨论嵌入式

Replication Server 系统数据库 (ERSSD)。

生产环境中可以有多个

SAP Replication Server。这些示例讨论如何安装和配置在现有 SAP ASE 中具有

RSSD 数据库的单个

SAP Replication Server。

复制环境使用标准

SAP ASE 安装中提供的 pubs2 数据库。有关安装 pubs2 数据库的信息,请参见《SAP

Adaptive Server Enterprise 安装指南》中的

“安装样本数据库”。

ASE 到

ASE 快速入门指南

开始之前

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

7

2.5 标识安装目录

SAP SYBASE 环境变量为安装 SAP Replication Server 标识安装路径。

在主机驱动器上选择一个作为安装和配置活动接收位置的路径。

例如: /software/sybase

2.6

SMP 下载 SAP Replication Server

SAP Service Marketplace (SMP) 下载 SAP Replication Server。

先决条件

SMP 登录

ID 和口令。

过程

1. 转到 https://websmp204.sap-ag.de/

,然后输入登录

ID 和口令。

2. 从产品列表中选择

SAP Replication Server;根据版本和平台选择所需的软件。

3. 基于许可证模型(服务器提供服务或非服务器提供服务)和许可证类型生成许可证:

○ 应用程序部署 CPU 许可证 (AC)

○ 应用程序部署其它许可证 (AO)

○ 应用程序部署备用 CPU 许可证 (BC)

○ CPU 许可证 (CP)

○ 开发和测试许可证 (DT)

○ 其它许可证 (OT)

○ 备用 CPU 许可证 (SF)

○ 服务器许可证 (SR)

○ 单点位置许可证 (SS)

注意

要生成许可证,必须提供主机名、

MAC 地址和

CPU 数等信息。

4. 下载产品许可证,并在安装后将其放在产品许可证目录中:

○ $SYBASE/SYSAM-2_0/licenses(UNIX 或 Linux)

○ %SYBASE%\SYSAM-2_0\licenses (Windows)

其中 <$SYBASE>

<%SYBASE%>

是安装产品的位置。

8

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

开始之前

5. 下载安装文件,然后将所有安装映像解压缩并提取到本地驱动器上。

2.7

interfaces 文件中添加服务器条目

interfaces 文件包含复制系统中每个

SAP Replication Server 和数据服务器的网络定义。 interfaces 文件在 UNIX

平台上位于

$SYBASE/interfaces,在 Microsoft Windows 平台上位于 %SYBASE% \ini\sql.ini。

在现有

SAP Sybase 安装目录中安装 SAP Replication Server 时,安装程序会将 SAP Replication Server 信息

添加到现有

interfaces 文件中。 在单独的安装目录中安装 SAP Replication Server 时,安装程序会创建一个新的 interfaces 文件。 在这种情况下,您将有两个

interfaces 文件 - 一个针对现有 SAP 应用程序,另一个针对 SAP

Replication Server。

要允许

SAP Adaptive Server Enterprise (SAP ASE) 和 SAP Replication Server 进行通信,必须:

SAP ASE 使用的 SAP interfaces 文件中为 SAP Replication Server 添加条目

SAP Replication Server interfaces 文件中为主和复制 SAP ASE 添加条目

如果使用直接装载实现,则

interfaces 文件需要 Replication Agent 位置的条目。

对于每个服务器,您都需要:

服务器名

主机名

端口号

相关信息

9 页上的

“向 Interfaces 文件中添加服务器条目”

2.7.1

Interfaces 文件中添加服务器条目

要在

SAP Replication Server interfaces 文件中为主数据库服务器和复制数据库服务器添加条目,请使用 dsedit。

过程

1. 导航至 %SYBASE%\OCS-15_0\bin (Windows),或 $SYBASE/OCS-15_0/bin (UNIX)。

2. 在

Windows 上,双击 “dsedit.exe”。

ASE 到

ASE 快速入门指南

开始之前

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

9

UNIX 上,输入: dsedit

3. 选择

“InterfacesDriver”,单击“确定”。

4. 选择

“服务器对象” “添加” 。

5. 输入主数据库服务器的名称。单击

“确定”。

6. 输入主数据库服务器的主机名和端口号。例如: chaucer, 35356

7. 单击

“确定”。

8. 选择

“服务器对象” “添加” 。

9. 输入复制数据库服务器的名称。单击

“确定”。

10. 输入复制数据库服务器的主机名和端口号。例如: johnson, 9756

11. 单击

“确定”两次,然后选择 “文件” “退出” 。

2.8 创建

Sybase 用户帐户

要确保使用一致的所有权和特权来创建

SAP 产品文件和目录,请创建系统管理员帐户。

上下文

必须由具有

read、write 和 execute 特权的用户(例如系统管理员)来执行所有安装和配置任务。 对于

Windows,用户必须具有管理员特权。

过程

1. 若要创建系统管理员帐户,请选择现有帐户,或创建新帐户并为其分配用户

ID、组 ID 和口令。

此帐户有时称为

“sybase”用户帐户。请参见操作系统文档获取创建新用户帐户的操作说明。

如果已安装

SAP 的其它软件,则“sybase”用户已存在。

2. 请验证您是否可以使用此帐户登录计算机。

10

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

开始之前

3

安装和配置

安装和配置主题介绍如何安装

SAP Replication Server,然后对其进行配置以适合您的环境。

相关信息

11 页上的

“装入安装介质”

12 页上的

“在 GUI 模式下进行安装”

14 页上的

“配置 SAP Replication Server”

19 页上的

“验证配置”

3.1

装入安装介质

如果您使用

CD 或 DVD 进行安装,请装入安装介质。

上下文 mount 命令的位置特定于节点,可能与此处介绍的说明不同。如果无法使用所示的路径在相应的驱动器中装入

安装介质,请查阅操作系统文档或与系统管理员联系。

● 在 HP-UX 上:

注销,然后以

“root”身份登录,并发出:

mount -F cdfs -o ro device_name /mnt/cdrom

接下来,以

“root”身份注销,然后再次以“sybase”身份登录。

● 在 IBM AIX 上:

“sybase”身份登录,并发出:

mount -v 'cdrfs' -r device_name /mnt/cdrom

● 在 Solaris 上:

操作系统自动装入

CD 或 DVD。 以“sybase”身份登录。 如果出现 CD 或 DVD 读取错误,请检查操作系统内核

以确保打开了

ISO 9660 选项。 如果您以前在系统上安装了 CD 或 DVD,# 符号将会干扰安装过程。 在安装

当前

CD 或 DVD 之前,执行下列操作之一:

○ 重新启动系统,或者

○ 弹出 CD 或 DVD。删除 /vol/dsk 中的

<Volume Label>

文件,然后重新插入

CD 或 DVD。

ASE 到

ASE 快速入门指南

安装和配置

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

11

● 在 Linux 和 Linux on POWER 上:

“sybase”身份登录,并发出:

# mount -t iso9660 /dev/cdrom /mnt/cdrom

3.2

GUI 模式下进行安装

安装程序会创建目标目录,并将选定的组件安装到该目录中。

先决条件

确保安装

SAP Replication Server 的驱动器具有足够的磁盘空间用于组件安装,并且至少有额外的 1GB 磁盘空间

用于安装程序。

过程

1. 将安装介质插入到相应的驱动器中,或者从

SAP Service Marketplace (SMP) 下载并提取 SAP Replication

Server 安装映像。

2. 在

“简介”窗口中,单击“下一步”。

3. 指定

SAP Replication Server 的安装位置。

不要在安装路径中使用双字节字符、单引号字符或双引号字符。安装程序无法识别这些符号,将显示错误。

选项

单击

“选择”。

输入新的目录路径。

单击

“恢复缺省文件夹”。

说明

浏览并选择安装目录。

新建目录。

使用缺省目录替代输入或选择的目录。

○ 如果您选择的目录不存在,请单击“是”以创建该目录。

○ 如果该目录存在,并且已包含当前安装,则会提醒您将覆盖旧版本。单击“下一步”。

安装程序将检查您想要更新的版本与要安装的

SAP Replication Server 版本是否兼容。如果版本不兼容,

将出现

“Check Upgrade Incompatible Version”对话框,显示如下内容:

警告:目标目录中的

“SAP Replication Server” 与此版本升级不兼容;如果继续, 一些缺陷修复可能不可

用。有关详细信息,请参阅版本注释。

如果

SAP Replication Server 为计划外版本(如紧急错误修复版本、一次性版本、受控版本或辅助版

本),将会显示类似消息:

警告:目标目录中的

“SAP Replication Server” 是带外版本;如果继续, 一些缺陷修复可能不可用。 继续

升级操作前确认所需缺陷修复是否位于较新的版本中。

如果您看到此类消息,请单击

“取消”停止安装进程。要覆盖错误并继续安装,请选择“继续安装不兼容版

”,然后单击“下一步”。

12

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

安装和配置

警告

升级到不兼容版本可能导致软件衰退。

SAP 建议您取消安装并获取兼容版本的

SAP Replication

Server。

如果以无提示或无人值守模式执行安装且版本不兼容,则安装程序将提示您使用如下参数重新运行安装程

序,然后退出:

DALLOW_UPGRADE_TO_INCOMPATIBLE_VERSION=true

4. 选择安装类型:

选项

“典型”

“完全 ”

说明

安装缺省组件。对于大多数用户,均推荐选择此安装类型。

安装所有组件,包括所有支持的语言模块。

“自定义”

允许您选择要安装的组件。某些组件会自动安装(如果这些组件是运行所选组件所必需的)。

单击

“下一步”。

5. 选择地理位置,同意许可协议,然后单击

“下一步”。

6. 在

“SySAM 许可证服务器”窗口中:

选项 选择

“指定许可密钥” 例如:

○ 单击“浏览”以选择许可证文件。

○ 按住 “Shift” 并单击或按住 “Ctrl” 并单击以选择多个许可证文件。许可证窗格中会显示许可证信息。

○ 将许可证信息直接复制粘贴到许可证窗格中。

单击

“下一步”。

如果指定一个服务器提供服务的许可证密钥,安装程序会提示您安装新的

SySAM 许可证服务器。选

择:

“下一步” – 安装新的 SySAM 许可证服务器。按照安装提示进行操作。

“上一步” – 如果同一主机上具有现有的 SySAM 许可证服务器,请选择“使用以前部署的许可证服

务器

”。

“使用以前部署

的许可证服务

“在没有许可证

密钥的情况下

继续安装

输入:

○ 运行许可证服务器的计算机的主机名

○ 端口号(如果您使用的端口号不是缺省端口号)

单击

“下一步”。

如果您没有任何组件的许可证,请选择此选项,然后单击

“下一步”继续。

在没有许可证的情况下,安装程序允许您在

30 天的宽限期内安装和使用组件。要在宽限期结束后继

续使用这些组件,请获取有效许可证,然后使用

SAP Replication Server 许可证安装程序安装这些许可

证。

可以使用

sysadmin lmconfig 在 SAP Replication Server 中配置和显示与许可证管理相关的信息。请参

见《参考手册》中的

“sysadmin lmconfig”。

7. 如有必要,请设置

SySAM 电子邮件配置。单击“下一步”。

ASE 到

ASE 快速入门指南

安装和配置

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

13

8. 安装摘要窗口将显示您所做的选择。查看相应的信息,然后单击

“安装”。

9. 在

“启动示例 Replication Server”窗口中,选择:

选项 说明

“是” 配置并启动示例 Replication Server。安装程序将显示示例 Replication Server 的配置信息。记录此信息。

您最多可以在口令字段中输入

30 个字节。对于:

单字节字符

– 输入 6 到 30 个字符。

双字节字符

– 输入 3 到 15 个字符。

“否” 可以在安装后手动配置功能齐备的 SAP Replication Server 并启动示例 Replication Server。安装程序将提示您创建

示例

Replication Server 目录或继续安装。选择以下选项之一:

○ “是” – 创建示例 Replication Server 目录,而无需启动示例 Replication Server,或

○ “否” – 继续安装。

单击

“下一步”。

10. 单击

“完成”。

后续步骤

验证安装是否成功、有效。

查看

log 目录中的日志文件来检查错误。有效安装不包含“ERROR”(错误)字样。

检查

Sybase_Install_Registry 目录中的 si_reg.xml 文件的日期是否反映了当前安装的日期。

3.3 配置

SAP Replication Server

使用示例中的值配置

SAP Replication Server。

先决条件

● 为要安装的每个 SAP Replication Server 分配至少 20MB 的磁盘分区。 如果需要,可以以后添加更多分区。

● 确保原始设备或文件系统可用并具有写入权限。 如果使用原始设备,请将整个分区分配给 SAP Replication

Server。 如果需要,可以以后为稳定设备添加更多空间。 如果您只是将该分区的一部分分配给了

SAP

Replication Server,剩余部分将无法用于任何其它目的。

14

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

安装和配置

上下文

每个复制系统都有一个用于管理总体环境信息的

SAP Replication Server。 此 SAP Replication Server 称为 ID

Server。 主数据库是复制的源,并且只能属于一个

SAP Replication Server 环境。 复制数据库是目标数据库。

此示例创建在现有

SAP Adaptive Server Enterprise (SAP ASE) 中具有 Replication Server 系统数据库 (RSSD)

的单个

SAP Replication Server。 此示例中的脚本创建 RSSD 数据库将使用的数据和日志设备。 在下面的示例

中:

PRS

– SAP Replication Server 的名称 sunak1505i

– RSSD 所在的 SAP ASE 的名称

过程

1. 转到

<$SYBASE>

目录。

2. 将主

SAP ASE、复制 SAP ASE、SAP Replication Server 和包含 RSSD 数据库的服务器添加到 interfaces 文

件。

3. 通过获取 SYBASE.csh 文件来设置环境变量。

4. 转到

<$SYBASE> /REP-15_5/init/rs。

5. 制作 install.rs 文件的副本并将其重命名为 PRS.rs。

6. 编辑 PRS.rs 文件中的参数值。

注意

您需要修改

PRS.rs 文件的示例值”表中所述的参数。

3:PRS.rs 文件的示例值

参数 说明 值 sybinit.release_directory

创建

SAP Replication Server 实例的有效路径

(

$SYBASE

)。

/opt/sybase rs.rs_idserver_name

SAP Replication Server 的名称。 PRS rs.rs_id_server_is_rs_ser

ver

指定创建的

SAP Replication Server 是否为 ID

Server。 yes rs.rs_idserver_user

由于这是

ID Server,因此,它是其它 SAP

Replication Server 连接到该

SAP Replication

Server 时使用的用户名。 如果这不是

ID

Server,则它是

rs.rs_idserver_name 参数中

指定的

ID Server 的用户名。

PRS_id_user

注意

缺省名称是

SAP Replication

Server 名称后跟

_id_user。

例如,

PRS_id_user。 rs.rs_idserver_pass

ID 服务器用户的口令。 PRS_id_passwd

ASE 到

ASE 快速入门指南

安装和配置

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

15

参数 rs.rs_name

rs.rs_rs_sa_pass

rs.rs_needs_repagent

rs.rs_rssd_sqlsrvr

rs.rs_rssd_db

rs.rs_create_rssd

rs.rs_rssd_sa_login

rs.rs_rssd_sa_pass

rs.rs_rssd_prim_user

rs.rs_rssd_prim_pass

说明

SAP Replication Server 的名称。 sa 用户

ID 的口令。

PRS sa_pass

注意

您最多可以在口令字段中输入

30 个字节。对于:

○ 单字节字符 – 输入 6 到

30 个字符。

○ 双字节字符 – 输入 3 到

15 个字符。

指定

RSSD 是否需要 RepAgent。如果使用多

个复制服务器将数据从主数据库复制到复制数

据库,则需要此参数。 no

注意

如果主数据库和复制数据库将

通过多个

SAP Replication

Server 进行复制,则输入 yes。

RSSD 所在的

SAP ASE 的名称。

指定

RSSD 数据库的名称。 sunak1505i

USE_DEFAULT

注意

缺省名称是

SAP Replication

Server 名称后跟

_RSSD。 例

如,

PRS_RSSD。

指定脚本是否创建

RSSD 数据库。

指定具有

“sa”特权的登录名。 yes sa

指定在

rs.rs_rssd_sa_login 参数中输入的登录

名的口令。 password

SAP Replication Server 登录到

RSSD 时使用

的用户。

PRS_RSSD_prim

注意

缺省名称是

RSSD 数据库名

称后跟

_prim。例如,

PRS_RSSD_prim。

指定在

rs.rs_rssd_prim_user 参数中输入的登

录名的口令。

PRS_RSSD_prim_ps

16

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

安装和配置

参数 rs.rs_rssd_maint_user

说明

从其它

SAP Replication Server 中获取工作

时,

SAP Replication Server 登录到

RSSD 时

使用的用户。

PRS_RSSD_maint

注意

缺省名称是

RSSD 数据库名

称后跟

_maint。例如,

PRS_RSSD_maint。 rs.rs_rssd_maint_pass rs.rs_rsdddb_size

rs.rs_rssd_log_size

指定在

rs.rs_rssd_maint_user 参数中输入的

登录名的口令。

指定系统数据库设备的大小(以

MB 为单

位)。

PRS_RSSD_maint_ps

40

指定

RSSD 数据库日志设备的大小(以 MB 为

单位)。

32 rs.rs_rssd_db_device_name

存储

RSSD 数据库数据部分的 SAP ASE 设备

的名称。

PRS_RSSD_data rs.rs_create_rssd_databas

e_dev

指定是否需要为

RSSD 数据库数据部分创建新

SAP ASE 设备。 rs.rs_rssd_db_device_path

指定

RSSD 数据库数据设备的文件系统和文件

(或原始设备)的物理路径。 rs.rs_rssddb_device_size

指定

RSSD 数据库设备的大小(以 MB 为单

位)。 yes

/opt/sybase/PRS_RSSD_data

40

该值必须等于或大于在 rs.rs_rsdddb_size

中指

定的

RSSD 数据库的数据部分的

大小。 rs.rs_rssd_log_device_nam

e

指定

RSSD 数据库日志设备的逻辑名称。 rs.rs_create_rssd_log_dev

指定是否为日志创建设备。

PRS_RSSD_log yes

注意

如果对数据和日志使用同样的

设备,则为此参数输入

no。 rs.rs_rssd_log_device_pat

h

指定

RSSD 数据库日志设备的文件系统和文件

(或原始设备)的物理路径。

/opt/sybase/PRS_RSSD_log rs.rs_rssd_log_device_siz

e

指定

RSSD 数据库日志设备的大小(以 MB 为

单位)。

32

该值必须等于或大于在 rs.rs_rsdddb_log_size

中指定的

RSSD 数据库的日志部

分的大小。 rs.rs_diskp_name

指定

SAP Replication Server 稳定设备的路径

和原始设备(或文件名)。

此文件或设备必须

已存在。

/opt/sybase/PRSpart1.dat

ASE 到

ASE 快速入门指南

安装和配置

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

17

参数 rs.rs_diskp_lname

rs.rs_diskp_size

rs.rs_rs_user

说明

指定稳定设备分区的逻辑名称。

值 part1

指定稳定设备分区的大小(以

MB 为单位)。 20

最小大小为

20MB。

在创建

Replication Server 之间的路由时,其

SAP Replication Server 可以使用的用户。

PRS_rsi

注意

缺省名称是

Replication

Server 名称后跟

_rsi。例

如,

PRS_rsi。 rs.rs_rs_pass

rs.rs_ltm_rs_user

指定在

rs.rs_rs_user 参数中输入的登录名的口

令。

PRS_rsi_ps

Replication Agent 登录到

SAP Replication

Server 时使用的缺省用户。

PRS_ra

注意

缺省名称是

SAP Replication

Server 名称后跟

_ra。 例

如,

PRS_ra。 rs.rs_ltm_rs_pass

指定在

rs.rs_ltm_rs_user 参数中输入的登录名

的口令。

PRS_ra_ps

7. 保存该文件。

8. 转到 $SYBASE/REP-15_5/install 目录。

9. 创建

SAP Replication Server 和 RSSD:

./rs_init -r ../init/rs/PRS.rs

注意

如果

rs_init 命令未完成,请检查

<$SYBASE> /$SYBASE_REP/init/log 中的日志文件,更正错误,然

后重新提交

rs_init。如果出现问题的原因是 RSSD 数据库没有空间,请在数据服务器上运行 isql 命

令,然后删除

RSSD 数据库(例如,PRS_RSSD)。如果 rs_init 命令为 RSSD 数据库创建了设备,请删

除这些设备

(sp_dropdevice),然后重新提交 rs_init 命令。

18

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

安装和配置

3.4 验证配置

验证

SAP Replication Server 安装目录和子目录(Microsoft Windows 平台上为

<%SYBASE%>

UNIX 平台上为

<

$SYBASE> )是否已创建,以及其它所需软件是否已安装。

过程

1. 切换到

SAP Replication Server 的安装目录。

2. 通过获取 SYBASE.csh 文件来设置环境变量。

3. 登录到

SAP Replication Server: isql -Usa -Psa_pass -SPRS

PRS

– SAP Replication Server 的名称。

注意

缺省系统管理员用户

ID 是“sa”。“sa”用户 ID 的口令是您在资源文件中填写的 rs.rs_rs_sa_pass 值。

4. 输入: admin who go

The output from the command looks similar to:

Spid Name State Info

---- ----- ----- -----------

27 DSI EXEC Awaiting Command

101 (1)sunak1505i.PRS_RSSD

20 DSI Awaiting Message 101 sunak1505i.PRS_RSSD

26 SQM Awaiting Message 101:0 sunak1505i.PRS_RSSD

21 dSUB Sleeping

15 dCM Awaiting Message

18 dAIO Awaiting Message

23 dREC Sleeping dREC

9 dDELSEG Awaiting Message

28 USER Active sa

14 dALARM Awaiting Wakeup

24 dSYSAM Sleeping

5. 验证

SAP Replication Server 的版本。 输入: admin version go

注意

此命令的列表看上去类似如下内容:

Version

--------------------------------------------------

Replication Server/15.7.1/P/Sun_svr4/OS 5.8/1/OPT64/Sun

Apr 22 18:37:00 2012

ASE 到

ASE 快速入门指南

安装和配置

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

19

6. 使用以下命令退出 isql 会话: quit

20

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

安装和配置

4 管理

SAP Replication Server

管理复制环境中的

SAP Replication Server 及其相关组件。

相关信息

21 页上的

“启动 SAP Replication Server”

22 页上的

“停止 SAP Replication Server”

22 页上的

“查看 SAP Replication Server 日志”

4.1 启动

SAP Replication Server

如果

SAP Replication Server 处于关闭状态,请将其手动启动。

过程

1. 转到 $SYBASE 目录并设置 SYBASE 环境变量。 cd /opt/sybase source SYBASE.csh

2. 转到包含

SAP Replication Server 启动文件的目录。

UNIX 的典型目录为 $SYBASE/REP*/install。SAMPLE_RS 的目录为 $SYBASE/REP*/samp_repserver

3. 对于

Windows,请双击 RUN*.bat 文件。对于 UNIX,请执行 RUN 文件。

ASE 到

ASE 快速入门指南

管理

SAP Replication Server

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

21

4.2 停止

SAP Replication Server

关闭

SAP Replication Server。

过程

1. 转到 $SYBASE 目录并设置 SYBASE 环境变量。 cd /opt/sybase source SYBASE.csh

2. 使用 isql 登录以连接到 SAP Replication Server。 isql –Usa –P <sa_pass> –S <replication_server>

其中:

U

– 是具有 sa 特权的用户 ID

P

– 是用户的口令

S

– 是 SAP Replication Server。 或者,可以使用中间带有冒号的主机名和端口号,例如: “chaucer:

35356

3. 发出 shutdown 命令。 shutdown go

4.3 查看

SAP Replication Server 日志

查看

SAP Replication Server 操作的记录。 查看日志可帮助您确定问题。

上下文

注意

如果您在安装期间选择安装并启动示例

Replication Server,则 SAMPLE_RS.log 文件可用。

22

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

管理

SAP Replication Server

过程

使用文本编辑器打开

SAMPLE_RS.log 文件。

可在

RUN 文件的 -E 参数中找到启动时使用的日志文件。 例如,假定 RUN_SAMPLE_RS 文件中的启动命令如

下:

/opt/sybase/REP-15_5/bin/repserver -SSAMPLE_RS \

-C/opt/sybase/REP-15_5/samp_repserver/SAMPLE_RS.cfg \

-E/opt/sybase/REP-15_5/samp_repserver/SAMPLE_RS.log \

-I/opt/sybase/interfaces

可在以下位置找到日志文件:

/opt/sybase/REP-15_5/samp_repserver/SAMPLE_RS.log

示例

Replication Server 的所有日志文件都位于 samp_repserver 目录中。 SAP Replication Server 在

SAMPLE_RS.log 中记录其操作和失败。

ASE 到

ASE 快速入门指南

管理

SAP Replication Server

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

23

5

多节点可用性

多节点可用性

(MSA) 扩展了 SAP Replication Server 的复制功能并简化了复制系统的设置。

MSA 的主要功能包括:

简单的复制方法,只需要一个用于主数据库的复制定义和一个用于每个预订数据库的预订。

复制过滤策略,它能让您选择是否复制各个表、事务、函数、系统存储过程和数据定义语言

(DDL)。

DDL 复制到任意的复制数据库 – 包括非热备份数据库。复制到多个复制节点 – 适用于备用数据库和非备

用数据库。

相关信息

24 页上的

“多节点可用性图”

25 页上的

“向 SAP Replication Server 中添加主数据库”

27 页上的

“向 SAP Replication Server 中添加复制数据库”

29 页上的

“将主数据库标记为要复制”

31 页上的

“查看有关数据库复制定义的信息”

31 页上的

“查看有关数据库预订的信息”

32 页上的

“复制 DDL”

33 页上的

“复制 DML”

5.1

多节点可用性图

该图说明了多节点可用性复制的简单示例。

24

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

多节点可用性

5.2

SAP Replication Server 中添加主数据库

针对

MSA 向 SAP Replication Server 中添加主数据库。

过程

1. 将

SAP Replication Server 添加到承载主数据库的数据服务器的 interfaces 文件中。

注意

如果

interfaces 文件已更改,请重新启动 SAP ASE。

2. 转到

<$SYBASE> /$SYBASE_REP/init/rs。

3. 制作 setupdb.rs 文件的副本并将其重命名为 primary_pubs2.rs。

4. 编辑 primary_pubs2.rs 文件。

注意

您需要修改示例值表中所述的参数。

4:primary_pubs2.rs 文件的示例值

参数 说明 sybinit.release_directory

SAP Replication Server 软件的有效路

($SYBASE)。 rs.rs_name

rs.rs_rs_sa_user

rs.rs_rs_sa_pass

rs.rs_ds_name

/opt/sybase

SAP Replication Server 的名称。

指定在

SAP Replication Server 上具有

“sa”特权的用户 ID。

指定

“sa”用户的口令。

PRS sa sa_pass sunak1502i rs.rs_ds_sa_user

rs.rs_ds_sa_password

rs.rs_db_name

承载主数据库的数据服务器的名称。

指定在数据服务器上具有

“sa”特权的用

ID。

指定数据服务器

“sa”用户的口令。

指定主数据库的名称。 sa password pubs2 rs.rs_needs_repagent

指定是否要从指定的主数据库中进行复

制。 yes

ASE 到

ASE 快速入门指南

多节点可用性

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

25

参数 rs.rs_db_maint_user

说明

指定登录主数据库时工作未被复制的用

ID。该用户称为维护用户。

<database>_maint

注意

如果该用户

ID 不存在,脚本将在数

据库上创建该用户

ID。用户 ID 不能

为别名 rs.rs_db_maint_password

rs.rs_ltm_rs_user rs.rs_ltm_rs_pass rs.rs_db_physical_for_log

ical

指定维护用户的口令。

指定

rs.rs_ltm_rs_user 的口令。

<database>_maint_ps

指定

Replication Agent 登录到 SAP

Replication Server 时使用的用户。该

名称必须存在。该名称通常来自在创建

SAP Replication Server 期间设置的

值: rs.rs_ltm_rs_user。

PRS_ra

PRS_ra_ps

指定是否为热备份数据库。 否

5. 保存文件。

6. 转到

<$SYBASE> /$SYBASE_REP/install。

7. 通过运行以下资源文件,创建从主数据库到

SAP Replication Server 的连接:

./rs_init -r ../init/rs/primary_pubs2.rs

如果

rs_init 命令失败,请检查 $

<SYBASE> /$SYBASE_REP/init/logs 中的日志文件,更正问题,然

后按如下所示禁用

RepAgent:

1.

2.

使用

“sa”用户角色登录到主 SAP ASE 并访问主数据库。

在主数据库中禁用

RepAgent 线程: go sp_config_rep_agent pubs2,'disable'

重新运行

rs_init 命令

8. 验证主连接: isql -Usa -Psa_pass -S <PRS>

9. 输入: admin who go

The output from the command looks similar to:

Spid Name State Info

------ ------- ------------ -----------

48 DSI EXEC Awaiting Command 102(1)sunak1502i.pubs2

33 DSI Awaiting Message 102 sunak1502i.pubs2

35 DIST Awaiting Wakeup 102 sunak1502i.pubs2

36 SQT Awaiting Wakeup 102:1 DIST sunak1502i.pubs2

34 SQM Awaiting Message 102:1 sunak1502i.pubs2

32 SQM Awaiting Message 102:0 sunak1502i.pubs2

37 REP AGENT Awaiting Command sunak1502i.pubs2

39 NRM Awaiting Message sunak1502i.pubs2

26

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

多节点可用性

27 DSI EXEC Awaiting Command 101(1)sunak1505i.PRS_RSSD

20 DSI Awaiting Message 101 sunak1505i.PRS_RSSD

26 SQM Awaiting Message 101:0 sunak1505i.PRS_RSSD

21 dSUB Sleeping

15 dCM Awaiting Message

18 dAIO Awaiting Message

23 dREC Sleeping dREC

9 dDELSEG Awaiting Message

49 USER Active sa

14 dALARM Awaiting Wakeup

24 dSYSAM Sleeping

10. 退出 isql 会话。

5.3

SAP Replication Server 中添加复制数据库

针对

MSA 向 SAP Replication Server 中添加复制数据库。

过程

1. 将复制

SAP ASE 添加到 SAP Replication Server 的 interfaces 文件中。

注意

如果

interfaces 文件已更改,请重新启动 SAP Replication Server。

2. 转到

<$SYBASE> /$SYBASE_REP/init/rs。

3. 制作 setupdb.rs 文件的副本并将其重命名为 replicate_pubs2.rs。

4. 编辑 replicate_pubs2.rs 文件。

注意

您需要修改示例值表中所述的参数。

5:replicate_pubs2.rs 文件的示例值

参数 说明 值 sybinit.release_directory

SAP Replication Server 软件的有效路

($SYBASE)。 rs.rs_name

SAP Replication Server 的名称。 rs.rs_rs_sa_user

rs.rs_rs_sa_pass

/opt/sybase

PRS

指定在

SAP Replication Server 上具有

“sa”特权的用户 ID。

指定

“sa”用户的口令。 sa sa_pass rs.rs_ds_name

承载复制数据库的数据服务器的名称。 sunak1505i

ASE 到

ASE 快速入门指南

多节点可用性

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

27

参数 rs.rs_ds_sa_user

rs.rs_ds_sa_password

rs.rs_db_name

rs.rs_needs_repagent

rs.rs_db_maint_user

说明

指定在数据服务器上具有

“sa”特权的用

ID。

指定数据服务器

“sa”用户的口令。

值 sa password

指定复制数据库的名称。 pubs2

指定是否要从指定的

rs.rs_db_name 中

进行复制。

指定将在复制数据库中应用工作的用户

ID。该用户称为维护用户。

<database>_maint

注意

如果该用户

ID 不存在,脚本会在复

制数据库上创建该用户

ID。用户 ID

不能为别名。 rs.rs_db_maint_password

rs.rs_db_physical_for_log

ical

指定在

rs.rs_db_maint_user 中指定的

用户的口令。

指定是否为热备份数据库。

<database>_maint_ps

5. 保存文件。

6. 转到

<$SYBASE> /$SYBASE_REP/install。

7. 通过运行以下资源文件,创建从主数据库到

SAP Replication Server 的连接:

./rs_init -r ../init/rs/replicate_pubs2.rs

如果

rs_init 命令失败,请更正问题,然后重新运行 rs_init。

8. 验证主连接: isql -Usa -Psa_pass -S <PRS>

9. 输入: admin who go

The output from the command looks similar to:

Spid Name State Info

----- ------- ------------ -----------------

48 DSI EXEC Awaiting Command 102(1) sunak1502i.pubs2

33 DSI Awaiting Message 102 sunak1502i.pubs2

35 DIST Awaiting Wakeup 102 sunak1502i.pubs2

36 SQT Awaiting Wakeup 102:1 DIST sunak1502i.pubs2

34 SQM Awaiting Message 102:1 sunak1502i.pubs2

32 SQM Awaiting Message 102:0 sunak1502i.pubs2

37 REP AGENT Awaiting Command sunak1502i.pubs2

39 NRM Awaiting Message sunak1502i.pubs2

27 DSI EXEC Awaiting Command 101(1) sunak1505i.PRS_RSSD

20 DSI Awaiting Message 101 sunak1505i.PRS_RSSD

26 SQM Awaiting Message 101:0 sunak1505i.PRS_RSSD

55 DSI EXEC Awaiting Command 103(1) sunak1505i.pubs2

54 DSI Awaiting Message 103 sunak1505i.pubs2

53 SQM Awaiting Message 103:0 sunak1505i.pubs2

21 dSUB Sleeping

15 dCM Awaiting Message

28

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

多节点可用性

18 dAIO Awaiting Message

23 dREC Sleeping dREC

9 dDELSEG Awaiting Message

56 USER Active sa

14 dALARM Awaiting Wakeup

24 dSYSAM Sleeping

10. 退出 isql 会话。

5.4 将主数据库标记为要复制

使用数据库复制定义和预订复制整个主数据库。

过程

1. 以系统管理员特权登录到主数据库:

% isql -Usa -P -Ssunak1502i

2. 连接到

pubs2 数据库: use pubs2 go

3. 将主数据库标记为要复制。例如: sp_reptostandby pubs2, 'all' go

4. 将

RepAgent 参数 send warm standby xacts 设置为 true,使 RepAgent 向复制数据库发送数据操作语

(DML) 和数据定义语言 (DDL)。例如,在主数据服务器上,输入: sp_config_rep_agent pubs2,send_warm_standby_xacts,true go

Parameter_Name Default_Value Config_Value Run_Value

------------- --------- ----------------- --------send warm standby xacts false true true

(1 row affected)

RepAgent configuration changed for database pubs2.

The changes will take effect the next time the

RepAgent thread is started. (return status = 0)

5. 停止并重新启动

RepAgent: sp_stop_rep_agent pubs2 go sp_start_rep_agent pubs2 go

6. 退出 isql 会话。

ASE 到

ASE 快速入门指南

多节点可用性

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

29

7. 在

SAP Replication Server 中创建同样复制 DDL 的数据库复制定义: isql -Usa -Psa_pass -SPRS create database replication definition name with primary at pds.pdb

replicate DDL

其中:

<name>

– 是此复制定义的唯一标识符。

<pds>

– 是主 SAP ASE 数据服务器的名称。

<pdb>

– 是主数据库的名称。

例如: create database replication definition pubs2_repdef with primary at sunak1502i.pubs2

replicate DDL go

Database replication definition pubs2_repdef for sunak1502i.pubs2 is created.

8. 为复制数据库创建数据库预订。以下示例创建一个使用不实现方法并将复制

truncate table 命令的数据库预

订: create subscription <sub_name> for database replication definition <name> with primary at <pds.pdb> with replicate at <rds.pdb> without materialization subscribe to truncate table

其中:

<sub_name>

– 是此预订的唯一标识符。

<name>

– 是复制定义的唯一标识符。

<pds>

– 是主 ASE 数据服务器的名称。

<pdb>

– 是主数据库的名称。

<rds>

– 是复制 ASE 数据服务器的名称。

例如: go create subscription pubs2_sub for database replication definition pubs2_repdef with primary at sunak1502i.pubs2

with replicate at sunak1505i.pubs2

without materialization subscribe to truncate table

注意

若要成功创建或删除预订,与复制数据库的连接必须可用。

9. 检查主数据服务器和和复制数据服务器的预订状态。 check subscription pubs2_sub for database replication definition pubs2_repdef with primary at sunak1502i.pubs2

30

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

多节点可用性

with replicate at sunak1505i.pubs2

go

状态显示:

Subscription pubs2_sub is VALID at the replicate.

Subscription pubs2_sub is VALID at the primary.

数据库现在已做好复制准备

注意

如果预订导致错误,您可以使用

drop subscription 命令删除预订。例如: go drop subscription pubs2_sub for database replication definition pubs2_repdef with primary at sunak1502i.pubs2

with replicate at sunak1505i.pubs2

without purge

必须具有复制连接,然后才能删除预订。

5.5 查看有关数据库复制定义的信息

可以使用

rs_helpdbrep 查看有关特定的数据库复制定义的信息,也可以查看有关数据库或数据服务器的所有数

据库复制定义的信息。

例如,若要查看有关

rep_1B 数据库复制定义的信息,请输入: rs_helpdbrep rep_1B, PDS, pdb

有关语法和用法的信息,请参见《参考手册》中的“rs_helpdbrep”。

5.6 查看有关数据库预订的信息

请使用

rs_helpdbsub 查看有关特定的数据库预订的信息,或有关数据库或数据服务器的所有数据库复制定义的

信息。

例如,若要查看有关

sub_2B 数据库预订的信息,请输入: rs_helpdbsub sub_2B, dsA, db

有关语法和使用信息,请参见《参考手册》中的

RSSD 存储过程”>“rs_helpdbsub”。

ASE 到

ASE 快速入门指南

多节点可用性

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

31

5.7 复制

DDL

复制

DDL。

过程

1. 使用在主数据服务器和复制数据服务器上都存在且有权在主数据库和复制数据库上创建表的用户

ID 登录到主数

据库。

注意

不要使用在设置主连接时使用的维护用户

ID。

2. 创建新表:

% isql -Usa -P -Ssunak1502i use pubs2 go create table t1 (a char(10), b integer, c text) go

3. 创建唯一索引以确保数据完整性: create unique clustered index t1_idx1 on t1 (a,b) go

4. 登录到复制数据库:

% isql -Usa -P -Ssunak1505i use pubs2 go

5. 验证表和索引是否在复制数据库中存在。如果表和索引不存在,请按照步骤

6 和 7 中的说明进行操作,否则转

到步骤

8。

6. 在以下位置检查

SAP Replication Server 日志文件:

<$SYBASE> /REP- 15_5/install/PRS.log。 更正错

误,然后重新启动与复制数据库的连接: resume connection to rds.rdb

go

其中:

<rds>

– 是承载复制数据库的数据服务器的名称。

<rdb>

– 是复制数据库的名称。

注意

确保进行更正的用户不同于用来设置主连接的维护用户。

7. 如果希望

SAP Replication Server 在尝试恢复与复制数据库的连接时跳过任何当前事务,请使用: resume connection to rds.rdb

32

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

多节点可用性

skip transaction go

有关其它可用的

resume connection 选项,请参见《参考手册》中的“resume connection”。

注意

如果您看到以下消息:

"Message from server: Message: 2762, State 3, Severity 16 - 'The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'pubs2 database."

请确保已经将

Replication Agent 配置为发送热备份事务,而且已经在上次更改 RepAgent 配置参数后停止

并重新启动

RepAgent。

8. 在复制数据库中向复制数据库维护用户授予新表的 insert、update 和 delete 权限: grant all on t1 to pubs2_maint go

5.8 复制

DML

复制

DML。

过程

1. 使用有权对表执行 insert、update、delete 和 truncate 操作的用户 ID 登录到主数据库。有关如何为维

护用户

ID 授予权限的信息,请参见《管理指南第一卷》中的“管理维护用户”。

注意

不能使用您设置主连接所使用的维护用户

ID。

2. 在主数据库中,对

t1 插入一行: insert into t1 values('a',1,'this is the first row') go

3. 检查复制数据库中是否存在行: select * from t1 go

如果不存在行,则遵循步骤

4 和 5 的说明,否则执行步骤 6。

4. 检查以下位置中的

SAP Replication Server 日志文件:

<$SYBASE> /REP- 15_5/install/PRS.log。更正

错误,然后重新启动与复制数据库的连接: resume connection to rds.rdb

go

ASE 到

ASE 快速入门指南

多节点可用性

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

33

5. 如果希望

SAP Replication Server 在尝试恢复与复制数据库的连接时跳过任何当前事务,请使用: resume connection to rds.rdb

skip transaction go

有关

resume connection 命令的其它可用选项,请参见《参考手册》中的“resume connection”。

6. 登录到主数据库并更新行: update t1 set c = 'this is an update' where b = 1 go

7. 登录到复制数据库,并验证该行是否已更新: select * from t1 go

8. 登录到主数据库并输入: truncate table t1 go

9. 登录到复制数据库并输入: select count (*) from t1 go

复制表

t1 中行数现在应为零。

34

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

多节点可用性

6

热备份应用程序

热备份应用程序是一对

SAP Adaptive Server Enterprise (SAP ASE) 数据库,其中一个作为另一个的备份副本。

客户端应用程序将更新活动数据库;

SAP Replication Server 将维护作为活动数据库副本的备用数据库。 如果

活动数据库出现故障,或者需要对活动数据库或数据服务器执行维护操作,则可切换到备用数据库,这样客户端应

用程序就可在几乎没有中断的情况下恢复工作。

热备份应用程序主题介绍如何在两个

SAP ASE 数据库(活动数据

库和备用数据库)之间设置和配置热备份应用程序。

有关热备份应用程序的详细信息、它如何在

SAP Replication Server 中工作以及其它相关主题,请参见《管理

指南第二卷》中的

“管理热备份应用程序”。

大多数情况下,在

SAP Replication Server 中数据库定义为“主数据库”和“复制数据库”。 但是,在讨论热备份应

用程序时,数据库还定义为

“活动数据库”和“备用数据库”。

相关信息

35 页上的

“热备份应用程序图”

36 页上的

“创建逻辑连接”

37 页上的

“向 SAP Replication Server 中添加活动数据库”

40 页上的

“将活动数据库标记为要复制”

41 页上的

“向 SAP Replication Server 中添加备用数据库”

44 页上的

“初始化备用数据库”

47 页上的

“切换活动数据库和备用数据库”

49 页上的

“在热备份环境中复制 DDL”

50 页上的

“在热备份环境中复制 DML”

51 页上的

“跟踪目标数据库的 SAP Replication Server 事务”

52 页上的

“用于提高性能的复制定义”

54 页上的

“将 SQL 语句复制用于热备份”

6.1 热备份应用程序图

了解热备份的工作方式。该图说明了示例热备份应用程序的正常操作以及切换活动数据库和备用数据库。

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

35

6.2 创建逻辑连接

创建一个逻辑连接,用以为活动数据库和备用数据库建立一个符号名称。

上下文

在热备份应用程序中,活动数据库和备用数据库在复制系统内的表现形式是从

SAP Replication Server 到单个

逻辑数据库的连接。

创建逻辑连接,以便为活动数据库和备用数据库建立一个符号名称。 这些名称不必在 interfaces 文件或复制系统中存在。

过程

1. 登录到

SAP Replication Server: isql -Usa -P <sa_pass> -SPRS

2. 为热备份创建逻辑连接: create logical connection to pubs2a.pubs2s

go

3. 启用

SQL 语句复制: alter logical connection to pubs2a.pubs2s

set ws_sqldml_replication to "on" go

注意

SQL 语句复制仅在

SAP ASE 15.0.3 及更高版本中可用。

4. 退出 isql 会话。

36

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

6.3

SAP Replication Server 中添加活动数据库

添加活动数据库。

过程

1. 将承载主数据库或活动数据库的

SAP Replication Server 和 SAP ASE 的条目添加到相应的 interfaces 文件

中。

注意

如果

interfaces 文件已更改,请重新启动 SAP ASE 或 SAP Replication Server。

2. 转到

<$SYBASE> /REP-15_5/init/rs。

3. 制作 setupdb.rs 文件的副本并将其重命名为 active_pubs2.rs。

4. 编辑 active_pubs2.rs 文件。

6:active_pubs2.rs 文件的示例值

参数 rs.rs_name

说明 sybinit.release_directory

指定

SAP Replication Server 软件的有

效路径

($SYBASE)。

指定

SAP Replication Server 的名称 rs.rs_rs_sa_user

rs.rs_rs_sa_pass

指定在

SAP Replication Server 上具有

“sa”特权的用户 ID。

指定

“sa”用户的口令。

/opt/sybase

PRS sa sa_pass rs.rs_ds_name

rs.rs_ds_sa_user

rs.rs_ds_sa_password

rs.rs_db_name

托管主数据库的数据服务器的名称。

指定在数据服务器上具有

“sa”特权的用

ID。

指定数据服务器

“sa”用户的口令。

指定主数据库的名称。 sunak1505i sa

口令 pubs2 rs.rs_needs_repagent

指定是否要从指定的主数据库中进行复

制。 yes

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

37

参数 rs.rs_db_maint_user

说明 值

指定对复制数据库执行 insert

、 update

、 delete 和 truncate 表

命令的用户

ID。用户 ID 必须具有在复

制数据库中执行

DML 命令的权限。该

用户称为维护用户。

USE_DEFAULT

缺省值为 <databasename>

_maint。

注意

不要使用别名为其它用户

ID 的用户

ID。 rs.rs_db_maint_password

rs.rs_ltm_rs_user

rs.rs_ltm_rs_pass

指定维护用户的口令。

指定是否为热备份数据库。

<database>_maint_ps

Replication Agent 登录到

SAP

Replication Server 时使用的用户。该

名称必须存在。该名称通常来自在创建

RS 期间设置的值: rs.rs_ltm_rs_user。

PRS_ra

指定在

rs.rs_ltm_rs_user 参数中输入

的登录名的口令。

PRS_ra_ps yes rs.rs_db_physical_for_log

ical rs.rs_db_active_or_standb

y

指定配置针对活动数据库还是备用数据

库。 active rs.rs_db_logical_ds_name

指定逻辑连接名称的数据服务器部分。 pubs2a rs.rs_db_logical_db_name

指定逻辑连接名称的数据库部分。 pubs2s

5. 保存文件。

6. 转到

<$SYBASE> /REP-15_5/install。

7. 通过运行以下资源文件,创建从活动数据库到

SAP Replication Server 的连接:

./rs_init -r ../init/rs/active_pubs2.rs

如果

rs_init 命令失败,请更正问题,然后按如下方式禁用 RepAgent: a. 使用

“sa”用户角色登录到主 SAP ASE 并访问主数据库 b. 在主数据库中禁用

RepAgent 线程: go isql -Usa -P -Ssunak1505i use pubs2 go sp_config_rep_agent pubs2,'disable'

重新运行

rs_init 命令

8. 验证主连接: isql -Usa -P <sa_pass> -S <PRS>

38

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

9. 输入: admin who go

The output generated from admin who is similar to

Spid Name State Info

------ ------- ------------ -----------------

36 DIST Awaiting Wakeup 102 pubs2a.pubs2s

37 SQT Awaiting Wakeup 102:1 DIST pubs2a.pubs2s

31 SQM Awaiting Message 102:1 pubs2a.pubs2s

30 SQM Awaiting Message 102:0 pubs2a.pubs2s

27 DSI EXEC Awaiting Command 101(1)sunak1505i.PRS_RSSD

20 DSI Awaiting Message 101 sunak1505i.PRS_RSSD

26 SQM Awaiting Message 101:0 sunak1505i.PRS_RSSD

49 DSI EXEC Awaiting Command 103(1)sunak1505i.pubs2

35 DSI Awaiting Message 103 sunak1505i.pubs2

38 REP AGENT Awaiting Command sunak1505i.pubs2

39 NRM AwaitingMessage sunak1505i.pubs2

21 dSUB Sleeping

15 dCM Awaiting Message

18 dAIO Awaiting Message

23 dREC Sleeping dREC

9 dDELSEG Awaiting Message

29 USER Active sa

14 dALARM Awaiting Wakeup

24 dSYSAM Sleeping

注意

活动数据库的

RepAgent 必须可用。

10. 验证活动数据库连接的状态: admin logical_status go

从 admin logical_status 生成的输出类似于:

7:

Logical

Connection

Name

[102] pubs2a.pubs2s

Active

Connection

Name

[103] sunak1505i.pubs2

Active Conn

State

Active/

Standby

Connection

Name

Controller RS

[16777317] PRS

Operation in

Progress

State of

Operation in

Progress

Standby Conn

State

Spid

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

39

6.4 将活动数据库标记为要复制

使用

sp_reptostandby 或 sp_setreptable 复制活动数据库中的表。

上下文

SQL 语句复制(SAP ASE 15.0.3 和更高版本可用)和非

SQL 语句复制均启用数据库。

您可以使用以下任一方法为活动数据库中的表启用复制:

使用

sp_reptostandby 标记要复制的数据库,从而启用对数据更改和所支持模式更改的复制,或者

使用

sp_setreptable 分别标记要复制数据更改的表。

在此示例中,我们使用

sp_reptostandby 标记要复制的数据库。

过程

1. 以系统管理员身份登录

SAP ASE:

% isql -Usa -P -Ssunak1505i use pubs2 go

2. 为

DDL 和 DML 命令及过程标记要复制的数据库表: sp_reptostandby pubs2,'all' go

The replication mode for database 'pubs2' has been set to 'ALL'.

(return status = 0)

3. 如果满足

SQL 语句阈值,标记数据库以将 update、delete、insert 和 select 的 SQL 语句发送到命令

中: sp_setrepdbmode pubs2,'UDIS','on' go

The replication mode for database 'pubs2' is 'udis'.

(return status = 0)

4. 将

SQL 语句复制的数据库阈值设置为 10。 sp_setrepdbmode pubs2,'threshold','10' go

The replication threshold for 'pubs2' is '10'.

(return status = 0)

40

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

注意

您还可以为每个表设置阈值: sp_setrepdefmode t1,'threshold','10'

5. 退出 isql 会话。

6.5

SAP Replication Server 中添加备用数据库

添加备用数据库。配置热备份的示例过程使用活动数据库的转储来装载备用数据库,并在完成设置后开始复制。

过程

1. 将托管复制数据库的

SAP Replication Server 和 SAP ASE 的条目添加到相应的 interfaces 文件中。

注意

如果

interfaces 文件已更改,请重新启动 SAP ASE 和 SAP Replication Server。

2. 将备用连接的维护用户登录名添加到备份数据服务器中。

3. 转到

<$SYBASE> /REP-15_5/init/rs。

4. 制作 setupdb.rs 文件的副本并将其重命名为 standby_pubs2.rs。

5. 编辑 standby_pubs2.rs 文件。

8:standby_pubs2.rs 文件的示例值

参数 说明 sybinit.release_directory

指定

SAP Replication Server 软件的有

效路径

($SYBASE)。 rs.rs_name

指定

SAP Replication Server 的名称

/opt/sybase

PRS rs.rs_rs_sa_user

rs.rs_rs_sa_pass

指定在

SAP Replication Server 上具有

“sa”特权的用户 ID。

指定

“sa”用户的口令。 sa sa_pass rs.rs_ds_name

rs.rs_ds_sa_user

rs.rs_ds_sa_password

rs.rs_db_name

托管备用数据库的数据服务器的名称。 wingak1505i

指定在数据服务器上具有

“sa”特权的用

ID。

指定数据服务器

“sa”用户的口令。 sa password

指定备用数据库的名称 pubs2

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

41

参数 rs.rs_needs_repagent

rs.rs_db_maint_user

rs.rs_db_maint_password

rs.rs_ltm_rs_user rs.rs_ltm_rs_pass

说明 值

指定是否计划从指定的备用数据库中进

行复制。

指定对复制数据库执行 insert

、 update

、 delete 和 truncate 表

命令的用户

ID。用户 ID 必须具有在复

制数据库中执行

DML 命令的权限。该

用户称为维护用户。

为活动数据库定义的维护用户

(rs.rs_db_maint_user)。将数据库转储

装载到备用服务器之后,使用活动数据

库和备用数据库的同一用户简化服务器

用户

ID 的同步。

指定维护用户的口令。 用户指定的

rs.rs_db_maint_user 的口

Replication Agent 登录到

SAP

Replication Server 时使用的用户。该

名称必须存在。该名称通常来自在创建

SAP Replication Server 期间设置的

值: rs.rs_ltm_rs_user。

PRS_ra

指定在

rs.rs_ltm_rs_user 参数中输入

的登录名的口令。

PRS_ra_ps

警告

创建复制连接时,请注释掉此参数

的行。否则,资源文件将无法工

作。 rs.rs_db_physical_for_log

ical rs.rs_db_active_or_standb

y

指定是否为热备份数据库。 yes

指定配置针对活动数据库还是备用数据

库。 standby rs.rs_db_logical_ds_name

指定逻辑连接名称的数据服务器部分。 pubs2a rs.rs_db_logical_db_name

指定逻辑连接名称的数据库部分。 pubs2s rs.rs_db_active_ds_name

rs.rs_db_active_db_name

指定托管备用数据库的服务器。 sunak1505i rs.rs_db_active_sa

rs.rs_db_active_sa_pw

rs.rs_init_by_dump

rs.rs_db_use_dmp_marker

指定活动数据库的名称。 pubs2

指定在活动数据库上具有

“sa”特权的用

ID。

指定

“sa”用户的口令。 sa password

指定使用活动数据库的转储初始化备用

数据库。 yes

指定开始将事务转发到备用数据库时使

“dump marker”选项通知复制。 yes

6. 保存文件。

7. 转到

<$SYBASE> /$SYBASE_REP/install。

8. 通过运行以下资源文件,创建从

SAP Replication Server 到备用数据库的连接:

./rs_init -r ../init/rs/standby_pubs2.rs

42

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

如果

rs_init 命令失败,请更正问题,然后按如下方式禁用 RepAgent: a. 使用

“sa”用户角色登录到主 SAP ASE 并访问主数据库。 b. 在主数据库中禁用

RepAgent 线程: go isql -Usa -P -Swingak1505i use pubs2 go sp_config_rep_agent pubs2,'disable'

重新运行

rs_init 命令

9. 验证复制连接或备用连接: isql -Usa -P <sa_pass> -S <PRS>

10. 输入: admin who go

The output generated from admin who is similar to

Spid Name State Info

------ ------- ------------ -----------------

36 DIST Awaiting Wakeup 102 pubs2a.pubs2s

37 SQT Awaiting Wakeup 102:1 DIST pubs2a.pubs2s

31 SQM Awaiting Message 102:1 pubs2a.pubs2s

30 SQM Awaiting Message 102:0 pubs2a.pubs2s

27 DSI EXEC Awaiting Command 101(1)sunak1505i.PRS_RSSD

20 DSI Awaiting Message 101 sunak1505i.PRS_RSSD

26 SQM Awaiting Message 101:0 sunak1505i.PRS_RSSD

49 DSI EXEC Awaiting Command 103(1)sunak1505i.pubs2

35 DSI Awaiting Message 103 sunak1505i.pubs2

38 REP AGENT Awaiting Command sunak1505i.pubs2

39 NRM Awaiting Message sunask1505i.pubs2

DSI EXEC Suspended 104(1)wingak1505i.pubs2

DSI Suspended 104 wingak1505i.pubs2

21 dSUB Sleeping

15 dCM Awaiting Message

18 dAIO Awaiting Message

23 dREC Sleeping dREC

9 dDELSEG Awaiting Message

29 USER Awaiting Command sa

55 USER Active sa

14 dALARM Awaiting Wakeup

24 dSYSAM Sleeping

注意

活动数据库的

RepAgent 必须可用。

11. 验证活动数据库连接的状态: admin logical_status go

admin logical_status 生成的输出类似于:

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

43

9:

Logical

Connection

Name

[102] pubs2a.pubs2s

Controller RS

[16777317] PRS

Active

Connection

Name

[103] sunak1505i.pubs2

Active Conn

State

Active/

Standby

Connection

Name

[104] wingak1505i.pubs2

Operation in

Progress

State of

Operation in

Progress

Standby Conn

State

Suspended /

Waiting for Enable

Marker

Spid

12. 退出 isql 会话

6.6 初始化备用数据库

使用

SAP Adaptive Server Enterprise (SAP ASE) 命令和实用程序来初始化备用数据库。

上下文

以下示例使用

“转储标记”选项来对备用数据库进行初始实现。 有关如何为维护用户 ID 授予数据库中所有表的权

限的信息,请参见《管理指南第一卷》中的

“管理数据库连接”。

过程

1. 登录到活动数据服务器并转储活动数据库: dump database pubs2 to '/backup/data/sybase1550/ASE-

15_5/pubs2.dmp'

注意

确保

Backup Server 正在运行。转储和装载通过 Backup Server 执行。

2. 退出活动数据库。

3. 通过转储从活动数据库中装载备用数据库: load database pubs2 from

'/backup/data/sybase1550/ASE-15_5/pubs2.dmp'

44

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

4. 完成装载操作后,使备用数据库联机: online database pubs2 go

Started estimating recovery log boundaries for database 'pubs2'.

Database 'pubs2', checkpoint=(1564, 65), first=(1564, 65), last=(1565, 17).

Completed estimating recovery log boundaries for database 'pubs2'.

Started ANALYSIS pass for database 'pubs2'.

Completed ANALYSIS pass for database 'pubs2'.

Recovery of database 'pubs2' will undo incomplete nested top actions.

Database 'pubs2' is now online

5. 检查

“suid”以查明有无在服务器级别为备用数据库定义的维护用户: use master go select suid,name from syslogins where name ='pubs2_maint' go suid name

------- -----------

3 pubs2_maint

6. 检查

“suid”以查明有无在备用数据库中定义的维护用户: use pubs2 go select suid,name from sysusers where name = 'pubs2_maint' go suid name

------- -----------

8 pubs2_maint

注意

如果维护用户的

suid 不存在,请使用 sp_addlogin 命令添加它。

7. 更改备用数据库的 sysusers 表中的“suid”,以便与承载备用数据库的 SAP ASE 服务器中的“suid”匹配: sp_configure "allow updates to system tables",1 go

10:

参数

允许更新系统

缺省值

0

占用内存

0

配置值

1

运行值

1

单位 switch

类型 dynamic

Configuration option changed. ASE need not be rebooted since the option is dynamic.

Changing the value of 'allow updates to system tables' does not increase the amount of memory Adaptive Server uses.

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

45

(return status = 0) update sysusers set suid = 3 where name = "pubs2_maint" go

(1 row affected)

注意

如果在活动数据库中和在备用数据库中向用户分配的服务器用户

(suid) 有差别,请修改新装载的数据库中的 sysusers 表以便匹配这两个登录名。

如果维护用户在数据库上不存在,请使用

sp_adduser 命令添加该用户并跳过步骤 7。

8. 退出 isql 会话。

9. 登录到

SAP Replication Server 并恢复与备用数据库的连接: resume connection to wingak1505i.pubs2

go

Connection to 'wingak1505i.pubs2' is resumed

注意

验证连接是否已挂起或关闭。

如果连接已关闭,请检查

SAP Replication Server 日志找到错误并更正错

误,然后恢复连接。

10. 检查热备份状态: admin logical_status go

admin logical_status 生成的输出类似于:

11:

Logical

Connection

Name

Active

Connection

Name

[102] pubs2a.pubs2s [103] sunak1505i.pubs2

Active Conn

State

Active/

Controller RS

[16777317] PRS

Operation in

Progress

None

Standby

Connection

Name

[104] wingak1505i.pubs2

State of Operation in Progress

Spid

None

Standby Conn

State

Active`

11. 释放备用数据库服务器的辅助截断点: isql -Usa -P -Swingak1505i use pubs2 go dbcc settrunc ('ltm','ignore') go

46

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

6.7 切换活动数据库和备用数据库

如果活动数据库将会长时间不可用,请从活动数据库切换到备用数据库。

上下文

通常,活动数据服务器遇到临时故障时(

SAP ASE 在重新启动时即会从该故障中恢复,而无需其它恢复步骤),请

不要切换活动数据库和备用数据库。如果活动数据库长时间不可用,您可能需要进行切换。

过程

1. 在活动数据库,确保

RepAgent 已关闭。如果 RepAgent 仍为活动状态,则发出以下命令: isql -Usa -P -Ssunak1505i use pubs2 go sp_stop_rep_agent pubs2 go

The Replication Agent thread for database 'pubs2' is being stopped.

(return status = 0)

2. 在

SAP Replication Server 上,输入: isql -Usa -P <sa_pass> -SPRS switch active for pubs2a.pubs2s to wingak1505i.pubs2

go

Switch active to wingak1505i.pubs2 for logical connection to pubs2a.pubs2s is in progress

3. 要监控切换的进度,请使用: admin logical_status go

12:

Logical

Connection

Name

Active

Connection

Name

[102] pubs2a.pubs2s [104] wingak1505i.pubs2

Controller RS

[16777317] PRS

Active Conn

State

Active/

Operation in

Progress

Standby

Connection

Name

[104] sunak1505i.pubs2

State of Operation in Progress

Spid

Standby Conn

State

Suspended/Waiting for Enable Marker

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

47

切换完成后,可在

SAP Replication Server 日志中看到以下内容:

I. 2009/10/28 22:43:18. SQM starting: 102:1 pubs2a.pubs2s

I. 2009/10/28 22:43:18. Resetting Replication Agent starting log position for wingak1505i.pubs2

I. 2009/10/28 22:43:19. DIST for 'pubs2a.pubs2s' is

Starting

I. 2009/10/28 22:43:19. Resuming LogTransfer for wingak1505i.pubs2

I. 2009/10/28 22:43:19. Switch completed : pubs2a.pubs2s

I. 2009/10/28 22:43:19. The DSI thread for database

'wingak1505i.pubs2' is started.

4. 活动数据库切换完成后,请重新启动新活动数据库的

RepAgent: isql -Usa -P -Swingak1505i sp_start_rep_agent pubs2 go

Replication Agent thread is started for database

'pubs2'.

(return status = 0)

成功启动后会向

SAP Replication Server 日志中写入以下消息:

I. 2009/10/28 22:52:25. Replication Agent for wingak1505i.pubs2 connected in passthru mode.

I. 2009/10/28 22:52:25. Setting system upgrade locater for version 1100 to 00000000000000

0000000000000000000000000000000000000000

000000000000000000 for database wingak1505i.pubs2.

I. 2009/10/28 22:52:26. Distributor for

'pubs2a.pubs2s' received and proceessed enable marker.

5. 恢复备用连接将数据复制到备用数据库,如果新的备用数据库不需要与新的活动数据库重新同步,则执行步骤

7: resume connection to sunak1505i.pubs2

go

Connection to 'sunak1505i.pubs2' is resumed.

6. 若要验证热备份是否正常工作,请使用: admin logical_status go

13:

Logical

Connection

Name

Active

Connection

Name

[102] pubs2a.pubs2s [104] wingak1505i.pubs2

Active Conn

State

Active/

Standby

Connection

Name

[104] sunak1505i.pubs2

Standby Conn

State

Active/

48

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

Controller RS Operation in

Progress

State of Operation in Progress

Spid

[16777317] PRS

7. 如果旧的活动数据库需要与新的活动数据库重新同步,请首先删除来自

SAP Replication Server 的备用连接: drop connection to sunak1505i.pubs2

go

Connection to 'sunak1505i.pubs2' is dropped.

8. 按照之前在以下主题中介绍的步骤,使用新活动数据库的转储重建热备份连接的备用端,并与转储标记同步:

○ 向 SAP Replication Server 中添加备用数据库

○ 初始化备用数据库。

相关信息

41 页上的

“向 SAP Replication Server 中添加备用数据库”

44 页上的

“初始化备用数据库”

6.8 在热备份环境中复制

DDL

在热备份环境中复制

DDL。

过程

1. 使用在活动数据服务器和备用数据服务器上都存在且有权创建表的用户

ID 登录到活动数据库。

注意

不要使用其口令和在设置活动连接时定义的口令相同的维护用户

ID。

2. 创建新表:

% isql -Usa -P -Ssunak1505i use pubs2 go create table t1 (a integer, b char(10), c datetime)) go

3. 为提高性能创建唯一索引: create unique clustered index t1_idx1 on t1 (a,b) go

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

49

4. 登录到备用数据库:

% isql -Usa -P -Swingak1505i use pubs2 go

5. 验证表和索引是否在备用数据库中存在。如果表和索引不存在,请按照步骤

6 和 7 中的说明进行操作,否则转

到步骤

8。

6. 在以下位置检查

SAP Replication Server 日志文件:

<$SYBASE> /REP-15_5/install/PRS.log。 更正错

误并恢复与备用数据库的连接: resume connection to rds.rdb

go

其中:

<rds>

– 是承载备用数据库的数据服务器的名称。

<rdb>

– 是备用数据库的名称。

注意

如果在

SAP Replication Server 日志中出现错误,请确保进行更正的用户与用于设置活动连接的维护用户不

同。

7. 如果希望

SAP Replication Server 在尝试恢复与备用数据库的连接时跳过任何当前事务,请使用: resume connection to rds.rdb

skip transaction go

有关

resume connection 命令的其它可用选项,请参见《参考手册》中的“resume connection”。

8. 在备用数据库中向复制数据库维护用户授予新表的 insert、update 和 delete 权限: grant all on t1 to pubs2_maint go

6.9 在热备份环境中复制

DML

在热备份中复制

DML。

过程

1. 使用在活动数据服务器和备用数据服务器上都存在且有权创建表的用户

ID 登录到活动数据库。

2. 在活动数据库中的

t1 内插入一行: insert into t1 values (1,'first row',getdate()) go

50

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

3. 检查该行是否在备用数据库中存在: select * from t1 go

如果该行不存在,请按照步骤

4 和 5 中的说明进行操作,否则转到步骤 6。

4. 检查以下位置中的

SAP Replication Server 日志文件:

<$SYBASE> /REP-15_2/install/PRS.log。 更正

错误,然后重新启动与复制数据库的连接: resume connection to rds.rdb

go

5. 如果希望

SAP Replication Server 在尝试恢复与备用数据库的连接时跳过任何当前事务,请使用: resume connection to rds.rdb

skip transaction go

有关此命令的其它可用选项,请参见《参考手册》中的“resume connection”。

6. 登录到活动数据库,并更新该行: update t1 set b = 'changed row' where a = 1 go

7. 登录到备用数据库,并验证该行是否存在: select * from t1 go

8. 登录到活动数据库,然后输入: truncate table t1 go

9. 登录到备用数据库,然后输入: select count (*) from t1 go

6.10 跟踪目标数据库的

SAP Replication Server 事务

跟踪

SAP Replication Server 发送到所有复制数据库的事务。

上下文

因为跟踪并非特定于某个连接且可能非常大,所以

SAP 建议您不要使跟踪功能一直处于打开状态。

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

51

过程

1. 使用 isql 登录到 SAP Replication Server。

2. 打开跟踪。 跟踪功能的输出写入到

SAP Replication Server 日志中。 trace "on",dsi,dsi_buf_dump go

3. 使用 isql 在活动数据库中插入一行: insert into t1 values (1,'first row',getdate()) go

(1 row affected)

4. 更新活动数据库中的行: update t1 set c = getdate() go

(1 row affected)

5. 在

SAP Replication Server 日志文件

<$SYBASE> /REP-15_5/install/repservername.log 中查看跟踪

输出:

T. 2009/10/28 22:09:08. (138): Command(s) to 'wingak1505i.pubs2': T. 2009/10/28 22:09:08.

(138):'begin transaction [0a] update dbo.t1 set c='20091028 22:09:07:703' where a=1 and b='first row' and c='20091028 22:05:53:843' '

注意

要关闭

SAP Replication Server 中的跟踪功能,请使用: trace "off",dsi,dsi_buf_dump go

6.11 用于提高性能的复制定义

复制定义向

SAP Replication Server 说明源表,并指定您要复制的列。它还说明目标表的属性。与指定特性相匹配

的目标表可以预订复制定义。

尽管在复制到备用数据库时使用复制定义可以提高性能,但是

SAP Replication Server 在维护备用数据库时并

不需要复制定义。此外,对包含近似值数据类型的表执行

create replication definitions 操作,以使用

于构建应用于备用数据库的

SQL 语句的 where 子句不包括这些列。近似值数据类型(real、float)的范围和存储

精度与计算机相关,并可能导致修改错误的行或未找到正确的行。

当您指定在复制到备用数据库的过程中使用复制定义时:

SAP Replication Server 通过使用复制定义中定义的主键生成 where 子句,优化更新和删除。

可以指定

SAP Replication Server 是否要对复制到备用数据库的过程使用复制定义的“复制最少列”设置。该

设置指明更新操作是替换所有列的值,还是只替换更改了值的那些列的值。

有关复制定义的详细信息,请参见《管理指南第一卷》中的

“管理复制表”。

52

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

相关信息

53 页上的

“创建复制定义”

6.11.1 创建复制定义

创建复制定义来描述复制的对象。可以为数据库、函数或表创建复制定义。

过程

1. 使用 isql 登录到 SAP Replication Server。

2. 为表

“t1”的热备份创建复制定义: create replication definition t1_ws_repdef with primary at pubs2a.pubs2s

with all tables named t1

(a integer, b char(10), c datetime) primary key (a) send standby replication definition columns replicate SQLDML go

Replication definition ‘t1_ws_repdef’ is created.

注意

要使用

SQL 语句复制(仅在 SAP ASE 15.0.3 版及更高版本中可用)进行复制,请使用 replicate SQLDML

子句。

3. 更新表

“t1”中的行: update t1 set c = getdate() go

4. 将跟踪输出和在创建复制定义之前生成的输出进行比较:

T. 2009/10/28 22:10:43. (138): Command(s) to 'wingak1505i.pubs2': T. 2009/10/28 22:10:43. (138):

'begin transaction [0a] update dbo.t1 set a=1, b='first row', c='20091028 22:10:42:383' where a=1 ' update 语句中的 where 子句现在仅包含列“a”,因为复制定义指定列“a”唯一地标识该行。

相关信息

51 页上的

“跟踪目标数据库的 SAP Replication Server 事务”

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

53

6.12

SQL 语句复制用于热备份

SQL 语句复制可以补充基于日志的复制,并解决批处理作业导致的性能降低问题。

先决条件

只能使用

SAP ASE 15.0.3 及更高版本执行 SQL 语句复制。

过程

1. 在任务

“将活动数据库标记为要复制”的步骤 4 中,数据库的阈值设置为 10。因此,只有在行数超过 10 时,才

会使用

SQL 语句复制。在表“t1”中插入 10 行: insert into t1 values (2,'first row',getdate()) insert into t1 values (3,'first row',getdate()) insert into t1 values (4,'first row',getdate()) insert into t1 values (5,'first row',getdate()) insert into t1 values (6,'first row',getdate()) insert into t1 values (7,'first row',getdate()) insert into t1 values (8,'first row',getdate()) insert into t1 values (9,'first row',getdate()) insert into t1 values (10,'first row',getdate()) insert into t1 values (11,'first row',getdate ())

2. 更新数量小于或等于阈值的行。 update t1 set b = 'no SQL' where a < 3 go

(2 rows affected)

T. 2009/10/28 22:18:55. (138): Command(s) to

'wingak1505i.pubs2':

T. 2009/10/28 22:18:55. (138):

'begin transaction [0a] update dbo.t1 set a=1, b='no SQL', c='20091028 22:10:42:383' where a=1 [0a] update dbo.t1

set a=2, b='no SQL', c='20091028

22:12:24:093' where a=2 '

跟踪语句显示每行的各个

SQL 更新。

3. 更新所有行: update t1 set b = 'yes SQL' go

(11rows affected)

跟踪输出显示

SQL 语句,而不是每行的各个语句。

T. 2009/10/28 22:23:35. (138): Command(s) to

'wingak1505i.pubs2':

T. 2009/10/28 22:23:35. (138): 'begin transaction

54

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

热备份应用程序

[0a] update dbo.t1 set b = 'yes SQL' '

注意

要关闭

SAP Replication Server 中的跟踪功能,请使用: trace "off",dsi,dsi_buf_dump go

相关信息

40 页上的

“将活动数据库标记为要复制”

ASE 到

ASE 快速入门指南

热备份应用程序

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

55

7

实现和重新同步

实现就是把预订指定的数据从主数据库(或表)或源数据库(或表)复制到复制数据库(或表)或目标数据库(或

表)。重新同步就是让主数据库(或表)和复制数据库(或表)中的所有数据完全一致。可以重新同步数据库、表

或各个行。实现过程会导致重新同步。

实现方法取决于要传送的数据量、复制节点中的数据部分、可用于该过程的时间,以及主数据库或表可否有任

何针对它的活动。

提供的方案进行了多个假设和考虑:

标记具有文本或图像列的表可能需要较长的时间。

SAP Adaptive Server Enterprise (SAP ASE) 15.0

ESD #1 及更高版本中,use_index 选项可显著提高标记这些列的速度。 使用一种方法将表中的文本标记为复

制时,如果添加另一种方法,则不会重新标记这些文本页。

例如,如果一个数据库标记为复制,则标记此数据

库中包含文本列的表不需要将所有文本页重新标记为复制。

此示例中讨论的数据库实现和同步选项使用

SAP ASE 数据库转储和装载方法。 有关使用这些例程的任何要

求,请参见

SAP ASE 手册。

当您转储数据库时,数据库的辅助截断点和

RepAgent 会包括在转储中。用户和权限会被复制,但登录名

和角色不被复制。

若要添加和删除预订,数据服务器接口

(DSI) 必须处于活动状态或正在等待针对复制数据库的命令。

这些方案假定

SAP Replication Server 与数据库的连接存在且已定义复制定义。

注意

提供的方案不适用于同步复制。

有关各种实现方法的完整说明,请参见《管理指南第一卷》中的

“管理预订”。

相关信息

57 页上的

“情形 1”

63 页上的

“方案 2”

67 页上的

“方案 3”

71 页上的

“方案 4”

76 页上的

“情形 5”

78 页上的

“情形 6”

81 页上的

“方案 7”

84 页上的

“方案 8”

56

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

7.1

情形

1

可以在继续使用现有的复制定义和预订的同时,从其它数据库源中刷新主数据库和复制数据库。

如果源数据库从未参与复制,请暂时将数据库添加到

SAP Replication Server 以使其具有复制所需的所有表和

存储过程,然后再制作数据库的副本。

此情形使用第三个数据库(例如,生产数据库)来填充源数据库环境和目标数据库环境(例如,测试数据

库)。当您希望从生产数据库的副本中刷新测试系统时,将会使用此情形。

准备工作

在当前主数据库中,验证已经标记为要复制的对象。

如果该数据库具有 text 和 image 列,并且将复制这些

列,请在复制之前或在建立主数据库之后决定是否将该数据库标记为要复制。

1.

检查该数据库是否已标记为要复制: use pri go sp_reptostandby pri go

The replication status for database 'pri' is 'ALL'.

The replication mode for database 'pri' is 'off'.

(return status = 0)

注意

在此情形中,数据库被标记为要进行数据库复制,但未标记为要进行

SQL 语句复制。

2.

如果数据库未标记为要复制,请检查表和存储过程是否标记为要复制:

针对表,请执行: use pri go sp_setreptable go

Name Type

------- ---------------t1 user table t2 user table

(2 rows affected)

(return status = 0)

针对存储过程,请执行: use pri go sp_setrepproc go

Name Type

------- ---------------rs_marker stored procedure

(1 rows affected)

(return status = 0)

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

57

注意

任何以

“rs_”开头的表或存储过程均由 SAP Replication Server 创建。 因此,在此方案中,t1 和 t2 是标

记为要复制的应用程序表,而

rs_marker 是通过向复制系统中添加数据库创建的存储过程。

3.

获取主数据库的当前生成号。

4.

use pri go dbcc gettrunc go secondary trunc page secondary trunc state dbrepstat

------------------- --------------------- -------

2669 1 173 generation id database id database name ltl version

------------- ------------ ------------- ---------

0 7 pri 720

RSSD 上,获取用于连接的维护用户: use PRS2_RSSD go rs_helpuser go

User Name Permission(s) Name

------------ ------------------------------

PRS2_id_user no grants sa sa

PRS2_ra connect source

PRS2_rsi connect source

PRS2_RSSD_prim source, primary subscr

Maintenance Users

User name Destination DS.DB

------------ -------------------------------------

PRS2_RSSD_maint sunak1505x.PRS2_RSSD

pri_maint sunak1505x.pri

pri_maint sunak1505x.rep

(return status = 0)

在此示例中,

“pri_maint”既是用于连接主数据库 sunak1505x.pri 的维护用户,又是用于连接复制数据库 sunak1505x.rep 的维护用户。

开始重新同步

可以停止针对源数据库的所有用户活动,但这不是必需的。

新的数据库进入联机状态时,

SAP ASE 将在转储时创建在事务上保持一致的数据库。

1. 停止主数据库的所有用户活动(包括现有

RepAgent): sp_stop_rep_agent pri go

The Replication Agent thread for database 'pri' is being stopped.

(return status = 0)

2. 挂起与主数据库和复制数据库的连接: isql –Usa –P <sa_pass> –SPRS2

58

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

suspend connection to sunak1505x.pri

go

Connection to 'sunak1505x.pri' is suspended suspend connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is suspended.

3. 转储源数据库的数据库: dump database diffprim to

'/c11014900/sybase1520x/diffprim.dmp' go

4. 将源数据库转储装载到主数据库中: load database pri from

'/c11014900/sybase1520x/diffprim.dmp' go

5. 使数据库联机: online database pri go

6. 将主连接的维护用户添加到主数据库,并授予适当特权。 如果此服务器上已存在维护用户,请同步维护用户和

将要登录到主数据库的任何其他用户的

“suid”。 use pri go sp_adduser pri_maint go

New user added.

(return status = 0) grant execute on rs_get_lastcommit to pri_maint go grant all on rs_lastcommit to pri_maint go

注意

如果维护用户是此服务器的新用户,请将维护用户登录名添加到此服务器,并授予复制角色: sp_addlogin <maintenance user>, <maintenance userpassword>, <database> go sp_role "grant", replication_role, <maintenance user> go

如果维护用户的口令未知,请在

SAP ASE 中设置新的口令。 在 SAP Replication Server 中,更改维护

用户的口令以匹配在

SAP ASE 中分配的口令: go alter connection to <dataserver>.<database> set password to <new password>

7. 如果源数据库转储来自一个具有

Replication Agent 的主数据库,请从新的主数据库中删除辅助截断点和已有

Replication Agent: use pri go dbcc settrunc (ltm,ignore) go

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

59

secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2667 0 166 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

注意

辅助截断状态为

0 表示辅助截断点处于非活动状态。 sp_config_rep_agent pri,'disable' go

Replication Agent disabled for database 'pri'. The secondary truncation point in the database is no longer active.

(return status = 0)

8. 在主数据库中启用

Replication Agent: sp_config_rep_agent pri,

'enable','PRS2','PRS2_ra','PRS2_ra_ps' go

Replication Agent enabled for database 'pri'. The

Replication Agent thread needs to be started using sp_start_rep_agent.

(return status = 0)

注意

可以使用具有

“connect source”特权的任何 SAP Replication Server 用户。 如果 SAP Replication Server 的

口令未知,可使用

SAP Replication Server 的 alter user 命令进行重置。

9. 修改

RSSD 和主数据库中的设置,以使 Replication Agent 在事务日志的结尾启动: use PRS2_RSSD go rs_zeroltm sunak1505x,pri go

Locater has been reset to zero.

(return status = 0) isql –Usa –P –Ssunak1505x use pri go dbcc settrunc (ltm,valid) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2670 1 167 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

10. 如果新主数据库的日志页在数量上少于数据库的前一副本的日志页,请将新数据库的生成号增加

1: dbcc settrunc (ltm,gen_id,1) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2670 1 167 generation id database id database name ltl version

------------- ------------ ------------- ----------

60

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

0 7 pri 720

注意

生成

ID 的前一个值是在“准备工作”一节的步骤 3 中获取的。如果需要将 text 或 image 列标记为要复制,

请在此处标记要复制的表和列。

11. 使用源数据库转储装载复制数据库: load database rep from

'/c11014900/sybase1520x/diffprim.dmp' go

12. 使数据库联机: online database rep go

13. 将复制连接的维护用户添加到复制数据库,并使用重新同步之前收集的信息授予所有适当特权。 use rep go sp_adduser pri_maint go

New user added.

(return status = 0) grant execute on rs_get_lastcommit to pri_maint go grant all on rs_lastcommit to pri_maint go

注意

如果维护用户是此服务器的新用户,请将维护用户登录名添加到此服务器,并授予复制角色: sp_addlogin <maintenance user>, <maintenance userpassword>, <database> go sp_role "grant", replication_role, <maintenance user> go

如果维护用户的口令未知,请在

SAP ASE 中设置新的口令。 在 SAP Replication Server 中,更改维护

用户的口令以匹配在

SAP ASE 中分配的口令: go alter connection to <dataserver>.<database> set password to <new password>

14. 如果源数据库具有

RepAgent,请释放辅助截断点并删除 RepAgent: use rep go dbcc settrunc (ltm,ignore) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2667 0 166 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

61

注意

辅助截断状态为

0 表示辅助截断点处于非活动状态。 sp_config_rep_agent rep,'disable' go

Replication Agent disabled for database 'rep'. The secondary truncation point in the database is no longer active.

(return status = 0)

15. 在复制数据库中截断

rs_lastcommit 表。输入: truncate table rs_lastcommit go

16. 针对复制表授予相应的权限,以使维护用户能够对复制数据库应用命令: grant all on t1 to pri_maint go grant all on t2 to pri_maint go

17. 在

SAP Replication Server 上清除主连接的入站队列和复制连接的出站队列,以便从旧复制设置中消除任何正

在进行的工作: isql -Usa -P <sa_pass> –SPRS2 sysadmin hibernate_on go

The Replication Server has now entered hibernation mode.

sysadmin sqm_purge_queue, 104,1 go sysadmin sqm_purge_queue, 106,0 go sysadmin hibernate_off go

The Replication Server has now finished hibernation mode.

18. 重新开始连接到主数据库和复制数据库: resume connection to sunak1505x.pri

go

Connection to 'sunak1505x.pri' is resumed.

resume connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is resumed.

19. 启动主数据库的

Replication Agent: sp_start_rep_agent pri go

Replication Agent thread is started for database

'pri'.

(return status = 0)

20.在

SAP Replication Server 上,确保 RepAgent 和 DSI 线程都已成功启动 admin who go

Spid Name State Info

---- -------- ------------ ------------------

62

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

139 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

135 DSI Awaiting Message 104 sunak1505x.pri

129 DIST Awaiting Wakeup 104 sunak1505x.pri

130 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

123 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

142 REP AGENT Awaiting Command sunak1505x.pri

143 NRM Awaiting Command sunak1505x.pri

145 DSI EXEC Awaiting Command 106(1) sunak1505x.rep

144 DSI Awaiting Message 106 sunak1505x.rep

124 SQM Awaiting Message 106:0 sunak1505x.rep

21. 验证复制可用并已在工作。

22.在主数据库上允许用户。

7.2 方案

2

可以在主数据库中的所有用户活动都已停止时,从主数据库中实现复制数据库。

当复制在主数据库和复制数据库之间中断很长时间,而且队列已排满,需要清除时,使用此实现方法。使用当

前主数据库中的副本刷新复制数据库。这可以用于表复制或数据库复制。此方案假设在获取数据库转储时主数据库

上的用户活动停止。

准备工作

RSSD 中获取连接的维护用户: use PRS2_RSSD go rs_helpuser go

User Name Permission(s) Name

------------ ------------------------------

PRS2_id_user no grants sa sa

PRS2_ra connect source

PRS2_rsi connect source

PRS2_RSSD_prim source, primary subscr

Maintenance Users

User name Destination DS.DB

------------ -------------------------------------

PRS2_RSSD_maint sunak1505x.PRS2_RSSD

pri_maint sunak1505x.pri

pri_maint sunak1505x.rep

(return status = 0)

在此示例中,

“pri_maint”是到主数据库 sunak1505x.pri 和复制数据库 sunak1505x.rep 的连接的维护用户。

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

63

开始重新同步

1. 如果尚未挂起,请挂起与复制数据库的连接: isql –Usa –P <sa_pass> –SPRS2 suspend connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is suspended.

2. 在主数据库中,释放辅助截断点

- 之前未复制的任何日志记录均已反映在数据中。 isql –Usa –P –SSunak1505x use pri go sp_stop_rep_agent pri go

The Replication Agent thread for database 'pri' is being stopped.

(return status = 0) dbcc settrunc (ltm,ignore) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- -------

2669 0 172 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

注意

辅助截断状态为

0 时,主数据库中的辅助截断点为非活动状态。

3. 转储主数据库: dump database pri to '/c11014900/sybase1520x/ASE-

15_0/bin/pri.dmp' go

4. 装载复制数据库: load database rep from '/c11014900/sybase1520x/ASE-

15_0/bin/pri.dmp' go

5. 清除从主数据库(入站队列)到复制数据库(出站队列)的任何现有工作队列: isql -Usa -P <sa_pass> –SPRS2 sysadmin hibernate_on go

The Replication Server has now entered hibernation mode.

sysadmin sqm_purge_queue, 104,1 go sysadmin sqm_purge_queue, 106,0 go sysadmin hibernate_off go

The Replication Server has now finished hibernation mode.

6. 使复制数据库联机: online database rep

64

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

go

7. 向复制数据库添加复制连接的维护用户,然后授予相应的特权。 use rep go sp_adduser pri_maint go

New user added.

(return status = 0) grant execute on rs_get_lastcommit to pri_maint go grant all on rs_lastcommit to pri_maint go

注意

如果维护用户是此服务器的新用户,请将维护用户登录名添加到此服务器,并授予复制角色: sp_addlogin <maintenance user>, <maintenance userpassword>, <database> go sp_role "grant", replication_role, <maintenance user> go

如果维护用户的口令未知,请在

SAP ASE 中设置新的口令。在 SAP Replication Server 中,更改维护用

户的口令以匹配在

SAP ASE 中分配的口令: go alter connection to <dataserver>.<database> set password to <new password>

8. 恢复与复制数据库的连接: resume connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is resumed.

9. 在

SAP Replication Server 上,确认到复制数据库的连接已成功恢复: admin who go

Spid Name State Info

----- ------- ------------ -------------------

103 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

100 DSI Awaiting Message 104 sunak1505x.pri

95 DIST Awaiting Wakeup 104 sunak1505x.pri

96 SQT Awaiting Wakeup 104:1 DISTsunak1505x.pri

92 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

REP AGENT Down sunak1505x.pri

NRM Down sunak1505x.pri

107 DSI EXEC Awaiting Command 106(1)sunak1505x.rep

106 DSI Awaiting Message 106 sunak1505x.rep

91 SQM Awaiting Message 106:0 sunak1505x.rep

注意

如果连接没有成功恢复,请查看

SAP Replication Server 日志以了解发生了何种错误,更改这些错误并恢复

连接。

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

65

10. 根据需要将复制定义和预订添加到

SAP Replication Server。在本示例中,我们将使用数据库复制定义和数据

库预订。输入: create database replication definition pri_db_repdef with primary at sunak1505x.pri

replicate DDL go

Database replication definition 'pri_db_repdef' for sunak1505x.pri is created.

create subscription rep_db_repdef for database replication definition pri_db_repdef with primary at sunak1505x.pri

with replicate at sunak1505x.rep

without materialization subscribe to truncate table go

Subscription 'rep_db_repdef' is in the process of being created

11. 将主数据库上的起点重置为主数据库日志的结尾。

1. 在

RSSD 中将此连接的 rs_locater 条目设置为零: use PRS2_RSSD go rs_zeroltm sunak1505x,pri go

Locater has been reset to zero.

(return status = 0)

2. 启用主数据库中的辅助截断点: isql –Usa –P –SSunak1505x use pri go dbcc settrunc (ltm,valid) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- ---------

2669 1 173 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

12. 在主数据库中启动

Replication Agent: use pri go sp_start_rep_agent pri go

Replication Agent thread is started for database

'pri'.

(return status = 0)

13. 验证

SAP Replication Server 连接是否已做好复制准备: admin who go

Spid Name State Info

---- -------- ------------ -------------

103 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

100 DSI Awaiting Message 104 sunak1505x.pri

95 DIST Awaiting Wakeup 104 sunak1505x.pri

96 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

92 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

66

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

108 REP AGENT Awaiting Command sunak1505x.pri

109 NRM Awaiting Command sunak1505x.pri

107 DSI EXEC Awaiting Command 106(1)sunak1505x.rep

106 DSI Awaiting Message 106 sunak1505x.rep

91 SQM Awaiting Message 106:0 sunak1505x.rep

14. 验证是否可将数据从主数据库复制到复制数据库:

注意

如果

Replication Agent 出现问题,请在 SAP ASE 错误日志中查看相关消息。如果 DSI 被挂起,请在 SAP

Replication Server 错误日志或

SAP ASE 错误日志中查看相关消息。要启动主数据库上的 Replication

Agent,请使用 sp_start_rep_agent <

<dbname>

> 命令。要恢复

SAP Replication Server 中的 DSI,

请使用到

<

<dataserver>

>.<

<database>

> 命令的恢复连接。要跳过且不应用出站队列中的事务,请使

用恢复连接命令的

skip transaction 子句。

15. 允许主数据库中的用户。

7.3 方案

3

可以在用户活动无法停止时,使用

MSA 复制从主数据库中实现复制数据库。

假定数据库转储正在进行时无法停止主数据库的活动。此方案使用主数据库填充复制数据库,并使用数据库复

制定义和预订。

如果正在将主数据库复制到多个复制数据库,则针对每个复制数据库的完整流程(包括定义预订、转储主数据

库和装载复制数据库)必须已完成,以便为下一个复制数据库定义预订。

准备工作

RSSD 中获取连接的维护用户: use PRS2_RSSD go rs_helpuser go

User Name Permission(s) Name

------------ ------------------------------

PRS2_id_user no grants sa sa

PRS2_ra connect source

PRS2_rsi connect source

PRS2_RSSD_prim source, primary subscr

User name Destination DS.DB

------------ -------------------------------------

PRS2_RSSD_maint sunak1505x.PRS2_RSSD

pri_maint sunak1505x.pri

pri_maint sunak1505x.rep

(return status = 0)

在此示例中,

“pri_maint”是到主数据库 sunak1505x.pri 和复制数据库 sunak1505x.rep 的连接的维护用户。

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

67

开始重新同步

1. 如果存在数据库预订,请删除该预订: isql -Usa -P -Ssunak1505x use PRS2_RSSD go rs_helpdbsub go

DBSub.Name ReplicateDS.DB ReplicateRS Status at RRS DBRep.Def.Name

---------- -------------- ----------- ----------- ----------rep_db_sub sunak1505x PRS2 Valid pri_db_rep

PrimaryDS.DB PrimaryRS Status at PRS Method Trunc.Table Creation Date

------------ --------- ----------- ---------- ------------sunak1505x PRS2 Valid Use Dump Marker Yes Dec 9 2009 3:38PM

注意

在删除预订之前,到复制数据库的连接必须为

“正在等待命令”。 isql –Usa –P <sa_pass> –SPRS2 drop subscription rep_db_sub for database replication definition pri_db_rep with primary at sunak1505x.pri

with replicate at sunak1505x.rep

without purge go

Subscription 'rep_db_sub' is in the process of being dropped.

2. 验证是否对主数据库做过标记,请输入: isql -Usa -P -Ssunak1505x use pri go sp_reptostandby pri go

The replication status for database 'pri' is 'ALL'.

The replication mode for database 'pri' is 'off'.

(return status = 0)

注意

在此方案中,将数据库

“pri”标记为同时复制 DML 和 DDL,而不是标记为 SQL 语句复制。

3. 验证主数据库上的

RepAgent 是否正在运行,以及与复制数据库的连接是否存在且未挂起: isql -Usa -P <sa_pass> –SPRS2 admin who go

Spid Name State Info

---- ---------- -------------- ------------------

62 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

57 DSI Awaiting Message 104 sunak1505x.pri

59 DIST Awaiting Wakeup 104 sunak1505x.pri

60 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

58 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

61 REP AGENT Awaiting Command sunak1505x.pri

63 NRM Awaiting Command sunak1505x.pri

68 DSI EXEC Awaiting Command 105(1) sunak1505x.rep

68

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

67 DSI Awaiting Message 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

4. 使用将要使用转储同步数据的选项定义预订: define subscription rep_db_sub for database replication definition pri_db_rep with primary at sunak1505x.pri

with replicate at sunak1505x.rep

subscribe to truncate table use dump marker go

Subscription 'rep_db_sub' is in the process of being defined.

到复制数据库的连接仍未挂起。 admin who go

Spid Name State Info

---- ---- ---------------- -------------------

68 DSI EXEC Awaiting Command 105(1) sunak1505x.rep

67 DSI Awaiting Message 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

上述

admin who 命令仅显示受到影响的连接,而不显示连接的完整列表。

5. 转储主数据库: dump database pri to 'pri.dmp' go

到复制数据库的连接现已被挂起。 admin who go

Spid Name State Info

---- ---- ---------------- -------------------

68 DSI EXEC Suspended 105(1) sunak1505x.rep

67 DSI Suspended 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

6. 装载复制数据库: load database rep from '/c11014900/sybase1520x/ASE-

15_0/bin/pri.dmp' go

7. 使复制数据库联机: online database rep go

8. 将复制连接的维护用户添加到复制数据库,并在重新同步之前授予适当特权。 use rep go sp_adduser pri_maint go

New user added.

(return status = 0) grant execute on rs_get_lastcommit to pri_maint go grant all on rs_lastcommit to pri_maint

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

69

go

注意

如果维护用户是此服务器的新用户,请将维护用户登录名添加到此服务器,并授予复制角色: sp_addlogin <maintenance user>, <maintenance userpassword>, <database> go sp_role "grant", replication_role, <maintenance user> go

如果维护用户的口令未知,请在

SAP ASE 中设置新的口令。在 SAP Replication Server 中,更改维护用

户的口令以匹配在

SAP ASE 中分配的口令: go alter connection to <dataserver>.<database> set password to <new password>

9. 在复制数据库中截断 rs_lastcommit 表: use rep go truncate table rs_lastcommit go

10. 释放复制数据库中的辅助截断点: dbcc settrunc (ltm,ignore) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- -----

2668 0 172 generation id database id database name ltl version

------------- ------------ ------------- -------

0 8 rep 720

11. 恢复与复制数据库的连接。如果

DSI 仍保持挂起状态,请查看 SAP Replication Server 日志以确定在恢复 DSI

时是否出现错误: resume connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is resumed

70

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

7.4 方案

4

可以在用户活动能够停止,而且复制数据库是主数据库的副本时,从复制数据库中实现主数据库。

准备工作

如果主数据库出现问题,并且作为主数据库副本的复制数据库为旧数据,则使用此实现方法。在当前主数据库

中,验证已经标记为要复制的对象。如果该数据库具有

text 和 image 列,并且将复制这些列,请在复制之前或在

建立来自主数据库的复制之后决定是否将该数据库标记为要复制。

1.

检查数据库是否标记为要复制: use pri go sp_reptostandby pri go

The replication status for database 'pri' is 'ALL'.

The replication mode for database 'pri' is 'off'.

(return status = 0)

注意

在此方案中,数据库已标记为数据库复制,而未标记为

SQL 语句复制。

2.

如果数据库未标记为要复制,请检查表和存储过程是否标记为要复制:

针对表,请执行: use pri go sp_setreptable go

Name Type

------- ---------------t1 user table t2 user table

(2 rows affected)

(return status = 0)

针对存储过程,请执行: use pri go sp_setrepproc go

Name Type

------- ---------------rs_marker stored procedure

(1 rows affected)

(return status = 0)

注意

任何以

“rs_”开头的表或存储过程均由 SAP Replication Server 创建。因此,在此方案中,t1 和 t2 是标记

为要复制的应用程序表,而

rs_marker 是通过向复制系统中添加数据库创建的存储过程。

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

71

3.

获取主数据库的当前世代号。

4.

use pri go dbcc gettrunc go secondary trunc page secondary trunc state dbrepstat

------------------- --------------------- -------

2669 1 173 generation id database id database name ltl version

------------- ------------ ------------- ---------

0 7 pri 720

RSSD 中获取连接的维护用户: use PRS2_RSSD go rs_helpuser go

User Name Permission(s) Name

------------ ------------------------------

PRS2_id_user no grants sa sa

PRS2_ra connect source

PRS2_rsi connect source

PRS2_RSSD_prim source, primary subscr

Maintenance Users

User name Destination DS.DB

------------ -------------------------------------

PRS2_RSSD_maint sunak1505x.PRS2_RSSD

pri_maint sunak1505x.pri

pri_maint sunak1505x.rep

(return status = 0)

在此示例中,

“pri_maint”是到主数据库 sunak1505x.pri 和复制数据库 sunak1505x.rep 的连接的维护用户。

开始重新同步

无需停止源数据库中的用户活动;因为当新数据库处于在线状态时,

SAP ASE 将创建转储时在事务上保持一致

的数据库。

1. 停止复制数据库的所有用户活动(包括现有

DSI 连接): isql –Usa –P <sa_pass> –SPRS2 suspend connection to sunak1505.rep

go

Connection to 'sunak1505x.rep' is suspended.

2. 停止主数据库的所有用户活动(包括现有

Replication Agent 和 DSI): sp_stop_rep_agent pri go

The Replication Agent thread for database 'pri' is being stopped.

(return status = 0) isql -Usa -P <sa_pass> –SPRS2 suspend connection to sunak1505x.pri

go

Connection to 'sunak1505x.pri' is suspended.

72

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

3. 验证

SAP Replication Server 是否未主动使用主数据库连接或复制数据库连接: admin who go

Spid Name State Info

---- ---------- ------------------ ------------

DSI EXEC Suspended 104(1)sunak1505x.pri

DSI Suspended 104 sunak1505x.pri

129 DIST Awaiting Wakeup 104 sunak1505x.pri

130 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

123 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

REP AGENT Down sunak1505x.pri

NRM Down sunak1505x.pri

DSI EXEC Suspended 106(1) sunak1505x.rep

DSI Suspended 106 sunak1505x.rep

124 SQM Awaiting Message 106:0 sunak1505x.rep

4. 转储复制数据库: dump database diffprim to

'/c11014900/sybase1520x/rep.dmp' go

5. 将复制数据库转储装载到主数据库: load database pri from

'/c11014900/sybase1520x/rep.dmp' go

6. 使主数据库联机: online database pri go

7. 将主连接的维护用户添加到主数据库,并授予适当特权。如果此服务器上已存在维护用户,请同步维护用户和

将要登录到主数据库的任何其他用户的

“suid”。 use pri go sp_adduser pri_maint go

New user added.

(return status = 0) grant execute on rs_get_lastcommit to pri_maint go grant all on rs_lastcommit to pri_maint go

注意

如果维护用户是此服务器的新用户,请将维护用户登录名添加到此服务器,并授予复制角色: sp_addlogin <maintenance user>, <maintenance userpassword>, <database> go sp_role "grant", replication_role, <maintenance user> go

如果维护用户的口令未知,请在

SAP ASE 中设置新的口令。在 SAP Replication Server 中,更改维护用

户的口令以匹配在

SAP ASE 中分配的口令: alter connection to <dataserver>.<database>

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

73

go set password to <new password>

8. 如果复制数据库转储具有

Replication Agent,应将辅助截断点和现有 RepAgent 从新主数据库中删除: use pri go dbcc settrunc (ltm,ignore) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2667 0 166 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

注意

辅助截断状态为

0 表示辅助截断点处于非活动状态。 sp_config_rep_agent pri,'disable' go

Replication Agent disabled for database 'pri'. The secondary truncation point in the database is no longer active.

(return status = 0)

9. 在主数据库中启用

RepAgent: sp_config_rep_agent pri,

'enable','PRS2','PRS2_ra','PRS2_ra_ps' go

Replication Agent enabled for database 'pri'. The

Replication Agent thread needs to be started using sp_start_rep_agent.

(return status = 0)

注意

可以使用具有

connect source 特权的任何 SAP Replication Server 用户。如果 SAP Replication Server

的口令未知,可使用

SAP Replication Server 的 alter user 命令进行重置。

10. 确保已更新的主数据库上的数据库或表均标记为要复制。

11. 修改

RSSD 和主数据库中的设置以使 Replication Agent 在事务日志结束时启动: use PRS2_RSSD go rs_zeroltm sunak1505x,pri go

Locater has been reset to zero.

(return status = 0) isql –Usa –P –Ssunak1505x use pri go dbcc settrunc (ltm,valid) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2670 1 167 generation id database id database name ltl version

------------- ------------ ------------- ----------

74

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

0 7 pri 720

12. 如果新主数据库的日志页在数量上少于数据库的前一副本的日志页,请将世代号增加

1: dbcc settrunc (ltm,gen_id,1) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- --------

2670 1 167 generation id database id database name ltl version

------------- ------------ ------------- ----------

0 7 pri 720

注意

世代号是在开始重新同步前获取的。

13. 在复制数据库中截断

rs_lastcommit 表: use rep go truncate table rs_lastcommit go

14. 清除从主数据库到复制数据库的任何现有工作队列: isql -Usa -P <sa_pass> –SPRS2 sysadmin hibernate_on go

The Replication Server has now entered hibernation mode.

注意 sysadmin sqm_purge_queue 命令要求 SAP Replication Server 处于休眠或独立模式。SAP Replication

Server 处于休眠或独立模式时,不会执行任何工作。 sysadmin sqm_purge_queue, 104,1 go sysadmin sqm_purge_queue, 106,0 go

注意 sysadmin sqm_purge_queue 命令中使用的队列号是连接的连接号(如 admin who 命令中所示)。队

列类型为

1(表示入站)或 0(表示出站),可通过 admin who 命令获得。 sysadmin hibernate_off go

The Replication Server has now finished hibernation mode.

15. 清除队列后关闭休眠模式: isql -Usa -P <sa_pass> –SPRS2 sysadmin hibernate_off go

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

75

16. 恢复与主数据库和复制数据库的连接: resume connection to sunak1505x.pri

go

Connection to 'sunak1505x.pri' is resumed.

resume connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is resumed

17. 在主数据库上启动

RepAgent: sp_start_rep_agent pri go

Replication Agent thread is started for database

'pri'.

(return status = 0)

18. 在

SAP Replication Server 中,确保 RepAgent 和 DSI 线程都已成功启动: admin who go

Spid Name State Info

---- -------- ------------ ------------------

139 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

135 DSI Awaiting Message 104 sunak1505x.pri

129 DIST Awaiting Wakeup 104 sunak1505x.pri

130 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

123 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

143 REP AGENT Awaiting Command sunak1505x.pri

145 NRM Awaiting Command sunak1505x.pri

19. 验证复制是否可用且正在使用。

20.允许主数据库中的用户。

7.5 情形

5

可以在

Replication Server 进行实现时,将表实现到复制数据库。在此情形中,当发生实现时,不能锁定任何正在

使用该表或主表的用户,而且表中只能有几行内容。此情形能让

Replication Server 填充复制表。

确保

“sa”用户的口令对于主 ASE 和 Replication Server 是相同的。如果这些口令不相同,则不能使用此选项。

准备工作

复制数据库的维护用户必须具有将数据插入复制表的权限。

此表已使用 sp_setreptable 进行标记。

76

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

开始重新同步

1. 创建复制定义: create replication definition t1_repdef with primary at sunak1505x.pri

with all tables named t1

(a char(10), b char(10)) primary key (a) go

Replication definition 't1_repdef' is created

2. 创建预订: create subscription t1_sub for t1_repdef with replicate at sunak1505x.rep

incrementally subscribe to truncate table go

Subscription 't1_sub' is in the process of being created.

注意

当为实现选择行时,此选项会将主数据库中的表置于挂起状态。

3. 使用 check subscription 命令检查预订在主节点和复制节点上是否有效: check subscription t1_sub for t1_repdef with replicate at sunak1505x.rep

go

Subscription t1_sub is VALID at the replicate.

Subscription t1_sub is VALID at the primary.

4. 如果预订无效,请检查

Replication Server 以查明是否创建了实现队列。 admin who go

Spid Name State Info

---- ------ -------------------- -------------

2 SQM Awaiting Message 106:-2147483541 t1_repdef.t1_sub

如果预订未在可接受的时间内实现,而且实现队列仍存在,请查看

Replication Server 日志中有无任何错误消

息,并更正错误,然后删除实现队列

(sysadmin drop_queue),删除预订,并重新创建预订。

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

77

7.6 情形

6

可以实现主表活动在实现过程中继续进行的表。

当主表和复制表之间有大量的数据要同步时,请使用此选项。 此

方案假定已使用

sp_setreptable 标记表。

开始重新同步

1. 创建复制定义: create replication definition t1_repdef with primary at sunak1505x.pri

with all tables named t1

(a char(10), b char(10)) primary key (a,b) go

Replication definition 't1_repdef' is created

如果以前使用

replicate minimal columns 创建了复制定义,请将复制定义更改为 replicate all columns。

2. 定义预订: define subscription t1_sub for t1_repdef with replicate at sunak1505x.rep

subscribe to truncate table go

Subscription t1_sub is in the process of being defined.

3. 验证所有连接都已成功: admin who go

Spid Name State Info

---- ---------- -------------------- --------

139 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

135 DSI Awaiting Message 104 sunak1505x.pri

129 DIST Awaiting Wakeup 104 sunak1505x.pri

130 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

123 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

143 REP AGENT Awaiting Command sunak1505x.pri

144 NRM Awaiting Command sunak1505x.pri

156 DSI EXEC Awaiting Command 106(1) sunak1505x.rep

155 DSI Awaiting Message 106 sunak1505x.rep

124 SQM Awaiting Message 106:0 sunak1505x.rep

4. 使用挂起激活预订: activate subscription t1_sub for t1_repdef with replicate at sunak1505x.rep

with suspension go

Subscription 't1_sub' is in the process of being

78

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

activated.

注意 with suspension 子句会将

DSI 挂起到目标,以便允许复制数据库进行初始实现。对主表进行的所有更改都

会放入

Replication Server 的出站队列,等待 DSI 重新开始。

5. 验证

DSI 现在已挂起。输入: admin who go

Spid Name State Info

---- ---------- --------------- --------

139 DSI EXEC Awaiting Command 104(1) sunak1505x.pri

135 DSI Awaiting Message 104 sunak1505x.pri

129 DIST Awaiting Wakeup 104 sunak1505x.pri

130 SQT Awaiting Wakeup 104:1 DIST sunak1505x.pri

123 SQM Awaiting Message 104:1 sunak1505x.pri

56 SQM Awaiting Message 104:0 sunak1505x.pri

143 REP AGENT Awaiting Command sunak1505x.pri

144 NRM Awaiting Command sunak1505x.pri

156 DSI EXEC Suspended 106(1)sunak1505x.rep

155 DSI Suspended 106 sunak1505x.rep

124 SQM Awaiting Message 106:0 sunak1505x.rep

6. 从主表中复制数据:

% bcp pri..t1 out 't1.bcp' -Usa -P -Ssunak1505x -c

Starting copy...

5 rows copied.

Clock Time (ms.): total = 9 Avg = 1 (555.56 rows per sec.)

7. 将数据插入目标表中:

% bcp rep..t1 in 't1.bcp' -Usa -P -Ssunak1505x -c

Starting copy...

5 rows copied.

Clock Time (ms.): total = 30 Avg = 6 (166.67 rows per sec.

8. 在

Replication Server 上,将自动更正设置为打开: set autocorrection on for t1_repdef with replicate at sunak1505x.rep

go autocorrection' is modified for replication definition 't1_repdef' with replicate at

'sunak1505x.rep'.

注意

如果同一主表中有多个复制定义要进入同一复制表中,请确保自动更正在该表的所有复制定义上都设置为打

开。

9. 恢复连接以使存储在队列中的数据应用于目标表: resume connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is resumed.

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

79

注意

因为开销与自动更正关联,所以

SAP 建议您在进行正常复制活动时不要使自动更正一直处于打开状态。

10. 通过主表上的标记进行发送,以使我们知道何时不再需要自动更正。在此示例中,我们将使用 rs_ticket。

在复制服务器上,验证

rs_ticket 在 DSI 上是否可用。缺省情况下,它在 DSI 上可用。 isql –Usa –P <sa_pass> –SPRS2 admin config, "connection",sunak1505x,rep,"ticket" go

Configuration Config Value Run Value

-------------- ------------------ -----------dsi_rs_ticket_report <server default> <server default>

Default Value Legal Values Datatype Status

-------------- ------------ -------- -----------on list: on, off string Connection/route restart required

在主数据库上开始

rs_ticket 标记。 isql –Usa –P –Ssunak1505x use pri go rs_ticket "done t1" go

(return status = 0)

检查

rs_ticket 是否使它发送到复制数据库: use rep go select ticket from rs_ticket_history where h1 =

"done t1" go ticket

-------------------------------------

V=2;H1=done t1;PDB(pri)=11/30/09

12:14:26.253;EXEC(143)=11/30/09 12:14:26.261;B

(143)=19705;DIST(129)=11/30/09

12:14:27.273;DSI(158)=11/30/0912:14:28

294;DSI_T=12;DSI_C=15;RRS=PRS2

注意 rs_ticket 第 2 版中包含所有存储过程和表以支持它,该版本在 Replication Server 15.1 和更高版本中可

用。如果您的

Replication Server 版本低于 15.1,请阅读《管理指南》以了解限制。

11. 当复制数据库上有该标记时,关闭自动更正: set autocorrection off for t1_repdef with replicate at sunak1505x.rep

go

'autocorrection' is modified for replication definition 't1_repdef' with replicate at 'sunak1505x.rep'.

12. 验证预订: validate subscription t1_sub

80

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

for t1_repdef with replicate at sunak1505x.rep

go

7.7

方案

7

可以从用户活动无法停止的主数据库实现复制数据库。

假定数据库转储正在进行时无法停止主数据库的活动。此方案使用主数据库来填充复制数据库,可用于使用相

同的主数据库转储来填充多个复制数据库。

此方案的以下条件与方案

3 非常相似:

SAP Adaptive Server Enterprise (SAP ASE) 和

SAP Replication Server 必须为 15.5 或更高版本。

此解决方案不需要

MSA 复制定义或预订。

此解决方案同时挂起多个

DSI 连接,以便可以使用同一主数据库转储填充多个复制数据库。

准备工作

RSSD 中获取连接的维护用户: use PRS2_RSSD go rs_helpuser go

User Name Permission(s) Name

------------ ------------------------------

PRS2_id_user no grants sa sa

PRS2_ra connect source

PRS2_rsi connect source

PRS2_RSSD_prim source, primary subscr

User name Destination DS.DB

------------ -------------------------------------

PRS2_RSSD_maint sunak1505x.PRS2_RSSD

pri_maint sunak1505x.pri

pri_maint sunak1505x.rep

(return status = 0)

在此示例中,

“pri_maint”是到主数据库 sunak1505x.pri 和复制数据库 sunak1505x.rep 的连接的维护用户。

开始重新同步

1. 在主

SAP ASE 上,停止主数据库的 Replication Agent: isql -Usa -P -Ssunak1505x sp_stop_rep_agent pri go

The Replication Agent thread for database 'pri' is

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

81

being stopped.

(return status = 0)

2. 在复制

SAP Replication Server 上,挂起复制数据库的 DSI: isql -Usa -Psa_pass –SPRS2 admin who go

Spid Name State Info

---- ---- ---------------- -------------------

68 DSI EXEC Suspended 105(1) sunak1505x.rep

67 DSI Suspended 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

3. 恢复与复制数据库的连接并指示其等待重新同步标记: resume connection to sunak1505x.rep

skip to resync marker go

Connection to 'sunak1505x.rep' is resumed.

4. 验证复制数据库连接的

DSI 线程是否正确设置: admin who go

Spid Name State Info

---- ---- ---------------- -------------------

120 DSI EXEC Awaiting Command 105(1) sunak1505x.rep

119 DSI SkipUntil Resync 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

5. 在主

SAP ASE 上,使用重新同步选项启动 Replication Agent: sp_start_rep_agent pri,'resync' go

Replication Agent thread is started for database 'pri'.

注意

如果更改了辅助截断点的位置,请参见《参考手册》中

“sp_start_rep_agent”可用的其它选项。

6. 在

SAP Replication Server 上,验证 DSI 线程状态现在是否已更改: admin who go

Spid Name State Info

---- ---- ---------------- -------------------

120 DSI EXEC Awaiting Command 105(1) sunak1505x.rep

119 DSI SkipUntil Dump 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

SAP Replication Server 日志中,您将看到重新同步选项已确认: sunak1505x.rep 的

DSI 收到并处理了重新同步数据库标记。正在等待转储标记。

注意

如果

DSI 线程未更改为“SkipUntilDump”,请从过程的步骤 1 重新开始。

7. 转储主数据库: dump database pri to 'pri.dmp' go

82

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

8. 在

SAP Replication Server 上,验证 DSI 线程现在是否被挂起: admin who go

Spid Name State Info

---- ---- ---------------- -------------------

68 DSI EXEC Suspended 105(1) sunak1505x.rep

67 DSI Suspended 105 sunak1505x.rep

66 SQM Awaiting Message 105:0 sunak1505x.rep

SAP Replication Server 日志中,您将看到转储标记已处理:

“sunak1505x.rep”的 DSI 收到并处理了转储标记。DSI 现已挂起。重新装载数据库后继续。 数据库

“sunak1505x.rep”的 DSI 线程已关闭。

9. 装载复制数据库: load database rep from '/c11014900/sybase1520x/ASE-

15_0/bin/pri.dmp' go

10. 使复制数据库联机: online database rep go

11. 将复制连接的维护用户添加到复制数据库,并在重新同步之前授予适当特权。 use rep go sp_adduser pri_maint go

New user added.

(return status = 0) grant execute on rs_get_lastcommit to pri_maint go grant all on rs_lastcommit to pri_maint go

注意

如果维护用户是此服务器的新用户,请将维护用户登录名添加到此服务器,并授予复制角色: sp_addlogin < <maintenance user> >, < <maintenance userpassword> >, < <database> > go sp_role "grant", replication_role, < <maintenance user> > go

如果维护用户的口令未知,请在

SAP ASE 中设置新的口令。在 SAP Replication Server 中,更改维护用

户的口令以匹配在

SAP ASE 中分配的口令: alter connection to < <dataserver> >.< <database> > set password to < <new_password> > go

12. 在复制数据库中截断 rs_lastcommit 表: use rep go truncate table rs_lastcommit go

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

83

13. 释放复制数据库中的辅助截断点: dbcc settrunc (ltm,ignore) go secondary trunc page secondary trunc state dbrepstat

-------------------- --------------------- -----

2668 0 172 generation id database id database name ltl version

------------- ------------ ------------- -------

0 8 rep 720

14. 恢复与复制数据库的连接。如果

DSI 仍保持挂起状态,请查看 SAP Replication Server 日志以确定在恢复 DSI

时是否出现错误: resume connection to sunak1505x.rep

go

Connection to 'sunak1505x.rep' is resumed

7.8 方案

8

对于用户和复制活动无法停止且必须继续复制数据库中其它表的复制的主表,可以从中实现复制表。

direct_load 方法中,直接将 SAP Replication Server 日志复制到主 SAP ASE 数据库中,并为表选择要实现

的行。

在将数据应用到复制表之前,先利用数据类型转换和自定义函数字符串。 在实现期间,复制活动会从主数

据库继续进行,而且表的行将放入

SAP Replication Server 的捕获队列中。 在初始选择中的行应用于目标后,会自

动应用捕获队列中的数据。

此时,预订标记为

VALID,且主表中的活动复制到复制表。

只有

SAP Replication Server 的节点版本为“1571100”或更高版本时才可使用此方法。 检查节点版本: isql –Usa –P <password> -S <replicate_Replication_Server> sysadmin site_version go

The current site version is 1571100

准备工作

确保可以从主表复制到复制表。

Direct_load 需要表复制定义和表级别预订。

在复制数据库上,确保数据库选项

“select into/bulkcopy/pllsort”设置为 true。

确保主数据库的

ASE 服务器的条目位于复制 Replication Server 的 interfaces 文件中。

开始重新同步

1. 如果存在表预订,则删除该预订。 isql –Usa –P <sa_pass> –SPRS2 drop subscription t1_sub

84

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

实现和重新同步

for t1_repdef with replicate at sunak1505x.rep

without purge go

2. 在复制表中,删除将由实现替换的行。 isql –U <user> -P <password> -S <replicate_ASE_server> -D <replicate_database> truncate table t1 go

3. 创建将实现类型标识为

direct_load 的预订。 isql –Usa –P <sa_pass> –SPRS2 create subscription t1_sub for t1_repdef with replicate at sunak1505x.rep

without holdlock direct_load user <puser> password <ppwd> go

其中:

○ sunak1505x.rep 为复制数据服务器和数据库。

<puser>

是从主

SAP ASE 数据库的表中选择数据的用户。

<ppwd>

<puser>

的口令。 如果在预订中指定了用户,则必须输入口令。

注意

○ 复制 SAP Replication Server 使用的 interfaces 文件必须包含初始数据所在的主 SAP ASE 的条目。

<puser>

不能为

SAP Replication Server 维护用户。

有关在

direct_load 实现中使用 create subscription 命令的详细信息,请参见《参考手册》。

4. 检查预订以在

direct_load 上获取状态。 check subscription t1_sub for t1_repdef with replicate at sunak1505x.rep

go

消息:

复制节点处的预订 t1_sub 有效。 这表示实现已完成且捕获队列已清除。

消息:

预订 t1_sub 发生错误。 这表示 Replication Server 在完成直接装载时发生错误。 检查 Replication

Server 和

ASE 日志以查看遇到的问题。

类似如下消息:

Subscription t1_sub has been MATERIALIZED at the replicate.

Subscriptions t1_sub progress: catchup, 0% done, -1 commands remaining.

表示

direct_load 未完成或在完成 direct_load 进程时出现问题。 这还表示复制 DSI 尚未收到验证标记。 在这

种情况下,请确保复制路径可用。

如果出现错误,则删除预订并重新启动

direct_load 进程。

ASE 到

ASE 快速入门指南

实现和重新同步

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

85

8 SAMPLE_RS

SAP Replication Server 快速入门指南》中的许多示例使用

SAMPLE_RS 作为 SAP Replication Server。

只能在

SAP Replication Server 安装时执行安装和创建 SAMPLE_RS 的选项。 如果在 SAP Replication Server

安装期间未构建

SAMPLE_RS,可自行构建。

本文档的这一节用于构建

SAMPLE_RS,结果与在 SAP Replication Server 安装时构建相同。

相关信息

86 页上的

“创建 SAMPLE_RS”

89 页上的

“刷新 SAMPLE_RS”

91 页上的

“从系统中删除 SAMPLE_RS”

8.1 创建

SAMPLE_RS

当目录或文件不存在时创建

SAMPLE_RS 和 SAMPLE_RS_ERSSD。

上下文

如果

SAMPLE_RS 目录已存在,请转到刷新 SAMPLE_RS 部分。

过程

1. 转到

SAP Replication Server 安装目录。此为 REP-15_5 所在位置的上一级目录。此为 $SYBASE 的值。

2. 通过获取 SYBASE.csh 文件来设置环境变量。

3. 编辑 interfaces 文件并添加以下条目:

SAMPLE_RS

master tcp ether localhost 11752

query tcp ether localhost 11752

#

SAMPLE_RS_ERSSD

master tcp ether localhost 11751

query tcp ether localhost 11751

86

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

SAMPLE_RS

将 <localhost>

更改为主机名。

警告

在一台主机上只能有一个

SAMPLE_RS_ERSSD。

4. 转到 $SYBASE/REP* 目录。

5. 创建名为 samp_repserver 的目录。

mkdir samp_repserver

6. 转到 samp_repserver 目录。

cd samp_repserver

7. 创建名为 samp_partition 的目录。

mkdir samp_partition

8. 创建带有以下修改的名为 SAMPLE_RS.res 的文件,如下所示:

在参数值中,由于

rs_init 无法使用环境变量,所以 $SYBASE 必须反映路径的实际名称。

14:

参数 sybinit.release_directory

rs.rs_idserver_pass

rs.rs_rssd_prim_pass

rs.rs_rssd_maint_pass

rs.rs_ltm_rs_pass

rs.rs_rs_sa_pass

rs.rs_rs_run_file

rs.rs_rs_errorlog

rs.rs_rs_cfg_file

rs.rs_erssd_database_dir

rs.rs_erssd_translog_dir

rs.rs_erssd_backup_dir

rs.rs_erssd_errorlog_dir

说明

$SYBASE 的实际路径或值

有效口令

有效口令

有效口令

有效口令

有效口令

用于启动

SAMPLE_RS 的有效文件和路径。

$SYBASE/REP-15_5/ samp_repserver/RUN_SAMPLE_RS 为推荐的位置和文件名。

用于

SAMPLE_RS 日志文件的有效文件和路径。

$SYBASE/REP-15_5/ samp_repserver/SAMPLE_RS.log

为推荐的位置和文件名。

用于

SAMPLE_RS 配置文件的有效文件和路径。

$SYBASE/REP-15_5/ samp_repserver/SAMPLE_RS.cfg

为推荐的位置和文件名。

ERSSD 数据库所在的有效路径。 $SYBASE/REP-15_5/ samp_repserver/dbfile 为推荐的位置。

ERSSD 数据库事务日志所在的有效路径。 $SYBASE/REP-15_5/ samp_repserver/log 为推荐的位置。

ERSSD 备份(包括镜像日志)所在的有效路径。 $SYBASE/REP-15_5/ samp_repserver/backup 为推荐的位置。

ERSSD 日志所在的有效路径。 $SYBASE/REP-15_5/samp_repserver/ errorlog

为推荐的位置。

ASE 到

ASE 快速入门指南

SAMPLE_RS

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

87

参数 rs.rs_diskp_name

说明

用于稳定设备的有效文件和路径。文件不必存在,但目录路径必须存在。

$SYBASE/REP-15_5/samp_repserver/samp_partition/ partition1 为推荐的位置。

有效口令 rs.rs_rs_pass

对于在以下资源文件中没有值的参数,请参见表中的参数说明,并根据说明提供值。

# --- rs_init resource file ----

# sybinit.release_directory: sybinit.product: rs rs.rs_operation: rs_install

#

# --- ID SERVER INFORMATION ----

# rs.rs_idserver_name: SAMPLE_RS rs.rs_id_server_is_rs_server: yes rs.rs_idserver_user: USE_DEFAULT rs.rs_idserver_pass: rs.rs_rssd_prim_pass: rs.rs_rssd_maint_pass: rs.rs_ltm_rs_pass:

#

# --- REPLICATION SERVER INFORMATION ----

# rs.rs_name: SAMPLE_RS rs.rs_rs_sa_user: USE_DEFAULT rs.rs_rs_sa_pass: rs.rs_erssd_requires_ltm: no rs.rs_needs_repagent: yes rs.rs_rs_run_file: rs.rs_rs_errorlog: rs.rs_rs_cfg_file: rs.rs_charset: USE_DEFAULT rs.rs_language: USE_DEFAULT rs.rs_sortorder: USE_DEFAULT

#

# --- ERSSD ----

# rs.rs_rssd_embedded: yes rs.rs_erssd_name: SAMPLE_RS_ERSSD rs.rs_erssd_database_dir: rs.rs_erssd_translog_dir: rs.rs_erssd_backup_dir: rs.rs_erssd_errorlog_dir:

#

# --- DISK PARTITION INFORMATION ----

# rs.rs_diskp_name: rs.rs_diskp_lname: partition1 rs.rs_diskp_size: 20 rs.rs_diskp_vstart: 0

#

# --- REMOTE SITE CONNECTION INFORMATION ----

# rs.rs_rs_user: USE_DEFAULT rs.rs_rs_pass:

#

# --- ID SERVER INTERFACES INFORMATION ----

# rs.do_add_id_server: no

88

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

SAMPLE_RS

rs.do_add_replication_server: no

9. 使用 rs_init 来执行以下资源文件:

$SYBASE/REP-15_5/install/rs_init -r SAMPLE_RS.res -T T_SEND_CLEARTEXT_PASSWORD

如果创建

SAMPLE_RS 失败: a. 更正错误。 b. 如果

SAP Replication Server 正在运行,则将其停止。 c. 删除以下目录中的文件:

○ $SYBASE/REP*/samp_repserver/backup/SAMPLE_RS_ERSSD.db

○ $SYBASE/REP*/samp_repserver/backup/SAMPLE_RS_ERSSD.log

○ $SYBASE/REP*/samp_repserver/backup/SAMPLE_RS_ERSSD.mlg

○ $SYBASE/REP*/samp_repserver/dbfile/SAMPLE_RS_ERSSD.db

○ $SYBASE/REP*/samp_repserver/errorlog/SAMPLE_RS_ERSSD.out

○ $SYBASE/REP*/samp_repserver/log/SAMPLE_RS_ERSSD.log

○ $SYBASE/REP*/samp_repserver/RUN_SAMPLE_RS

○ $SYBASE/REP*/samp_repserver/SAMPLE_RS.cfg

○ $SYBASE/REP*/samp_repserver/SAMPLE_RS.log

d. 重新运行 rs_init。

10. 验证

SAMPLE_RS 是否可用。登录到 SAMPLE_RS。 isql -Usa –P <password> -SSAMPLE_RS sa 用户

ID 的口令是您在资源文件中填写的 rs.rs_rs_sa_pass 值。

11. 输入: admin who go

12. 通过退出 isql 客户端来结束会话。 exit go

8.2 刷新

SAMPLE_RS

如果目录已存在,则刷新

SAMPLE_RS。

过程

1. 转到

SAP Replication Server 安装目录。此为 REP-15_5 所在位置的上一级目录。此为 $SYBASE 的值。

ASE 到

ASE 快速入门指南

SAMPLE_RS

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

89

2. 通过获取 SYBASE.csh 文件来设置环境变量。

3. 在 $SYBASE/interfaces 文件中,验证此主机是否有 SAMPLE_RS 和 SAMPLE_RS_ERSSD 条目:

SAMPLE_RS

master tcp ether localhost 11752

query tcp ether localhost 11752

#

SAMPLE_RS_ERSSD

master tcp ether localhost 11751

query tcp ether localhost 11751

将 <localhost>

更改为主机名。端口号可以是主机上的任何可用端口。如果您想使用与

interfaces 文件

中显示的端口号不同的端口号,请确保关闭

SAMPLE_RS,然后再更改 interfaces 文件中 SAMPLE_RS 和

SAMPLE_RS_ERSSD 的端口号。

注意

SAMPLE_RS 使用

ERSSD 创建。在同一主机上不能同时运行多个具有相同名称的 ERSSD(或 ASA 服

务器)。

4. 如果

SAMPLE_RS 当前正在运行,请关闭现有的 SAMPLE_RS。 isql -Usa -P <password> -SSAMPLE_RS shutdown go

5. 验证以下目录和文件在 $SYBASE/REP*/samp_repserver 下是否存在:

-rwxr-xr-x 1 sybase sybase 93 Dec 18 19:07 rs_init-SAMPLE_RS.sh*

-rwxr-xr-x 1 sybase sybase 1667 Dec 18 19:08 SAMPLE_RS.res* drwxr-xr-x 2 sybase sybase 4096 Dec 18 19:07 samp_partition/

6. 如果以下目录存在,确保目录中的文件不包含

SAMPLE_RS_ERSSD 的名称。 drwxr-x--- 2 sybase sybase 4096 Dec 19 17:50 backup/ drwxr-x--- 2 sybase sybase 4096 Dec 19 17:50 dbfile/ drwxr-x--- 2 sybase sybase 4096 Dec 19 17:50 errorlog/ drwxr-x--- 2 sybase sybase 4096 Dec 19 17:50 log/

例如,在

$SYBASE/REP*/samp_repserver/dbfile 目录中,不能存在文件

SAMPLE_RS_ERSSD.db。

如果文件已存在,需要为

SAMPLE_RS_ERSSD 选择其它名称或删除目录下的文件。

注意

要成功构建

SAMPLE_RS,不必存在这些目录。

7. 如果之前创建了

SAMPLE_RS,需要重命名或删除以下文件:

-rwxr-xr-x 1 sybase sybase 290 Dec 19 17:54 RUN_SAMPLE_RS*

-rw------- 1 sybase sybase 1149 Dec 19 17:54 SAMPLE_RS.cfg

-rw-r----- 1 sybase sybase 8906 Dec 19 17:54 SAMPLE_RS.log

90

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

SAMPLE_RS

注意

RUN 和 cfg 文件包含有关之前的 SAMPLE_RS 和 SAMPLE_RS_ERSSD 的全部信息,包括目录和文件

名。

8. 验证 $SYBASE/REP*/samp_repserver/SAMPLE_RS.res 中的条目。

9. 通过获取 $SYBASE/SYBASE.csh 文件来设置环境变量。

10. 转到 $SYBASE/REP*/samp_repserver 目录。

11. 执行 rs_init-SAMPLE_RS.sh:

./ rs_init-SAMPLE_RS.sh

如果文件

rs_init-SAMPLE_RS.sh 不存在,则使用 SAMPLE_RS.res 文件执行 rs_init:

$SYBASE/REP-15_5/install/rs_init -r SAMPLE_RS.res -T

T_SEND_CLEARTEXT_PASSWORD

12. 验证

SAMPLE_RS 是否可用。登录到 SAMPLE_RS。 isql -Usa –P <password> -SSAMPLE_RS sa 用户

ID 的口令是您在资源文件中填写的 rs.rs_rs_sa_pass 值。

13. 输入: admin who go

14. 通过退出 isql 客户端来结束会话。 exit go

8.3 从系统中删除

SAMPLE_RS

如果

SAMPLE_RS 不属于多个 SAP Replication Server 环境,则将其从系统中删除。

过程

1. 转到 $SYBASE。

2. 获取 SYBASE.csh。

3. 如果

SAMPLE_RS 正在运行,请将其关闭: isql –Usa –P <password> -SSAMPLE_RS shutdown go

ASE 到

ASE 快速入门指南

SAMPLE_RS

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

91

4. 查看启动

SAMPLE_RS 的文件。

缺省安装位于

$SYBASE/REP*/samp_repserver/RUN_SAMPLE_RS。

5. 记下由

–C 参数(SAP Replication Server 配置文件)、–E(SAP Replication Server 日志)和 –I(interfaces

文件)标识的文件位置。

6. 转到由

–C 参数标识的文件(配置文件)。 在配置文件的以下行中记录文件和目录: erssd_errorlog erssd_dbfile erssd_translog erssd_logmirror erssd_backup_dir

7. 要获取由 erssd_dbfile 参数引用的文件,请记录 ERSSD 的名称。

ERSSD 的名称将是 .db 文件扩展名之前的名称。 如果条目类似于 /opt/sybase/REP-15_5/ samp_repserver/dbfile/SAMPLE_RS_ERSSD.db,则 SAMPLE_RS_ERSSD 为 ERSSD 的名称。

8. 在 erssd_backup_dir 标识的目录中,删除含 ERSSD 名称的所有文件。

例如,必须删除

SAMPLE_RS_ERSSD.db。

9. 删除以下各项标识的文件:

○ erssd_errorlog

○ erssd_dbfile

○ erssd_translog

○ erssd_logmirror

10. 在 $SYBASE/REP*/samp_repserver 目录中,删除 RUN 文件、配置文件和 SAMPLE_RS 日志文件。

11. 编辑 interfaces 文件以删除 SAMPLE_RS 和 SAMPLE_RS_ERSSD 条目。

92

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

ASE 到

ASE 快速入门指南

SAMPLE_RS

重要免责声明和法律信息

编码示例

在本文档中包含的任何软件代码和

/或代码行/字符串(简称

“代码”)仅为示例,并非供在生产性系统环境中使用的。 代码的目的仅在于提供更好的解释和可视化特定编码的

语法和句法规则。

SAP 不担保本文档中所提供的代码的正确性和完整性,并且 SAP 对于由使用代码造成的错误或损害概不负责,除非损害是由 SAP 故意或重大过失造成

的。

辅助功能

SAP 文档中包含的信息代表

SAP 在文档发布之日对辅助功能标准的当前观点,完全不是针对如何确保软件产品的辅助功能方面的具有约束力的准则。 SAP 特别声明不承担

与本文档相关的任何责任。

但是,本免责声明不适用于

SAP 存在有意过错行为或重大过失的情况。 此外,本文档不会构成 SAP 方的任何直接或间接合同义务。

性别中立语言

SAP 文档尽可能做到性别中立。 依据上下文,或直接用

“您”称呼读者,或使用性别中立的名词(诸如:销售人员或工作日)。 但是,如果需要提及两种性别的成员,而又无

法避免使用第三人称单数形式或不存在性别中立的名词, SAP 保留使用名词和代词的阳性形式的权利。 这是为确保文档易于理解。

互联网超链接

SAP 文档中可能包含指向互联网的超链接。 这些超链接意在用做查找相关信息的指引。

SAP 不保证此相关信息的可得性和正确性或此信息符合特定需求的能力。 对于使用

相关信息造成的损害,

SAP 不应承担任何责任,除非损害是由于

SAP 的重大过失或有意过错行为造成的。 所有链接都已分类以提高透明度(请参阅: http:// help.sap.com/disclaimer

)。

ASE 到

ASE 快速入门指南

重要免责声明和法律信息

P U B L I C

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

93

go.sap.com/registration/ contact.html

© 2016 SAP 股份公司或其关联公司版权所有, 保留所有权利。

未经

SAP 股份公司或其关联公司明确许可,不得以任何形式或为任何

目的复制或传播本文的任何内容。

本文包含的信息如有更改,恕不另

行事先通知。

SAP 股份公司及其分销商营销的部分软件产品包含其他软件供应商

的专有软件组件。

各国的产品规格可能不同。

上述资料由

SAP 股份公司或其关联公司提供,仅供参考,不构成任何

形式的陈述或保证,其中如若存在任何错误或疏漏,

SAP 或其关联公

司概不负责。

SAP 或 SAP 关联公司产品和服务相关的保证仅限于该

等产品和服务随附的保证声明(若有)中明确提出之保证。

本文中的

任何信息均不构成额外保证。

SAP 和本文提及的其它

SAP 产品和服务及其各自标识均为 SAP 股份公

司(或

SAP 关联公司)在德国和其他国家的商标或注册商标。 提及的

所有其它产品和服务名称均为其各自公司的商标。

如欲了解更多商标信息和声明,请访问: http://www.sap.com/ corporate-en/legal/copyright/index.epx

advertisement

Key Features

  • Installation and configuration
  • Multi-node availability
  • Hot backup application
  • Replication of DDL and DML statements
  • Troubleshooting

Frequently Answers and Questions

How do I install and configure SAP Replication Server?
This guide provides step-by-step instructions on how to install and configure SAP Replication Server, including how to choose an installation directory, select an installation type, and configure the server for use with the ASE to ASE setup.
How do I use the SAP Replication Server for multi-node availability?
This guide provides information on how to add and configure both primary and secondary databases, as well as how to manage replication definitions and subscriptions, for use with the SAP Replication Server for multi-node availability.
How do I establish a hot backup application using the SAP Replication Server?
This guide provides instructions on how to add and configure both primary and secondary databases, as well as how to manage replication definitions and subscriptions, for use with the SAP Replication Server to establish a hot backup application.
How do I manage replication definitions and subscriptions?
This guide provides information on how to manage replication definitions and subscriptions, including how to create and delete subscriptions, and how to view information about existing replication definitions and subscriptions.
How do I manage the replication of DDL and DML statements?
This guide provides instructions on how to manage the replication of both data definition language (DDL) and data manipulation language (DML) statements, including how to replicate DDL statements, and how to replicate DML statements.

Related manuals

Download PDF

advertisement