MDM System Management Training
MDM System Management Training
MDM System Management Training
HP Restricted
© 2007 Hewlett-Packard Development Company, L.P.
The information contained herein is subject to change without notice
Agenda
1. MDM Scenarios at a Glance
2. MDM Architecture
3. Landscape Example Cadbury
4. Installation MDM
5. Manage the MDM Server
6. MDM Server maintenance
7. Backup
8. Restore
9. Managing Log Files
10. Monitoring
11. Troubleshooting
12. High Availability Overview
Consolidation
SRM-MDM Catalogue
MDM Import Manager is used to create import maps for the MDIS
MDM Import Manager is used to create import maps for the MDIS
MDM Import Manager is used to create import maps for the MDIS
AS Java
If MDM Enrichment Architecture or MDM Java API based application are used
for data quality enhancement
For SRM-MDM catalogue access
AS Java
If MDM Enrichment Architecture or MDM Java API based application are used
for data quality enhancement
For SRM-MDM catalogue access
MDM 5.5
--Windows 2003 Server x64 SP1
--MDM Server 5.5 SP05 Build
5.5.42.90
--MDM Import Server 5.5
--MDM Syndication Server 5.5
MDM Server Database Server 100Gb Database Component: --Oracle 10g 10.2.0.2
MDM, MDIS, MDSS 4 Cores (15Gb MDM) DB ID --MP7
4 Cores (2.22 GHz) x 8 GB (85GB DB with Server Name DB: --BSCCAP67
(2.22 GHz) x 8 GB replication) Server Name MDM-Server: --BSCCAP68
• Patches for the components can be downloaded from SAP Market Place
https://service.sap.com/swdc
Download Support Packages and Patches Entry by Application Group
SAP NetWeaver SAP MDM
/usr/sap/MDM
• work directories for the MDM Components and home of
user mdmadm
/usr/sap/MDM
• work directories for the MDM Components and home of
user mdmadm
/sapmnt/MDM
• binaries of the MDM Components
/usr/sap/MDM
• work directories for the MDM Components and home of
user mdmadm
/sapmnt/MDM
• binaries of the MDM Components
https://service.sap.com/installmdm
Different possibilities
Different possibilities
Different possibilities
The files has to be placed into the same directory structure on the MDM-Server
.
MDM_HOME=/sapmnt/<SID>
PATH=/oracle/<SID>/102_64/bin:/sapmnt/<SID>/bin:$PATH
LD_LIBRARY_PATH=/sapmnt/<SID>/lib:/oracle/client/92x_64_9207/lib:/usr/lib/pa20_64:/
oracle/<SID>/102_64/lib
ORA_NLS33=/oracle/client/92x_64_9207/ocommon/nls/admin/data
IA64:
.
MDM_HOME=/sapmnt/<SID>
PATH=/oracle/<SID>/102_64/bin:/sapmnt/<SID>/bin:$PATH
LD_LIBRARY_PATH=/sapmnt/<SID>/lib:/oracle/<SID>/102_64/lib:/usr/lib
ORA_NLS33=/oracle/client/10x_64/ocommon/nls/admin/data
LIBPATH=/sapmnt/<SID>/lib:/oracle/<SID>/102_64/lib
IA64:
.
MDM_HOME=/sapmnt/<SID>
PATH=/oracle/<SID>/102_64/bin:/sapmnt/<SID>/bin:$PATH
LD_LIBRARY_PATH=/sapmnt/<SID>/lib:/oracle/<SID>/102_64/lib:/usr/lib
ORA_NLS33=/oracle/client/10x_64/ocommon/nls/admin/data
LIBPATH=/sapmnt/<SID>/lib:/oracle/<SID>/102_64/lib
.
MDM_HOME=/sapmnt/MDM
PATH=/oracle/<SID>/102_64/bin:/sapmnt/MDM/bin:$PATH
SHLIB_PATH=/sapmnt/MDM/lib
IA64:
.
MDM_HOME=/<SID>/MDM
PATH=/oracle/<SID>/102_64/bin:/sapmnt/<SID>/bin:$PATH
SHLIB_PATH=/oracle/<SID>/102_64/lib
LIBPATH=/oracle/<SID>/102_64/lib
.
MDM_HOME=/<SID>/MDM
PATH=/oracle/<SID>/102_64/bin:/sapmnt/<SID>/bin:$PATH
SHLIB_PATH=/oracle/<SID>/102_64/lib
LIBPATH=/oracle/<SID>/102_64/lib
/sapmnt/<SID>
/usr/sap/<SID>
/sapmnt/<SID>
/usr/sap/<SID>
Start MDM-Server
• clix mdsStart <MDM-Server>
Stop MDM-Server
• clix mdsStop <MDM-Server>
Located in
I:\<MDM install>\Server Windows
/usr/sap/MDM/mds UNIX
Located in
I:\<MDM install>\Server Windows
/usr/sap/MDM/mds UNIX
• Autostart
0 - repositories are not loaded automatically after restart
True - repositories are loaded automatically if they were previous
loaded
This is recommended in an HA environment
Located in
I:\<MDM install>\Server Windows
/usr/sap/MDM/mds UNIX
• Autostart
0 - repositories are not loaded automatically after restart
True - repositories are loaded automatically if they were previous
loaded
This is recommended in an HA environment
• Archive Dir
<path>- default I:\<MDM install>\Server\Archives Windows
/usr/sap/MDM/mds/Archives UNIX
location of archived repositories
Located in
I:\<MDM install>\Server Windows
/usr/sap/MDM/mds UNIX
• Autostart
0 - repositories are not loaded automatically after restart
True - repositories are loaded automatically if they were previous
loaded
This is recommended in an HA environment
• Archive Dir
<path>- default I:\<MDM install>\Server\Archives Windows
/usr/sap/MDM/mds/Archives UNIX
location of archived repositories
• CPU Count
1 - Default (number of used CPU‘s)
63 [Rev. # or date] – HP Restricted
Manage the MDM Server
Parameter file mds.ini - MDM 7.1
Located in
<drive>: \usr\sap\<SID>\MDS##\config Windows
/usr/sap/<SID>/MDS##/config UNIX
• Autostart
0 - repositories are not loaded automatically after restart
True - repositories are loaded automatically if they were previous
loaded
This is recommended in an HA environment
• Archive Dir
<drive>:\usr\sap\<SID>\MDS##\mdm\Archives Windows
/usr/sap/<SID>/MDS##/mdm/Archives UNIX
location of archived repositories
• CPU Count
1 - Default (number of used CPU‘s)
64 [Rev. # or date] – HP Restricted
Manage the MDM Server
User for MDM support
For the automatic archiving and monitoring use a DB-user and a Repository-user with
limited permissions
Create DB user
Create DB user
This must be done by the customer for each Repository that should be archived and
monitored. The user name is case sensitive!
Look at
Before Maintenance
• Stop MDM-Server first
• At least stop the database
After Maintenance
• Start the database first
• Start MDM-Server
MDM Server
Database Server
MDS, MDIS, MDSS
After Maintenance
Proceed as you see on slide before
archived repositories
Filesystem Backup of
archived repositories
Filesystem Backup of
archived repositories
For Oracle, use the SAP BR* tools to make a consistent online backup for
the database.
Install the SAP BR* tools according SAP-Note 320457 for non-ABAP
databases on the database server.
Perform a verify of all repositories which will be archived in the next step with
the command CLIX.
Perform an archive of all repositories to the archive folder with the command
CLIX.
rep_name.JJMMDD.a2a
Configuration files
mds.ini, mdis.ini, mdss.ini and layout server.ini
Configuration files
mds.ini, mdis.ini, mdss.ini and layout server.ini
Archives of repositories
If the archives are located in a different than the default directory include this
directory in the Filesystem backup
/sapmnt/<SID>
Installation files and binaries for MDM
/sapmnt/<SID>
Installation files and binaries for MDM
Configuration files
mds.ini, mdis.ini, mdss.ini and layout server.ini
Archives of repositories
If the archives are located in a different than the default directory include this
directory in the Filesystem backup
Create an own filesystem for the archive folder if the repositories are several
GB in size
adopt the mds.ini with the new location
These five steps has to be done in this order in one session to keep
MDM consistent in case a consistent restore is needed.
Use the post exec script of DP to start immediately after the DBMS online
backup step 2 until 4:
Use the post exec script of DP to start immediately after the File system
backup step 5:
If one of above commands returns a code other than 0, the backup is marked as
“Failed” but continues.
Important:
The backup Team must know about the repositories to be archived! They must
adjust the post exec script
Corrupt repository
Corrupt DBMS
Try to repair the corrupt repository. If it not helps, unarchive the corrupt
repository. Both tasks should be done by the customer
• Choose the name of the repository you want to unarchive or use a new name
• Choose the archive you want to unarchive
FilePath (RepositoryName)
I:\SAPMDM~1.5\Server\Archives\Testrep.a2a (Testrep)
I:\SAPMDM~1.5\Server\Archives\Testrep2_080304.a2a (Testrep2)
I:\SAPMDM~1.5\Server\Archives\Testrep_080131.a2a (Testrep)
I:\SAPMDM~1.5\Server\Archives\Testrep_080215.a2a (Testrep)
FilePath (RepositoryName)
I:\SAPMDM~1.5\Server\Archives\Testrep.a2a (Testrep)
I:\SAPMDM~1.5\Server\Archives\Testrep2_080304.a2a (Testrep2)
I:\SAPMDM~1.5\Server\Archives\Testrep_080131.a2a (Testrep)
I:\SAPMDM~1.5\Server\Archives\Testrep_080215.a2a (Testrep)
Master/Slave
If the Master is corrupt try to find out the time of corruption
Master/Slave
If the Master is corrupt try to find out the time of corruption
Check whether one of your slave repositories has not been synchronized after the
corruption and find out the most up-to-date slave
Master/Slave
If the Master is corrupt try to find out the time of corruption
Check whether one of your slave repositories has not been synchronized after the
corruption and find out the most up-to-date slave
Unload this repository
Master/Slave
If the Master is corrupt try to find out the time of corruption
Check whether one of your slave repositories has not been synchronized after the
corruption and find out the most up-to-date slave
Unload this repository
Normalize this repository (make a Master)
Master/Slave
If the Master is corrupt try to find out the time of corruption
Check whether one of your slave repositories has not been synchronized after the
corruption and find out the most up-to-date slave
Unload this repository
Normalize this repository (make a Master)
Copy this repository to the Master Server
Master/Slave
If the Master is corrupt try to find out the time of corruption
Check whether one of your slave repositories has not been synchronized after the
corruption and find out the most up-to-date slave
Unload this repository
Normalize this repository (make a Master)
Copy this repository to the Master Server
Unload the old Slaves
Master/Slave
If the Master is corrupt try to find out the time of corruption
Check whether one of your slave repositories has not been synchronized after the
corruption and find out the most up-to-date slave
Unload this repository
Normalize this repository (make a Master)
Copy this repository to the Master Server
Unload the old Slaves
Distribute this new Master to all Slaves
Master/Slave
You can normalize and create new slaves automatically using CLIX
MDM Server
Parameter in mds.ini:
Log Dir=<path>
Report Dir=<path>
MDM Server
Parameter in mds.ini:
Log Dir=<path>
Report Dir=<path>
Import Server
Parameter in mdis.ini
Log Dir=<path>
MDM Server
Parameter in mds.ini:
Log Dir=<path>
Report Dir=<path>
Import Server
Parameter in mdis.ini
Log Dir=<path>
Syndication Server
Parameter in mdss.ini
Log Dir=<path>
Output:
RepositName [DBMSInstance] (DBMSType) Port# Status
----------- -------------- ---------- ----- -----------------------
Testrep [MQ7.WORLD] (Oracle) 2345 Loaded Running
Testrep2 [MQ7.WORLD] (Oracle) 2000 Unloaded Stopped
Errorcode:
echo %ERRORLEVEL%
0
Output:
Error: 0xffab400e, MDS is not running on this host
Errorcode:
echo %ERRORLEVEL%
-5554162
Output:
RepositName [DBMSInstance] (DBMSType) Port# Status
----------- -------------- ---------- ----- -----------------------
Testrep [MQ7.WORLD] (Oracle) 2345 Loaded Running
Testrep2 [MQ7.WORLD] (Oracle) 2000 Unloaded Stopped
mdmstatus is also able to check a specific repository and the status depending on the
monitoring configuration
If the string defined in the configuration file and the status of the repository does
not match, a ticket will be created
Output:
==> Mountable MDM Repositories
Testrep
Testrep2
Errorcode:
echo %ERRORLEVEL%
0
Errorcode:
echo %ERRORLEVEL%
-2080243709
mdmstatus binary
c:\osit\bin\sap\mdmstatus.pl
mdmstatus binary
c:\osit\bin\sap\mdmstatus.pl
mdmstatus binary
c:\osit\bin\sap\mdmstatus.pl
mdmstatus binary
/opt/osit/sap/bin/mdmstatus.pl
mdmstatus binary
/opt/osit/sap/bin/mdmstatus.pl
mdmstatus binary
/opt/osit/sap/bin/mdmstatus.pl
Prerequisites
Example:
clix mdsstatus bmccap62 MDMSupport:<password>
$MDM_DBMS_TYPE O = Oracle
M = MaxDB
D = DB2
S = SQL Server
$MDM_DBMS_TYPE O = Oracle
M = MaxDB
D = DB2
S = SQL Server
$MDM_DBMS_TYPE O = Oracle
M = MaxDB
D = DB2
S = SQL Server
$MDM_DBMS_TYPE O = Oracle
M = MaxDB
D = DB2
S = SQL Server
Command example:
c:\osit\bin\perl\perl.exe c:\osit\bin\sap\mdmstatus.pl –p
c:\osit\etc\sap\mdmstatus_<MDS DB ID>.cfg
Command example:
/opt/osit/perl/bin/perl /opt/osit/sap/bin/mdmstatus.pl –p
/etc/opt/osit/sap/mdmstatus_<MDM SID>.cfg
Windows: “SAP_mdmstatus_win”
UNIX: “SAP_mdmstatus_ux”
is mdmstatus.pl scheduled
is mdmstatus.pl scheduled
Node : bsccap68.dpsnapple.net
Node type : Intel x86/Px
Severity : critical
Message : SAP MDS Repository Server of MDM database MP7.WORLD on host bsccap68 is not
available. ERROR: 0x84020003, Error initializing database engine
Msg Group : SAP
Application : mdmstatus
Object : NoObject
Event type : sap
Instance name : mp7
>tnsping MP7.WORLD
TNS Ping Utility for 64-bit Windows: Version 10.2.0.2.0 - Production on
20-FEB-2008 10:29:59
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
I:\oracle\MP7\102\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY
= SAP.WORLD) (PROTOCOL =
TCP) (HOST = BSCCAP67.americas.csplc.net) (PORT = 1521))) (CONNECT_DATA =
(SID = MP7) (GLOBAL_NAME =
MP7.WORLD)))
TNS-12541: TNS:no listener
Caution:
After the issue is solved, it lasts several seconds until the connection from
MDM Server to the database is established again.
Solution:
See slides before
Node : bsccap68.dpsnapple.net
Node type : Intel x86/Px
Severity : critical
Message : SAP MDS Repository Server of MDM database MP7.WORLD on host bsccap68 is not
available. ERROR: 0xffab400e, MDS is not running on this host
Msg Group : SAP
Application : mdmstatus
Object : NoObject
Event type : sap
Instance name : mp7
Solution:
Check the availability of the MDS and restart if necessary
Node : bsccap68.dpsnapple.net
Node type : Intel x86/Px
Severity : critical
Message : SAP MDS Repository Server of MDM database MP7.WORLD on host bsccap68 has an
ERROR: Repository Testrep2 not available. Status: Unloaded Stopped
Msg Group : SAP
Application : mdmstatus
Object : NoObject
Event type : sap
Instance name : mp7
Solution:
Inform the customer that he checks the repository
Consolidation
MDM Server
Database
File Storage
Cluster Software
Users have to be informed about the changes due to the new landscape
Users have to be informed about the changes due to the new landscape
Data integrity is not guaranteed since data entered between the last
slave synchronization and the moment of failure is lost
Data integrity is not guaranteed since data entered between the last
slave synchronization and the moment of failure is lost
Data integrity is not guaranteed since data entered between the last
slave synchronization and the moment of failure is lost
Data integrity is not guaranteed since data entered between the last
slave synchronization and the moment of failure is lost
More than one slave has to be exist to guarantee read access availability
Each slave runs on a separate server
More than one slave has to be exist to guarantee read access availability
Each slave runs on a separate server
More than one slave has to be exist to guarantee read access availability
Each slave runs on a separate server
http://enhanced1.sharepoint.hp.com/teams/TEG_SAP_TECHNOLOGY/
Documentation/MDM/standards
MDM 5.5 in MSCS environment
MDM 7.1 in MSCS environment
MDM 7.1 in MSFS environment
http://enhanced1.sharepoint.hp.com/teams/TEG_SAP_TECHNOLOGY/
Documentation/MDM/standards