一、概述
hana在项目场景上使用的越来越多,SAP HANA是一种面向列的内存数据库,可在单个系统中运行高级分析和高速事务。为什么这个这么重要?因为它让企业能够以近乎零的延迟处理海量数据,即时查询数据,真正实现数据驱动。通过将数据存储在主内存中基于列的表中,并将在线分析处理 (OLAP) 和在线事务处理 (OLTP) 结合在一起,SAP HANA 是独一无二的,并且比当今市场上的其他数据库管理系统 (DBMS) 快得多。
二、Window上安装DM和下载ova文件
1、 通过DM安装包下载文件
说明:
- 平台选择:Linux/x86-64。
- 镜像选择:Virtual Machine。
- 选择文件保存地址:选择下载文件保存本地地址。
- 选择下载的文件。
下载文件说明:
a. Getting Started with SAP HANA, express edition (Virtual Machine Method) 是官方提供的快速使用文档。
b. Server only virtual machine 是官方配置的最精简的虚拟机,除了HANA数据库之外没有其他SAP应用,下载后是 hxe.ova,它的配置是 8G内存、100G硬盘、2个处理器。
c. Server + applications virtual machine 是官方提供的一个虚拟机,除了HANA数据库之外还有 XS Advanced, Web IDE, and SAP HANA Cockpit 等应用,下载之后是 hxexsa.ova,它的配置是 16G内存、100G硬盘、2个处理器。
d. 如果电脑内存资源不足,建议选择 Server only virtual machine 以及 Getting Started with SAP HANA, express edition (Virtual Machine Method) 这两项即可。
三、导入虚拟机
1、把下载的hxe.ova文件导入虚拟机
2、设置虚拟机名称和保存路径,点击导入即可
四、启动和初始化虚拟化
1、启动虚拟机
2、是否修改默认键盘
使用默认的 English(US),输入n不修改。
3、是否修改时区
改成 Asia/Shanghai,输入y,开始修改。
修改完成后,即可进入虚拟机的登陆界面。
五、登陆虚拟机
1、 登录虚拟机
默认的账户和密码 hxeadm / HXEHana1。
2、 输入(current)UNIX password
密码还是 HXEHana1。
3、设置新的密码
设置自己的新密码。
密码要求:至少8个字符、至少一个大写字母、至少一个小写字母、至少一个数字。
4 、设置新的 HANA database master 密码
密码可以和上面设置的hxeadm密码一样,也可以不一样。
5、是否继续配置
选择y,等待配置完成完成即可。
六、初步使用hana
1、通过终端登陆hana
方法一:通过指定实例号。
# 指定实例号
hdbsql -i 90 -d SystemDB -u SYSTEM -p <password>
方法二:通过指定主机和端口。
hdbsql -n localhost:39013 -d SystemDB -u SYSTEM -p <password>
参数解释
- 实例号 90 是固定值,安装文件中就是HDB90 (路径:/usr/sap/HXE/HDB90)
- -d SystemDB 是指定数据库,不加此项也可以登录,暂时没有找到官方说明。带有此项参数登录,命令行显示 hdbsql SYSTEMDB=> ,使用 \s 命令查询状态中会有一项 dbname: SystemDB;如果不带此项参数登录,命令行就显示 hdbsql > ,使用 \s 命令查询状态中不会有 dbname 这一项。
2、查看帮助命令
执行 \h 查看帮助。
hdbsql SYSTEMDB=> \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
\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
\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
\qto <seconds>
\querytimeout <seconds> set the query timeout for executed commands to <seconds>
\s[tatus] print out host, database, user etc.
\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
hdbsql SYSTEMDB=>
3、官方命令示例
系统是数据库超级用户,一般不用于业务的生产活动。为了提高安全性,您可以创建其他数据库用户,只需他们所需的任务特权(例如用户管理),然后停用 SYSTEM 用户。
(1)在终端中登录hxeadm用户。
sudo su -l hxeadm
(2)创建一个拥有用户管理权限的新用户。
# 创建用户
hdbsql -i 90 -d SystemDB -u SYSTEM -p "" "CREATE USER PASSWORD NO FORCE_FIRST_PASSWORD_CHANGE;"
(3)使用新用户去停用SYSTEM用户
hdbsql -i 90 -d SystemDB -u <admin-username> -p "" "ALTER USER SYSTEM DEACTIVATE USER NOW;"
(4)解除SYSTEM用户的停用
hdbsql -i 90 -d SystemDB -u <admin-username> -p "" "ALTER USER SYSTEM ACTIVATE USER NOW;"