• H2数据库介绍


    常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。
    H2的优势:
    1、h2采用纯Java编写,因此不受平台的限制。
    2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
    3、性能和功能的优势
     
    一. H2数据库官网:http://www.h2database.com/
    H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一
    个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主
    流的数据库,具有比较完备的数据库特性,如支client/server连接,能够支持标准的SQL语
    句,支持存储过程等。因此采用H2作为开发期、测试期和演示的数据库非常方便,不太适合
    作为大规模生产数据库。
    二.
    a. 在内存中运行(单进程访问)
    数据库只在内存中运行,关闭连接后数据库将被清空,适合测试环境
    连接字符串:
    jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1
    b. 嵌入式(单进程访问)
    数据库持久化存储为单个文件
    连接字符串:
    jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE
    ~/.h2/DBName表示数据库文件的存储位置,如果第一次连接则会自动创建数据库
    c. 服务模式(多进程访问)
     web server:此种运行方式支持使用浏览器访问H2 Console
     TCP server:支持客户端/服务器端的连接方式
     PG server:支持PostgreSQL客户端
    H2支持三种服务模式:
    启动tcp服务连接字符串示例:
    jdbc:h2:tcp://localhost/~/test 使用用户主目录
    jdbc:h2:tcp://localhost//data/test 使用绝对路径
    jdbc:h2:ssl://localhost:8085/~/sample
     DB_CLOSE_DELAY:要求最后一个正在连接的连接断开后,不要关闭数据库
    MODE=MySQL:兼容模式,H2兼容多种数据库,该值可以为:
    DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL
     AUTO_RECONNECT=TRUE:连接丢失后自动重新连接
    AUTO_SERVER=TRUE:启动自动混合模式,允许开启多个连接,该参数不支持在
    内存中运行模式
    TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:输出跟踪日志到控制台或文件,
    取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG
     SET TRACE_MAX_FILE_SIZE mb:设置跟踪日志文件的大小,默认为16M
    d. 连接字符串参数
    e. 启动服务模式,打开H2 Console web页面
    启动服务,在命令行中执行
    java -cp h2*.jar org.h2.tools.Server
    执行如下命令,获取选项列表及默认值
    三. 运行方式
    H2数据库介绍
    2017年9月20日 22:39
    分区 DB 的第 1 页 执行如下命令,获取选项列表及默认值
    java -cp h2*.jar org.h2.tools.Server -?
     -web:启动支持H2 Console的服务
     -webPort :服务启动端口,默认为8082
     -browser:启动H2 Console web管理页面
     -tcp:使用TCP server模式启动
     -pg:使用PG server模式启动
    常见的选项如下:
    四. 集群(尚未经过实际测试)
    H2支持两台服务器运行两个数据库成为集群,两个数据库互为备份,如果一个服务器失效,
    另一个服务器仍然可以工作。另外只有服务模式支持集群配置。
    a. 创建目录
    创建两个服务器工作的目录
    # mkdir server1
    # mkdir server2
    b. 启动tcp服务
    执行如下命令分别在9101、9102端口启动两个使用tcp服务模式的数据库
    java org.h2.tools.Server-tcp -tcpPort 9101-baseDir server1
    java org.h2.tools.Server-tcp -tcpPort 9102 -baseDir server2
    c. 使用CreateCluster工具创建集群
    java org.h2.tools.CreateCluster
    -urlSource jdbc:h2:tcp://localhost:9101/~/test
    -urlTarget jdbc:h2:tcp://localhost:9102/~/test
    -user sa
    -serverList localhost:9101,localhost:9102
    如果两个数据库不存在,该命令将会自动创建数据库。如果一个数据库失效,可以先
    删除坏的数据库文件,重新启动数据库,然后重新运行CreateCluster工具
    d. 连接数据库
    现在可以使用如下连接字符串连接集群数据库
    jdbc:h2:tcp://localhost:9101,localhost:9102/~/test
    e. 监控集群运行状态
    可以使用如下命令查看配置的集群服务器是否都在运行
    SELECT VALUE FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME='CLUSTER'
    f. 限制
    H2的集群并不支持针对事务的负载均衡,所以很多操作会使两个数据库产生不一致的
    结果,执行如下操作时请小心:
    RANDOM_UUID(), SECURE_RAND(), SESSION_ID(), MEMORY_FREE(), MEMORY_USED(),
    CSVREAD(), CSVWRITE(), RAND()
    自动增长列和标识列不支持集群,当插入数据时,序列值需要手动创建
    不支持SET AUTOCOMMIT FALSE语句,如果需要设置成为不自动提交,可以执行方法
    Connection.setAutoCommit(false)
    H2可以通过CreateCluster工具创建集群,示例步骤如下(在在一台服务器上模拟两个数据
    库组成集群):
    • Dataflyer 一个查看和导出数据库的工具
    • DB Solo SQL 查询工具
    五. 能够可视化访问和查看H2数据库的工具
    分区 DB 的第 2 页 • DB Solo SQL 查询工具
    • DbVisualizer 数据库工具
    • Execute Query Java写的数据库工具
    • Flyway Java写的敏捷迁移数据库的工具
    • fleXive JavaEE5 的开源框架,可以用来做复杂的开发已经Web应用的演化。
    JDBC Console 一个小型的web应用,提供了一种执行SQL的能力,基于H2的控制台界
    面,同时也支持JNDI数据源。
    • HenPlus 一个用Java写的SQL工具
    • JDBC lint 能够在我们使用JDBC API的时候,帮助我们写出正确高效的代码
    OpenOffice 是一个OpenOffice.org组织的数据库应用。其提供了进入关系数据源的
    能力。
    RazorSQL 一个SQL的查询工具,能够浏览数据库,进行SQL语句的编辑,数据的管
    理。
    • SQL Developer 通用的数据库管理前端。
    • SQL Workbench/J 免费的独立的DBMS SQL的工具
    SQuirreL SQL Client 图形化的工具,能够查看数据库的结构,浏览数据,执行SQL
    命令
    • SQuirreL DB Copy Plugin 用来把数据从一个数据库复制到另外一个数据库。
    分区 DB 的第 3 页
  • 相关阅读:
    Python open() 函数
    python中的多重循环
    网络爬虫构造出URL的列表数据
    js自定义类和对象及继承
    最全的CSS浏览器兼容问题
    大型网站性能优化(页面(HTML)优化的方法)
    element-ui el-table有设置固定列fixed,高度不对的情况
    伊始
    【Object-C】Object-C 的包装类
    【Object-C】处理对象:description 方法、isEqual方法
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/10956428.html
Copyright © 2020-2023  润新知