标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (102)
- 数据库 (1,670)
- DB2 (22)
- MySQL (73)
- Oracle (1,532)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (21)
- ORA-xxxxx (159)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (14)
- ORACLE 21C (3)
- Oracle 23ai (7)
- Oracle ASM (65)
- Oracle Bug (8)
- Oracle RAC (52)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (560)
- Oracle安装升级 (91)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (78)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- ORA-600 krse_arc_complete.4
- Oracle 19c 202410补丁(RUs+OJVM)
- ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复
- .mkp扩展名oracle数据文件加密恢复
- 清空redo,导致ORA-27048: skgfifi: file header information is invalid
- A_H_README_TO_RECOVER勒索恢复
- 通过alert日志分析客户自行对一个数据库恢复的来龙去脉和点评
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME
- ORA-01092 ORA-00604 ORA-01558故障处理
- ORA-65088: database open should be retried
- Oracle 19c异常恢复—ORA-01209/ORA-65088
- ORA-600 16703故障再现
- 数据库启动报ORA-27102 OSD-00026 O/S-Error: (OS 1455)
- .[metro777@cock.li].Elbie勒索病毒加密数据库恢复
- 应用连接错误,初始化mysql数据库恢复
- RAC默认服务配置优先节点
- Oracle 19c RAC 替换私网操作
- 监听报TNS-12541 TNS-12560 TNS-00511错误
- drop tablespace xxx including contents恢复
- Linux 8 修改网卡名称
分类目录归档:EXADATA
EXADATA与非EXADATA搭建DATAGURAD关于EHCC特性测试
随着xd的越来越普及,不少的企业使用了xd,但是不少企业因为资金有限,只有一台xd,但是为了实现数据的容灾,可能会使用一台非xd的机器来通过dataguard来实现容灾,但是因为xd的ehcc新特性,官方宣传是只在xd中支持,如果dg的备库不是xd。那么会怎么样,这里通过测试得出如下一些结论:xd与非xd可以构造dg,ehcc功能在xd上无法高效使用。对于这样的环境条件下,使用ORACLE自带压缩效率更高.针对ehcc压缩效率很低,个人猜测,是因为xd检查到备库是非xd环境,直接对ehcc进行了降级压缩处理,从而出现了ehcc的压缩效率比oltp还低(牺牲了xd的性能,确保了数据的安全,看来xd的设计还是考虑的比较全面)
xd基本信息
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production PL/SQL Release 11.2.0.2.0 - Production CORE 11.2.0.2.0 Production TNS for Linux: Version 11.2.0.2.0 - Production NLSRTL Version 11.2.0.2.0 - Production SQL> show parameter clu; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cluster_database boolean TRUE cluster_database_instances integer 2 cluster_interconnects string SQL> SELECT OPEN_MODE, DATABASE_ROLE ,NAME FROM V$DATABASE; OPEN_MODE DATABASE_ROLE NAME -------------------- ---------------- --------- READ WRITE PRIMARY xxxxxx SQL> !uname -a Linux dm01db02 2.6.18-194.3.1.0.4.el5 #1 SMP Sat Feb 19 03:38:37 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
xd创建模拟表
SQL> create table t_FF_c compress as select * from dba_objects; Table created. SQL> create table t_FF_c_o compress for oltp as select * from dba_objects; Table created. SQL> create table t_FF_q_l compress for query low as select * from dba_objects; Table created. SQL> create table t_FF_q_h compress for query high as select * from dba_objects; Table created. SQL> create table t_FF_a_l compress for archive low as select * from dba_objects; Table created. SQL> create table t_FF_a_h compress for archive high as select * from dba_objects; Table created. SQL> create table t_ff as select * from dba_objects; Table created.
xd查询模拟表
SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for from dba_segments s,dba_tables t where s.owner=t.owner and t.table_name=s.segment_name and t.table_name like 'T_FF%'; 2 3 OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ------------------------------ ---------- ------------ SYS T_FF 11 SYS T_FF_A_H 10 ARCHIVE HIGH SYS T_FF_A_L 10 ARCHIVE LOW SYS T_FF_Q_H 10 QUERY HIGH SYS T_FF_Q_L 10 QUERY LOW SYS T_FF_C_O 4 OLTP SYS T_FF_C 4 BASIC
通过这里发现,带有非dg的xd使用ehcc压缩效率都低了很多
非xd备库基本信息
SQL> SELECT OPEN_MODE, DATABASE_ROLE ,NAME FROM V$DATABASE; OPEN_MODE DATABASE_ROLE NAME -------------------- ---------------- --------- READ ONLY WITH APPLY PHYSICAL STANDBY xxxxxx SQL> show parameter clu; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cluster_database boolean FALSE cluster_database_instances integer 1 cluster_interconnects string SQL> !uname -a Linux oradg 2.6.18-238.el5xen #1 SMP Sun Dec 19 14:42:02 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
查询非xd dg备库
SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for from dba_segments s,dba_tables t where s.owner=t.owner and t.table_name=s.segment_name and t.table_name like 'T_FF%'; OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ------------------------------ ---------- ------------ SYS T_FF 11 SYS T_FF_A_H 10 ARCHIVE HIGH SYS T_FF_A_L 10 ARCHIVE LOW SYS T_FF_Q_H 10 QUERY HIGH SYS T_FF_Q_L 10 QUERY LOW SYS T_FF_C_O 4 OLTP SYS T_FF_C 4 BASIC SQL> SELECT COUNT(*) FROM T_FF_Q_L; COUNT(*) ---------- 94709 SQL> SELECT COUNT(*) FROM T_FF_Q_H; COUNT(*) ---------- 94710 SQL> SELECT COUNT(*) FROM T_FF_C_O; COUNT(*) ---------- 94708 SQL> SELECT COUNT(*) FROM T_FF_C; COUNT(*) ---------- 94707 SQL> SELECT COUNT(*) FROM T_FF_A_L; COUNT(*) ---------- 94711 SQL> SELECT COUNT(*) FROM T_FF_A_H; COUNT(*) ---------- 94712 SQL> select count(*) from t_FF; COUNT(*) ---------- 94713
通过这里测试证明,对于非xd dg库,可以正常的查询xd上的ehcc相关表,而且相关大小也相同(物理dg当然相同了)
测试xd与非xd dg测试ehcc的dml操作
--xd 主库 SQL> update t_ff_a_h set owner='www.xifenfei.com'; 94712 rows updated. SQL> commit; Commit complete. SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for from dba_segments s,dba_tables t where s.owner=t.owner and t.table_name=s.segment_name and t.table_name like 'T_FF%'; 2 3 OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ------------------------------ ---------- ------------ SYS T_FF 11 SYS T_FF_A_H 11 ARCHIVE HIGH SYS T_FF_A_L 10 ARCHIVE LOW SYS T_FF_Q_H 10 QUERY HIGH SYS T_FF_Q_L 10 QUERY LOW SYS T_FF_C_O 4 OLTP SYS T_FF_C 4 BASIC 7 rows selected. SQL> alter system switch logfile; System altered. --非xd 备库 SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for from dba_segments s,dba_tables t where s.owner=t.owner and t.table_name=s.segment_name and t.table_name like 'T_FF%'; OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ------------------------------ ---------- ------------ SYS T_FF 11 SYS T_FF_A_H 11 ARCHIVE HIGH SYS T_FF_A_L 10 ARCHIVE LOW SYS T_FF_Q_H 10 QUERY HIGH SYS T_FF_Q_L 10 QUERY LOW SYS T_FF_C_O 4 OLTP SYS T_FF_C 4 BASIC
证明对于xd与非xd构成的dg环境,可以执行dml操作.
测试xd与非xd dg的ehcc的append操作
--xd准备三张测试空表 SQL> create table t_FF_a_l_1 compress for archive low as select * from t_FF where 1=0; Table created. SQL> create table t_FF_a_h_1 compress for archive high as select * from t_FF where 1=0; Table created. SQL>truncate table t_FF; Table truncated. --插入数据(每个表执行5次) SQL> insert /*+ APPEND */ into t_FF_a_l_1 select * from dba_objects; 94714 rows created. SQL> commit; Commit complete. SQL> insert /*+ APPEND */ into t_FF_h_l_1 select * from dba_objects; 94714 rows created. SQL> commit; Commit complete. SQL> insert /*+ APPEND */ into t_FF select * from dba_objects; 94714 rows created. SQL> commit; Commit complete. --查看相关表数据量 SQL> select count(*) from t_FF_a_l_1; COUNT(*) ---------- 473570 SQL> select count(*) from t_FF_a_h_1; COUNT(*) ---------- 473570 SQL> select count(*) from t_FF; COUNT(*) ---------- 473570 --查看xd主库 SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for from dba_segments s,dba_tables t where s.owner=t.owner and t.table_name=s.segment_name and t.table_name like 'T_FF%'; OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ------------------------------ ---------- ------------ SYS T_FF 52 SYS T_FF_A_H 11 ARCHIVE HIGH SYS T_FF_A_L 10 ARCHIVE LOW SYS T_FF_Q_H 10 QUERY HIGH SYS T_FF_Q_L 10 QUERY LOW SYS T_FF_C_O 4 OLTP SYS T_FF_C 4 BASIC SYS T_FF_A_H_1 47 ARCHIVE HIGH SYS T_FF_A_L_1 47 ARCHIVE LOW --查看非xd备库 SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for from dba_segments s,dba_tables t where s.owner=t.owner and t.table_name=s.segment_name and t.table_name like 'T_FF%'; OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ------------------------------ ---------- ------------ SYS T_FF 52 SYS T_FF_A_H 11 ARCHIVE HIGH SYS T_FF_A_L 10 ARCHIVE LOW SYS T_FF_Q_H 10 QUERY HIGH SYS T_FF_Q_L 10 QUERY LOW SYS T_FF_C_O 4 OLTP SYS T_FF_C 4 BASIC SYS T_FF_A_H_1 47 ARCHIVE HIGH SYS T_FF_A_L_1 47 ARCHIVE LOW
试验整体结论
1.xd可以与非xd机器构建dg容灾环境(不会因为非dg不支持ehcc而导致无法搭建他们之间的dg)
2.xd与非xd的dg,ehcc功能大大缩水,基本上和非压缩状态差不多,比OLTP低很多
3.xd与非xd的dg在备库中支持select,dml,hint append等操作,这些操作是因为ehcc表在xd端就进行了ehcc降级导致
发表在 Data Guard, EXADATA
一条评论
EXADATA EHCC初试
今天有幸见识了下EXADATA的强大功能之一EHCC(Exadata Hybrid Columnar Compression),发现压缩效果确实很让人心动,压缩效率大大超过我的预计,压缩97%左右(1-628.1875/20573)
创建模拟表T_FF_SOURCE
14:32:52 SQL> create table t_FF_source as select * from dba_objects; Table created. Elapsed: 00:00:00.16 14:35:54 SQL> begin 14:37:05 2 for i in 1..100000 loop 14:37:05 3 insert into t_FF_source select * from dba_jects; 14:37:05 4 commit; 14:37:05 5 end loop; 14:37:05 6 end; 14:37:05 7 / Elapsed: 00:13:07.76 14:51:05 SQL> select count(*) from t_FF_source; COUNT(*) ---------- 197015655 Elapsed: 00:00:33.18 14:51:56 SQL> col segment_name format a45 heading "Segment Name" 14:52:55 SQL> select segment_name Segment_Name 14:52:55 2 , segment_type "Segment Type" 14:52:55 3 , round(sum(bytes)/1024/1024/1024,2) "Size In GB" 14:52:55 4 from dba_segments 14:52:55 5 where 14:52:56 6 segment_name ='T_FF_SOURCE' 14:52:56 7 group by segment_name,segment_type 14:52:56 8 order by 1; Segment Name Segment Type Size In GB --------------------------------------------- ------------------ ---------- T_FF_SOURCE TABLE 20.09
创建各种情况下压缩表
--BASE create table t_FF_c compress NOLOGGING as select /*+ PARALLE 24*/ * from t_FF_source; --OLTP create table t_FF_c_o compress for oltp NOLOGGING as select /*+ PARALLE 24 */ * from t_FF_source; --QUERY LOW create table t_FF_q_l compress for query low NOLOGGING as select /*+ PARALLE 24 */ * from t_FF_source; --QUERY HIGH create table t_FF_q_h compress for query high parallel 24 nologging as select /*+ PARALLE 12 */ * from t_FF_source; --ARCHIVE LOW create table t_FF_a_l compress for archive low parallel 24 nologging as select /*+ PARALLE 12 */ * from t_FF_source; --ARCHIVE HIGH create table t_FF_a_h compress for archive high parallel 24 nologging as select /*+ PARALLE 12 */ * from t_FF_source;
其实BASE和OLTP是数据库基本的压缩功能,该功能不仅限于EXADATA,但是后面的四种压缩就是我们所说的EHCC,也只有EXADATA用户才能够体验到.
数据压缩结果
16:19:13 SQL> select s.owner,segment_name,s.bytes/1024/1024 t_size,compress_for 16:19:20 2 from dba_segments s,dba_tables t 16:19:20 3 where s.owner=t.owner and t.table_name=s.segment_name 16:19:20 4 and s.owner='FF' and t.table_name like 'T_FF%'; OWNER SEGMENT_NAME T_SIZE COMPRESS_FOR ------------------------------ ----------------------------------- ---------- ------------ FF T_FF_A_L 1244.625 ARCHIVE LOW FF T_FF_SOURCE 20573 FF T_FF_Q_H 1244.875 QUERY HIGH FF T_FF_A_H 628.1875 ARCHIVE HIGH FF T_FF_C 6961.625 BASIC FF T_FF_Q_L 2799.875 QUERY LOW FF T_FF_C_O 7759.1875 OLTP
试验结果证明
1.BASE也OLTP的压缩效率差不多(可能是因为BASIC的PCTFREE为0,OLTP的PCTFREE为10)
2.在EHCC的四种压缩中:QUERY LOW相对压缩率不高,采用LZO压缩算法,但是也比ORACLE自带的压缩效果高很多
3.QUERY HIGH和ARCHIVE LOW压缩率差不多,都是使用ZLIB压缩算法
4.ARCHIVE HIGH是压缩率极高,采用Bzip2压缩算法实现.
EXADATA EM性能监控
发表在 EXADATA
评论关闭