SolidPractices: SOLIDWORKS Manage Backup, Restore, and Performance Improvement Guide

Revision History
Rev #DateDescription
1.0November 2024Document created.

Note

All SolidPractices are written as guidelines. It is a strong recommendation to use these documents only after properly evaluating your requirements. Distribution of this document is limited to Dassault Systèmes SOLIDWORKS employees, partners, and customers that have an active subscription. You may not post this document on blogs or any internal or external forums without prior written authorization from Dassault Systèmes SOLIDWORKS Corporation.

This document was updated using SOLIDWORKS Manage 2024 SP3.1. If you have questions or need assistance in understanding the content, please get in touch with your designated reseller. You can download the most current version of this document from https://my.solidworks.com/support/solidpractices.

  1. Preface

This SolidPractice document guide is designed to prepare administrators with essential knowledge and skills for effectively managing SOLIDWORKS® Manage. This guide is designed to offer clear instructions and best practices, empowering administrators to effectively manage and optimize the SOLIDWORKS Manage environment.

Whether you are new to administration or looking to enhance your skills, this resource provides practical insights and detailed procedures for navigating administrative tasks. By gaining expertise in these activities, administrators can streamline operations, boost productivity, and fully apply the advantages of SOLIDWORKS® Manage to your organization.

Your Feedback Requested

We would like to hear your feedback and suggestions for new topics. After reviewing this document, please take a few minutes to fill out a brief survey. Your feedback will help us create the content that directly addresses your challenges.

  1. Creating a complete backup of SOLIDWORKS Manage System

SOLIDWORKS Manage is an advanced, record-based data management system that extends the global file management and application integrations enabled by SOLIDWORKS PDM Professional. SOLIDWORKS Manage includes a comprehensive set of capabilities that you can use and distribute to many areas of the business.

A SOLIDWORKS Manage environment consists of two elements to back up. The Microsoft® SQL Server® database and the fileserver.

Without a disaster recovery plan, all this centralized data could be at risk if there is a hardware failure, a damaged disk drive, permanent loss of a server or a ransomware attack for example. To prevent data loss, the partner or the customer must back up two elements from the main server using SOLIDWORKS Manage.

Note: Most SOLIDWORKS Manage servers have a SOLIDWORKS PDM Professional Vault attached. If this is the case, you must take the SOLIDWORKS PDM backup as well. A complete file vault backup must include backing up the file vault database and all physical file vault archive files. For more information on SOLIDWORKS PDM backup procedure, see ‘Backing Up and Restoring File Vaults’ in SOLIDWORKS PDM Installation Guide.

  1. Backing Up the SQL Server Database

The database contains all item and project data created in your SOLIDWORKS Manage environment.

To back up the SQL Server database:

  1. In SQL Server Management Studio (SSMS), right-click the SOLIDWORKS Manage database that you want to back up. Then go to Tasks > Back Up

  1. In the Back-Up Database dialogue box, Select the General page

  2. On the General page, select the following settings:

  • Under Source, select Full as the Backup type.

  • Enable Copy-only backup.

A copy-only backup is a SQL Server backup that is independent of the sequence of conventional SQL Server backups. Usually, taking a backup changes the database and affects how later backups are restored. Copy-only backups, however, do not affect the overall backup and restore procedures for the database.

  • Set the Backup component to Database.

  • Under Destination, select Disk as the Backup to location.

  • Click Add to select the backup destination.

  1. In the Media Options page, it is recommended to use the Overwrite media option and also mark the checkbox of Reliability > Verify backup when finished.

To learn more about backing up SQL Server databases, see Microsoft documentation.

Caution: If the backup is stored on the same machine, it will be lost in the event of a hardware failure. Consider using an external storage solution for your backups to ensure data safety. Additionally, you may want to think about compressing the backup file and reducing the size of the transaction log file in SQL Server. See QA article QA00000123483 and QA00000120696

  1. Backing up the Fileserver

The Root folder contains all the files that are stored in document objects and the related files for all records in SOLIDWORKS Manage. Although the default location of the Root folder is , you might have selected a different folder location during installation.

To back up the Root folder, copy the contents to a secure, off-site disk. You might have selected a Root folder location different from the default location during installation.

