它是H2的默认存储引擎,支持SQL、JDBC、事务、MVCC等。但也可以直接在应用程序中使用,而不使用JDBC或SQL。 文件头包含以下信息: H:2,block:2,blockSize:1000,chunk:7,created:1441235ef73,format:1,version:7,fletcher:3044e6cc chunk header chunk:1,block:2,len:1,map:6,max:1c0,next:3,pages:2,root:4000004f8c,time:1fc,version:1 chunk 的存储内核了,这个还是比较简单,容易掌握和扩展的。 说明一点:有些朋友有疑问,为什么 DawnSql 选择 h2 的存储内核,而不是去重新做一个?这里主要是为了高用性!h2 作为成熟的数据库存储内核,已经在实际的项目中应用了多年,它是经得起考验的。
开篇说明 现在做数据库一般都才有 C/C++ 获取其它编译型的语言,为什么会选择 h2 这种基于 java 的语言?会不会影响效率? 现在大多数,涉及到存储内核的文章或者讲义,要么是一堆原理,要么就是玩具版本例子,根本无法应用到实际的工程上面去,就像马保国的闪电五连鞭一样。 我们选择 h2 的一个重要原因就是,学习完后,可以直接应用到工程上。行不行直接在擂台上比一下就知道了。 图片 4、MVMap 查询的过程 图片 说明一点:有些朋友有疑问,为什么 DawnSQL 选择 h2 的存储内核,而不是去重新做一个?这里主要是为了高用性! h2 作为成熟的数据库存储内核,已经在实际的项目中应用了多年,它是经得起考验的。如果新做存储内核,可能会给使用者带来高可用性上面的顾虑,所以我们再三权衡后选择更稳定可用性更高的方案。
title: CentOS6内核太老更新内核 date: 2020-04-01 23:31:42 tags: [CentOS] categories: [CentOS] ---- 前情提示 centOS6 安装docket或者其他软件比如gitea时候,提示kernel too old 报错截图: 查看当前内核版本 [root@iZ2zedmufcgu9ag37ix8e6Z gitea]# uname :本文是centos6.9 rpm -Uvh http://www.elrepo.org/elrepo-release-6-9.el6.elrepo.noarch.rpm 升级内核 在yum的elrepo 源中有ml和lt两种内核,其中ml(mainline)为最新版本的内核,lt为长期支持的内核。 =elrepo-kernel -y install kernel-lt 此处选择lt内核 修改文件 内核升级完后需要修改内核的启动顺序,原来是1,需要改为0,vi或者vim vim /etc/grub.conf
为了让你的 Confluence 在安装成功后就可以使用而不需要使用任何外部的数据库,Confluence 使用一个嵌入的 H2 数据库。 当你选择对 Confluence 进行评估和测试的时候,H2 数据库是默认被启用的。 嵌入的 H2 数据库存储在你 Confluence 的 home 目录中 <confluence-home>/database。 嵌入 H2 数据库仅仅支持你对 Confluence 进行评估和测试,如果你决定将 Confluence 用作生产环境的话,你必须整合到 supported 外部数据库中。
你的 Confluence 安装中包含有嵌入的 H2 数据库,能够让你试用 Confluence 而不需要安装任何的外部数据库。H2 数据库仅仅用于你对 Confluence 进行评估。
---- 64位 & Windows 内核6 前言 继续学习《逆向工程核心原理》,本篇笔记是第五部分:64位 & Windows 内核6 一、x64 1、x64处理器中的变化 含有VA的指令大小增加了 ULONGLONG类型 (2)IMAGE_THUNK_DATA 大小从4个字节变为8个字节 (3)IMAGE_TLS_DIRECTORY 部分成员是VA值,扩展为8个字节 3、WinDbg 基本指令 二、内核 6 kernel 6 是vista之后的系统 Win10 是kernel 10 1、会话 会话:登录后的用户环境,kernel 6引入 系统会话是0,与用户会话隔离(即第一个登录的用户是会话1, osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&osvi); if( osvi.dwMajorVersion >= 6
/6/$basearch gpgcheck=0 gpgkey=http://mirrors.aliyun.com/epel-archive/RPM-GPG-KEY-EPEL-6 [root@centos6 @centos6 build]# [root@centos6 build]# .. libstdc++-devel.x86_64 0:4.4.7-23.el6 mpfr.x86_64 0:2.4.1-6.el6 ppl.x86_64 0:0.10.2-11.el6 完毕! with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-1.0.1 线程模型:posix gcc 版本 5.4.0 (GCC) 4、编译kernel内核 x86_64.img 5、至此,内核编译成功,重启验证一下 图片 登录服务器查看内核信息 [root@centos6 /]# uname -a Linux centos6 4.13.2 #1 SMP
使用 H2 console 连接到你嵌入的 H2 数据库 可以选的,你可以使用 H2 console 来连接到你的 H2 数据库。 最简单的访问 Console 的方法是双击 H2 数据库的 jar 文件。 整合到支持的外部数据库 如果你使用的是 H2 数据库,但是你的 Confluence 是以生产环境运行的,你需要计划尽快将你现在使用 H2 数据库真整合到支持的外部数据库上。
SL-6或CentOS-6安装ELRepo: rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm 升级Kernel 这里需要注意的是,在 ELRepo 中有两个内核选项,一个是 kernel-lt(长期支持版本),一个是 kernel-ml(主线最新版本),采用长期支持版本(kernel-lt),更稳定一些 kernel-ml yum --enablerepo=elrepo-kernel install kernel-ml -y 安装完成,需要修改grub vim /etc/grub.conf 根据安装好以后的内核位置 ,修改 default 的值,一般是修改为0,因为 default 从 0 开始,一般新安装的内核在第一个位置,所以设置default=0 ? 所有操作都执行完毕以后,重启主机,重启后执行 uname -r,查看内核版本号 [root@db-slave ~]# uname -r 4.14.3-1.el6.elrepo.x86
数量为单位的本地文件中,(一个Core只有一种类型的Key的数据),每1个Task所在的进程中,分别写入共同进程中的3份本地文件,这里有4个Mapper Tasks,所以总共输出是 2个Cores x 3个分类文件 = 6个本地小文件
在一些快速项目项目中,会使用H2作为数据库 引入jar包 使用mybatis作为ORM pom.xml <dependency> <groupId>org.mybatis.spring.boot version>2.1.4</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2 com.tenmao.myh2; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author tenmao * @since 2020/6/ SELECT * FROM person WHERE id=#{id}") Person selectById(int id); } 配置文件 resources/application.yml H2 的SQL语法跟MySQL有一点出入,需要检查一下,另外就是不能漏掉建表语句后面的分号";" 参考 Spring Boot With H2 Database
背景:腾讯云CDN回源不支持Upgrade:h2,但是宝塔新版本极速安装默认开启了Upgrade:h2,现在教大家如何关闭Upgrade:h2(实际上这个功能目前还没有听说那个业务必须要使用h2) 1、 先测试是否开启h2 0[1].png 2、 打开apache配置文件方法,通过宝塔ssl终端或者登陆服务器操作(其实功能差不多),这里以宝塔举例,通过宝塔终端操作,点击宝塔终端输入"vim /www/ 行配置文件,默认是在154~157行 (vim 展示行数可以输入":set nu") <IfModule http2_module> ProtocolsHonorOrder On Protocols h2 image.png 4、 保存退:wq 出然后重启apache,"service httpd restart" image.png 5、测试是否关闭成功 从截图中可以看到,返回里已经没有Upgrade:h2
介绍 H2是Java编写的一款内嵌式数据库,支持内存和文件两种方式存储数据。 SpringBoot整合 pom.xml org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime application.yml spring: datasource: # url: jdbc:h2:mem:testdb url: jdbc:h2:file:. /src/main/resources/data.sql driver-class-name: org.h2.Driver username: sa password: password h2: # web
-- 内存模式 --> 6 <property name="URL" value="jdbc:<em>h2</em>:mem:test" /> 7 <! /create-table.sql" /> 5 <jdbc:script location="classpath:database/<em>h2</em>/import-data.sql" /> 6 "dataSource" ref="dataSource" /> 4 <property name="packagesToScan"> 5 <list> 6 property> 5 <property name="mapperLocations" value="classpath:mybatis/**/*.xml"></property> 6 的使用示例 四、控制台界面 H2还提供了一个可视化界面 Windows开始菜单->H2->H2 console,点击connect连接就行了 有不熟悉的函数啥的,直接在SQL输入区,输入 help,然后
于是查看了embedded datasource : h2 h2: 依赖: <dependency> <groupId>com.h2database</groupId> <artifactId >h2</artifactId> </dependency> h2: 驱动名称: org.h2.Driver h2: jdbc url: 内存模式: jdbc:h2:mem:test embedded: jdbc:h2:file:. /db/springboot 最关键的是,file要指定绝对路径,即不能jdbc:h2:file:db/springboot这样说报错,说没指定具体位置。 会生成一个文件 project/db/springboot.mv.db h2:创建表: DROP TABLE IF EXISTS `country`; CREATE TABLE `country` (
H2 H2 是标准 SQL 的关系型数据库,由 java 编写,整个 H2 是一个 jar 包(大约 2.5MB),其开源且使用 JDBC API 进行调用。 模式、存储与兼容 H2 支持嵌入、服务器、混合的运行模式,以及在内存或持久性的数据存储方式,还有兼容各类数据库 2.1 模式 嵌入模式:应用程序和数据库在同一个 JVM 中,这是最快和最简单的连接模式。 ,但仍有一些差异(MySQL 文本默认不区分大小写,而 H2 是区分大小写的),H2 可模拟特定数据库的行为,但这种模仿是有限的,普通情况下可正常使用(下面举例 MySQL) 兼容 MySQL : 在数据库 >h2</artifactId> <version>1.4.197</version> </dependency> <! /持久化到本项目根目录 # mem:test 存放到内存中 url: jdbc:h2:.
h2dhArchive Downloads 1 h2数据库的下载地址 2. H2软件包目录结构 h2 |—bin | |—h2-1.1.116.jar //H2数据库的jar包(驱动也在里面) | |—h2.bat //Windows控制台启动脚本 | |—h2.sh //Linux控制台启动脚本 | |—h2w.bat //Windows控制台启动脚本(不带黑屏窗口) |—docs //H2数据库的帮助文档(内有H2 |—src //H2数据库的源代码 |—build.bat //windows构建脚本 |—build.sh //linux构建脚本 3. windows下启动软件 我们可以进入到h2的bin level: com.baomidou.mybatisplus.samples.quickstart: debug 5 github地址 GitHub – Yong-Wang-Brave/h2
IS_TYPE_REFCOUNTED 1 simple types 2 string true 3 interned string 4 array true 5 immutable array 6 (6)垃圾只会出现在array、object类型中。 二、回收原理 1.垃圾是如何回收的 垃圾收集器收集的可能垃圾到达一定数量后,启动垃圾鉴定、回收程序。 GC 3 zend_bool gc_active; //是否处于垃圾检查中 4 zend_bool gc_full; //缓存区是否已满 5 6 gc_reset(void) 2 { 3 GC_G(gc_runs) = 0; 4 GC_G(collected) = 0; 5 GC_G(gc_full) = 0; 6 orig_gc_full; 169 #endif 170 GC_G(gc_active) = 0; 171 } 172 173 return count; 174 } 参考资料: PHP7内核剖析
h2数据库进入shell java -cp .. /lib/h2-1.4.200.jar org.h2.tools.Shell Welcome to H2 Shell 1.4.200 (2019-10-14) Exit with Ctrl+C [Enter ] jdbc:h2:~/test URL jdbc:h2:/usr/local/db/xxx-xxx [Enter] org.h2.Driver Driver [Enter]
——《宿命》 在apache-shenyu中也默认用h2数据库作为默认数据库,方便开发、演示、学习、轻量化部署等 但是我们知道h2数据库是基于内存的嵌入式数据库,如何让其在运行动态执行sql呢? console进行: h2-console | 阿超 今天我们换一种方式,直接使用客户端工具连接,默认的url肯定是连不上的: spring: datasource: url: jdbc:h2 DB_CLOSE_DELAY=-1;MODE=MySQL; username: sa password: sa driver-class-name: org.h2.Driver 因为这里是h2 :mem:路径,即便换成file也是不允许两个连接的 我们换成tcp连接,再指定一下目录 spring: datasource: url: jdbc:h2:tcp://localhost/$ server started and connection is open."); System.out.println("URL: jdbc:h2:" + server.getURL