当前位置:  数据库>其它
本页文章导读:
    ▪Riak可靠性提升并改进了对IPv6的支持      本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2013/02/riak-1-3-rc近日,Riak 1.3.0 RC发布了,该版本改进了对IPv6的支持,并且通过一些有趣的特性改进了可靠性——Activ.........
    ▪深入理解Oracle索引(5):反向索引的定义、缺点和适用场景             ㈠ 定义                    建立一个反向索引将把每个列的键值(each column key value)按字节反向过来,对于组合键,列的顺序被保留,但.........
    ▪Oracle表空间管理       1、永久性表空间 创建表空间         语法:系统默认值创建表空间                   create tablespace 表空间名称         &n.........

[1]Riak可靠性提升并改进了对IPv6的支持
    来源: 互联网  发布时间: 2013-11-07
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2013/02/riak-1-3-rc

近日,Riak 1.3.0 RC发布了,该版本改进了对IPv6的支持,并且通过一些有趣的特性改进了可靠性——Active Anti-Entropy与Health Check。

Active Anti-Entropy特性是个额外的层,用于防止数据损坏,它会自动在复制集中监测丢失或是散开的数据,然后触发读修复使一切正常起来。这样可以从各种数据丢失情况如磁盘故障来恢复,或是从过时的备份中恢复。然而,该特性目前只限于键/值存储,并不会保护Riak Search数据。

其他一些值得关注的改进有:

  • MapReduce Sink Backpressure
  • 改进的IPv6支持——Handoff与Protocol缓冲现在也可以监听IPv6地址(HTTP API现已支持)
  • 支持SmartOS 1.8
  • 默认启用Riaknostic
  • Health Check——一个子系统,会针对特定情况不断监控每个节点,根据这些情况启用/禁用服务
  • 将Bucket属性恢复为默认值的能力
  • 支持将日志写至syslog

该版本还完全删除了遗留的MapReduce系统Luke应用。Luke在1.2版中就不建议被使用了;由于从1.0版开始引入新的Riak Pipe作为MapReduce系统,因此Luke就变成多余的了(可以使用Erlang或是JavaScript来编写Map-Reduce查询)。

感兴趣的读者可以在发布声明中了解新特性的详细说明以及完整的Bug修复列表。

本周还会发布第3个Yokozuna的预发布版本,该版本提供了几处性能改进。Yokozuna是个原型项目,用于集成Apache Solr与Riak,现在还处于早期阶段。

Riak是个开源、可伸缩、容错、Masterless的数据存储,主要使用Erlang构建。它是由Basho开发并提供支持的。

查看英文原文:Riak Gets Better Reliability, Improved IPv6 Support

作者:ricohzhanglong 发表于2013-2-24 16:06:48 原文链接
阅读:0 评论:0 查看评论

    
[2]深入理解Oracle索引(5):反向索引的定义、缺点和适用场景
    来源: 互联网  发布时间: 2013-11-07
       ㈠ 定义
          
          建立一个反向索引将把每个列的键值(each column key value)按字节反向过来,对于组合键,列的顺序被保留,但每个列的字节都作了反向
          例如:
          表的某一列内容
          ……
          1234
          1235
          1236
          1237
          ……
          
          建立正向索引
          ……
          1234
          1235
          1236
          1237
          ……
          这四行放在同一个leaf block中。
          如果事务A查询1234这行,同时事务B查询1235这行。那么就会在这个leaf block上发生I/O争用
          
          
          建立反向索引
          ……
          4321
          5321
          6321
          7321
          ……
          这四行放在四个不同leaf block中
          如果事务A查询1234这行,同时事务B查询1235这行。是分别在两个leaf block上进行,不会发生I/O争用
          
          很多事务访问同一个块,对同一个块并发操作产生的I/0竞争
          反向索引能作为避免热点块的一个方法
          
       ㈡ 查找
          

          user_indexes.index_type


scott@ORCL> create index idx_rev on emp(sal) reverse;

Index created.

scott@ORCL> select index_name,index_type from user_indexes where index_name='IDX_REV';

INDEX_NAME                     INDEX_TYPE
------------------------------ ---------------------------
IDX_REV                        NORMAL/REV


       ㈢ 它有什么缺点?
          
          ① if you use reverse key index,index range scan will not work
          ② 当应用需要获取一段范围的数据时,reverse key index将不会被使用,因为键值不是连续的排列的。在这种情况下,CBO将会选择全表扫描
          
          测试:

hr@ORCL> drop table t purge;

Table dropped.

hr@ORCL> create table t (a number,b varchar2(20));

Table created.

hr@ORCL> ed   
Wrote file afiedt.buf

  1  begin
  2    for i in 1..20000
  3    loop
  4      insert into t values(i,to_char(sysdate,'yyyymmddhhmmss'));
  5      commit;
  6    end loop;
  7* end;
hr@ORCL> /

PL/SQL procedure successfully completed.

hr@ORCL> create index idx_t on t (a) reverse;

Index created.

hr@ORCL> set autot on exp

hr@ORCL> select * from t where a >=19989 and a <=19990;

         A B
---------- --------------------
     19989 20130224060219
     19990 20130224060219


Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     2 |    50 |    19   (6)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| T    |     2 |    50 |    19   (6)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("A">=19989 AND "A"<=19990)

Note
-----
   - dynamic sampling used for this statement

hr@ORCL> drop index idx_t;

Index dropped.

hr@ORCL> create index idx_t on t (a);

Index created.

hr@ORCL> analyze index idx_t compute statistics;

