• [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中的数据也删除了,至此完成了这条记录的整个删除生命周期。

  • 相关阅读:
    Bit Manipulation
    218. The Skyline Problem
    Template : Two Pointers & Hash -> String process
    239. Sliding Window Maximum
    159. Longest Substring with At Most Two Distinct Characters
    3. Longest Substring Without Repeating Characters
    137. Single Number II
    142. Linked List Cycle II
    41. First Missing Positive
    260. Single Number III
  • 原文地址:https://www.cnblogs.com/volnet/p/2310786.html
Copyright © 2020-2023  润新知