To merge eDirectory trees on Windows NT/2000, use DSMERGE.DML. DSMERGE is a loadable module that allows you to merge the root of two separate eDirectory trees. DSMERGE options let you:
The DSMERGE utility allows you to merge two separate eDirectory trees. Only the Tree objects are merged; container objects and their leaf objects maintain separate identities within the newly merged tree.
The two trees you merge are called the source tree and the target tree. The target tree is the tree that the source tree will be merged into. To merge two trees, load DSMERGE on a server in the source tree.
DSMERGE does not change object names within the containers. Object and property rights for the merged tree are retained.
Novell eDirectory must be installed on the server containing the master replica of the Tree partition. Other servers in the source tree can run any version of NDS or eDirectory supported by this release. See Installing eDirectory for Windows NT/2000 Server for more information.
Novell eDirectory 8.6 must be installed on the server containing the master replica of the Tree partition. If this server is running any other version of NDS or eDirectory, the merge operation will not complete successfully.
Other servers in the target tree can run any version of NDS or eDirectory supported by this release.
You cannot maintain containers with the same name subordinate to Tree in both the source and target trees. Before merging two trees, one of the containers must be renamed.
If both the source and target trees have a security object, one of them must be removed before merging the trees.
Before attempting to perform a merge operation, the schema of both trees must match exactly. You should run DSREPAIR on the server containing the master replica of the Tree partition for each tree. Use the Import Remote schema option to ensure that each tree is aware of all schema in the other tree.
To access the Import Remote Schema option in DSREPAIR on Windows NT/2000:
Start NDSCONSOLE by running NDSCONS.EXE.
Select DSREPAIR.DML > click Start.
Click Schema > Import Remote Schema.
You might have to perform this option on both the source and target tree until no schema differences are reported; otherwise, the merge operation will not succeed.
When you merge the trees, the servers in the source tree become part of the target tree.
The target Tree object becomes the new Tree object for objects in the source tree, and the tree name of all servers in the source tree is changed to the target tree's name.
After the merge, the tree name for the target tree servers is retained.
The objects that were subordinate to the source Tree object become subordinate to the target Tree object.
During the merge, DSMERGE splits the objects below the source Tree object into separate partitions.
All replicas of the Tree partition are then removed from servers in the source tree, except for the master replica. The server that contained the master replica of the source tree receives a replica of the target tree's Tree partition.
Figure 32 and Figure 33 illustrate the effect on partitions when you merge two trees.
Figure 32
eDirectory Trees before a Merge
Figure 33
Merged eDirectory Tree
After you load DSMERGE, you can use the following options:
Table 55. DSMERGE Options
Before performing a merge operation, ensure that the state of synchronization for all servers affected by the operation is stable. Table 56 provides recommendations for preparing source and target trees for merging.
Table 56. Recommendations for Preparing Source and Target Trees for Merging
Prerequisite | Required Action |
---|---|
WANMAN should be turned off on all servers that hold a replica of the source tree's Tree partition or the target tree's Tree partition. |
Review your WANMAN policy so that WAN communication restrictions do not interfere with the merge operation. If required, turn WANMAN off before initiating the merge operation. |
No aliases or leaf objects can exist at the source tree's Tree object. |
Delete any aliases or leaf objects at the source tree's Tree object. |
No similar names can exist between the source and target trees. |
Rename objects on the source and target trees if similar names exist.Move objects from one of the containers to a different container in its tree if you don't want to rename the container objects, then delete the empty container before running DSMERGE. For more information, see Managing Objects.You can have identical container objects in both trees if they are not immediately subordinate to the Tree. |
No login connections should exist on the source tree. |
Close all connections on the source tree. |
The eDirectory version must be the same on both the source and target trees. |
Upgrade all non-NetWare 5.1 or later servers that have a replica of the root partition. |
Any server that contains a replica of the root partition on both the source and target trees must be up and running. |
Ensure that all servers containing a replica of the root partition on both source and target trees are up and running. Ensure that any WAN links affected are stable. |
The schema on both the source and target trees must be the same. |
Run DSMERGE. If reports indicate schema problems, use DSREPAIR to match the schemas. (Select Advanced Options Menu > Global Schema Operation > Import Remote Schema to select the tree from which you want to import the schema.) Run DSMERGE again. |
Only one tree can have a security container subordinate to the tree root. |
If both the source and target tree have the security container, remove one container as explained in NMAS Considerations. |
Because the merge operation is one single transaction, it is not subject to catastrophic failure caused by power outages or hardware failure. However, you should perform a regular backup of the eDirectory database before using DSMERGE. For more information, see Backing Up and Restoring Novell eDirectory .
IMPORTANT: Proper configuration of time synchronization is a very involved process. Make sure you allow enough time to synchronize both trees before you merge the trees.
eDirectory will not work properly if different time sources are used that have different times or if all servers in a tree are not time synchronized.
Before you do the merge, make sure that all servers in both trees are time synchronized and that they use only one time server as a time source. However, the target tree time can be ahead of the source tree time by as much as five minutes.
Generally, there should be only one Reference or one Single time server in a tree. Likewise, after the merge, the tree should contain only one Reference or one Single time server. For more information on time server types, refer to Network Time Management Administration Guide in the NetWare 6 documentation set on the Novell Documentation Web site.
If each of the trees you are merging has either a Reference or a Single time server, reassign one of them to refer to the Reference or Single time server in the other tree so that the final tree contains only one Reference or Single time server.
To view time synchronization information, see Checking Time Synchronization .
Before you rename or merge trees, verify that all servers have the same tree name.
After you rename or merge trees, verify that all servers have the new tree name.
Start NDSCONSOLE by running NDSCONS.EXE.
Select DSMERGE.DLM > click Start.
If you don't know where the master replica is stored, you will be prompted with the correct server name when you attempt to merge the trees.
From the NDS Merge screen, verify the server name, DS version, and status for each server in the tree.
Each server in the tree is listed in the NDS Merge screen, with its corresponding status information. Any servers that have existing problems are flagged and then listed at the top of the server list.
You should confirm that each server's status is marked as Verified before completing a merge.
Table 57 describes the information provided in the NDS Merge screen.
Table 57. NDS Merge Screen Options
Use this procedure on both trees before merging them.
Start NDSCONSOLE by running NDSCONS.EXE.
Select DSMERGE.DLM > click Start.
If you don't know where the master replica is stored, you will be prompted with the correct server name when you attempt to merge the trees.
From the NDS Merge screen, verify that all servers in the tree are synchronized and that they are using the same time source.
Table 58 describes the information provided in the Time Synchronization Information for the Tree tree_name screen.
Table 58. Time Synchronization Information for the Tree Options
For complete functionality of all menu options, run DSMERGE on a server that contains the master replica of the Tree partition.
If you don't know where the master replica is stored, you will be prompted with the correct server name when you attempt an operation that requires the master replica.
To perform a merge operation, you must load DSMERGE on the source tree.
When merging large trees, it's significantly faster to designate the source tree as the tree with fewer objects immediately subordinate to the Tree. By doing this, you create fewer partition splits during the merge, since all objects subordinate to the Tree object result in new partitions.
Because the source tree name no longer exists after the merge, you might need to change your client workstation configurations. For Novell ClientTM for DOS/Windows, check the Preferred Tree and Preferred Server statements in the NET.CFG files. For Novell Client for Windows NT/2000 and Windows 95/98, check the Preferred Tree and Preferred Server statements on the client Property Page.
If Preferred Server is used, the client is unaffected by a tree merge or rename operation because the client still logs in to the server by name. If Preferred Tree is used and the tree is renamed or merged, then that tree name no longer exists. Only the target tree name is retained after the merge. Change the preferred tree name to the new tree name.
To minimize the number of client workstations you need to update, designate the tree with the most client workstations as the target tree, because the final tree retains the name of the target tree.
Or rename the tree after the merge operation so that the final tree name corresponds to the tree with the greater number of client workstations attaching to it. For more information see Renaming the Tree. Plan on a period of down time to allow for the tree merge and then a tree rename.
Use the following list of prerequisites to determine readiness for the merge operation:
The merge process itself only takes a few minutes but there are other variables that increase the length of time for the merge operation to complete. These factors are as follows:
To merge two trees:
Start NDSCONSOLE by running NDSCONS.EXE.
Select DSMERGE.DLM > click Start.
If you don't know where the master replica is stored, you will be prompted with the correct server name when you attempt to merge the trees.
Click Operations > Merge Two Trees.
Enter the administrator name and password to log in to the source tree.
Log in as a user who has the Supervisor object right to the Tree object on the source tree. Enter the typeless or typeful distinguished name, such as admin.novell or cn=admin.o=novell. Entering only admin is invalid because it is not the complete name of the User object.
From the Target Name drop-down list, select a target tree from the list of servers in the Available Trees window.
If the tree you want is not in the list, enter the target tree's IP address.
Enter the administrator name and password to log in to the target tree.
Click OK to perform the merge.
A message stating that the trees have been merged successfully is displayed.
You must rename a tree if the two trees you want to merge have the same name.
You can rename only the source tree. To rename the target tree, run DSMERGE from a server on the target tree.
After you change a tree's name, you might need to change your client workstation configurations. For Novell Client for DOS/Windows, check the Preferred Tree and Preferred Server statements in the NET.CFG files. For Novell Client for Windows NT/2000 and Windows 95/98, check the Preferred Tree and Preferred Server statements on the client Property Page.
If Preferred Server is used, the client is unaffected by a tree merge or rename operation because the client still logs in to the server by name. If Preferred Tree is used and the tree is renamed or merged, then that tree name no longer exists. Only the target tree name is retained after the merge. Change the preferred tree name to the new tree name.
When you merge two trees, to minimize the number of client workstations that need to be updated, designate the tree with the most client workstations as the target tree because the final tree retains the name of the target tree.
Or rename the tree after the merge so that the final tree name corresponds to the tree name with the majority of client workstations.
Another option is to rename the merged tree to the name of the original source tree. If you select this option, then you must update the NET.CFG files on the target tree client workstations.
Use the following list of prerequisites to determine readiness for the renaming operation:
To rename the tree:
On the server that stores a master replica of the partition whose Tree object is the tree name, start NDSCONSOLE by running NDSCONS.EXE.
Select DSMERGE.DLM > click Start.
If you don't know where the master replica is, load DSMERGE on any server in the source tree. Then you will be prompted with the correct server name when you attempt to rename a tree.
Click Operations > Rename This Tree.
Enter the administrator name and password to log in to the source tree.
Log in as a user who has the Supervisor object right to the Tree object on the source tree. Enter your complete name, such as admin.novell or cn=admin.o=novell. Entering only admin is invalid since it is not a complete name.
Enter the new tree name.
Click OK to perform the rename.
Following the merging of two trees, it might be necessary to complete the following tasks:
From the NDS Merge screen, verify that all tree names were changed correctly.
For more information, see Checking Servers in the Tree.
Check the new partitions that the merge operation created. If you have many small partitions in the new tree, or if you have partitions that contain related information, you might want to merge them.
For more information, see Merging a Partition.
Copy a new replica to any non-NetWare 5 servers after the merge is complete, if you did not upgrade before running DSMERGE.
Re-create any leaf objects or aliases in the Tree that were deleted before you ran DSMERGE.
Evaluate partitioning of the eDirectory tree.
Merging trees might change replica placement requirements on the new tree. You should carefully evaluate and change the partitioning as needed.
Update your client workstation configuration.
For Novell Client for DOS/Windows, check the Preferred Tree and Preferred Server statements in the NET.CFG files. For Novell Client for Windows NT/2000 and Windows 95/98, check the Preferred Tree and Preferred Server statements on the client Property Page. Or rename the target tree.
If Preferred Server is used, the client is unaffected by a tree merge or rename operation because the client still logs in to the server by name. If Preferred Tree is used and the tree is renamed or merged, then that tree name no longer exists. Only the target tree name is retained after the merge. Change the preferred tree name to the new tree name.
HINT: To minimize the number of NET.CFG files you need to update, designate the tree with the most client workstations as the target tree because the final tree retains the name of the target tree. Or rename the tree after the merge operation so that the final tree name corresponds to the majority of the client workstations' NET.CFG files. For more information, see Renaming the Tree.
The Access Control List (ACL) for the Tree object of the source tree is preserved. Therefore, the rights of the source tree's user Admin to the Tree object are still valid.
After the merge is complete, both admin users still exist and are uniquely identified by different container objects.
For security reasons, you might want to delete one of the two Admin User objects or restrict the rights of the two objects.
The Graft Tree option lets you graft a single-server source tree's Tree object under a container specified in the target tree. After the graft is completed, the source tree receives the target tree's name.
During the graft, DSMERGE changes the object class of the source tree's Tree object to Domain and makes a new partition. The new Domain object is the partition root for the new partition. All the objects under the source tree's Tree object are located under the Domain object.
The target tree's administrator has rights to the resulting tree's root container and therefore has rights to the source tree's grafted root.
NOTE: It may take up to several hours for the inherited rights to be recalculated and become effective. This time will vary based on the tree's complexity, size, and number of partitions.
The source tree's administrator has rights only in the newly created domain object.
Figure 34 and Figure 35 illustrate the effect when you graft a tree into a specific container.
Figure 34
eDirectory Trees before a Graft
Figure 35
eDirectory Tree after a Graft
After the graft of the source tree into the target tree container, the distinguished names for objects in the source tree will be appended with the source tree's name followed by the distinguished name of the target tree's container name where the source tree was merged. The relative distinguished name will remain the same.
For example, if you are using dot delimiters, the typeful name for Admin in the Preconfigured_tree (source tree) is:
CN=Admin.OU=IS.T=Preconfigured_tree
After the Preconfigured_tree is merged into the New Devices container in the Oak_tree, the typeful name for Admin is:
CN=Admin.OU=IS.DC=Preconfigured_tree.OU=Newdevices
.OU=Engineering.O=Sanjose.T=Oak_tree.
NOTE: The distinguished name maximum character length is 256 characters. This limitation is particularly important when you are grafting the root of one tree into a container near the bottom of the target tree.
The last dot following Oak_tree (Oak_tree.) indicates that the last element in the distinguished name is the tree name. If you leave off the trailing dot, then leave off the tree name.
Before initiating the graft operation, ensure that the state of all of the servers affected by the operation is stable. Table 59 provides recommendations for preparing the source and target trees before grafting.
Table 59. Recommendations for Preparing Source and Target Trees before Grafting
Prerequisite | Required Action |
---|---|
WANMAN should be turned off on all servers that hold a replica of the source tree's Tree partition or the target tree's Tree partition. |
Review your WANMAN policy so that WAN communication restrictions do not interfere with the merge operation. If required, turn WANMAN off before initiating the merge operation. |
The source tree must have only one server. |
Remove all but one server from the source tree. |
No aliases or leaf objects can exist at the source tree's Tree object. |
Delete any aliases or leaf objects at the source tree's Tree object. |
No similar names can exist in the graft container. |
Rename objects under the target tree graft container or rename the source tree. Move objects from one of the containers to a different container in its tree if you don't want to rename objects, then delete the empty container before running DSMERGE. For more information, see Managing Objects. You can have identical container objects in both trees if they are not immediately subordinate to the same parent object. Objects are uniquely identified by their immediate container object. |
The eDirectory version for both the source tree and target tree container must be 8.51 SP2a or later. |
DSMERGE will search for the appropriate version of eDirectory. If an acceptable version isn't found, DSMERGE will return an error. You can get the latest version of eDirectory from the product download page. |
The container where you will join the target tree is in a partition that has no replicas (a single-server partition). |
If the target container has multiple replicas:
After the graft is complete, the partition association can be re-established. |
The schema on both the source and target trees must be the same. |
Run the Graft option in DSMERGE. If reports indicate schema problems, run DSREPAIR on the target tree to import the schema from the source tree. The graft operation automatically imports the schema from the target tree to the source tree. Run DSMERGE again. |
Only one tree can have a security container subordinate to the tree root. |
If both the source and target tree have the security container, remove one container as explained in NMAS Considerations. |
The source tree's time reference must be reconfigured. |
Generally the source tree should be set as a secondary server configured to get its time source from a server in the target tree. To reconfigure Timesync, see Configuring Timesync on Servers in the Network Time Management Administration Guide. |
To graft a source tree into a target tree container requires that the target tree container be prepared to accept the source tree. The target tree container must be able to contain an object of the class domain. If there is a problem with containment, error -611 Illegal Containment will occur during the graft operation.
Use the information in Table 60 to determine if you need to run DSREPAIR to modify containment lists.
Table 60. Target and Source Tree Container Requirements
If containment requirements aren't met, run DSREPAIR to correct the schema.
Start NDSCONSOLE by running NDSCONS.EXE.
Select DSREPAIR.DML > click Start.
Click Schema > Optional Schema Enhancements.
The schema is updated and results are displayed on screen.
After you ensure that prerequisites are met, use DSMERGE to perform the graft as explained in the following procedure:
Start NDSCONSOLE by running NDSCONS.EXE.
Select DSMERGE.DML > click Start.
Choose Operations > Graft a Single Server Tree.
Enter the required data including user name and password for both the source and target tree and the distinguished name of the target tree container, for example, New Devices.Engineering.San Jose.Oak_tree
Choose Ok to start the graft.