Index analyzed.

hr@ORCL> select * from t where a >=19989 and a <=19990;

         A B
---------- --------------------
     19989 20130224060219
     19990 20130224060219


Execution Plan
----------------------------------------------------------
Plan hash value: 1594971208

-------------------------------------------------------------------------------------
| Id  | Operation                   | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |       |     2 |    50 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| T     |     2 |    50 |     3   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | IDX_T |     2 |       |     2   (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("A">=19989 AND "A"<=19990)

Note
-----
   - dynamic sampling used for this statement


       ㈣ 什么时候使用它?
          
          反向索引主要是建立在那些以序列号生成的列上,可以将本来是连在一起的index entry分散到不同的leaf block中去
          当索引是从序列中取的时候,如果是一般的b-tree 索引,在大量的插入后会导致块的分裂以及树的倾斜,使用reverse key index可以使索引段条目被更均匀的分布
          
          
       所以,reverse index主要是缓解右向增长的索引右侧叶子节点的争用,对于查询意义不大,注意reverse索引可能导致无法走range scan
       但用于解决被索引引起的热块问题倒是很不错的!

作者:linwaterbin 发表于2013-2-24 19:13:11 原文链接
阅读:6 评论:0 查看评论

    
[3]Oracle表空间管理
    来源: 互联网  发布时间: 2013-11-07

1、永久性表空间
  • 创建表空间
        语法:系统默认值创建表空间
                  create tablespace 表空间名称
                  datafile '数据文件名称'
                   size  数据文件大小
        例子:
                  create tablespace test01
                  datafile  '/home/oracle/app/oracle/oradata/orcl/t01.dbf'
                  size 100M

        语法:自定义值创建表空间
                  create tablespace 表空间名称
                 datafile '数据文件名称'
                  size 数据文件大小
                  extend management local
                  autolocation 分配大小
                  segment space management  参数2

                 备注: 参数2:auto、manual

       例子:
               create tablespace test02
               datafile '/home/oracle/app/oracle/oradata/orcl/t02.dbf'
               size 200M
               extend management local 
               autolocation 10M
               segment space management auto                
  • 删除表空间
         语法:drop tablespace 表空间名称
                    including contents
                   and datafiles
                   cascade constraints
        备注:including contents 表示删除对象
                  datafiles 表示删除数据文件
                  cascade constraints 表示级联删除索引、约束等
        例子:
                  drop tablespace test02
                  including contents
                  and datafiles
                  cascade contraints
       备注:如果只删除数据文件,alter tablespace 表空间名称 drop datafile 数据文件名称
                 
  • 修改表空间
         语法:增加表空间容量--增加数据文件数量
                    alter tablespace 表空间名称
                    add datafile '数据文件名称'
                    size  数据文件大小
          例子:alter tablespace test01
                     add  datafile '/home/oracle/app/oracle/oradata/orcl/t01_01.dbf'
                     size 100M
          语法:增加表空间容量--修改数据文件大小
                    alter database  数据文件名称
                     size 数据文件大小
          例子:alter database '/home/oracle/app/oracle/oradata/orcl/t01_01.dbf'
                     size 200M
           语法:重命名表空间
                     alter tablespace 表空间名称 rename to 新表空间名称
           例如:alter tablespace test01 rename to test01_01
           语法:重命名数据文件
                      先表空间脱机,在重命名操作系统中的数据文件,最后重命名数据库中的数据文件
                     脱机命令:alter tablespace 表空间名称 offline 脱机方式
                     联机命令:alter tablespace 表空间名称 online
                    重命名操作系统中数据文件:mv 数据文件名  新数据文件名称
                    重命名数据库中的数据文件 :alter tablespace 表空间名称 rename datafile '数据文件名' to '新数据文件名'
          备注:脱机方式:normal、temporary、 immediate、for recorver
                  normal:对数据文件一边检查一边将他们脱机,如果表空间数据文件有错误,那么表空间所有数据文 件不能脱机
                  temporary:临时脱机,即使数据文件有错误也能脱机,然而当表空间联机时,需要介质恢复
                  immediate:立即脱机,不对数据文件做任何检查,当表空间联机时需要介质恢复,在非日志归档模式不能脱机
                  for recovery :将在恢复集中的数据库表空间脱机,以便进行时间点恢复  
        例如:alter tablespace test01 offline normal
                     mv /home/oracle/app/oracle/oradata/orcl/t01.dbf /home/oracle/app/oracle/oradata/orcl/t01_01.dbf;
                     alter tablespace test01
                          rename datafile '/home/oracle/app/oracle/oradata/orcl/t01.dbf'
                         to '/home/oracle/app/oracle/oradata/orcl/t01_01.dbf';
                     alter tablespace test01 online
          备注:查询表空间状态:select tablespace_name,status from dba_tablespaces;
                     查询表空间相关的数据文件      
                 select ts.ts#,ts.name,df.name  from v$tablespace ts,v$datafile df  where ts.ts#=df.ts#
  • 查询表空间
           涉及到表v$datafile,dba_tablespaces,v$tablespace
            select ts.ts#,ts.name,df.name
           from v$tablespace ts,v$datafile df
            where ts.ts#=df.ts#

2、临时表空间
  • 创建表空间
        语法:create temporary tablespace 表空间名称
                   tempfile '临时数据文件名称'
                   size 文件大小
       例子:create temporary tablespace temp01
                  tempfile '/home/oracle/app/oracle/oradata/orcl/temp01_01.dbf'
                  size 100M;
  • 删除表空间
      &nb
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3