Skip to Content

Part II : Optimize export/import using Distribution Monitor

  1. Architecture of Distribution Monitor ( Files and Directory structures)

Distribution Monitor itself is not an executable or binary, it is consisting of set of scripts and parameter files; which is internally based on SAP tools – R3load, R3szchk, R3ldctl and R3ta. When you UNCAR “Distribution.SAR” file, it contains some scripts and configurable files with default configuration. I will not cover the configuration part in this blog, I will explain more about file and directory structures – which is the backbone of the Distribution Monitor.

For overview of Distribution Monitor, please check the following SCN blog :

I am going to use the same example as I have mentioned in part-I blog, that means I will use four nodes for optimization.


Fig1 : Distribution Monitor with four nodes

I will explain all important files and directory structures in this blog.



Common directory


Common directory or common file system is mounted to both source, target and to all nodes so that each of these systems can perform read/write activities to common directory. It can be local to source or target system or NAS file system.

Common Directory contains various sub directories and it is important to understand each of these sub-directories. Following are the important sub-directories :

R3ldctl : It contains *.STR files for all SAP standard packages and *.TPL ( database specific template) files.

R3ta : *.WHR (where files for all split tables– condition for splitting  )

R3szchk : *.EXT files (computes space requirements for tables/indexes) for all standard SAP packages.

ExportCtrl : Control file is created while export is running for a package or table split.

EXT4Split : *.EXT files for split tables.

ImportCtrl : Control file is created while running import for a standard package or table spilt

Info : Contains export / import property files and distribution.txt file – that determine distribution of tables and packages amongst various nodes.

PkgSplit : It contains *.STR files for all split tables and non-split tables those are moving out of standard packages.

SapinstImport : You need to specify as “export directory” in SAPINST. It contains LABEL.ASC file and ‘DB’ and “Data’ directory.

Sapview : *.STR file for views

STR4Split : It contains *.STR files for all split tables

Host1 :  Each host-directory contains a lot of information for export and import run. It has the following sub-directories :

  netExchangeDir – Control file for parallel export/import

  exportInstallDirCopy – Copy of exportInstallation directory

  importInstallDirCopy – Copy of importInstallation directory

   Files : ddl mapping files for export and import.



Host4 ( a sub-directory for each node  by its hostname ).

Sub-directory structure under common file system is generated by Distribution Monitor’s “preparation run”. Export/import process read and generates various info into these sub-directories.


Fig2 : commDir directory structure



Local directory structure on each node

File and directory structure on each Distribution Monitor node :

Export Directory : Local export directory for each Distribution Monitor node. Export directory size should be calculated as { 10 GB + ( 1/10 * total size of the data distribution for the node )}.

Export Installation Directory :  Log files for export run.

Import Installation Directory :  Log files for import run.

Work Directory : Distribution Monitor executable directory for each node. Best practice is to create the work directory under – /usr/sap/<SID> file system.

Example of Local directory structure:

|-/export/node1         (export directory)

|-/usr/sap/<SID>|-DMWKDir      ( Work directory)

                            |-InstDirExp     (Export Installation directory )

                            |-InstDirImp    (Import Installation directory )

Content of Work directory ( or executable directory ).


Fig3 : Content of Work Directory

Configuration of Distribution Monitor centers around configuration of work directory’s configuration files .I will cover more about configuration in optimization blog part-III.

You must be Logged on to comment or reply to a post.
  • Hi Dipam,

    We are doing OS migration from HP unix to Linux. The DB will be just same from 11 to 12G. Need some help. We have source, target and two unix machines for application server (node). We have done the preparation mode in source system and files are generated in /commDir directory of source system and this directory we mounted in Target and two apps servers/host. The target is newly built so my questions are below-

    1. Do we need to execute SWPM for the database instance installation and then stop SWPM in between and do distribution monitor like we do manual migration monitor.

    2. In the apps server host no SAP is running and we copied R3load and other R3* files. So how we will run the distribution monitor? Do we need to execute ./distribution_monitor -e (export) in apps server? or in Source?

    3. Same question for import. Where we will run the import? In apps host or Target system?

    4. From the Apps servers/hosts The target and source database should be accessible right? How we can access the source and target database from apps host? using tnsname.ora entry?

    Please let me know the above questions.



    • Hi Sudip,

      Please find the answers inline:

      1. You will have to select the parallel export/import option while starting the source system export and then provide the required details. Yes, you will have to start the installation on the target server and check Start Migration Monitor ManuallyUntitled1.png

      You need to make sure that the Label.ASC and DBSIZE.xml have been generated by running the Export preparation on source before starting the target server installation. The SWPM will wait at the Import ABAP phase and will prompt you to start the export/import.


      You can run it in advance to save time. Plan it in a way that you can trigger export/import almost simultaneously.

      2. You can use the app servers for both export/import without SAP being installed on it and just having the system copy tools. The key here is the environment variables. You need to have them set  correctly and test it with R3load -testconnect E (for export) and R3load -testconnect I (for import). e.g. for a UNIX system set the environment variable to connect to the source DB and then run ./distribution_monitor -e (export). Then in a different session set the environment variable to point to target and then start ./distribution_monitor -i (import).  So you can use source resources for only export, target resources only for import and the app servers can share the export/import load. You will have to set the jobs so as to best utilize the resources.

      3. Already answered in point 2

      4. Yes, the source and target DB’s should be accessible from the app server. If on Oracle you can install the client and then edit the tnsnames.ora. As i mentioned earlier Env Variables play a key role here and my advice will be to run R3load -testconnect always before start the ./distribution_monitor for both export/import.

      You can refer to the SAP Note 855772 and attached documents for the same along with the great working blogs shared by Dipam.

      In case you run into any issue you can open a thread under Upgrade or  Unicode Conversion to get faster response.



      • Thanks Manas for the reply. What I understand is, I need to run SWPM both in source and target database at the same time (in two sessions) with selection of start migration monitor manually. And before that I need to do the Distribution Monitor prepare phase which I already completed and .STR files etc created in commDir directory of source. The commDir directory file system I mounted in target and two apps servers.

        As you said we need to setup env parameters to connect from apps servers to source and target. We have oracle instant client installed in apps server and no SAP or Database is running. We setup env parameters of source in apps servers are-DB_SID, ORACLE_BASE, dbs_ora_tnsname, ORACLE_SID, DIR_LIBRARY, TNS_ADMIN, SAPDATA_HOME, ORACLE_HOME, dbms_type and SAPSYSTEMNAME but still I my R3load -testconnect is not working.

        I will post this to the correct thread but if you can help me in this then it will be highly appreciated.