本文提供一个逐步指南,指导您使用重定向恢复操作对已有 SAP 系统执行跨平台异构系统复制。该功能在 DB2 Version 8 或更高版本中可用。本文描述这种迁移期间可能发生的问题,以及成功完成该操作所需知道的重要信息。
您可能需要使用异构系统复制(Heterogeneous System Copy)更改操作系统平台,或者复制一个系统。当需要构建测试或试验环境时,SAP 建议执行那样的复制。
使用本文中的说明的同时,还必须使用适当的 SAP Installation 手册和 SAP Homogeneous and Heterogeneous System Copy 指南。
在相同操作系统上运行的两个系统之间的系统复制称作同构系统复制(Homogeneous System Copy),这种复制可以使用 R3load 工具或 DB2 重定向恢复过程执行。
而在不同操作系统或不同 DBMS 系统上运行的两个系统之间的系统复制则称作 异构系统复制(Heterogeneous System Copy)。 在 DB2 Version 8 之前,只能使用 SAP 提供的 R3load 工具执行异构系统复制。
对于在不同平台上运行的两个系统,只要每个系统的 endianness(big-endian 或 little-endian)相同,便可以通过 DB2 Version 8 以及更高版本,使用重定向恢复在两个系统之间创建异构系统复制。除了以下限制外,可以为任何 big-endian 服务器做备份,然后将它恢复到另一个 big-endian 服务器。例如,可以将 DB2 for HP-UX 的备份镜像恢复到 DB2 for AIX® 或 Sun Solaris。对于 Windows®,虽然仍然只限于相同的平台,但是可以从 32 位系统迁移到 IA 或 AMD 64 位系统。
注意: endianness 是指最低地址存储的是最高位字节还是最低位字节。 big-endian 意味着最高位字节存储在最低地址(按高位优先的顺序存储字)。大多数 RISC 处理器都是 big-endian。而 little-endian 意味着最低位字节存储在最低地址(按低位优先的顺序存储字)。Intel 微处理器是 little-endian。
下面是系统复制的一些限制:
- 可以将来自较低版本的 DB2 的备份镜像恢复到较高版本的 DB2,但是反之则不行。例如,可以将 plinux 系统上创建的 V8 或 V9 备份恢复到在 AIX 上运行的 9.5 系统。注意,该选项仅适用于离线备份,不支持前滚。
- 可以将 32 位系统上创建的备份镜像恢复到 64 位系统,但是反之则不行。
- 可以将从非自动存储数据库创建的备份镜像恢复到自动存储数据库系统,但是反之则不行。
如果您的系统不属于受支持的组合,那么必须使用 R3load 方法执行系统复制。
接下来的小节解释使用重定向恢复将一个 SAP R/3 系统从一个平台(源系统)复制到另一个系统(目标系统)的过程,该过程如图 2 所示。
使用本文描述的跨平台异构系统复制过程作为参考,并借助特定于当前平台和 SAP 发行版的 SAP 安装手册,以及适当的 IBM 在线文档。此外,还应该查看以下 OSS Note:
- OSS Note # 316353: lNST: 4.6D SAP Basis - Heterogeneous System Copy
- OSS Note # 516246: INST: System Copy for SAP Systems based on SAP Web AS 6.20
- OSS Note # 677447: INST: System Copy for SAP Systems based on SAP Web AS 6.30
- OSS Note # 870863: Hom./Het.System Copy SAP NetWeaver 2004s
- OSS Note # 1120872: Hom./Het.System Copy SAP NetWeaver 7.0 SR3
- OSS Note # 73717: DB6: Tools for a System Copy
- OSS Note # 122222: DB2 UDB: Redirected Restore via DB2 CLP
- OSS Note # 628156: DB6: Cross-Platform. System Copy using Backup/Restore
- OSS Note # 1323791: DB6: Tips for the homogeneous system copy
- OSS Note # 1125951: DB6:NW7.0 SR3/SAP Business Suite 2005 SR3 - UNIX
- OSS Note # 1323791: DB6: Tips for the homogeneous system copy
在开始系统复制之前,需要清楚以下事情:
- 要执行系统复制,两个系统必须有相同版本的 SAP,并且必须都在 DB2 Version 8 或更高版本上。
- 在复制之前,源系统必须处于一致状态。所有发布任务应该已结束。系统中应该不存在未取消或挂起的更新请求。
- 在目标 DB2 系统上创建与源数据库文件系统大小匹配的逻辑卷和文件系统。注意,取决于源系统的数据量,使用的文件系统大小可能不同于 SAP 安装文档中推荐的大小。请参阅 R/3 Installation on UNIX: IBM DB2 Universal Database for UNIX and Windows,了解更多信息。
- 必须与 SAP 联系,获得进行迁移应满足的需求(例如,获得迁移包或迁移密钥,并且在网站上有一位获得认证的顾问)。要了解更多信息,请查阅 OSS Note # 628156。
- 要在 R/3 Enterprise 470 上运行系统复制,源系统和目标系统必须使用相同的 SID。对于更高的 SAP 发行版,可以更改 SID,但是不能更改连接用户、模式名或表空间名。但是,可以在安装后使用以下命令更改表空间名:
db2 rename tablespace <OLD_NAME> to <NEW_NAME>
请查阅 SAP System Copy Guide,了解当前使用的 SAP 发行版。- 为源系统创建完全 DB2 备份。 备份可以在线,也可以离线。 要获得离线备份,执行以下步骤:
- 关闭 SAP 系统。
- 检查是否已无应用程序连接到数据库。为此,输入命令:
db2 list applications
该命令必须返回:
No data was returned by the database system monitor. - 输入以下命令,停止 DB2 实例:
db2stop - 运行 backup:
db2 backup db <SID> to <backup directory>应该将日志包括在备份中。从 DB2 Version 8.2 到 9.5,这一点是默认的。请参阅信息中心中针对您所使用的 DB2 版本的关于备份数据库命令的文档(参考资料 小节中有相关链接)。
- 如果目标 SAP 系统是 4.6x 或更低版本,那么遵行以下步骤:
- 遵循 SAP 提供的 SAP R/3 Homogeneous System Copy 文档中的安装说明。(不要使用 CENTRDB.R3S 或 DATABASE.R3S,对于中央数据库服务器,使用模板 CEDBR3CP.R3S,对于数据库服务器,使用 DBR3CP.R3S。)
例如:
./R3SETUP -f CEDBR3CP.R3S安装助手将询问一些问题,这些问题必须根据系统配置来回答。要获得关于如何回答这些问题的指南,请参阅 R/3 Installation on UNIX: IBM DB2 Universal Database for UNIX and Windows。
- 当 R3SETUP 停在 EXITR3COPY_IND_DB6 这一步时,使用接下来的小节中指定的任意一种方法,运行重定向恢复。
- 根据 SAP 安装指南完成安装。
- 遵循 SAP 提供的 SAP R/3 Homogeneous System Copy 文档中的安装说明。(不要使用 CENTRDB.R3S 或 DATABASE.R3S,对于中央数据库服务器,使用模板 CEDBR3CP.R3S,对于数据库服务器,使用 DBR3CP.R3S。)
- 如果目标 SAP 系统为 4.70,遵循以下步骤:
- 根据 SAP R/3 Enterprise 4.70 Installation on UNIX: DB2 Universal Database for UNIX and Windows,安装中央实例。
要点:目标系统与源系统必须有相同的 SID。
- 在安装数据库实例之前,遵循 OSS Note 564720 中的说明,修改 control.xml 文件。
- 运行数据库实例的安装,根据指南中的说明回答问题,直到创建数据库。
- 使用接下来的小节中指定的方法之一运行重定向恢复。
- 根据 SAP 安装指南完成安装。
- 根据 SAP R/3 Enterprise 4.70 Installation on UNIX: DB2 Universal Database for UNIX and Windows,安装中央实例。
- 安装完成后,执行以下步骤:
- SAP 系统中的报告负载是依赖于操作系统的。要完成系统复制,必须删除这些负载。系统将在首次访问时自动重新创建它们。要删除报告负载,在操作系统中使用 DB2 命令行处理器(CLP)输入以下命令:
- 对于 4.6x 或更低版本:
db2 "delete from sapr3.d010l" db2 "delete from sapr3.d010q" db2 "delete from sapr3.d010y" db2 "delete from sapr3.d010linf"
- 对于 4.70:
db2 "import from /dev/null of del replace into <schema_name>.repoload"
- 对于 4.6x 或更低版本:
- DB2 事件监视器保留关于所有者和许可的信息,这些信息存放在数据库系统目录中。为了避免事件监视器连接到源系统的所有者(这些事件监视器在目标系统中不可用),删除这些事件监视器,在目标系统的实例所有者上重新创建它们(遵循 OSS note 95282 中的说明)。
- SAP 系统中的报告负载是依赖于操作系统的。要完成系统复制,必须删除这些负载。系统将在首次访问时自动重新创建它们。要删除报告负载,在操作系统中使用 DB2 命令行处理器(CLP)输入以下命令:
基于 NetWeaver 7.0(2004s) 或更高版本的发行版
在源系统上:
- 像前面那样,为源系统创建完全 db2 离线或在线备份。应该将日志包括在备份镜像中,从 DB2 Version 8.2 到 9.5,这是默认行为。这些日志还有用处,因为在目标系统上进行恢复后还需要执行前滚。
- 一种可选的做法是,创建带标签的导出目录结构,并归档特定于 SDM 和应用程序的文件系统内容。可以使用 SAPinst 执行该任务。从 SAP Installation Master 欢迎屏幕中,选择:
<System Release> --> Software Life-Cycle Options --> System Copy --> IBM DB2 for Linux, Unix, and Windows --> Source System Export --> <System Variant> --> <Technical Stack> --> Export Preparation
在提供的导出位置中,将创建所有标签和目录结构,这些文件可以在目标系统中使用。
- 在 Java® 或双栈系统(ABAP+Java)中,需要为 Java 引擎运行单独的导出,以便归档特定于 SDM 和应用程序的内容。要了解关于这个步骤和之前步骤的更多信息,请参阅针对您所使用的版本的 SAP 系统复制指南。
在目标系统上:
- 运行 SAPinst,并在 SAP Installation Master 欢迎屏幕中选择:
<System Release> --> Software Life-Cycle Options --> System Copy --> IBM DB2 for Linux, Unix, and Windows --> Target System Installation --> <System Variant> --> <Technical Stack>
- 遵循常规的安装过程。 当被询问 SID 时,或者选择与源系统相同的 SID,或者用新的 SID。
- 在数据库屏幕,选择 Homogeneous System Copy (Database copy method)
- 继续安装过程。输入数据库 ID、数据库端口和连接用户。记住,即使 SID 不同,连接用户也必须与源系统相同。
- 如果是安装双栈系统,那么还需要输入 Java 导出的位置,以及 Java 管理员的用户名和密码。输入的信息必须与源系统匹配,但是可以在系统复制后进行更改。
- 输入所有必需的参数后,安装继续,直到要求进行恢复的步骤。
- 当要求进行恢复时,会弹出一个消息框,如下图所示。 选择 Cancel 中止安装,并运行数据库恢复。或者,可以不理消息框,先从另一个窗口中完成恢复,当恢复完成时,再选择 OK。
- 如果在上一步选择中止安装,那么会看到另一个消息框。 选择 Stop 确认要停止安装,并退出 SAPinst。
- 使用后面小节中指定的方法之一运行重定向恢复。
- 重新启动 SAPinst,根据 SAP 安装指南继续进行安装。
- 如果更改了 SID,那么需要输入以下命令更新 LOGARCHMETH1 数据库配置参数,使之指向新的 SID:
db2 update database configuration for <NEW_SID> using LOGARCHMETH1 /db2/<NEW_SID>/log_archive
有 3 种方法可用于恢复数据库:
- 使用 SAP brdb6brt 工具生成一个脚本。
从源系统中,发出以下命令调用该工具:
brdb6brt -s <SID> -bm RETRIEVE -user <instance_owner> -using <password>
例如:
brdb6brt -s LR1 -bm RETRIEVE -user db2lr1 -using PASS123
该工具生成一个 SID_NODE000X.src 格式的脚本。 该工具还创建一个名为 SID_NODE000X.brp 的文件,其中包括执行的步骤的日志记录。如果发生错误,那么可以使用该文件跟踪错误。
修改生成的脚本,以适应目标系统的具体要求。可以更改 SID、存储路径、日志目录位置等(注意,如果在使用自动存储,那么不需要设置容器路径)。做出修改后,从 CLP 中使用以下命令运行该脚本:
db2 -tvf <SID>_NODE0000.scr
本文后面的 下载 小节包含一个链接,以便下载示例重定向恢复脚本。
还可以使用 brdb6brt 工具在一步中创建备份和生成恢复脚本。要了解关于该脚本或 brdb6brt 工具的更多信息,请参阅 SAP DB6 Database Administration Guide。
- 使用 DB2 的重定向恢复生成一个脚本。
可以通过 DB2 命令行处理器(CLP)或 db2Restore 应用程序编程接口(API)调用恢复实用程序。要从 CLP 运行恢复,可在目标系统上发出以下命令:
db2 restore db <SID> from <location> taken at <timestamp> redirect generate script. <script>.clp
例如:
db2 restore db LR1 from /backup/LR1 taken at 20090804090733 redirect generate script. LR1restore.clp
修改生成的脚本,以适应目标系统的具体要求。可以更改 SID、存储路径、日志目录的位置等。(注意,如果在使用自动存储,那么不需要设置容器路径。)做出修改后,从 CLP 中使用以下命令运行脚本:
db2 -tvf LR1restore.clp
- 或者,也可以使用 CLP 手动地发出重定向恢复命令,并设置容器的路径(注意,如果在使用自动存储,那么不需要设置容器路径。)
例如:
db2 restore database LR1 from /mnt/LR1backup taken at 20090914135805 redirect db2 restore database LR1 continue
恢复完成时,必须在数据库上执行前滚。
例如:
db2 rollforward db LR1 to end of logs
如果没有可用的日志,或者不需要前滚,那么可以带 stop 选项发出该命令。
例如:
db2 rollforward db LR1 stop
或者,也可以将前滚命令添加到前面提到的生成的重定向脚本中。
自动存储这个特性使 DB2 可以自动控制数据库增长,而不必预先为数据库或表空间容器设置任何特定的大小。这可以减少用户的干预,并且可以减少由于空间限制导致工作负责被中断的情况。
对于 9.7 之前版本的 DB2,只能在数据库创建期间启用自动存储(从 DB2 Version 9.1 开始,这是默认行为)。而对于 DB2 9.7,还可以在数据库创建后,将数据库和表空间转换为使用自动存储。
可以使用系统复制方法在同一个系统上将数据库转换为自动存储,也可以通过以下操作,在一步中完成系统复制和到自动存储的转换:
在源系统上:
- 发出以下命令,在数据库级启用自动存储:
db2 ALTER DATABASE <dbname> ADD STORAGE ON <path1> [<path2>,...,<pathn>]
例如:
db2 ALTER DATABASE LR1 ADD STORAGE ON ’/db2/LR1/sapdata1’,’/db2/LR1/sapdata2’, ’/db2/LR1/sapdata3’, ’/db2/LR1/sapdata4’
- 像前面解释的那样,使用 backup 命令备份数据库。
在目标系统上:
- 通过更新重定向恢复脚本,或者在命令行运行恢复,在恢复期间在表空间级启用自动存储。像下面这样设置容器,以使用自动存储:
db2 set tablespace containers for <tablespace_id1> using automatic storage; db2 set tablespace containers for <tablespace_id2> using automatic storage; ...
注意,可以从表空间快照中获得表空间 ID。生成的重定向恢复脚本中也包括表空间 ID。
例如:
db2 get snapshot for tablespaces on |grep ”Tablespace ID”
- 数据库被完全转换为自动存储后,应该为它做一个备份。
- 为源系统创建完全 DB2 备份。 备份可以在线,也可以离线。 要获得离线备份,执行以下步骤:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-626033/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15082138/viewspace-626033/