启动选项
xSQL 是一款高度可配置的实用工具,可在本地和/或远程数据库上运行 SQL 脚本,使用常规内存、共享内存或持久存储,具备多种 SmartEDB 运行时选项,包括选择 MVCC 或 MURSIW 事务管理器,以及调试或发布库。xSQL 还可配置为定义 SmartEDB 高可用性和 SmartEDB 集群数据库的网络拓扑结构和访问权限。
xSQL 可通过命令行选项或 JSON 格式的配置文件进行配置。命令行选项的集合相对有限。例如,无法通过命令行定义 SmartEDB 高可用性或 SmartEDB 集群参数。配置文件选项则更为全面,几乎涵盖了通过 C API 函数 mco_db_open_dev()、mco_cluster_db_open()、mco_HA_attach_master() 和 mco_HA_attach_replica() 可获取的所有 SmartEDB 运行时配置参数。
请注意,命令行选项优先于配置文件中的参数。因此,配置文件中出现的选项将被命令行中为该选项指定的任何值所覆盖。
命令行参数
xSQL 通过具有以下语法的命令启动(通常在目录 target/bin 中):
xsql [LOCAL_DB_NAME | {@HOSTNAME[:PORT]}] {OPTIONS}
当指定了 LOCAL_DB_NAME 时,xSQL 会连接到指定的共享内存数据库。例如,在 Unix-Linux 系统上:
./xsql mydb
(请注意,如果名为 LOCAL_DB_NAME 的数据库不存在,xSQL 默认情况下不会创建新的数据库。) 若要连接一个或多个远程数据库,必须指定 @HOSTNAME;若未指定 PORT,则默认端口为 5001。例如:
./xsql @192.168.1.100:4300 @192.168.1.101
在这里,xSQL 通过分布式 SQL 连接到两个远程数据库;第一个数据库在 4300 端口,第二个在 5001 端口。
在上述两种场景中,xSQL 都充当客户端,即它尝试连接到现有的数据库。如果既未指定本地数据库也未指定远程数据库,xSQL 则充当服务器并创建一个新的内存数据库。
有关可用的启动选项的完整列表,请参阅“命令行选项”和“配置文件选项”。
命令行示例
以下是一些可能的命令行参数示例。Connect to the shared memory database mydb
with the MVCC
transaction manager:
./xsql mydb -mvcc
使用分布式 SQL 引擎连接到三个网络节点上的服务器作为客户端:
./xsql @192.168.1.100:5000 @129.168.1.101:5000 @192.168.1.102:5000
创建一个 100 兆字节的内存数据库,并在 5000 端口上充当服务器:
./xsql -size 100m -p 5000
创建一个持久的共享数据库:
./xsql -shared -size 100m -cache 200m -path mydb.dbs -log mydb.log -dbname mydb
正如在 xSQL 启动选项中所解释的那样,有多种配置参数可决定 xSQL 的行为。
命令行指定选项
以下表格定义了可在命令行中指定的选项:
-option [<value>] | 说明 |
---|---|
-c <配置文件> | 使用指定的配置文件启动选项 |
-f <SQL 脚本> | 连接到或创建数据库后执行指定的 SQL 脚本 |
-x <SQL 语句> | 连接到或创建数据库后执行双引号中指定的 SQL 语句。多个语句应以分号分隔。例如:./xsql -x "create table t(dt date);insert into t value ('2000-01-01 10:15:00');select * from t" |
-shared | 强制使用共享内存运行时环境 |
-conv | 强制使用传统内存运行时环境 |
-mvcc | 使用 MVCC 事务管理器 |
-mursiw | 使用 MURSIW 事务管理器 |
-memory | 使用仅内存运行时环境 |
-disk | 使用磁盘(持久介质)运行时环境 |
-logtype <type> | 数据库日志记录方法(无/重做/撤销) |
-debug | 使用调试运行时版本 |
-release | 使用发布运行时版本 |
-i | 使用交互模式 |
-b | 使用批处理模式(执行 SQL 脚本后退出) |
-p <port> | 在指定端口以服务器模式启动 |
-time | 测量并报告执行时间 |
-user | 当需要密码保护时的登录用户名 |
-password | 当需要密码保护时的登录密码 |
-recovery | 恢复对“孤立”数据库的远程访问 |
-daemon | 强制使用守护进程模式 |
请注意,命令行选项优先于配置文件中的参数。因此,配置文件中出现的选项将被命令行中为该选项指定的任何值所覆盖。
创建新数据库的选项
-option [<value>] | 说明 |
---|---|
-dbname <名称> | 数据库名称 |
-size <数据库大小> | 数据库内存部分的大小 |
-page <大小> | 内存页的大小(以字节为单位) |
-cache <缓存大小> | 磁盘缓存的大小 |
-path <数据库文件> | 持久化数据库文件名 |
-log <日志文件> | 日志文件名 |
-recovery | 启动时运行嗅探器以清理共享内存数据库 |