What differences are there with SQL Server 2017's packaging of `Binn` on Linux and Windows?
-
10-10-2020 - |
Question
Knowing that the Binn
is packaged differently on Windows and Linux, I'm wondering what differences there are between the two? Do they come with different utilities? On Linux Binn
is distributed in a sfp
archive and Windows it's just a directory.
Solution
All tests done with a full install on Windows (except Machine Learning, and PolyBase) and a full install on Linux. So for starters on Windows you'll find these,
112K fdhost.exe
244K sqlceip.exe
2.7M DQSInstaller.exe
32K DatabaseMail.exe
40K BackupToUrl.exe
476K sqlservr.exe
56K StretchCodeGen.exe
60K fdlauncher.exe
88K xpadsi.exe
While on Linux you'll find
1.1M launchpad.exe
120K bcp.exe
120K reg.exe
140K SqlDumper.exe
16K calchash.exe
200K mtlogreader.exe
208K rep.exe
232K DTAEngine.exe
232K ldfreader.exe
244K sqlceip.exe
244K sqlcmd.exe
28K rgs.exe
32K DatabaseMail.exe
36K PalProcessLauncher.exe
476K sqlservr.exe
48K useraccounttool.exe
72K XdbPackageLauncher.exe
76K OSQL.exe
A quick overview,
sqlservr.exe
is the actual databasesqlceip.exe
is the spyware -- both installs get that of courseSql Server Telemetry Client
calchash.exe
this is Microsofts copy ofsha1sum.exe
takes a filename.Microsoft Trust Calculate hash utility (US/Canada Only, Not for Export)
OSQL.exe
was deprecated and removed on the Windows Installbcp.exe
is the Bulk Copy Program but only the Linux version has-G Azure Active Directory Authentication
rep.exe
- think grep on XML.Rep - a fast, file-oriented search and replace program.
DTAEngine.exe
seems to be a component of SMSS that is available on Linux without using SMSS.reg.exe
andrgs.exe
both seem to be some kind of registry modifier. I assumereg.exe
is the system, andrgs.exe
is the hive file.- Though pe32+
XdbPackageLauncher.exe
just crashes when I run them in Windows 10. PalProcessLauncher.exe
, andlaunchpad.exe
are likely specific to the Drawbridge abstraction.ldfreader.exe
seems interesting and potentially useful,LDF Reader version 14.0.3008.27 - Dump Microsoft SQL Server Transaction Log Usage: \\VBOXSVR\mssql\lib\sqlservr\Content\binn\ldfreader.exe <file> [options] Options: -minVlf <int> Min VLF to dump. Skips all prior VLFs. (short form: -m) -maxVlf <int> Max VLF to dump. Skips all following VLFs. (short form: -M) -verbosity <int> Verbosity level. Default is 1. (short form: -v) -summary Summary mode. Only prints overall structure of LDF without individual records. (short form: -s) -lopFilter <string> Dump only records with these LOP. (short form: -l) -force Force dumping in presence of corruption. (short form: -f) -dumpPageLogs Dump Page Log Records? (short form: -p) -instructionFile Treat file as instruction file. (short form: -i) -targetruntime <int> The target run time in seconds (see below). (short form: -t) -certInfo <string> Certificate information file for encrypted logs. (short form: -c) -vlfSize <int> Fixed VLF Size in MB for Socrates Log (short form: -z) <file> has a different meaning depending on whether -instructionFile is specified if -instructionFile is specified, <file> is a file containing vlf information extracted at dump time, containing fileID;offset;size followed by a separator line and then mappings: fileID;full log file path The -t parameter is an indication of how long to run the tool when used without -i it is treated as a hard timeout on log iteration when used with -i it is used as a guide for hueristics, a hard timeout of five times the requested value will be used
launchpad.exe
Invalid arguments. The supported arguments are: -launcher: Define the launcher dll's full path. -logPath: Define the launchpad's base log path. -satelliteDllPath: Define the sql satellite dll path for the satellites. -workingDir: Define the launchpad and satellite process base working directory. -cleanupLog: Whether to cleanup the log directory after every execution [0|1]. -cleanupWorkingDir: Whether to cleanup the working directory after every execution [0|1]. -pipeName: Define the launchpad's name pipe's name. -timeout: Define the default timeout in ms. -SqlInstanceName: Define the SqlInstanceName as in MSSQLSERVER or blank for default or an instance name. -logFilesCount - Tells the max number of launchpad error log file to keep across launchpad restarts. Example: Launchpad.exe -launcher commonlauncher.dll -logPath C:\sqlServerBinaries\log -satelliteDllPath C:\sqlServerBinaries\binn\sqlsatellite.dll -workingDir C:\sqlServerBinaries\data\ExtensibilityData -cleanupLog 0 -cleanupWorkingDir 0 -pipeName sqlsatellitelaunch -timeout 600000 -SqlInstanceName MSSQLSERVER
mtlogreader.exe
, some utility for Hekaton logsMtLog Reader - Dump Hekaton MtLog files Usage: \\VBOXSVR\mssql\lib\sqlservr\Content\binn\mtlogreader.exe <file> [options] Options: -verbose <int> Verbosity (0-4) Default 1. (short form: -v) -buffio <bool> Buffer stdout (true/false) Default true (short form: -b) -keySecret1 <string> The first secret key blob used for crypto keys (short form: -k1) -keySecret2 <string> The Second secret key blob used for crypto keys (short form: -k2) -instructionFile Treat file as instructionfile. (short form: -i) -targetruntimeinseconds <int> The target run time in seconds (only valid with -i). (short form: -t) -skipchksum Skip checksum validation. (short form: -sc) -maxbsn <uint64> Max BSN to dump. Default 0 (dump whole file). (short form: -m) <file> has a different meaning depending on whether -instructionFile is specified if -instructionFile is specified, <file> is a file containing checkpoint file information extracted at dump time, containing the root file name followed by a list of container directories (one per line). the -t parameter is an indication of how long to run the tool when used with -i it is used to limit the processing of checkpoint files
useraccounttool.exe
, I believe it's the use R account tool, as in the statistical language for Machine Learning that Microsoft broughtuseraccounttool <command> [options] Available Commands: /install - Create the credentials required for R on SQL Server. /uninstall - Cleanup the credentials required for R on SQL Server Available Options: /instance:<name> - [Optional (default: MSSQLSERVER)] The instance to use /sqlbinnpath:<path> - [Required] The path to the sql binn directory. /userpoolsize:<size> - [Optional (default: 20)] The number of user accounts to create. [useraccounttool] <12/15/2017 5:23:26 PM> #3: Program exited with exit code 1