To find the Root folder location on your SOLIDWORKS Manage server:

  1. Open Microsoft Internet Information Services (IIS) Manage

  2. In the Connection pane, Expand [ServeName] > Sites > SWManage > SWMfs (if the implementer maintained the default settings.)

  3. Right click SWMfs and select Manage Application > Advanced Settings. The Physical Path row lists the Root folder location.

  1. Once you confirm the Root folder location, you can find it in File Explorer and perform the backup.

  1. Upgrading SOLIDWORKS Manage

Upgrading software is a critical task that can impact many aspects of your systems and processes. The following are some best practices to perform before proceeding with a software upgrade:

  • Perform a full backup of all data to prevent data loss. See Creating a Complete Backup of SOLIDWORKS Manage System.

  • Verify that backups are complete and can be restored successfully on a second machine.

  • Perform the upgrade in a sandbox environment that mirrors your production environment as closely as possible.

  • Run a check of the usual daily processes against the sandbox environment in order to discover later possible regression that might have a big impact on the customer’s production.

Upgrade SOLIDWORKS Manage in two phases:

  • Upgrading the server

  • Upgrading the clients.

The database version is determined by the highest version client that is attached to the instance. After upgrading the first SOLIDWORKS Manage client and launching it, the user is prompted to upgrade the database. Users must be at least a Partial Administrator in order to upgrade the database; they do not require administrative privileges.

The new option ‘Check software version on login’ was introduced in 2024. These global options control the version with which desktop clients can log in, in SOLIDWORKS Manage.

Always allow log in - allows users to log in to SOLIDWORKS Manage with the same client version or older than the database version.

 

Warn users if their software version is older than the database version - If selected, users will be warned if their client version is older than the database version, however they can still log in.

 

Block users if their software version is older than the database version - (recommended option - This is the default setting when updating to Manage 2024) If selected, users will be blocked from logging in if their client version is older than the database version

Note: If logging in with a newer software version than the database version, the database will be upgraded if the user accepts the log-in warning message (only administrators and partial administrators can update databases).

Along with accessing the System Administration tool through the SOLIDWORKS Manage client, there is also a stand-alone version of this tool.

SOLIDWORKS Manage Administration tool does not require a license, therefore it can be used during periods of high usage even though it does not grant access to any records or allow all system modifications to be tested.

  1. Upgrading the Server

The installation guide for SOLIDWORKS PDM includes instructions for installing SOLIDWORKS Manage. Simply running the SOLIDWORKS Installation Manager and selecting server components will allow you to upgrade to the new version.

Note: Using the SOLIDWORKS Installation Manager to install the SOLIDWORKS Manage software typically installs these prerequisites for you. However, installing from the stand-alone installers or as part of an administrative image install does not install the prerequisites automatically. These cases require a manual installation.

If you are upgrading the SOLIDWORKS Manage server using Installation Manager, please refer to the following image:

  1. Upgrading the Clients

  1. Log in to a client workstation as a user with local administrative rights

  2. Browse to the installation media

  3. Run \ SWManageClient\setup.exe to start the SOLIDWORKS Manage client upgrade

  4. Follow the install wizard steps by clicking Next on each screen

If you are upgrading SOLIDWORKS Manage client using Installation Manager please refer to the below image:

  1. Restoring SOLIDWORKS Manage on a Different Server

Restoring a database is a critical operation, often necessitated by various scenarios like accidental data deletion, malware or ransomware attacks, and hardware failures. In all these scenarios, having a robust backup strategy and tested recovery procedures is crucial to ensure minimal downtime and data loss. Restoring the database requires access to SQL Server instance through SSMS and the credentials that allow you to restore a database from backup.

There are two main components in SOLIDWORKS Manage to be restored:

  1. Restoring the SQL Database

  1. Ensure that the backup file is intact and not corrupted. This may involve running checksum or validation tools

  2. Use SSMS to initiate the restore process. This usually involves specifying the location of the backup file and the target database. Right-click the Databases node in Object Explorer and select Restore Database

  1. Select Device and then click (...) to locate the backup file.

  2. Click Add and navigate to where your SQL backup file is located.

  3. Select the backup file and then click OK.

  4. Select OK to close the Select Backup Devices dialog box.

  5. Select OK to restore the database.

  1. Restoring the Fileserver

