xSQL is a highly configurable utility that can run SQL scripts on local and/or remote databases, using conventional or shared memory or persistent storage, with various eXtremeDB runtime options including the choice of
MVCC
orMURSIW
transaction managers, anddebug
orrelease
libraries. xSQL can also be configured to define the network topology for and access to eXtremeDB High Availability and eXtremeDB Cluster databases.xSQL is configured via command line options or through a configuration file in
JSON
format. The set of command line options is relatively limited. For example it is not possible to define eXtremeDB High Availability or eXtremeDB Cluster parameters from the command line. The configuration file options are more comprehensive and reflect almost all of the eXtremeDB runtime configuration parameters available via the C API functionsmco_db_open_dev()
,mco_cluster_db_open()
,mco_HA_attach_master()
andmco_HA_attach_replica()
.
Note that command line options have precedence over the configuration file parameters. So an option present in the configuration file will be overridden by any value specified for that option on the command line.
Command line arguments
xSQL is started with a command having the following syntax (typically from directory
target/bin
):xsql [LOCAL_DB_NAME | {@HOSTNAME[:PORT]}] {OPTIONS}When
LOCAL_DB_NAME
is specified, xSQL connects to the specified shared memory database. For example, on Unix-Linux systems:./xsql mydb(Note that if the database with
LOCAL_DB_NAME
does not exist, xSQL does not create a new database by default.)In order to connect to one or several remote databases, the
@HOSTNAME
must be specified; and if thePORT
is not specified, the default port is5001
. For example:./xsql @192.168.1.100:4300 @192.168.1.101Here xSQL connects (via distributed SQL) to two remote databases; the first on port
4300
, the second on5001
.In both of the above scenarios xSQL acts as a client, i.e. it attempts to connect to existing databases. If neither a local database nor a remote database are specified, xSQL acts as a server and creates a new in-memory database.
Please refer to Command Line Options and Configuration File Options for a complete list of the startup options available.
Command line examples
Following are some examples of possible command line arguments.
Connect to the shared memory database
mydb
with theMVCC
transaction manager:./xsql mydb -mvccConnect as client to servers on three network nodes using the distributed SQL engine:
./xsql @192.168.1.100:5000 @129.168.1.101:5000 @192.168.1.102:5000Create an in-memory database of 100 Megabytes and act as server on port 5000:
./xsql -size 100m -p 5000Create a persistent shared database:
./xsql -shared -size 100m -cache 200m -path mydb.dbs -log mydb.log -dbname mydb