首先,我们来看通用选项:
-
-h [ --help ]
:这个选项非常直观,用于显示帮助信息。当你不确定某个命令的作用时,这个选项可以提供详细的使用说明。 -
--version
:这个选项用于显示程序的版本信息,有助于确认你正在使用的是哪个版本,特别是在需要特定功能或进行故障排除时。 -
-f [ --config ] arg
:这个选项允许你指定一个配置文件。配置文件中可以包含其他命令行选项,这样就不必每次都手动输入这些选项,非常方便。 -
-v [ --verbose ] [=arg(=v)]
:这个选项用于增加输出的详细程度。你可以多次使用这个选项(如-vvvvv
)来获得更详细的输出,这对于调试或了解程序的内部工作非常有帮助。 -
--quiet
:与--verbose
相反,这个选项减少输出,使程序运行时更加安静。在不需要详细日志的情况下,这个选项非常有用。 -
--port arg
:这个选项用于指定程序监听的端口号。默认端口是27017,但你可以根据需要进行更改,特别是在有端口冲突或运行多个实例时。 -
--bind_ip arg
:这个选项允许你指定一个或多个IP地址,程序将只监听这些IP地址的连接。默认情况下,它只监听localhost,这对于提高安全性非常有帮助。 -
--bind_ip_all
:这个选项使程序绑定到所有可用的IP地址。这在你希望程序接受来自任何网络接口的连接时非常有用,但也意味着程序对所有网络都是可见的,因此需要谨慎使用。 -
--ipv6
:这个选项用于启用IPv6支持。默认情况下,IPv6是禁用的,但如果你的网络环境需要IPv6,这个选项可以确保程序正确地处理IPv6地址。 -
--listenBacklog arg (=2147483647)
:这个选项设置socket监听队列的大小。它决定了在连接被接受之前,可以有多少连接请求等待。默认值非常大,这在大多数情况下是合适的,但在资源受限的系统上可能需要调整。 -
--maxConns arg
:这个选项设置程序可以同时处理的最大连接数。默认值是1,000,000,这在大多数情况下已经足够,但在高流量环境中可能需要调整。 -
--logpath arg
:这个选项指定日志文件的路径。而不是将日志输出到标准输出,程序将日志写入指定的文件,这对于生产环境中的日志记录非常有用。 -
--logappend
:这个选项使程序将日志追加到指定的日志文件,而不是每次覆盖它。这确保了日志的连续性,有助于故障排除和审查。 -
--logRotate arg
:这个选项设置日志轮换的行为。你可以选择rename
或reopen
,这决定了当日志文件达到一定大小或在重新启动时如何处理日志文件。 -
--timeStampFormat arg
:这个选项允许你选择日志消息中时间戳的格式。选项有ctime
、iso8601-utc
或iso8601-local
,这有助于根据你的时区或格式偏好来解析日志。 -
--pidfilepath arg
:这个选项指定PID文件的完整路径。PID文件用于跟踪主进程的进程ID,这对于管理程序的生命周期非常有用,特别是在使用init系统时。 -
--timeZoneInfo arg
:这个选项指定时区信息的完整路径,例如/usr/share/zoneinfo
。这确保了程序使用正确的时区数据,特别是在处理时间相关的功能时。 -
--keyFile arg
:这个选项用于指定用于集群身份验证的私钥文件。它对于确保集群内部的安全通信至关重要,特别是在生产环境中。 -
--noauth
:这个选项使程序在没有安全身份验证的情况下运行。虽然这在开发或测试环境中可能方便,但在生产环境中不建议使用,因为它会降低安全性。 -
--setParameter arg
:这个选项允许你设置一个可配置的参数。这可以包括各种内部设置,具体取决于程序的配置选项。 -
--transitionToAuth
:这个选项用于在滚动升级过程中身份验证。它尝试在出站连接上进行身份验证,并且无论成功与否都继续进行,同时接受带有或不带有身份验证的传入连接。 -
--clusterAuthMode arg
:这个选项设置用于集群身份验证的模式。选项包括keyFile
、sendKeyFile
、sendX509
或x509
,具体取决于你希望使用的安全方法。 -
--networkMessageCompressors [=arg(=disabled)] (=snappy)
:这个选项指定用于网络消息的压缩器。默认情况下,它使用snappy
进行压缩,但你可以根据需要禁用它或选择其他压缩器。 -
--auth
:这个选项使程序在有安全身份验证的情况下运行。它确保只有经过身份验证的用户才能访问程序,这对于生产环境中的安全至关重要。 -
--clusterIpSourceWhitelist arg
:这个选项指定一个网络CIDR,定义了允许对__system
进行访问的源。这是一个安全措施,确保只有可信的网络可以进行某些管理操作。 -
--slowms arg (=100)
:这个选项设置被认为是慢操作的阈值(以毫秒为单位)。慢操作将被记录在日志中,这对于性能监控和优化非常有用。 -
--slowOpSampleRate arg (=1)
:这个选项设置慢操作被包含在日志中的频率。默认情况下,所有慢操作都会被记录,但你可以根据需要进行调整以减少日志的详细程度。 -
--profile arg
:这个选项设置剖析级别。你可以将其设置为0
(关闭)、1
(仅慢操作)或2
(所有操作)。剖析有助于识别性能瓶颈。 -
--cpu
:这个选项使程序定期显示CPU和IO等待利用率。这有助于监控程序的性能。 -
--sysinfo
:这个选项打印一些诊断系统信息。它可以在故障排除或了解系统状态时提供帮助。 -
--noIndexBuildRetry
:这个选项防止程序重新尝试因关闭而中断的索引构建。这在你希望管理索引构建过程时非常有用。 -
--noscripting
:这个选项禁用脚本引擎。如果不需要脚本功能,禁用它可以提高性能。 -
--notablescan
:这个选项防止表扫描。如果希望强制使用索引以提高查询性能,这非常有用。
接下来是Windows服务控制管理器选项:
-
--install
:这个选项将程序安装为Windows服务。它在你希望程序作为服务在后台运行时非常有用。 -
--remove
:这个选项从系统中移除安装的Windows服务。它在你不再需要服务或需要更新它时非常有用。 -
--reinstall
:这个选项重新安装Windows服务。它相当于先移除再安装,确保服务的配置是最新的。 -
--serviceName arg
:这个选项指定安装的Windows服务的名称。它有助于识别和管理多个服务。 -
--serviceDisplayName arg
:这个选项设置服务的显示名称。它在用户界面中更易读,有助于识别服务。 -
--serviceDescription arg
:这个选项提供服务的描述。它有助于解释服务的作用,特别是在管理控制台中。 -
--serviceUser arg
:这个选项指定服务执行的用户账户。它需要具有运行服务所需的适当权限。 -
--servicePassword arg
:这个选项指定用于身份验证serviceUser
的密码。它确保服务可以正确地进行身份验证。
现在是复制选项:
-
--oplogSize arg
:这个选项设置复制操作日志的大小(以MB为单位)。操作日志用于在副本集成员之间同步数据。默认情况下,它是磁盘空间的5%,但你可以根据需要进行调整。
接下来是主从复制选项(已弃用,建议使用副本集):
-
--master
:这个选项使程序在主模式下运行。主服务器可以接受写操作,并将这些操作复制到从服务器。 -
--slave
:这个选项使程序在从模式下运行。从服务器复制主服务器的操作,但不接受写操作。 -
--source arg
:这个选项指定主服务器的地址(<server:port>
),从服务器应从该地址复制数据。 -
--only arg
:这个选项指定从服务器应复制的单个数据库。它限制了复制到特定的数据集。 -
--slavedelay arg
:这个选项设置从服务器应用主服务器操作的延迟(以秒为单位)。它有助于减轻主服务器的负载或管理数据的延迟。 -
--autoresync
:这个选项使从服务器在数据过时或与主服务器不同步时自动重新同步。它确保从服务器保持最新的数据。
接下来是副本集选项:
-
--replSet arg
:这个选项指定副本集的名称和可选的种子主机列表。副本集是一组维护相同数据集的服务器,提供高可用性和数据冗余。 -
--replIndexPrefetch arg
:这个选项设置索引预取行为。选项包括none
、_id_only
或all
,影响副本集成员如何预取索引以提高性能。 -
--enableMajorityReadConcern [=arg(=1)]
:这个选项启用多数读关注。它确保读操作反映了大多数副本集成员的写操作,提供了强一致性。
接下来是分片选项:
-
--configsvr
:这个选项声明程序是分片集群的配置服务器。它使用默认端口27019,并将数据存储在/data/configdb
中。 -
--shardsvr
:这个选项声明程序是分片集群的分片服务器。它使用默认端口27018,并处理分片数据。
现在是SSL选项:
-
--sslOnNormalPorts
:这个选项在配置的端口上使用SSL。它确保数据在传输过程中加密,提高了通信的安全性。 -
--sslMode arg
:这个选项设置SSL操作模式。选项包括disabled
、allowSSL
、preferSSL
或requireSSL
,具体取决于你的安全要求。 -
--sslPEMKeyFile arg
:这个选项指定包含SSL证书和私钥的PEM文件。它用于服务器的SSL身份验证。 -
--sslPEMKeyPassword arg
:这个选项指定PEM文件的密码。它确保PEM文件的访问是安全的。 -
--sslClusterFile arg
:这个选项用于内部SSL身份验证的密钥文件。它确保集群内部的通信是安全的。 -
--sslClusterPassword arg
:这个选项指定用于身份验证sslClusterFile
的密码。它确保只有具有正确密码的服务器才能加入集群。 -
--sslCAFile arg
:这个选项指定用于SSL的证书颁发机构(CA)文件。它用于验证服务器的SSL证书。 -
--sslClusterCAFile arg
:这个选项指定用于验证远程服务器的CA,适用于出站连接。它确保连接到的服务器是可信的。 -
--sslCRLFile arg
:这个选项指定SSL证书吊销列表(CRL)文件。它用于确保不会接受已吊销的证书。 -
--sslDisabledProtocols arg
:这个选项指定要禁用的TLS协议的逗号分列表(例如TLS1_0,TLS1_1,TLS1_2
)。它有助于强制使用更安全的协议。 -
--sslWeakCertificateValidation
:这个选项允许服务器在没有有效证书的情况下连接,但不建议用于生产环境,因为它会降低安全性。 -
--sslAllowConnectionsWithoutCertificates
:这个选项允许没有证书的连接,但不建议用于生产环境,因为它会降低安全性。 -
--sslAllowInvalidHostnames
:这个选项允许服务器证书提供不匹配的主机名,但不建议用于生产环境,因为它会降低安全性。 -
--sslAllowInvalidCertificates
:这个选项允许连接到具有无效证书的服务器,但不建议用于生产环境,因为它会降低安全性。 -
--sslFIPSMode
:这个选项在启动时激活FIPS 140-2模式,确保使用符合FIPS标准的加密。
最后是存储选项:
-
--storageEngine arg
:这个选项指定要使用的存储引擎。默认情况下,如果不存在数据文件,它使用wiredTiger
,但你可以根据需要选择其他引擎。 -
--dbpath arg
:这个选项指定数据文件的目录。默认情况下,它使用/data/db
,但你可以根据需要进行调整。 -
--directoryperdb
:这个选项使每个数据库存储在单独的目录中。它有助于组织和管理大型或多个数据库。 -
--noprealloc
:这个选项禁用数据文件的预分配。虽然这可能会减少磁盘使用,但可能会导致更频繁的磁盘I/O,从而影响性能。 -
--nssize arg (=16)
:这个选项设置新数据库的.ns
文件大小(以MB为单位)。它影响命名空间的组织。 -
--quota
:这个选项限制每个数据库可以使用的文件数量(默认为8)。它有助于防止单个数据库消耗过多的磁盘空间。 -
--quotaFiles arg
:这个选项设置每个数据库允许的文件数量,意味着--quota
。它确保每个数据库在磁盘使用上有明确的限制。 -
--smallfiles
:这个选项使用较小的默认文件大小。它在磁盘空间有限或处理较小数据库时非常有用。 -
--syncdelay arg (=60)
:这个选项设置磁盘同步的秒数。较低的值可以提高数据的持久性,但可能会降低性能。 -
--upgrade
:这个选项在需要时升级数据库。它确保数据格式是最新的,与程序的当前版本兼容。 -
--repair
:这个选项对所有数据库运行修复操作。它在检测到数据损坏或不一致时非常有用。 -
--repairpath arg
:这个选项指定修复文件的根目录。它用于在运行修复操作时存储临时数据。 -
--journal
:这个选项启用日志。日志有助于确保在系统故障后恢复数据的一致性。 -
--nojournal
:这个选项禁用日志。虽然这可能会提高性能,但会增加数据损坏的风险。 -
--journalOptions arg
:这个选项设置日志的诊断选项。具体选项取决于程序的内部配置。 -
--journalCommitInterval arg
:这个选项设置将写操作分组并提交到日志的频率(以毫秒为单位)。较低的值可以提高数据的持久性,但可能会降低性能。
最后是WiredTiger选项:
-
--wiredTigerCacheSizeGB arg
:这个选项设置WiredTiger缓存的最大大小(以GB为单位)。它影响存储在内存中的数据量,从而影响性能。 -
--wiredTigerJournalCompressor arg (=snappy)
:这个选项设置用于日志记录的压缩器。默认情况下,它使用snappy
,但你可以根据需要选择其他压缩器。 -
--wiredTigerDirectoryForIndexes
:这个选项将索引和数据放在不同的目录中。它有助于管理存储布局,特别是在需要将索引和数据分开的存储系统上。 -
--wiredTigerCollectionBlockCompressor arg (=snappy)
:这个选项设置用于集合数据的块压缩器。默认情况下,它使用snappy
,但你可以根据需要选择其他压缩器。 -
--wiredTigerIndexPrefixCompression arg (=1)
:这个选项在行存储的叶页上使用前缀压缩。它有助于减少索引的存储空间。