After performing the installation of the SOLIDWORKS Manage server component, you are ready to restore the Fileserver.

  1. Copy and Paste Fileserver folder:

Restoring the Fileserver is generally straightforward if you know its location. Typically, it can be found in a directory like: “C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS Manage Server.” Copy the backup directory into the new fileserver folder.

  1. Creating Configuration File:

If the SQL Server name / Database Name / and SOLIDNetwork license manager Server name has changed, it is important to create a new configuration file (SWManage.SWMC). To create this configuration file, browse to the installed location for the SOLIDWORKS Manage Server > Navigate into the Server Utils folder > run the ‘Configuration File Wizard’ (swm.configwizard.exe). Use the 'Test Connection' feature to make sure that all information is correct.

After confirming that the settings are correct, use the 'Save' or ‘Save As' functions to save the new SWManage.SWMC file in the Fileserver folder. When you start SOLIDWORKS Manage client and expand the ‘Options’, you will be able to add or select the new SWManage.SWMC file or add multiple paths to different SWManage.SWMC files.

Note: If the .SWMC file is located in the default Fileserver folder (**:\Program Files\SOLIDWORKS Manage Server\Fileserver), it must be named SWManage.swmc. However, if you store the file in a different location for easier access by all users, you can choose a different name. While there is a configuration file in the Fileserver, Notifications, and WebPlenary folders, it may not have the correct information to connect to the database. Therefore, you need to copy the configuration file to these directories.

  1. Update Site Settings:

Test the connection to the Fileserver as follows:

  1. Run the SOLIDWORKS Manage client and log in as Admin.

  2. Go to Options > Administration Options > Sites.

  3. Edit the site by clicking on the pencil icon.

  4. Test the connection by clicking the Fileserver button.

If you wish to create a new IIS application during a restoring phase of Manage refer to QA Article ID: QA00000299944

Abstract: Is there a tool to create new IIS applications during a restoring phase of a SOLIDWORKS® Manage Database?

Link: https://support.3ds.com/knowledge-base/?q=docid:QA00000299944

  1. Specify the correct Address. For example: ‘http://MyServer9999/SWMfs/service1.asmx’. In many instances, the machine name is used instead of "localhost."

  2. Perform the test again. Once the right string connection is set, you see the Success message.

If the sandbox environment involves SOLIDWORKS PDM as well, then we recommend to refer at the installation guide and the QA00000118994 - How do you restore an identical copy of an existing SOLIDWORKS® PDM Professional 2016 (and later) or SOLIDWORKS® PDM Standard 2016 (and later) file vault to a new (renamed) vault name?

Link: https://support.3ds.com/knowledge-base/?q=docid:QA00000118994

By following the steps detailed in this SolidPactice guide you can ensure a successful restoration of your database or file server. Adhering to these procedures reduces the risk of data loss and maintains system integrity. Additionally, these steps enable administrators to create a sandbox environment for testing or investigation purposes, rather than making changes directly to the production environment.

  1. Set up for Optimal Performance

These suggestions provide a collection of tips and tricks to enhance the performance of SOLIDWORKS Manage systems. Please keep in mind that these are general recommendations and not tailored to any specific setup. They are intended for advanced users and system implementers.

Achieving optimal system configuration is essential for maximizing performance.

Define → Implement → Test → Optimize → Deploy to Production → Review Periodically...

  1. SOLIDWORKS Manage in a High Latency Environment

    Replicated databases:

  1. Significantly enhance the ability to read data, accounting for up to 75% (or even more) of user requirements. Related files are also pulled from the local fileserver.

  2. However, it is important to recognize that when it comes to writing data, this must be executed in the primary database – for instance, creating/editing records, editing/saving BOMs, accepting or sending a process to next stage, etc. Therefore, customers should be aware that replication is not a silver bullet for mitigating high latency issues. Optimum configuration is the key.

To set up a test environment for SOLIDWORKS Manage FileServer and Database Replication, please refer to the knowledge base article.:

Article ID: QA00000125214

