对于复制来说,比较常见的就是源端与目标端的表空间不一致,dsg提供一个tablespace_map.ini文件,用来映射表空间
# index tablespace mapping
[index_real]
SOURCE_INDEX = TARGET_INDEX
[index_full]
SOURCE_INDEX = TARGET_INDEX
# full sysc tables tablespace mapping
[full]
SOURCE_DATA =TARGET_DATA
# real sysc tables tablespace mapping
[real]
SOURCE_DATA =TARGET_DATA
这样就可以实现表空间的映射了,但是有时由于开发人员创建索引的时候制定错了表空间或是没有制定表空间,使用默认的表空间,
这样目标端在加载时就会报错,提示没有表空间。比如索引创建在了SOURCE_DATA,那么需要在目标端的tablespace_map.ini里
添加SOURCE_DATA的映射关系
如下:
# index tablespace mapping
[index_real]
SOURCE_DATA =TARGET_DATA
SOURCE_INDEX = TARGET_INDEX
[index_full]
SOURCE_DATA =TARGET_DATA
SOURCE_INDEX = TARGET_INDEX
# full sysc tables tablespace mapping
[full]
SOURCE_DATA =TARGET_DATA
SOURCE_INDEX = TARGET_INDEX
# real sysc tables tablespace mapping
[real]
SOURCE_DATA =TARGET_DATA
SOURCE_INDEX = TARGET_INDEX
问题:
你可能发现了,我为什么没有把在SOURCE_DATA 映射成TARGET_INDEX,而还是放在了TARGET_DATA表空间,另外index和table的表空间映射要写成一样才可以,如果tables只写data表空间的映射,目标端创建索引是报错,这个可能是个bug,我使用的版本是这样的情况,
如果一个SOURCE_DATA 可以映射成2个表空间,程序就识别不了,不知道后续的版本有没有改进。