这篇博客记录了如何创建租户数据库。
之前提到过系统数据库(systemdb)用于管理,租户数据库(tenantdb)用于存储、处理数据。因此,首先登录系统数据库,创建租户数据库成功后,再通过客户端连接。
一、创建租户数据库
1.1 使用HDBSQL
HDBSQL 是一款命令行工具,类似Oracle数据库中的SQLPLUS ,安装完HANA DB默认就包含该工具。
本次的测试环境,数据库IP地址是192.168.23.103,数据库名称是HDB,系统管理员是hdbadm。
1.1.1 登录操作系统
SSH 登录数据库服务器,然后切换到系统管理员hdbadm
sle15:~ # su - hdbadm
hdbadm@sle15:/usr/sap/HDB/HDB02>
1.1.2 登录系统数据库
hdbadm@sle15:/usr/sap/HDB/HDB02> hdbsql -n 192.168.23.103 -i 02 -d SYSTEMDB -u system
Password:
Welcome to the SAP HANA Database interactive terminal.
Type: \h for help with commands
\q to quit
hdbsql SYSTEMDB=>
1.1.3 创建租户数据库
hdbsql SYSTEMDB=> create database HD3 system user password 1q2w3e4R_
0 rows affected (overall time 154.024053 sec; server time 154.023090 sec)
1.1.4 登录租户数据库
hdbadm@sle15:/usr/sap/HDB/HDB02> hdbsql -n 192.168.23.103 -i 02 -d HD3 -u system
Password:
Welcome to the SAP HANA Database interactive terminal.
Type: \h for help with commands
\q to quit
hdbsql HD3=> \s
host : 192.168.23.103:30213
sid : HDB
dbname : HD3
user : SYSTEM
kernel version: 2.00.059.06.1666783180
SQLDBC version: libSQLDBCHDB 2.14.022.1664824701
autocommit : ON
locale : en_US.UTF-8
input encoding: UTF8
sql port : sle15:30244
1.1.5 HDBSQL 命令参数
hdbsql HD3=> \h
\? or \h[elp] show help on internal slash commands
\q[uit] quit HDBSQL
\c[onnect] -i <instance number>
-n <host>[:<port>]
-d <database name>
-u <user_name>
-p <password>
-U <user_store_key>
connecting to the database
\di[sconnect] disconnecting from the database
\mu[ltiline] [ON|OFF] toggle the multiline mode on or off
\a[utocommit] [ON|OFF] switch autocommit mode on or off
\m[ode] [INTERNAL|SAPR3] change SQL mode
\cl[ientinfo] [property=value[;...]] send client info
\ps [ON|OFF] toggle the usage of prepared statements on or off
\es [ON|OFF] toggle the escape output format on or off
\o[utput] <filename> send all query results to file, double quotes around filename are allowed
\i[nput] <filename> read input from file, double quotes around filename are allowed
use a separator (default: ';') to separate individual commands in the file
\ie[ncoding] <encoding> force input encoding, one of "ASCII", "UCS2", "UTF8"
\hi[story] <size> number of commands to keep in history buffer (default: 50)
\p[rint] print out the current query buffer (only multiline mode)
\read <filename> read input from file, double quotes around filename are allowed
use a separator (default: ';') to separate individual commands in the file
\r[eset] reset (clear) the query buffer (only multiline mode)
\e[dit] <filename> edit the query buffer (or file) with external editor (only multiline mode)
\g[o] send query buffer to server and print out the results (only multiline mode)
; send query buffer to server and print out the results (only multiline mode)
\al[ign] [ON|OFF] toggle the aligned output on or off
\pa[ger] [ON|OFF] toggle page by page scroll output on or off
\f[ieldsep] <separator> use <separator> as the field separator
\querytimeout <seconds> set the query timeout for executed commands to <seconds>
\qto alias for \querytimeout
\s[tatus] print out host, database, user etc.
\cmdstats [ON|OFF] toggle printing of statistics (number of rows
affected and time taken) for SQL commands on or off
\serverstats print out server CPU time, processing time and memory usage for the last executed command
\sstats alias for \serverstats
\dc [PATTERN] list columns
\de [PATTERN] list indices
\dp [PATTERN] list procedures
\ds [NAME] list schemas
\dt [PATTERN] list tables
\du [NAME] list users
\dv [PATTERN] list views
[PATTERN] = [OWNER.][OBJECT NAME] eg. <username>.%A%
\vd <variable name> <value> Define a SQL Script Variable <variable name> to be replaced with <value>
\vu <variable name> <value> Undefine a previously defined SQL Script Variable <variable name>
\vl list all SQL Script variables that have been defined
\vc clear all SQL Script variables that have been defined
\ve ON|OFF set SQL Script variable escaping with \ on or off
\vs ON|OFF turn SQL Script variable replacement on or off
\vp ON|OFF turn SQL Script variable prompting on or off when undefined variables are encountered