您可以使用 pack 和 unpack 命令复制现有的 DCM 数据库。必须对要打包的数据库进行初始化才能使用 DCM。
关于此任务
必须存在活动的服务器和足够对数据库进行解包的磁盘空间。如果使用 ccmdb upgrade /w 命令,那么可以在 Windows 服务器上将数据库打包,然后在 UNIX 服务器上将其解包。有关更多信息,请参阅在 UNIX 和 Windows 之间移动数据库。
打包操作包括 generate_directory 和 receive_directory。因此,所有未解决的传输或接收操作必须在数据库打包之前解决。
注: 解包或复制数据库时,新数据库的项目工作区路径与原始数据库的工作区路径相同。为了避免可能出现的冲突,在使用新数据库之前必须更改这些路径。有关详细信息,请参阅
查找并替换工作区路径中的字符串。
过程
- 确保要打包的数据库上没有正在运行的活动会话。
- 保护要打包的数据库(请参阅 ccm monitor 和 ccmdb protect 命令)。
- 将 DCM 数据库打包。
> ccmdb pack database_path /to packfile
对于 Windows,database_path 必须是 UNC 路径。
> ccmdb pack <database_path> /to packfile
生成的打包文件称为 database_name.cpk。
- 将 DCM 数据库解包,然后重新命名。
> ccmdb unpack database_name.cpk /t
new_database_path\new_database_name /s server_name
对于 Windows,new_database_path 必须是 UNC 路径。
- 更改工作区路径。
- 更改 DCM 数据库标识。
- 以 ccm_admin 的身份在新数据库上启动会话。
- 保护新数据库。
- 更改 DCM 数据库标识,但不将对象更新为 DCM 集群中的唯一标识。请参阅更改数据库标识但不更新对象。
- 退出会话
- 将原始数据库设置为向新数据库发送传输包。
- 解除对原始数据库的保护(请参阅 ccmdb unprotect 命令以获取详细信息)。
- 在原始数据库上启动会话。
- 保护原始数据库,以防止其他人在该数据库上启动会话。
- 为新数据库创建目标数据库定义。请参阅创建数据库定义。
- 创建并向任何传输包的传输集添加要从原始数据库发往新数据库的对象。请参阅创建传输集。
- 初始化新传输集。
- 为每个新传输集生成传输包,并将“最后生成时间”设为“当前时间”。此设置可以防止不必要的传输。(即原始数据库不发送新解包数据库中的对象)。并且,只有那些自原始数据库解除保护以来更改的对象才有资格传输到新数据库中。
- 退出会话。
- 解除对新数据库的保护。
- 将新数据设置为向原始数据库发送传输包(可选)。
- 在新数据库上启动会话。
- 保护新数据库,以防止其他人在该数据库上启动会话。
- 为新数据库创建目标数据库定义。请参阅创建数据库定义。
- 创建并向任何传输包的传输集添加要从新数据库发往原始数据库的对象。请参阅创建传输集。
- 初始化新传输集。
- 为每个新传输集生成传输包,并将“最后生成时间”设为“当前时间”。此设置可以防止不必要的传输。(即从原始数据库获取的对象将不会发回)。并且,只有那些自新数据库解除保护以来更改的对象才有资格传输到原始数据库中。
- 退出会话。
- 解除对新数据库的保护。
- 解除对原始数据库的保护。