2

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.

1 Answer 1

3

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 database
  • sqlceip.exe is the spyware -- both installs get that of course

    Sql Server Telemetry Client

  • calchash.exe this is Microsofts copy of sha1sum.exe takes a filename.

    Microsoft Trust Calculate hash utility (US/Canada Only, Not for Export)

  • OSQL.exe was deprecated and removed on the Windows Install
  • bcp.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 and rgs.exe both seem to be some kind of registry modifier. I assume reg.exe is the system, and rgs.exe is the hive file.
  • Though pe32+ XdbPackageLauncher.exe just crashes when I run them in Windows 10.
  • PalProcessLauncher.exe, and launchpad.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 logs

    MtLog 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 brought

    useraccounttool <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
    
2
  • 1
    On Windows some of this will be in a different folder because it is shared (not instance specific or aware) sucks as bcp.exe
    – gbn
    Commented Dec 16, 2017 at 8:40
  • @gbn yep, while I didn't mention that bcp was in a different location, I did notice that. =) Feel free to edit the ones that you know to be in a different location (if you want to add to it). Commented Dec 17, 2017 at 1:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.