Maclean答网友问:深入进阶学习Oracle数据库的规划

网友关于深入学习Oracle高级技术的规划问题, Question:

 

原因是这样的,虽然使用ORACLE 从8.1.6就开始了,但是至今还是个半半瓶醋,究其原因我认为是学习方法和课程规划有问题,学的都是些点,整条线不融汇贯通. 首先介绍下我自己的成长过程

1.入门时读了《oracle 9i 编程指南》 2.后来精读过TOM的《export one on one》 3.设计过小型的数据库系统,编写调试过大概两年PLSQL 的东西,配合INFORMATIC工具和PLSQL编写过大量银行报表 4.对SQL优化不求甚解,基本靠陈旧的经验和运气。SQL很多新特性也很少用到,只知道一些 5.熟练使用TOAD,PLSQL DEVELOPER,INFORMATIC等工具 6.编写过近一年J2EE应用,这个是在进入ORACLE管理实施工作之前做的,所有J2EE组件都编写实施过 7.也看过一些ORACLE 官方文档及METALINK里的帖子(通常是google找不到合适解决方案才去找) 8.AIX,REDHAT LINUX上实施过多套RAC,从硬件存储、服务器等加电开始做起,到完成备份恢复测试,我的工作就算结束了,然后就是定期巡检,处理一些问题而已 9.HP 11IV3上配合veritas 卷管理实施10.2 RAC也熟悉(这个没有亲手实施,旁站) 10. 购D C B A 的AUL帮客户抽取过没有备份的崩溃库

工作经验关于ORACLE基本就这么多,但是直到今天感觉自己掌握的东西都是比较浅的,而且很不系统,自己想提高和从新夯实基础知识,请各位帮我规划个学习计划

 

Maclean Said :

 

1. 熟读 官方文档 concept 、 administrator guide 、backup restore、 performance tuning这几本是必须读的,可以尝试从9i版本开始读 , 9i 10g . . . → Read More: Maclean答网友问:深入进阶学习Oracle数据库的规划

数据字典:aux_stats$基表

AUX_STATS$基表用于存放一些优化器使用的辅助统计信息。该基表会在创建数据库(create database)调用sql.bsq(11g以前)或者doptim.bsq(sql.bsq->dboptim.sql 11g以后)时被创建。

 

其中sname、pname 2列维护主键, 在这2列上还有一个唯一索引 i_aux_stats$。

 

Rem The aux_stats$ table contains auxiliary statistics used by optimizer. Rem sname and pname maintain primary key where sname stores name of set Rem of parameters and pname is name of parameter. pval1 or pval2 store Rem parameter value in character or number format. create table . . . → Read More: Oracle数据字典:aux_stats$基表

Oracle中比对2张表之间数据是否一致的几种方法

toad_compare_data7

大约是2个星期前做一个夜班的时候,开发人员需要比对shareplex 数据同步复制软件在 源端和目标端的2张表上的数据是否一致,实际上后来想了下shareplex 本身应当具有这种数据校验功能, 但是还是希望从数据库的角度得出几种可用的同表结构下的数据比对方法。

 

注意以下几种数据比对方式适用的前提条件:

 

1. 所要比对的表的结构是一致的 2. 比对过程中源端和 目标端 表上的数据都是静态的,没有任何DML修改

 

方式1:

假设你所要进行数据比对的数据库其中有一个版本为11g且该表上有相应的主键索引(primary key index)或者唯一非空索引(unique key &not null)的话,那么恭喜你! 你可以借助11g 新引入的专门做数据对比的PL/SQL Package dbms_comparison来实现数据校验的目的,如以下演示:

 

 

Source 源端版本为11gR2 : conn maclean/maclean SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production . . . → Read More: Oracle中比对2张表之间数据是否一致的几种方法

dbms_logmnr Unsupported SQLREDO

Question:

Try Testing Oracle Logminer

 

