in-memory databases


metadata的本质是一个只读关系数据库


List of in-memory databases

From Wikipedia, the free encyclopedia
See also:  In-memory database

This article is a list of in-memory database system software.

Name Developer Availability License Description/Notes
ActiveSpaces TIBCO Software   Proprietary with developer download For Java/.Net./C, distributed, hybrid, event enabled, NewSQL
Aerospike Aerospike Company 2012 AGPL Flash-optimized in-memory open source NoSQL database.
ALTIBASE HDB Altibase Corporation   Proprietary "Hybrid DBMS" that combines an in-memory database with a conventional disk-resident database in a single unified engine. Supports full ACID properties, standard connectivity interfaces such as JDBC and ODBC [fully supported] as well as interoperability.
ALTIBASE XDB Altibase Corporation   Proprietary General purpose database that has high data processing speeds in main-memory alone. It comes with high-availability, replication and scalability features; three interfaces (including Direct Access Mode and Direct Access API Mode) as well as conventional client/server protocols such as TCP/IP and IPC for more complex database operations. Supports full ACID properties, standard connectivity interfaces such as JDBC and ODBC [fully supported] as well as interoperability.
Apache Geode Apache Software Foundation 2015 Open source (Apache License) Open source backend to Pivotal Software's Gemfire database, currently incubating to be part of the Apache Software Foundation. Described as an "open source distributed, in-memory database for scale-out applications".
BigMemory Terracotta, Inc.(Software AG)   Proprietary (free editions)  
dashDB IBM 2014 Proprietary IBM dashDB is an in-memory data warehouse in the cloud on IBM Bluemix as a managed service. It includes parallel vector processing, actionable compression, and data-skipping technologies, collectively called IBM BLU Acceleration by IBM. It also includes in-databases analytics originally from the Netezza analytics appliance (Pure Data for Analytics) for R, spatial analytics etc. Released in June 2014.
Datablitz(formerly Dali) Bell Labs (Alcatel-Lucent)   Proprietary Dali prototype was developed for in-house Bell Labs needs
DB2 BLU IBM 2013 Proprietary IBM DB2 for Linux, UNIX and Windows supports dynamic in-memory (in-memory columnar processing) parallel vector processing, actionable compression, and data-skipping technologies, collectively called IBM BLU Acceleration by IBM. Released in June 2013.
DB2 for i IBM 1992 Proprietary IBM DB2 for i (DB2/400) in conjunction with the IBM i operating system supports simultaneous in-memory and on-disk tables and indexes.
Ehcache Terracotta, Inc.(Software AG)   Open source (Apache License) For Java, distributed
EXASolution EXASOL 2008 Proprietary Relational (SQL over ODBC, JDBC, or ADO.NET), multi-dimensional (MDX over ODBO or XMLA); EXASOL leads the well-respected international TPC-H benchmark,[1] since 2008, in the datavolume-based categories 100GB, 300GB, 1TB, 3TB, and 10TB; EXASolution architecture: shared-nothing, column-store, in-memory database
eXtremeDB McObject 2001 Proprietary Cross-platform, including Linux, Windows, RTOS and server platforms. Interfaces include type-safe, native C/C++; native Java & .NET; SQL/ODBC/JDBC. Specialized editions for (for example) clustering, high availability, 64-bit support, and hybrid (in-memory and persistent) storage. eXtremeDB Financial Edition implements columnar data handling, vector-based statistical function library, integrated performance monitoring.
FuelDB Wonderfuel Inc. 2014 Open Source (MIT License) Realtime database based on NodeJS
GemFire Pivotal Software Inc.   Proprietary Written in Java, distributed, shared-nothing, NoSQL key-value store for OLTP
GemFire XD Pivotal Software Inc.   Proprietary Relational, distributed, NewSQL, HDFS-integration
GPUdb GIS Federal 2014 Proprietary GPUdb is a Graphical Processing Unit (GPU) accelerated distributed in-memory database with native geospatial objects and rendering support that handles streaming Big Data.
H2 (DBMS) H2   Mozilla Public License or Eclipse Public License For Java
Hazelcast Hazelcast Team   Open source (Apache License 2.0) For Java, NoSQL, distributed
InformixWarehouse Accelerator IBM   Proprietary IWA supports Dynamic In-memory (in-memory columnar processing) Parallel Vector Processing, Actionable Compression, and Data Skipping technologies, collectively called "Blink Technology" by IBM (the same technology underlying IBM BLU Acceleration). The Informix Advanced Enterprise and Advanced Workgroup Editions include IWA. Released: March 2011.
InMemory.Net InMemory.Net 2014 Proprietary Dot Net Native in-memory database with import scripting language, that can query large amounts of data via Dot Net, ODBC or COM.
Kognitio Analytical Platform Kognitio, Limited 1989 (beta) Proprietary Development of an in-memory database, specialized for analytical workloads started at White Cross Systems, Limited in 1988, based on the INMOS Transputer. The first full production release was offered in 1992. White Cross merged in 2005 with Kognitio, Limited in the United Kingdom and as of 2014 markets version 8 of the same code-base as the "Kognitio Analytical Platform".
MemSQL MemSQL, Inc.   Proprietary SQL relational
SQLite SQLite   Public domain SQL database that supports in-memory storage with the :memory: connection string
Microsoft COM+ IMDB Microsoft Corporation   Proprietary Defunct
Microsoft SQL Server Microsoft 2012 Proprietary Hekaton, a new in-memory technology in SQL Server 2014 for OLTP databases, requires native compiled procedures using C language. Rows in tables are versioned by a hash key. Supports only hash indexes. Columnstore indexes had been extended to support OLTP workloads.