Abstract: Where do I find a guide that describes the SOLIDWORKS® CAD Software Manage FileServer and Database Replication?

Link: https://support.3ds.com/knowledge-base/?q=docid:QA00000125214

  1. Advanced Best Practices To Improve The Performance

  2. 3PL (3rd Party Link) type fields:

    1. Efficient 3PLs:

      1. Writing SQL queries is an advanced feature in SOLIDWORKS Manage. If done incorrectly, these can affect the performance considerably, or even worse – make the system inoperable. An experienced SQL professional should be consulted!

  1. The 3PL must be as efficient as possible. Use the SSMS to write, test and optimize the queries before adding them to the 3PL. Test with a realistic amount of data (and not a small subset)

  1. Avoid complex 3PLs:

    1. A complex 3PL involves multiple operations, tables, or conditions, making it more intricate than a basic query. Complex SQL queries often use multiple clauses, joins, subqueries, and aggregation functions to extract the desired information

    2. Even if it is not complex, but it retrieves too much data, it will still impact the system performance. Make sure to use conditions to limit the number of columns and rows appropriately

  2. If complexity cannot be avoided:

    1. Consider creating a Stored Procedure and then call it from a 3PL field

    2. Make sure the number of these types of 3PLs is kept to a minimum

    3. Recognize this as a potential bottleneck and review again in the future

  3. Consolidate multiple 3PLs into a single 3PL:

In some cases, implementers create many 3PLs, each one taking a specific value from the system (or external database). The system must go back and forth to the database for each 3PL field. The alternative is to create a single 3PL field which updates multiple simple fields (read-only text fields, etc) at once. This is now a single trip to the database, even more ideal if working on high latency environment. Make sure the single 3PL is not overly complex, in which case, it may be split in more than one 3PL (but still less than the original number of 3PLs).

  1. Check SQL calls to other databases:

    1. A SQL call to an external database from a 3PL might be slow to reach, depending on where the database is.

    2. If this call does not need to be in real time, consider creating an intermediate table in the SW Manage database, which is updated independently from the original database via a scheduled SQL job. Then, you can query the local table much more efficiently. See appendix section how to schedule SQL Server jobs.

  2. Multi-sites:

If the system has multiple sites, make sure the 3PL is run only on the sites where it is needed or where it has access to the other databases. For example, one site (US) uses a specific ERP system whereas another (Europe, Asia, etc) uses another ERP. 3PLs connected to these ERPs should be selected to run only on the respective sites.

  1. Lookup Fields:

  1. These field types are complex, based on the rules and objects you may have selected. They require one or more JOINS between tables and multiple conditions to get their results. Some complex combinations may lead to slower performance.

  2. LookUp fields are calculated Server-Side (Fileserver webservice API).

  3. Keep the number of these fields to a minimum.

  4. Consider replacing multiple LookUp fields with a single (efficient) 3PL.

  5. It is not recommended to display these field types alongside object type fields on the main grid.

  1. Reports:

  1. Efficient reports.

    1. SW Manage Report designer has a built-in wizard which automatically creates the required links between objects in SW Manage. You can also write your own custom queries or use stored procedures.

    2. When using the built-in method, make sure to only select the fields you need (that are used in the report) rather than everything.

      1. TIP. On the top left of the report (where rulers meet) click the button then select “Edit bindings” link. This will show a table with all fields used in the report. Export this and go back to the wizard (or your custom query) and only select these fields.

    3. Use a filter (in the wizard) because this will reduce the amount of data pulled from the database to go to the report engine. Note that this is different from the report’s own filter.

    4. If you write custom queries, make sure to make it efficient enough to reduce the number of columns and rows.

  2. Split large reports.

If you need a lot of data in your reports, consider filtering into multiple reports. For example, doing a few annual reports, so each report pulls data from that year. You can also have a “total” report which could be used less often, and users are aware it takes longer to load.

  1. Reports in processes.

