关键字:
KingbaseES、sys_ctl、ksql
1、数据库启动前环境检测
1.1 查看kingbase用户环境变量配置
图1-1 查看.bashrc环境变量配置
1.2 应用环境变量
- [kingbase@node1 ~]$ source .bashrc
- [kingbase@node1 ~]$ which ksql
- /opt/Kingbase/ES/V8R6_021/Server/bin/ksql
- [kingbase@node1 ~]$ which sys_ctl
- /opt/Kingbase/ES/V8R6_021/Server/bin/sys_ctl
1.3 查看数据库数据存储路径
在数据库软件包安装目录的Logs目录下查看相关的日志,可以获取到数据库数据存储路径,如下图1-2所示:
图1-2 查看数据库数据存储路径
1.4 查看数据库配置文件信息
根据实际的业务场景,调整数据库的默认配置。
图1-3 kingbase.conf 配置信息
2、启动数据库服务
2.1 查看启动工具(sys_ctl)帮助信息
- [kingbase@node1 ~]$ sys_ctl --help
- sys_ctl is a utility to initialize, start, stop, or control a Kingbase server.
- Usage:
- sys_ctl start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]
- [-o OPTIONS] [-p PATH] [-c]
- sys_ctl stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
- sys_ctl restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
- [-o OPTIONS] [-c]
- sys_ctl reload [-D DATADIR] [-s]
- sys_ctl status [-D DATADIR]
- sys_ctl promote [-D DATADIR] [-W] [-t SECS] [-s]
- sys_ctl logrotate [-D DATADIR] [-s]
- sys_ctl kill SIGNALNAME PID
- Common options:
- -D, --kingbase-data=DATADIR location of the database storage area
- -s, --silent only print errors, no informational messages
- -t, --timeout=SECS seconds to wait when using -w option
- -V, --version output version information, then exit
- -w, --wait wait until operation completes (default)
- -W, --no-wait do not wait until operation completes
- -?, --help show this help, then exit
- If the -D option is omitted, the environment variable KINGBASE_DATA is used.
- Options for start or restart:
- -c, --core-files allow kingbase to produce core files
- -l, --log=FILENAME write (or append) server log to FILENAME
- -o, --options=OPTIONS command line options to pass to kingbase
- (Kingbase server executable) or initdb
- -p PATH-TO-KINGBASE normally not necessary
- Options for stop or restart:
- -m, --mode=MODE MODE can be "smart", "fast", or "immediate"
- Shutdown modes are:
- smart quit after all clients have disconnected
- fast quit directly, with proper shutdown (default)
- immediate quit without complete shutdown; will lead to recovery on restart
- Allowed signal names for kill:
- ABRT HUP INT KILL QUIT TERM USR1 USR2
- Report bugs to <kingbase-bugs@kingbase.com.cn>.
2.2 启动数据库服务
2.2.1 启动数据库服务
- [kingbase@node1 data]$ sys_ctl start -D /data/kingbase/v8r6_021/data
- waiting for server to start....2021-03-01 14:16:55.069 CST [26141] LOG: sepapower extension initialized
- 2021-03-01 14:16:55.130 CST [26141] LOG: starting KingbaseES V008R006C004B0021 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
- 2021-03-01 14:16:55.130 CST [26141] LOG: listening on IPv4 address "0.0.0.0", port 54321
- 2021-03-01 14:16:55.130 CST [26141] LOG: listening on IPv6 address "::", port 54321
- 2021-03-01 14:16:55.290 CST [26141] LOG: listening on Unix socket "/tmp/.s.KINGBASE.54321"
- 2021-03-01 14:16:55.457 CST [26141] LOG: redirecting log output to logging collector process
- 2021-03-01 14:16:55.457 CST [26141] HINT: Future log output will appear in directory "sys_log".
- done
- server started
2.2.2 查看数据库服务进程
- [kingbase@node1 data]$ ps -ef |grep kingbase
- /opt/Kingbase/ES/V8R6_021/Server/bin/kingbase -D /data/kingbase/v8r6_021/data
- kingbase 26142 26141 0 14:16 ? 00:00:00 kingbase: logger
- kingbase 26144 26141 0 14:16 ? 00:00:00 kingbase: checkpointer
- kingbase 26145 26141 0 14:16 ? 00:00:00 kingbase: background writer
- kingbase 26146 26141 0 14:16 ? 00:00:00 kingbase: walwriter
- kingbase 26147 26141 0 14:16 ? 00:00:00 kingbase: autovacuum launcher
- kingbase 26148 26141 0 14:16 ? 00:00:00 kingbase: stats collector
- kingbase 26149 26141 0 14:16 ? 00:00:00 kingbase: ksh writer
- kingbase 26150 26141 0 14:16 ? 00:00:00 kingbase: ksh collector
- kingbase 26151 26141 0 14:16 ? 00:00:00 kingbase: kwr collector
- kingbase 26152 26141 0 14:16 ? 00:00:00 kingbase: logical replication launcher
2.2.3 查看数据库服务端口状态
- [kingbase@node1 data]$ netstat -an |grep :54321
- tcp 0 0 0.0.0.0:54321 0.0.0.0:* LISTEN
- tcp6 0 0 :::54321 :::* LISTEN
- ===从数据库服务进程状态及端口状态可知,数据库服务启动成功!===
3、连接数据库服务访问
3.1 数据库连接工具(ksql)帮助信息
- [kingbase@node1 data]$ ksql --help
- ksql is the Kingbase interactive terminal.
- Usage:
- ksql [OPTION]... [DBNAME [USERNAME]]
- General options:
- -c, --command=COMMAND run only single command (SQL or internal) and exit
- -d, --dbname=DBNAME database name to connect to (default: "kingbase")
- -f, --file=FILENAME execute commands from file, then exit
- -l, --list list available databases, then exit
- -v, --set=, --variable=NAME=VALUE
- set ksql variable NAME to VALUE
- (e.g., -v ON_ERROR_STOP=1)
- -V, --version output version information, then exit
- -X, --no-ksqlrc do not read startup file (~/.ksqlrc)
- -1 ("one"), --single-transaction
- execute as a single transaction (if non-interactive)
- -?, --help[=options] show this help, then exit
- --help=commands list backslash commands, then exit
- --help=variables list special variables, then exit
- Input and output options:
- -a, --echo-all echo all input from script
- -b, --echo-errors echo failed commands
- -e, --echo-queries echo commands sent to server
- -E, --echo-hidden display queries that internal commands generate
- -L, --log-file=FILENAME send session log to file
- -n, --no-readline disable enhanced command line editing (readline)
- -o, --output=FILENAME send query results to file (or |pipe)
- -q, --quiet run quietly (no messages, only query output)
- -s, --single-step single-step mode (confirm each query)
- -S, --single-line single-line mode (end of line terminates SQL command)
- Output format options:
- -A, --no-align unaligned table output mode
- --csv CSV (Comma-Separated Values) table output mode
- -F, --field-separator=STRING
- field separator for unaligned output (default: "|")
- -H, --html HTML table output mode
- -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \pset command)
- -R, --record-separator=STRING
- record separator for unaligned output (default: newline)
- -t, --tuples-only print rows only
- -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)
- -x, --expanded turn on expanded table output
- -z, --field-separator-zero
- set field separator for unaligned output to zero byte
- -0, --record-separator-zero
- set record separator for unaligned output to zero byte
- Connection options:
- -h, --host=HOSTNAME database server host or socket directory (default: "local socket")
- -p, --port=PORT database server port (default: "54321")
- -U, --username=USERNAME database user name (default: "kingbase")
- -w, --no-password never prompt for password
- -W, --password force password prompt (should happen automatically)
- For more information, type "\?" (for internal commands) or "\help" (for SQL
- commands) from within ksql, or consult the ksql section in the Kingbase
- documentation.
- Report bugs to <kingbase-bugs@kingbase.com.cn>.
3.2 连接数据库
- [kingbase@node1 data]$ ksql -U system test
- ksql (V8.0)
- Type "help" for help.
- test=# \l
- List of databases
- Name | Owner | Encoding | Collate | Ctype | Access privileges
- -----------+--------+----------+---------------+-------------+-------------------
- security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
- template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
- | | | | | system=CTc/system
- template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
- | | | | | system=CTc/system
- test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
- (4 rows)
3.3 创建测试数据
- test=# create database prod;
- CREATE DATABASE
- test=# \c prod
- You are now connected to database "prod" as user "system".
- prod=# create table t1 (id int ,name varchar(10));
- CREATE TABLE
- prod=# insert into t1 values (10,'tom'),(20,'jerry');
- INSERT 0 2
- prod=# \d t1
- Table "public.t1"
- Column | Type | Collation | Nullable | Default
- ---------+----------------------------+-----------+----------+---------
- id | integer | | |
- name | character varying(10 char) | | |
- prod=# select * from t1;
- id | name
- ----+-------
- 10 | tom
- 20 | jerry
- (2 rows)
4、总结
KingbaseES数据库服务启动比较简单,对于Linux系统可以通过sys_ctl工具启动数据库服务;对于Windows环境可以通过Windows服务启动,也可以通过Command界面通过sys_ctl启动