SQL Server 2012 also included an in-memory technology called xVelocity column-store indexes targeted for data-warehouse workloads.

MonetDB CWI 2004 Open-source (MonetDB License, based on the MPL 1.1) Column-store RDBMS with an SQL top-level interface and ODBC, JDBC drivers
Oracle RDBMS Oracle Corporation 2014 Proprietary RDBMS Oracle 12c contains an option for in-memory technology (additional licenses required).
Oracle Coherence Oracle Corporation   Proprietary with developer download For Java, relational, distributed
Oracle Exalytics Oracle Corporation   Proprietary Appliance
OrigoDB Devrex Labs 2008 Open source embedded engine, commercially licensed enterprise features 100% ACID transactional engine written in C# for Microsoft NET and Mono. Entities, datastructures and transactions (commands and queries) are written using C# and LINQ. OrigoDB uses Write-ahead logging with optional snapshots for persistence. Enterprise features include master/slave replication.
Polyhedra ENEA AB (previouslyPerihelion Software) 1993 Proprietary, with a free-to-use edition (Polyhedra Lite) Relational (SQL, ODBC, JDBC) in-memory database system originally developed for use in SCADA and embedded systems, but used in a variety of other applications including financial systems. Supports data durability via snapshots and journal logging, and high availability via a hot-standby. First released in 1993; version 8.7 released in March 2013.[2] Polyhedra Lite appeared with a free-to-use license in 2012.[3]
P*time Seoul National University, Big Data Institute, Korea and Transact In Memory, Inc. (TIM) 1997 Commercial Initial focus on the telecommunication industry.[4] General availability 2001. The successor product was acquired and integrated by SAP.
Redis VMware / Pivotal Software 2009 BSD  
SafePeak SafePeak Technologies   Proprietary Automated In-Memory Dynamic Caching for SQL Server OLTP applications and databases. Code-free, Dynamic Caching, Relational
SAP HANA SAP AG 2012 Proprietary SAP HANA, short for 'High Performance Analytic Appliance' is an in-memory, column-orientedrelational database management system written in CC++
Scuba Facebook   Proprietary  
solidDB Unicom Global 1992 Proprietary Relational with standard SQL support. ODBC and JDBC interfaces. Includes in-memory and on-disk tables in the same engine. Supports high availability.
SQL CE Microsoft Corporation   Free Compact relational embedded database produced by Microsoft for applications that run on mobile devices and desktops. ADO.NET,OLE DB. No ODBC driver.
SQLFire Pivotal Software Inc.   Proprietary Relational, distributed, NewSQL
Tarantool Community 2010 BSD In-memory database and application server (data grid)
TimesTen now Oracle Corporation 1997 Proprietary Standalone database or in-memory cache for Oracle Database
TPF (Transaction Processing Facility) IBM 1979 Marketed Generalized extension of IBM Airlines reservation system. IBM's DB/DC system backed up the in-memory transaction processing computer.[5]
UnQLite Embedded Database Symisc Systems   BSD, SPL UnQLite supports for in-memory databases as well on-disk databases using the same API with pluggable run-time interchangeable storage engines (B+tree, Hash, etc.)
VoltDB VoltDB Inc.   Open source (GPL) / Proprietary Relational; implements H-Store design
WebDNA WebDNA Software Corporation   Freeware Robust hybrid in-memory database system and scripting language designed for the World Wide Web. Both in-memory and on-disk tables in a single database provide resilience.
Xeround Xeround Inc.   Proprietary/Not for sale, service only Cloud database, defunct as of 2014

