• [FIM]如何从A导入数据,同步到B,在A系统中删除数据,在B系统中删除数据


    问题描述:

    从A导入数据,同步到B,在A系统中删除数据,在B系统中删除数据。

    前提:A、B已经完成一次FULL_IMPORT、FULL_SYNC,假设在A中的数据在B中的数据(不考虑过滤),都一一对应。

    按照之前的思路,在A中删除一条记录后,通过FULL_IMPORT的时候,在CS_A中会删除记录A,通过FULL_SYNC,因为CS_B中的DATA_1仍然与MV保持Connected,因此包括MV在内一直都会存在该条记录。

    image

    解决方案:

    1、 首先要让MV中把这条记录删除才可能导致B系统删除该数据。

    之所以出现以上现象的原因是在于MV的默认配置所决定的,右键对应的MV,“Configuration Object Deletion Rule…”,这是改变MV对象删除规则的。该设置默认为第一项,也就是考虑到所有MA都有可能成为源,当某MV对象与所有MA都断开联系后,才删除对应的MV,类似C++的引用计数。我们这里的需求是,一旦A中删除,就将其他系统中的该记录删除,因此这里就需要配置成第二项,任何一个被勾选的对象被删除之后,都删除该MV对象。

    1­­­­­

    2、 完成了第一步还不够的,因为它只提到了删除MV中的对象,但并不会删除CS_B中的对象,因此这时CS_B中的对象是孤立无援的,在FIM中是disconnected object,这样的对象会在下次同步的时候,继续参与规则讨论。因此我们要把这种没有户口的对象删掉。做法就是在对应的MA的配置中,配置“Configure Deprovisioning”,指示在一个CS对象与MV失去联系后的行为,选择第三项“Stage a delete on the object for the next export run”,该选项表明在失去联系后在接下来的export操作执行的时候删除数据。这里会删除connected data source中的数据也就是DB_A,但是不会删除CS_A中的数据,因为这一步操作在下一次FULL_IMPORT的时候是会被处理掉的。

    2

    3、 执行FULL_SYNC、EXPORT,数据依次从MV、DB_B中删除,检查DB_A,确实删掉了,执行B.FULL_IMPORT,CS_B中的数据也删除了,至此完成了这条记录的整个删除生命周期。

  • 相关阅读:
    python开发mysql:索引
    学习笔记之English
    本周学习小结(25/03
    本周学习小结(18/03
    本周学习小结(11/03
    学习笔记之Machine Learning Crash Course | Google Developers
    本周学习小结
    学习笔记之Fluent Python
    Leetcode 4. Median of Two Sorted Arrays
    学习笔记之Python爬虫
  • 原文地址:https://www.cnblogs.com/volnet/p/2310786.html
Copyright © 2020-2023  润新知