软件开发数据库centos6.4

gbase与目前主流数据库使用及其他属性有和区别?

看了下gbase产品的介绍,希望专家能对gbase与目前主流数据库的区别介绍一下,尤其是oracle与mysql,其中部分问题如下:1、gbase在与其他传统的关系型数据库在sql上是否有区别?还是支持标准的sql语言,只是增加了部分内置函数?或者多数sql体系都不一样?2、gbase与oracle或mysql在实现...显示全部
看了下gbase产品的介绍,希望专家能对gbase与目前主流数据库的区别介绍一下,尤其是oracle与mysql,其中部分问题如下:

1、gbase在与其他传统的关系型数据库在sql上是否有区别?还是支持标准的sql语言,只是增加了部分内置函数?或者多数sql体系都不一样?
2、gbase与oracle或mysql在实现上有什么不同?物理层面?逻辑层面?日志的读写、归档、检查点等?
3、gbase在锁方面是如何实现的?
4、HDR方案,在网络中断的情况下,是怎样进行处理的?网络恢复或有gap的情况下与Oracle Dataguard的处理有和区别?主库宕机切换后是否会造成数据丢失,丢失的数据能否估算?
5、同城异地灾备应使用HDR还是RSS,主备都数据都应放置在存储上,或者不使用存储,普通的PC亦可?
6、对于集群对于闹裂的情况,gbase是否也使用仲裁机制或有其他不同?及其节点的故障恢复情况。负载均衡也是通过轮询机制,还是判断节点的负载情况而定?
7、gbase含有双引擎,在使用中应如何选择,或是根据存储数据的不同gbase自动切换引擎??
8、如果使用gbase数据库,必然是逐步替换系统,那gbase是否可以直接与目前的主流关系型数据库进行相互访问,或是否有第三方的中间件可以提供?
9、最后当然是最关心的价格问题,能否对其产品及其服务价格等简短说明一下?收起
参与14

查看其它 8 个回答afliao的回答

afliaoafliao数据库管理员南大通用
1、        gbase在与其他传统的关系型数据库在sql上是否有区别?还是支持标准的sql语言,只是增加了部分内置函数?或者多数sql体系都不一样?
sql语句在标准sql的基础上稍有不同,其他数据库也是一样。Insert/delete/update语法基本一样,select在少数场景下有一些不一样。
2、        gbase与oracle或mysql在实现上有什么不同?物理层面?逻辑层面?日志的读写、归档、检查点等?
gbase 8t与oracle数据库都是非常适合oltp场景数据库,在实现上大体一致,绝大多数概念都是相互对应的。Oracle上数据层逻辑:表空间(tablespace)->段(segment)-> 区->数据块(data block);GBase 8t逻辑层:dbspace->tblspace->extent->page;日志方面,oracle上的redo日志相当与GBase 8t中的logical log,undo相当于GBase 8t中的physical log,在归档、检查点方面有较多类似之处。
3、        gbase在锁方面是如何实现的?
Gbase 8t的锁分为下面几种:
a)        共享锁
b)        排他锁
c)        更新锁 (lock-U)在 更新Cursor中使用更新锁由cursors 含有 ‘for update’ 选项执行时产生的 ,只能在没有排他锁或者更新锁的记录上加更新锁当锁定的记录真正执行的时候,更新锁将提升为排他锁
d)        专一锁 (lock-IX or IS)
由IDS自动分配,
如果一条记录上的记录被更新,一个排他锁将分配在该记录上,同时将该记录的表上自动加上专一锁。这能保证没有session可以在该表上增加排他锁,只要该表中有记录被增加了排他锁
锁的粒度有下面几种:
entire databases 数据库锁
entire tables   表锁
disk pages    数据页锁
single rows, or index-key values 行锁
锁是与隔离级别相互配合的。GBase 8t事务隔离级别分为下面几种:

Dirty Read 、Committed Read 、Cursor Stability、 Repeatable Read 、Last Committed Read;
对于Dirty Read隔离级别:
采用这种隔离级别,数据库服务器不会分配任何锁 ,查询过程中,可以查询到任何数据row, 甚至那些被修改但尚未提交的记录 。因此会产生读取脏数据的情况。该隔离级别的并发访问程度最高。
对于Committed Read隔离级别:
是数据库默认的隔离级别;能避免读到脏数据,读到的所有的记录都是已提交的 。
对于Cursor Stability隔离级别:
不仅可以看到提交的记录,也可以保证看到的记录不会被更新
其他进程不能更新 (UPDATE or DELETE) 你所看到的记录
当移动到下一行时,锁才会释放,记录就可以进行修改 。
这种隔离级别可以解决幻影读的问题。
对于Repeatable Read隔离级别:
数据库在读取的记录上加共享锁,验证是否可以读取数据直到事务提交,锁才能释放其他用户可以读取数据,但是不能修改
这种隔离级别是隔离程度最高的,能够解决不可重复读和幻影读的问题。
对于Last Committed Read隔离级别:
当所读的记录被锁,读取的是记录最后一次提交的数据;这种隔离级别类似oracle的读一致性。

4、        HDR方案,在网络中断的情况下,是怎样进行处理的?网络恢复或有gap的情况下与Oracle Dataguard的处理有和区别?主库宕机切换后是否会造成数据丢失,丢失的数据能否估算?
数据库参数中可定义hdr主备机失联timeout时间,如果在规定的时间内主备机相互不能通信,则自动断开hdr连接(在timeout时间内网络恢复,那么hdr不会断开,会自动恢复。)hdr有两种配置方法:同步模式和异步模式。同步模式下数据不会丢失,但对主库性能稍有影响。异步模式下日志同步到备机可通过在数据库参数中指定时间间隔,例如1秒钟同步一次。

5、        同城异地灾备应使用HDR还是RSS,主备都数据都应放置在存储上,或者不使用存储,普通的PC亦可?
同城异地的灾备推荐使用HDR,需要保证HDR主备机间的网络是稳定的。
数据可以存放在PC本地硬盘。
6、        对于集群对于闹裂的情况,gbase是否也使用仲裁机制或有其他不同?及其节点的故障恢复情况。负载均衡也是通过轮询机制,还是判断节点的负载情况而定?
7、        集群中如果有服务器宕机,哪台服务器接管是在连接管理器中进行定义的。一般的接管顺序是主机(PRI)宕机后由SDS接管,SDS宕机后由HDR接管。宕机的数据库启动后即可自动恢复到集群中。负载均衡可以通过轮询机制,也可以通过判断节点的负载情况而定。至于用户想选择哪种机制是可以在连接管理器中进行定义的。

8、        gbase含有双引擎,在使用中应如何选择,或是根据存储数据的不同gbase自动切换引擎??
双引擎分别处理普通关系型表数据和时间序列数据。时间序列数据会有一个时间序列字段。对于这种字段类型的数据,GBase 8t会自动选择时间序列引擎处理,不需要人工判断,都是数据库自动选择的。

9、        如果使用gbase数据库,必然是逐步替换系统,那gbase是否可以直接与目前的主流关系型数据库进行相互访问,或是否有第三方的中间件可以提供?
对于数据库的迁移,有两种方法:一种是手工进行(先做表结构的迁移,然后做数据的unload/load)。已经有多个用户通过该方法将数据成功从oracle迁移到GBase 8t。另一种是通过第三方工具,例如IBM CDC,MTK
IT咨询服务 · 2015-04-15
浏览9806

回答者

afliao
数据库管理员南大通用

afliao 最近回答过的问题

回答状态

  • 发布时间:2015-04-15
  • 关注会员:0 人
  • 回答浏览:9806
  • X社区推广