SCC9远程集团复制(remote client copy)
背景知识:
Client Copy中文说法叫集团复制,简单的说就把区分client的数据(client-specific data)从一个client复制到另一个client下,可能是在同一台服务器的不同client之间进行复制,也可能是在不同的服务器之间进行复制,至于在不同的服务器之间进行数据的复制,对于client的ID可以是相同也可以不同。
Client Copy有三种方式:
- Local client copy. (Tcode:SCCL)
- Remote client copy.(Tcode:SCC9)
- Client Import/Export.(Tcode:SCC8/STMS/SCC7)
对于Remote client copy 方式,需要占用较大的网络带宽资源,对于数据库的数据量较大的情况下,或者两个系统之间网络不够畅通的情况下,可以选择Client Import/Export方式。
Client Copy可以复制的数据内容有:
1.users data :账号、权限等
2.cross client customizing:跨client的配置相关数据
3.application data :业务交易数据,物料主数据等等
4.client dependant customizing:非跨client的配置相关数据
场景说明:
从生产机(PRD)的client 800 同步数据到测试机(QAS)的400,采用在线的方式,即生产和测试都不停机。
准备工作:
1. 进入SM59 创建一个RFC连接。
- 连接类型为 3 ,即ABAP Connection(ABAP连接)
- 在technical Settings标签页下,维护好生产机的IP地址或主机名和实例编号
- 在Logon & Security标签下,维护好生产机对应的登录信息,值得说明的是,这个账号建议设置为通信类型账号。
- 对于remote copy,源系统(生产机)的账号,如本例的DDIC,必须要具有S_TABU_RFC权限对象的权限。
- 测试连通性,以及是否可以远程登录
2.进入SCC4,创建一个空client 400
- 进入事务SCC4,切换到编辑状态
- 点击“New Entries” 添加一空的client 400,填入必要的信息,保存。
- 回到scc4初始界面,可以看到刚创建的client 400
这个新的client,会有一个默认的SAP*用户和默认的“pass”密码,注意密码全部是小写。
特别说明的一点是,这个SAP*账号,是在数据库里查询不到的,应该是基于内核层级的;只有在RZ11中的参数文件中参数login/no_automatic_user_sapstar的值不为1时,该账号才是激活的。
3.如果对于数据一致性要求很高,还需要做一些其它的准备工作
- 将源client和目标client都要锁定,如果没有修改过专家选项,默认在执行的复制的时候,会自动将两个client锁定,如果需要手动锁定,可以使用函数SCCR_LOCK_CLIENT锁定,SCCR_UNLOCK_CLIENT解锁;
- 将系统上活跃的用户踢出(SM04),目的是防止业务操作产生数据不一致
- 将后台作业全部挂起,使用SE38执行程序BTCTRNS1,释放挂起的后台作业执行程序BTCTRNS2
- SM13等待所有的数据库更记录更新完成
- 通过RZ11修改参数rdisp/max_wprun_time的值为较大的值,例如3600秒
复制过程
1.进入SCC9
SCC9的初始界面类似如下:
2.Source destinat.选择SM59创建的RFC连接
System Name 和Source Client会自动带出。如下图:
对于这里选定的RFC连接,在SM59中一定要维护正确的账号和密码,否则会报错。
3.选择Profile
选择哪一个profile是根据需要来进行的,例如需要复制所有的数据到本client下,那么就选择“SAP_ALL”,如果需要除了usr02表相关的用户账号主数据的其它所有数据,就选择“SAP_APPL”,对于所有的可选择的参数有如下:
当选择一个Profiles后,可以通过菜单中的profile来查看包含的要复制的内容,如下图所示:
例如,选择的profile是“SAP_USER”,通过上面的profile display可以显示如下:
下面是来自官方帮助文档的一些对参数文件的说明:
Profile
|
说明
|
SAP_UONL
|
User master data without authorization profiles and roles
|
SAP_PROF
|
Only authorization profiles and roles
|
SAP_USER
|
User master data, user roles, and authorization profiles are copied. The client is not reset. 等同于是 SAP_UONL + SAP_PROF
|
SAP_CUST
|
Client-specific customizing including the authorization profiles is copied. The application data is deleted and the user master data of the target client is retained.
简单的描述就是非跨client的配置
|
SAP_CUSV
|
SAP_CUST with variants
|
SAP_RMPC
|
SAP_CUSV with cross-client customizing,所有配置,独立client的和跨client的都会被复制,还有权限参数文件,但是用户账号和角色等不会被复制
|
SAP_UCUS
|
SAP_CUST with user master data
|
SAP_UCSV
|
SAP_UCUS with variants,等同于SAP_CUST+SAP_USER+variants
|
SAP_RMBC
|
SAP_UCSV with cross-client customizing,所有配置,独立client的和跨client的都会被复制,还有用户主数据和权限,但是会删除目标client中的业务数据
|
SAP_APPX
|
SAP_ALL 除去SAP_USER的所有数据
|
SAP_APPL
|
SAP_ALL 除去SAP_UONL的所有数据
|
SAP_ALL
|
All client data except change documents (see note 180949) and local data is copied.
|
SAP_RMPA
|
SAP_ALL with cross-client customizing,该参数复制的数据范围比SAP_ALL多了一个跨client的配置
|
对于不会被复制的change documents的一点说明:
change documents相关的表主要有CDHDR, CDPOS, CDPOS_UID, CDPOS_STR, PCDHDR, PCDPOS, PCDPOS_UID, and PCDPOS_STR (CDPOS and PCDPOS belong to the cluster CDCLS)。如果目标client中的这些表不为空,则在进行client copy的时候会将目标client中的这些表清空。
4.定义并行处理的处理器数量
如下图所示,两个地方都可以进入并行处理的处理器数量设置的界面:
进入后,默认会有一个最大的处理器数量,可以不修改,也可以减少数量。
5.勾选Test Run,测试运行
在正式执行复制之前,一定要勾选这个复选框,进行模拟执行,以评估时间和确保没有错误后,再取消勾选,然后正式执行复制。
7.进行RFC系统比较
通过这样的比较,可以发现系统源client和目标client之间的不一致,如果存在不一致,会导致client copy失败。
比较成功后,会有类似如下界面,如下界面是没有不一致的界面:
8.测试执行
应用工具栏的两个按钮分别表示在后台执行和在前台执行,如果选择了SAP_ALL等类似的profile,或者源系统数据很多,可以选择第一个后台作业的方式测试执行,如果数据比较少,可以选择第二个按钮,在前台测试执行。
- 在前台执行:
首先出现确认界面如下:
点击Continue
点击Simulation进行模拟,左下角会有提示:
此时可以在SCC3中查看进度和日志情况。
执行完成后,会有类似如下的界面:
点击log Display会自动跳转至SCC3事务,也可以手动输入TCODE:SCC3进入查看。
双击进入,可以看到详细:
通过点击工具栏的File Log可以查看详细日志信息,包括错误原因,相关的表的名称等等。
仅当日志中没有错误的时候,才可以取消勾选Test Run测试运行。
- 在后台执行:
点击工具栏第一个按钮Schedule as Background Job按钮后
对于Background Server是可选的,可以选择。
- 如果勾选 Immediately按钮,并点击工具栏按钮Schedule Job,会弹出确认界面,同前台执行时弹出的确认界面一样,点击continue后,系统会自动创建一个后台作业,并立刻执行。此时,可以通过SCC3查看执行情况和日志。
- 如果不勾选Immediately按钮,点击并点击工具栏按钮Schedule Job,会弹出后台作业计划任务的定制界面,如下:
保存后,会弹出确认确认界面,点击continue,任务计划释放完成。后续可以通过SCC3查看日志。
9.正式运行client copy
当上一步测试执行,没有问题后,就可以在SCC9初始界面,取消Test Run复选框的勾选,正式执行。通常建议以后台作业的方式执行。
在SCC3事务中,可以随时取消client copy,但是通常不建议这样做。
专家设置
在SCC9初始界面的工具栏中,可以进入专家设置项,进行一些特殊的配置。
进入配置项界面:
对于这些选项的说明:
390OPT、CWITH_CURS、DWITH_CURS在S/4 HANA下不需要使用。
DEBUG_INFO:SAP不建议使用
AUTO_MAIL:出现错误终止时,自动发邮件,无实际用处。
GRAPHIC:与SCC3中的图形监视功能重复。
LOCK_SYS:此选项使用最快的方法从数据库表中删除客户端的所有条目。它可在 DB2/390 和 INFORMIX 下显著提高性能,尤其是 INFORMIX。但是,在
Oracle 中,如果具有回滚段的表较大,则可能会出现问题,因此只有在最大表完全适合回滚段且所有进程都有足够的回滚段时,才会使用该问题。
KEY_DELETE:仅当未选择 LOCK_SYS 时,此选项才处于活动状态。使用此选项,将使用算法(所有其他表继续使用标准删除算法删除)删除所有至少具有三个
关键字段且不是 POOL 或 CLUSTER 表的表,该算法会将具有相同第二个键值字段的所有表条目分组到组中。因此,如果第二个关键字段包含公司代码,并且系统
中有三个公司代码,则将分三步删除表。因此,只有每种情况下最大的公司代码必须适合数据库的回滚区域。这同样描述了使用此选项的最佳场景。
此选项也可能导致 TIME OUT 和数据库回滚区出现问题。对于单个表,应用程序服务器的主要内存需求也可能非常大。
LARGEBLOCK:使用此选项,对于所有按块工作的复制和删除算法(正常块大小在 16 到 32 MB 之间),块大小将增加 8 倍。数据库的滚动要求、应用程序服务器上的工作内存需求以及 TIME OUT 值的需求相应增加。复制进程在应用程序服务器上通常需要大约 30 - 50 MB 的可用工作内存。对于 LARGEBLOCK 选项,这可能会增加到 250 MB。
MAX_WPRUN:果此选项处于活动状态,在所有使用的服务器上将 rdisp/max_wprun_time 自动设置为 9999。如果没有终止,复制后该值将再次重置为旧值。所有更改都记录在系统日志中。但是,更改只是临时的,也就是说,它们在系统重新启动时不是最后更改。
NO_RFCCHK:默认情况下无法显示此选项。这样做有一个很好的原因,因为忽略数据字典中的差异始终会导致不一致的目标客户端。只要有可能,在进行复制之前,必须通过传输相应结构来同步数据字典中的差异。因此,此选项只能用作特殊实验情况的最后选项 以及 SAP 不能为制作副本提供任何支持 使用此选项。不仅数据字典中的结构不同,而且访问这些结构的程序逻辑也不同。在重新启动或后续复制错误(使用事务 SCC3)后,使用 NO_RFCCHK 选项的复制可能具有“已成功终止”状态,尽管由于数据字典差异而无法复
制大量表。
SINGLECOPY:此选项的逻辑是防止在复制阶段结束时仅有一个进程(由特别大的表持有)处于活动状态。在特别困难的情况下,此流程的工作清单中仍存在其他几个非常大的表。最好通过执行测试运行来确定是否有必要使用此选项(以及针对哪些表)。对于日志文件末尾的各个大表而言,它可能很重要。但是,使用此选项复制过多的表或在另一进程完成之前长时间复制任何事件中的表没有意义。注意: 要在开始复制所有进程时同时复制非常大的表,需要大量资源(当同时使用其它资源密集型选项之一时),尤其是在数据库中。但是,通常,只需在单个复制列表中接受单个表即可达到预期效果
SMALLBLOCK:使用此选项,将取消激活动态块大小说明,尤其对所有表使用小块(512 行)。此选项还会取消激活 LARGEBLOCK 选项。因此,您还可以在特别弱或过载的系统上进行复制。
SRC_LOCK:使用此选项,源客户端将自动锁定以防止新登录。但是,已经登录的用户可以保持活动状态,如有必要,必须单独通知用户(这在目标客户端中也是必需的)。如果通过终止复制等方式保留锁,可通过调用事务 SCC3 将其从每个客户端移除。或者,也可以通过客户端管理(事务 SCC4)将其移除。当然,这也适用于目标客户端中的挂锁。
NOEXPORT:通过此选项,客户端导出将阻止发布传输请求。之后,可以使用具有无条件模式 (UMODES) 18 的 tp 命令发布并导出它们。但是,在此必须考虑到在此期间未在源客户端中进行其他客户端复制(包括传输请求的副本 - 事务 SCC1)或导出。如果未考虑此操作,或者在释放前已更改传输请求,SAP 无法提供 任意 支持。
IGNORE_CON:此选项具有两个远程复制功能。一方面,使用此选项还会复制结构中存在差异的表。因此,例如,源中的附加字段或不同的字段长度。在这种情况下,系统在技术上尽可能多地复制数据(对应于 MOVE-CORRESPONDING)。因此,如果表定义中存在不兼容差异,则与 NO_RFCCHK 选项组合使用远程复制也成为可能。客户必须根据个人情况,决定导致的数据丢失不严重的程度。另一方面,此选项还会复制由于备选字符集表(代码页)而出现转换错误的表。消息目标 390表 & 的代码页转换失败如果目标系统不是 Unicode 系统,且源系统具有不同的代码页,则始终会出现这种情况。无法转换的字符将替换为 '#'。一致性和适当状态 目标客户端的无法保证 由客户负责。如果关键字段受此影响,可能会出现 TA 143 消息:错误:在客户端中写入错误:& 重复键值表
在这种情况下,受影响表的复制将终止,您必须找到另一种复制数据的方法,或者必须放弃客户端复制。
NO_REL_CHK:此选项会放宽对相同基础版本的检查。如果目标系统的版本高于源系统版本或与源系统版本相同,则允许在具有 WAS 基础的两个系统之间进行复制。您可能需要同时使用选项 IGNORE_CON 和 NO_RFCCHK。此选项为实验选项,SAP 无法为使用此选项编译的客户端提供任何支持。
VERIFY_CNT:如果您不确定使用的数据库是否完全可靠,则可以使用此选项验证复制结果。
此选项可与 RSCC_VERIFY 报表进行比较(比较note 579783)。但是,在复制期间已执行比较。但是,此选项可能会显著增加运行时,具体取决于所使用的数据库。
SKIP_EMPTY:使用此选项,将跳过完全为空的表。这可能导致主要含空表的系统运行时间更短(通常在新安装之后或仅使用有限数量的模块时)。此选项在IBM iSeries 上始终处于活动状态。另请参阅note 517589。
CHK_ASSIGN:应在开发系统或合并系统中使用此选项。执行附加一致性检查。这些检查每 5,000 个表大约需要 1 分钟的时间。但是,这可能会允许您防止异常终止。
ADDR_BLOCK:此选项可防止具有多个用户的系统中出现异常终止。比较note 697445
另外比较实用的时Tables标签页和Packages标签页
可以在client copy中,排除指定的表或包,不进行复制。