Many DBMS support in-memory-only storage engines, including:


<think>我们正在处理MySQL服务器启动失败的问题,错误信息涉及TCP/IP、共享内存、命名管道配置以及InnoDB断言失败(在trx0sys.cc文件中)。根据引用内容,我们看到两个断言失败的错误,一个在dict0dict.cc,另一个在ut0ut.cc,但用户提到的是trx0sys.cc。因此,我们可能需要关注InnoDB存储引擎的初始化问题。 步骤: 1. 确认错误信息:用户提供的错误信息是“MySQL server startup failed: TCP IP shared memory named pipe configuration error on NT OS with InnoDB assertion failure in trx0sys.cc”。这似乎是在Windows NT操作系统上发生的。 2. 分析可能的原因: a. 配置问题:TCP/IP、共享内存或命名管道的配置错误可能导致MySQL服务无法启动。 b. InnoDB断言失败:这通常意味着InnoDB在启动过程中遇到了内部一致性检查失败,可能是由于数据字典损坏、系统表空间损坏或日志文件问题。 3. 解决方案: a. 检查配置文件(my.ini或my.cnf)中的配置项,特别是关于网络连接的部分(如端口、绑定地址)以及共享内存和命名管道的设置。 b. 尝试以安全模式启动(跳过网络启动)来排除网络配置问题。 c. 对于InnoDB断言失败,可以尝试修复InnoDB系统表空间。 4. 具体步骤: 步骤1:检查配置文件 - 找到MySQL的配置文件(通常在安装目录下,如C:\ProgramData\MySQL\MySQL Server 8.0\my.ini)。 - 检查以下部分: [mysqld] port=3306 # 绑定地址,如果只想本地连接,可以设置为127.0.0.1 bind-address=127.0.0.1 # 共享内存设置 shared-memory shared-memory-base-name=MYSQL # 命名管道 enable-named-pipe named-pipe - 确保这些配置正确,并且没有冲突。 步骤2:尝试跳过网络启动 - 在配置文件中[mysqld]部分添加: skip-networking skip-grant-tables # 如果还需要绕过权限验证,可以加上这一行(但注意安全) - 然后尝试启动MySQL服务。如果能够启动,则说明问题出在网络配置上。 步骤3:修复InnoDB问题 - 如果跳过网络后仍然无法启动,并且错误指向InnoDB的trx0sys.cc,那么可能是InnoDB系统表空间损坏。 - 尝试将innodb_force_recovery设置为1到6之间的值(从最低的1开始尝试): innodb_force_recovery=1 - 如果设置为1能启动,则尝试导出数据,然后重新初始化数据库。 - 步骤: a. 在配置文件中添加innodb_force_recovery=1(在[mysqld]部分) b. 启动MySQL服务(此时可能只能读不能写) c. 使用mysqldump导出所有数据库 d. 停止MySQL服务 e. 删除数据目录下的ibdata1, ib_logfile0, ib_logfile1等InnoDB文件(注意备份) f. 移除innodb_force_recovery设置 g. 重新启动MySQL服务(此时会重新创建InnoDB系统表空间) h. 导入之前备份的数据 步骤4:检查错误日志 - MySQL的错误日志通常会提供更详细的信息。错误日志的位置可以在配置文件中查找(log_error配置项),默认可能在数据目录下(如C:\ProgramData\MySQL\MySQL Server 8.0\Data\<主机名>.err)。 - 通过错误日志可以更精确地定位问题。 步骤5:如果以上步骤无效,考虑升级或重新安装MySQL。 注意:操作前务必备份整个数据目录。 根据引用中提到的两个断言错误,它们分别发生在dict0dict.cc和ut0ut.cc,这些错误可能与表定义或内存缓冲池有关。但用户的问题中提到了trx0sys.cc,这个文件通常与事务系统有关。因此,可能是事务系统在启动时恢复过程中出现问题。 另外,引用[2]中提到:“This can be called when a buffer page has just been read in, or also for a page already in the buffer pool.” 这暗示了可能是在读取缓冲池页面时发生了错误。因此,可能是InnoDB的缓冲池中存在损坏的页面,或者磁盘上的表空间文件损坏。 因此,我们也可以尝试清除InnoDB缓冲池,方法就是重启计算机(确保MySQL服务已停止)然后再次启动MySQL服务。但通常,在启动过程中InnoDB会重新初始化缓冲池,所以更可能的是表空间文件损坏。 由于用户提到的是Windows NT操作系统(即Windows),还需要注意文件权限问题。确保运行MySQL服务的账户有权限访问数据目录和其中的文件。 生成相关问题: 1. 如何定位MySQL启动失败的具体原因? 2. 如何修复InnoDB表空间损坏? 3. 在Windows系统上如何正确配置MySQL的共享内存和命名管道? 4. MySQL的innodb_force_recovery参数各等级分别代表什么?如何选择? 5. 如何备份和恢复MySQL数据以防止数据丢失? 现在,我们将按照上述分析给出解决方案。</think>### 解决MySQL服务器启动失败问题(TCP/IP、共享内存、命名管道配置错误及InnoDB断言失败) #### 问题分析 错误信息涉及三方面问题: 1. **网络配置问题**:TCP/IP、共享内存、命名管道配置错误(常见于Windows NT系统) 2. **InnoDB断言失败**:`trx0sys.cc`文件相关断言失败(事务系统初始化失败) 3. **系统表空间损坏**:引用中提到的`dict0dict.cc`和`ut0ut.cc`错误提示数据字典或缓冲池损坏[^1][^2] --- ### 解决步骤 #### 1. 检查网络配置(my.ini文件) ```ini # 检查关键配置项 [mysqld] port=3306 bind-address=0.0.0.0 # 或指定IP shared-memory=ON shared-memory-base-name=MYSQL enable-named-pipe=ON skip-networking=OFF # 确保未跳过网络 ``` **操作**: - 确认端口未被占用:`netstat -ano | findstr :3306` - 重启服务:`net stop MySQL80 && net start MySQL80` #### 2. 处理InnoDB断言失败(trx0sys.cc) ```ini # 临时解决方案(强制恢复模式) [mysqld] innodb_force_recovery=1 # 从1开始尝试,最高到6 ``` **操作顺序**: 1. 逐级增加`innodb_force_recovery`值(1→6)直到能启动 2. 启动后立即备份数据:`mysqldump -u root -p --all-databases > backup.sql` 3. **重要**:完成后移除该参数,否则无法写入数据! #### 3. 修复系统表空间损坏 ```bash # 停止服务后操作 mysqladmin -u root -p shutdown # 备份数据目录 cp -r "C:\ProgramData\MySQL\Data" "C:\backup" # 删除损坏文件(谨慎操作!) del ibdata1 ib_logfile* ib_buffer_pool ``` **操作**: - 删除文件后重启MySQL,系统会自动重建InnoDB文件 - 从备份恢复数据:`mysql -u root -p < backup.sql` #### 4. 高级修复(若上述无效) ```sql -- 重置数据字典(8.0+版本) ALTER INSTANCE ROTATE INNODB MASTER KEY; ``` **操作**: 1. 使用`mysql_upgrade --force`更新系统表 2. 检查磁盘错误:`chkdsk /f`(需重启Windows) 3. 增加InnoDB日志大小:`innodb_log_file_size=256M` --- ### 预防措施 1. **定期维护**: ```sql ANALYZE TABLE mysql.innodb_table_stats; -- 更新统计信息 FLUSH TABLES WITH READ LOCK; -- 备份前锁定 ``` 2. **配置优化**: ```ini innodb_flush_method=O_DIRECT innodb_checksum_algorithm=crc32 ``` 3. **日志监控**: - 检查错误日志位置:`SHOW VARIABLES LIKE 'log_error';` > **关键提示**:若事务系统损坏严重,可能需要从物理备份恢复。建议使用Percona XtraBackup进行热备[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值