内存数据库之Altibase常见问题解答(QA)
Q1 什么是内存DBMS? 内存DBMS是一种新的在MMDBMS服务器启动后在内存中管理整个数据库的数据库管理系统。内存DBMS是在要求提高事务处理速度的背景下出现的。因为内存DBMS的整个数据库都在内存中,内存DBMS访问磁盘的次数相对于磁盘DBMS要少得多。因为整个数据库常住在内存中,数据处理算法非常简单。因为这些原因,内存DBMS的性能相对于磁盘DBMS要高得多。当然,内存DBMS不只是性能高,同样具有磁盘DBMS的各种功能。 Q2 请用一句话定义Altibase内存数据库 Altibase是一个数据库管理系统(DBMS)。它在内存中保存和管理数据,可以不通过硬盘直接访问数据。它提供高效的事务处理解决方案。 Q3 Altibase支持什么操作系统? 因为Altibase内存DBMS在开发中使用一个操作系统无关的模块,所以通过在makefile文件中设置一些选项,重新编译Altibase的源代码可以很方便的移植到其他操作系统。Altibase支持如下的一些32位和64位的操作系统。 Solaris, DEC TRU64, HP-UX, AIX Linux, Windows 2003 VxWorks, QNX Q4 Altibase和磁盘DBMS的大区别是什么? 有两个主要区别。一个是数据库所在的位置不同。磁盘DBMS总是将数据库存在磁盘上,将要访问的数据放在内存缓冲中。内存DBMS将磁盘上的备份数据库加载到内存中并在内存中进行管理。第二个区别就是他们的性能有非常大的不同。另外由于运行环境不同二者之间也有一些其它的区别。在性能方面内存DBMS大约比磁盘DBMS高10倍,功能方面内存DBMS和磁盘DBMS基本相同。 Q5 Altibase的稳定性如何? Altibase内存DBMS在2000年10月发布。因为我们有长时间研究和开发DBMS丰富的经验,所以我们能在如此短的时间内开发出一个商业数据库产品。其间,Altibase的性能,稳定性和易用性也在通信,证券和国防领域被验证。Altibase从未让使用它的用户失望。 系统故障时,如果没有硬盘故障,则可以使用altibase启动时的恢复机制进行完全的恢复。但是如果出现硬盘故障,则只能恢复到近一次的备份。 系统运行当中可以进行全部备份或表级备份 Q6 既然整个数据库都在内存中,数据库的稳定性不会出现问题吗? 数据库更新时,Altibase立即在日志文件中记录更新的信息。如果系统发生故障,Altibase分析日志文件内容并正确的恢复数据库。 Altibase还具有强大的复制功能,通过复制使系统具有高可用性和高稳定性。 Q7 我知道Altibase的优点之一是数据库复制特性,为什么它如此重要 是的,Altibase的优点之一是数据库复制特性。首先,Altibase复制的性能非常好。虽然根据查询类型和网络环境的不同会有一点区别,但是在复制中只有简单的SQL语句的情况下,Altibase可以保持独立系统(没有复制的情况下)性能的95%以上,而其它公司的同类产品还不到60%,因此,Altibase数据库复制的性能可以认为非常好。Altibase复制可以自动检测网络和媒体故障并进行适当的处理,在从这些故障恢复后执行完美的数据库复制。如果您想了解Altibase复制的更详细的信息,请查阅本页上部的“产品介绍”菜单中的“数据库复制”子菜单中的内容 Q8 Altibase复制时系统的性能 Altibase复制时能保持系统90%的性能。Altibase复制时性能的保持可以说是Altibase产品的技术核心,在多种实际应用中得到了验证。 Q9 Altibase复制中数据安全性和完整性 Altibase复制是通过日志传递的方式来实现的。日志具有特定格式,所以在数据传送中无需加密即可保障数据的安全。 数据的完整由TCP控制,利用其本身的查错功能。 Q10 其他内存DBMS提供的用户接口不够好,用户很难开发应用程序。Altibase为用户提供什么样的用户接口? 因为内存DBMS是一个新技术,所以用户还会面对很多的麻烦。内存DBMS的目的是提高性能,如果系统提供给用户方便的接口,DBMS的性能会下降,所以其他产品在CLI层只提供ODBC和JDBC接口。但是相对于其他产品,Altibase的应用程序开发容易的多,因为Altibase是作为一个通用内存DBMS来开发的。除了ODBC和JDBC之外,Altibase还提供支持嵌入式SQL和PSM(类似于存储过程)的SES。Altibase也支持ISAM接口,这样就使您已经用ISAM开发的程序不用修改就可以在Altibase上使用。 Q11 Altibase对用户数是否有限制,多少用户可以并发访问? ALTIBASE可以产生1000多个连接。受操作系统限制,一般多1000多个同时的socket. 由于实际上是使用连结池来提供连结,所以并不存在限制连结的问题。由于Altibase在内存中操作,速度一定会比磁盘数据库快,也就能提供更好的并发性。 Q12 系统到底需要多少内存 这是根据用户的数据量而不同的。一般以数据文件大小的150%~200%作为所需内存空间。 Q13 将磁盘上的备份数据库加载到内存中需要多少时间? 加载4G的数据大概需要5分钟时间 (SUN E250),根据系统的配置这个数据将变化 Q14 当数据量大大超出内存时的解决方案。 使用硬盘swapping。系统性能降低。不建议这种应用形式,因为altibase中没有这种转化的机制,而且也不符合内存数据库的思想。 可以只对关键模块使用Altibase, 其余数据保存在磁盘数据库中。 但在大部分情况下,可将所有数据保存在内存中,Altibase独立使用。 Q15 Altibase是否是独立的数据库管理系统,当它与其它磁盘数据库混合连用时是否是作为磁盘DBMS的访问前端? Altibase是独立的数据库管理系统,与磁盘数据库一样可以独立使用。它内部具有管理机制和查询算法,并不是作为磁盘DBMS的访问前端使用的。 Q16 Altibase与磁盘数据库连用时是否需要写应用程序?与磁盘数据库是否存在标准接口? Altibase与磁盘数据库的连用通过写应用程序来实现。二者之间不存在国际标准的接口。 Q17 怎样定义冷热数据,如何进行冷热数据转换? 程序员设计时访问量大,影响性能的数据一般被指定为热数据。把这样的数据存储到ALTIBASE中使用,能提高系统的性能。访问量小,对系统性能没有明显影响的数据称为冷数据。 冷热数据转换是通过应用程序实现的。很多时候,Altibase与磁盘数据库的连用是以模块方式实现的,Altibase负责的模块主要存放热数据。 Q18 如果只用Oracle, 客户端一个SQL语句即可访问数据,如果二者连用,是否客户端要分别建立与Altibase和Oracle之间的联系,并且需要访问两个DB? 是的。这种情况下客户端需要访问两个DB。 Q19 系统移植时工作量有多大?(数据移植,客户端程序移植,两个数据库之间的联系程序)。 先要把现有系统的数据以文本形式下载,再使用iLoader上传到ALTIBASE。速度是 10000~20000 tps(transaction per sec)。 客户端程序移植和两个数据库之间的联系程序,由于Altibase支持ODBC, JDBC, SES如C/C++等多种标准借口,所以这种移植是非常容易实现的。 Q20 我们看到很多Altibase与Oracle连用的实例,能否介绍一下Altibase独立应用情况。 在Altibase的实施中,大部分情况都是Altibase独立使用的。Altibase的独立使用的实施与传统磁盘数据库非常相似。 只有当数据量很大情况下,已有的服务都是基于硬盘的数据库,如果把这些都转移到ALTIBASE数据库需要很多的费用 (Altibase价格增长),所以只把那些影响系统性能的服务转移到ALTIBASE。 Q21 Altibase可否提供硬件+软件的解决方案,比如可以自带备用电源,保障断电时数据不丢失。 用户可以根据自身需要决定是否使用备用电源或第三方HA设备。应用于磁盘数据库中的HA设备,也可以在Altibase中使用,如VERITAS Cluster可用于altibase。 但由于Altibase强大的复制功能,很多用户发现没有必要使用上述方法。 Q22 Altibase benchmark测试的环境,测试部门。 1. 测试环境 Server : sun E-450 memory : 4GB CPU : 2 * 400Mz 2. 测试部门 韩国altibase公司内部和韩国三星电子 Q23 如何决定是采用独立模式还是混合模式? 一般根据客户需求和性价比决定。如果对大量数据的访问性能都有很高要求,应该采用独立模式,如果只对小部分数据的访问速度和性能上存在高要求,则可以使用混合模式。 Q24 假如主机内存只有40多GB,对altibase正常运行是否有影响? 对altibase正常运行是有影响的,内存不够,可能会使用交换空间,性能会受到影响。 Q25 isql 客户端连接远程Altibase 主机报错? [ERR-91015 : Communication failure.] 1.建议更换Altibase 客户端版本 2.重新设置 ALTIBASE_HOME , PATH 环境变量 Q26 Altibase 参数修改步骤 1、 修改 103 和 39的 altibase.properties,这个文件修改只能是下次重起数据库的时候有效。 PREPARE_LOGFILE_COUNT=2 REPLICATION_PREFETCH_LOGFILE_COUNT=3 REPLICATION_PREFETCHER_RETRY_TIME=1 2、 Replication sync 之前做以下操作 iSQL> alter system set REPLICATION_PREFETCH_LOGFILE_COUNT = 3; iSQL> altier system set REPLICATION_PREFETCHER_RETRY_TIME = 1; iSQL> check properties; Q27 备机重启动后无法连接AB。 error: TRANSITION TO PHASE : PROCESS hostid->844d7498 [FAILURE] Startup Failed.... [ERR-51039 : Internal Error : Invalid Protocol (err3)] [ERR-51039 : Internal Error : Invalid Protocol (err3)] 由于改变了hostid,出现连接错误。把hostid改回成之前的hostid,问题得以解决。 连接成功。 注意:以后遇到类似问题,都要先确认一下hostid是否有改动或网卡更换。 Q28 现在一台PC机上装了solaris和altibase,能否与sun或IBM服务器装的altibase间replication? 操作出现如下错误: iSQL> create replication rep1 with '10.200.26.36',20300 from sys.acct to sys.acct; [ERR-61023 : The replication is disabled] 问题应该是没有启动Replication模块。 需要修改$ALTIBASE_HOME/conf/altibase.properties 中 REPLICATION_PORT_NO = 20301属性,就是再配一个Replicaion专用的端口号。 再重新启动Altibase 就可以启动Altibase Replication功能了。 create 语句中使用的端口号是对方Altibase的 REPLICATION_PORT_NO 。 Q29 创建一个用户test,在该用户下创建replication时出错: iSQL> create replication rep1 with '10.200.50.247',20301 from test.ACCT to sys.ACCT; [ERR-31084 : The user has no permission to execute the SQL statement Altibase Replicaion 只能在sys/manager 用户下进行管理。 Q30 ALTIBASE有三种运行模式,如何设置这三种模式? 我们售前跟您说的Altibase 3种运行模式,不知道是不是说的 Altibase内存数据库、Altibase磁盘数据库、Altibase与其他数据库联用这个概念。 这是一个逻辑上的模式,Altibase 没有具体限制。Altibase 内存数据库 、Altibase 磁盘数据库都是可用的。 |
相关文章