Avoid unnecessary report generation in process stages as part of notifications. Every time a process is accepted or sent to next stage, it has the option to run notifications, which can also generate one or more reports and attach to the emails. This can impact performance if the report is too large or inefficient.

  1. Number Of Fields In Objects:

    1. Avoid adding unnecessary fields in prop cards. This can happen due to using “add it, just in case” mentality.

    2. In some systems we have seen over 700 fields, 80%+ of which had never been used.

    3. If it is unavoidable, then start with all the fields but schedule regular reviews later to remove unused fields.

  2. Grids - Columns And Rows:

    1. Limit the number of visible columns on grids. In the object administration, unselect the “Visible on grid” setting. Ideally show the top 10-15 columns, the rest will still show when users click or open the property cards.

      1. Note. This is different from just hiding columns from the grid itself. If simply hidden on the grid, they still get loaded in the background from the database.

    2. Limit the number of records per page, ideally 50, max 100.

    3. Let’s imagine a grid of results with hundreds of columns x hundreds or even thousands or rows, compared to say 10-15 columns x 50-100 rows. The difference between the amount of data coming from the database is huge. The time to load the grid will vary from ‘instant’ to ‘a few seconds’ or even many seconds / minutes (if very high latency). Note that this load will slow the SQL Server itself, hence other user operations.

    4. Consider “Top X” display for objects. This is approx. 50% faster than normal paging.

    5. Conditional highlighting is an additional operation. Be aware that displaying many columns on the grid which have conditional highlights, will also impact the grids.

      1. Avoid too many highlights if not necessary.

    6. Consider using the “Do not show records when clicking folders/filters” in the top ribbon / View tab.

      1. Users will then need to search for what they need, rather than load the grid first and then search after that anyway.

  3. Processes:

    1. Number of outputs.

      1. Consider outputs carefully to understand the impact in processes. Be aware that many output operations will impact a process stage.

    2. “Mega” processes.

      1. Avoid creating a huge process with too many fields and then use many field groups and many conditions to manipulate visibilities in order to have different process behaviors. It might be better to split into multiple simpler process objects (using the ‘New From’ tool in administration to clone a process) than one “mega” process with a lot of conditions.

  4. Hardware:

  1. Server specification is important.

    1. Review the CPU and RAM regularly.

The SQL server (especially from 2016) works more and more with system memory. As a rule of thumb, make sure the RAM is larger the database size (plus additional RAM for the OS and/or other applications). It is crucial to make sure that the recovery mode is set to simple and that the transaction log file is routinely shortened because it loads into RAM as well.

  1. Use SSD disks.

Recommendation: Use SSD drive because using optical drives affects the performance.

  1. Rebuild indexes.

The frequency of this job depends on the system size and data imports (for example large automatic or script imports). A weekly rebuild is a good start, but you might need to review the frequency.

  1. Do not use the same server for other applications that require SQL Server. In some cases, these applications also use ERP systems (even running in the same SQL instance). This will impact the performance.

  2. IIS Server.

Set the application pool start mode to “Always Running” to improve the performance of the Web application and Fileserver.

Do not use the IIS server for too many other sites (not related to SW Manage)

  1. Appendix

How to create a scheduled job that executes an SQL query, follow these steps:

  1. Open SQL Server Management Studio (SSMS) and connect to your SQL Server instance.

  2. In the Object Explorer, expand the SQL Server Agent node. If SQL Server Agent is not running, right-click on it and choose "Start."

  3. Right-click on the "Jobs" folder under SQL Server Agent, then select "New Job."

  4. In the "New Job" dialog, provide a job name and description. The job name should be descriptive and indicate the task being performed.

  5. Go to the "Steps" page and click on "New" to create a new job step. In the "New Job Step" dialog, provide a step name and select "Transact-SQL script (T-SQL)" as the "Type."

  6. In the "Command" box, write your SQL query that you want to schedule.

USE [YourDatabaseName]

--Add your SQL script here

  1. Click "OK" to save the job step.

  2. Go to the "Schedules" page and click on "New" to create a new schedule. In the "New Job Schedule" dialog, provide a schedule name and configure the frequency, duration, and time at which the SQL query should be executed.

  3. Click "OK" to save the schedule and then "OK" again to save the job.

We hope that you find this document informational and useful and request that you leave a brief feedback about the topics that you want us to cover in the next revision of this document. Click here for a complete list of SolidPractices documents available from DS SOLIDWORKS Corp.