SQL> create table maclean (t1 varchar2(100)) tablespace users;

Table created.

SQL> insert into maclean values (‘MACLEAN’);

1 row created.

SQL> commit;

Commit complete.

after start logmnr: sql> …add log file …. sql> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog + dbms_logmnr.committed_data_only); sql> select sql_redo from v$logmnr_contents; create table maclean (t1 varchar2(100)) tablespace users; Unsupported . . . → Read More: dbms_logmnr Unsupported SQLREDO

Oracle Controlfile控制文件中记录的信息片段sections

初学Oracle的朋友肯定对Controlfile控制文件中到底记录了何种的信息记录而感到好奇,实际上我们可以通过一个视图v$controlfile_record_section来了解控制文件的信息片段:

 

SQL> select type, record_size, records_total from v$controlfile_record_section; TYPE RECORD_SIZE RECORDS_TOTAL —————————- ———– ————- DATABASE 316 1 CKPT PROGRESS 8180 35 REDO THREAD 256 32 REDO LOG 72 192 DATAFILE 520 1024 FILENAME 524 4674 TABLESPACE 68 1024 TEMPORARY FILENAME 56 1024 RMAN CONFIGURATION 1108 50 LOG HISTORY 56 292 OFFLINE RANGE 200 1063 . . . → Read More: Oracle Controlfile控制文件中记录的信息片段sections

有哪些功能是DBMS_STATS无法实现而Analyze命令可以做到的?

今天有同行问我DBMS_STATS与Analyze的区别, 我简单地介绍了一下DBMS_STATS提供了更丰富的功能,从8i开始推荐使用DBMS_STATS来完全替代Analayz Table/Index/Cluster 命令收集数据库中对象的统计信息。

 

之后他又问起我有那些功能是Analyze 命令可以做到,反而DBMS_STATS做不到的?

 

这个问题我倒是没有很系统地去考虑过, 闪过脑子的2个念头就是Analyze Table/Index validate structure 和 Analyze Table list chained rows into chained_rows 这2个命令。

 

Google了一下相关的信息,发现Asktom对这个已经讨论过了,从8i以后analyze被提名为具备”validate”验证功能的命令,主要负责验证表和索引的结构以及链式行(chained and migrated rows)信息; 而DBMS_STATS包负责统计信息的管理。

 

analyze is slated to do this and this alone at some time in the future. analyze is destined to be the “validate” thing — . . . → Read More: 有哪些功能是DBMS_STATS无法实现而Analyze命令可以做到的?

Oracle 11g Database SQL语言基础 by Kevinlin

同事 Kevinlin 写的一个<Oracle 11g Database SQL语言基础> ,内容非常丰富, 详细介绍了11g SQL的一些新特性和基础概念, 原本是给客户做培训用的 , 这里分享一下, 感谢Kevinlin在Oracle领域为我们做出的贡献!

 

简单介绍下 Kevinlin: 资深DBA ,高级Oracle技术支持,拥有超过10年的Oracle 管理使用经验, 擅长 故障诊断和性能调优。

 

下载地址:http://www.oracledatabase12g.com/wp-content/uploads/2011/11/Oracle11g-Database-SQL语言基础.ppt

 

 

检查Oracle数据库软件是Enterprise Edition或Standard Edition的10种方法

我们在接手企业的产品数据库时首先总是要了解一下数据库的版本、版本号等信息。

Oracle数据库软件根据用户不同的需求分成多种版本(Database Edition),它们分为:

Oracle Database Standard Edition One :delivers unprecedented ease of use, power, and performance for workgroup, department-level, and Web applications. From single-server environments for small business to highly distributed branch environments, Oracle Database Standard Edition One includes all the facilities necessary to build business-critical applications.

Oracle Database Standard Edition:delivers the unprecedented ease of . . . → Read More: 检查Oracle数据库软件是Enterprise Edition或Standard Edition的10种方法