Setting up Windows Server Shared Folder
Moving a large amount of data into Microsoft SQL Server is most performant by bulk loading via a shared folder. This document describes the steps required to setup a shared folder in Windows Server 2019.
PREREQUISITE:
You can also install a Microsoft SQL Agent to improve INSERT performance.
Example Specifications:
- SQL Windows Server : Windows Server 2019 Standard (Desktop Experience)
- MI Application 6.2.0: Debian 10 / Ubuntu 18.04 / CentOS 7 / CentOS 8
Open Shared folder on Windows Server
- Right click on Shared Folder → Properties → Sharing tab → Share
2. Add user for Shared folder
![](https://media.screensteps.com/image_assets/assets/003/674/987/original/2.png)
3. Turn on Network Discovery for all public networks
![](https://media.screensteps.com/image_assets/assets/003/674/988/original/3.png)
![](https://media.screensteps.com/image_assets/assets/003/674/992/original/4.png)
4. Make sure that SMB ports (139 and 445) on Windows Server is opened and you have access to SMB from Linux Instance
![](https://media.screensteps.com/image_assets/assets/004/160/104/original/9ef18d4e-05ae-428d-9cda-79f9f5f58d23.png)
Mount Shared folder from Windows to Linux instance
Make sure that your Linux Instance have access to Windows Server.
- Create Shared folder
$ mkdir -p /opt/mi/shared
2. Install required package
Via Debian or similar OS:
$ apt-get install cifs-utils
Via RedHat or similar OS:
$ yum install cifs-utils
3. Mount Shared folder from Windows Server to Linux Instance
root@mi61:/opt/mi# sudo mount -t cifs //192.168.33.59/mi-shared /opt/mi/shared -o user=Administrator
Password for Administrator@//192.168.33.59/mi-shared: *******
Where:
- 192.168.33.59 - IP of Windows Server with opened Shared Folder
- mi-shared - Opened folder on Windows Server
- /opt/mi/shared - folder for mount on Linux Instance
- user=Administrator - Windows Server user for access to shared folder
4. Confirm that mounting was successful
![](https://media.screensteps.com/image_assets/assets/003/674/997/original/7.png)
Mount Shared folder to Docker Container
To add the shared folder to Docker container, add a mount point from Linux Instance to Docker container.
1. Edit docker-compose yml file of docker container
$ vi /opt/mi/config/deployment/docker-compose.dataprocessor.yml
2. Add mount point
![](https://media.screensteps.com/image_assets/assets/003/675/001/original/9.png)
Where:
- /opt/mi/shared:/opt/mi/shared:rw - shared folder on Linux Instance and inside Docker container, with read/write permissions
3. Launch the dataprocessor via root user
$ vi /opt/mi/config/deployment/credentials/dataprocessor.env
And set variable USER=root
![](https://media.screensteps.com/image_assets/assets/004/159/924/original/10.png)
Variable USER=root need to set possibility for running dataprocessor by root user with access to shared folder
4. Recreate the Docker container
$ mi-control up -d dataprocessor
Recreating mi_dataprocessor_1 ... done
5. Check Shared folder inside docker container
$ docker exec -it mi_dataprocessor_1 bash
$ cd /opt/mi/shared
$ touch file_from_container