海阔凭鱼跃,天高任鸟飞
===========================================================
本blog不再更新
===========================================================

新的blog地址迁移到www.imdba.net,感谢各位捧场

 查看全文
brotherxiao 发表于:2007.06.04 14:01 ::分类: ( Oracle技术讨论 ) ::阅读:(141次) :: 评论 (0)
===========================================================
Oracle安装
===========================================================
今天一位项目的兄弟在现场安装数据库碰到了问题,请求远程支援。还要有网络这个好东西,不然要大老远跑到河南去了。 查看全文
brotherxiao 发表于:2007.03.06 17:36 ::分类: ( Oracle技术讨论 ) ::阅读:(435次) :: 评论 (6)
===========================================================
DSI401-Oracle块与分析
===========================================================
课程目标
1、在操作系统级别dump oracle block
2、解释格式化的dump结果
3、识别oracle块中的关键数据结构
4、收集解释相关的诊断信息
5、采取合适的恢复策略 查看全文
brotherxiao 发表于:2007.01.04 17:46 ::分类: ( Oracle技术讨论 ) ::阅读:(711次) :: 评论 (2)
===========================================================
DSI401-索引与索引DUMP分析
===========================================================
课程目标
解释索引块dump和索引树dump结果
诊断并修复索引相关的错误 查看全文
brotherxiao 发表于:2007.01.04 10:42 ::分类: ( Oracle技术讨论 ) ::阅读:(725次) :: 评论 (1)
===========================================================
DSI401-回滚段损坏与恢复
===========================================================
课程目标:
识别和解释回滚段崩溃
收集、诊断相关信息
实施合适的恢复过程 查看全文
brotherxiao 发表于:2006.12.31 11:56 ::分类: ( Oracle技术讨论 ) ::阅读:(4242次) :: 评论 (104)
===========================================================
DSI403e读书笔记之七--DUMP数据库文件
===========================================================
课程目标
学会dump并分析数据库文件 查看全文
brotherxiao 发表于:2006.12.11 17:29 ::分类: ( Oracle技术讨论 ) ::阅读:(616次) :: 评论 (136)
===========================================================
DSI403e读书笔记之六--非常规组件的备份与恢复
===========================================================
课程目标
1、从功能和内部技术角度上描述只读数据文件,脱机文件,控制文件等组件的备份与恢复。
2、数据块恢复
3、从stucky recovery中恢复
更多的非常规的恢复例如RAC,不完全恢复,resetlogs的影响等相关内容在DSI403 backup and recovery processes中讲述。 查看全文
brotherxiao 发表于:2006.12.08 15:22 ::分类: ( Oracle技术讨论 ) ::阅读:(445次) :: 评论 (2)
===========================================================
DSI403e读书笔记之五--Oracle恢复机制
===========================================================
课程目标:
1、解释数据库的启动阶段nomount,mount,open
2、解释实例恢复与媒体恢复的阶段
3、理解nologging的后果
4、解释不能恢复的原因 查看全文
brotherxiao 发表于:2006.12.03 16:59 ::分类: ( Oracle技术讨论 ) ::阅读:(484次) :: 评论 (0)
===========================================================
创建物化视图ORA-12014错误解决方法
===========================================================

1、创建物化视图

reate materialized view DA_XXX_XQ
tablespace users refresh force on demand
as
SELECT * from DA_XXX_XQ@Xdblnk

ORA-12014: 表'DA_XXX_XQ'不包含主键约束条件

解决方法:

a、使用rowid创建物化视图;

create materialized view DA_XXX_XQ
tablespace xcgl_gdsj

refresh force on demand with rowid
as
SELECT * from DA_XXX_XQ@Xdblnk;
§ 使用rowid仅仅是为了向后兼容,不能担保rowid的确定性,因为move table,exp/imp等操作等有可能会改变rowid
b、为表定义主键;
§ 某些表可能没有唯一性字段,无法定义主键

c、使用完全刷新;
§ 完全刷新会对网络负载产生较大影响,应当尽量避免。

具体采用哪种方法还要视具体情况分析而定.


brotherxiao 发表于:2006.12.02 16:02 ::分类: ( Oracle技术讨论 ) ::阅读:(627次) :: 评论 (0)
===========================================================
DSI403e读书笔记之四--日志与检查点结构
===========================================================
日志与检查点结构 查看全文
brotherxiao 发表于:2006.11.28 23:59 ::分类: ( Oracle技术讨论 ) ::阅读:(419次) :: 评论 (2)
===========================================================
403e读书笔记二--ORACLE备份恢复产品及特点
===========================================================
简要介绍所有ORACLE备份恢复产品及特征 查看全文
brotherxiao 发表于:2006.11.23 12:46 ::分类: ( Oracle技术讨论 ) ::阅读:(337次) :: 评论 (2)
===========================================================
403e读书笔记一:术语与结构
===========================================================

主要内容:

数据库服务结构

备份与恢复组件相关术语

数据库的ACID属性

REDO与UNDO的区别

 查看全文
brotherxiao 发表于:2006.11.22 15:14 ::分类: ( Oracle技术讨论 ) ::阅读:(238次) :: 评论 (0)
===========================================================
增量刷新聚合物化视图创建注意问题
===========================================================

最近公司开发组需要物化视图对数据库性能进行优化,在程序访问前预先处理结果,以加快应用程序相应速度。

需要对聚合型物化视图作增量刷新。其中某些条件需要进行处理,经过测试终于实现。总结了一下,有两点需要特别注意:

1、增加刷新聚合物化视图的限制条件

2、insert /update/delete刷新要求条件

测试案例见全文

 查看全文
brotherxiao 发表于:2006.11.20 10:06 ::分类: ( Oracle技术讨论 ) ::阅读:(389次) :: 评论 (2)
===========================================================
备份与恢复中的SCN
===========================================================

1、定义:scn--system change number(系统改变号)

标识数据库的提交版本,用于维护数据库一致性的重要数据结构

2、获取SCN

dbms_flashback.get_system_change_number(9i)

select max(ktuxescnw*power(2,32)+kutxescnb) from x$ktuxe;(9i以前)

3、SCN分类

SCN在数据库中无处不在,ITL,controlfile,datafile header,redo log,data block 等等记录着SCN,但作用各不相同。常见的SCN:

checkpoint scn--检查点SCN,通常作为实例恢复的起点

incrementalSCN--增量检查点SCN(9i以后引入)

3、SCN用于恢复

Unrecoverable SCN:不可恢复SCN,记录最近的nologging操作SCN。 查看全文
brotherxiao 发表于:2006.10.18 12:42 ::分类: ( Oracle技术讨论 ) ::阅读:(316次) :: 评论 (0)
===========================================================
BTree索引原理
===========================================================

巨好文章,本打算翻译一下,后来还是觉得还是原文好点understanding indexes.pdf


brotherxiao 发表于:2006.10.10 16:24 ::分类: ( Oracle技术讨论 ) ::阅读:(468次) :: 评论 (5)
===========================================================
rman下面误删除归档日志的解决方法
===========================================================

rman下误删除归档日志的解决方法:

change archivelog all crosscheck;

误删除备份集的解决方法类似:

crosscheck backup;

delete obsolete;

 查看全文
brotherxiao 发表于:2006.09.28 18:22 ::分类: ( Oracle技术讨论 ) ::阅读:(410次) :: 评论 (0)
===========================================================
BBED工具用法
===========================================================

今天看了下BBED--block browse block edit的缩写,用来直接查看和修改数据文件数据的一个工具。感觉功能比较强大,但也只能在某些特殊场合下奏效。

1、损坏的是个别数据块

2、部分条件已知

能够重新并计算应用checksum倒是个很有用的东西

做了下简单试验,懒得写下了,先给各参考链接。

http://blog.itpub.net/post/385/40969


brotherxiao 发表于:2006.09.28 15:16 ::分类: ( Oracle技术讨论 ) ::阅读:(191次) :: 评论 (0)
===========================================================
windows下安装配置文档
===========================================================

现在安装配置文档满天飞,我在CNOUG也上传了,看样子还是windows平台的下载数量最多。故将windows下8i和9i的安装配置文档收录在此,以方便大家。

windows+oracle9i数据库安装配置指导手册[1].part1.rar

windows+oracle9i数据库安装配置指导手册[1].part2.rar

windows+oracle817数据库安装配置参考说明.pdf

其他平台请参考:

http://www.oracle.com.cn/viewthread.php?tid=101564&extra=page%3D1


brotherxiao 发表于:2006.09.28 14:50 ::分类: ( Oracle技术讨论 ) ::阅读:(269次) :: 评论 (0)
===========================================================
数据库坏块问题[原创]
===========================================================

作为DBA难免会碰到数据库坏块。一般根据错误发生的情况不同可能有不同的错误特征,比较常见的有ora-1578,ora600[12700](处理方法可参考前面发表的文章)等等,处理方法:

1、识别坏块

2、修复坏块

 查看全文
brotherxiao 发表于:2006.09.28 11:18 ::分类: ( Oracle技术讨论 ) ::阅读:(286次) :: 评论 (1)
===========================================================
9i imp到8i错误解决一例
===========================================================
9i imp到8i错误解决 查看全文
brotherxiao 发表于:2006.09.27 16:12 ::分类: ( Oracle技术讨论 ) ::阅读:(187次) :: 评论 (0)
===========================================================
enqueue 等待事件一点理解
===========================================================
enqueue 等待事件 查看全文
brotherxiao 发表于:2006.09.27 15:55 ::分类: ( Oracle技术讨论 ) ::阅读:(194次) :: 评论 (0)
===========================================================
Latch 系列之一
===========================================================

latch 介绍与调整初步

 查看全文
brotherxiao 发表于:2006.09.27 15:51 ::分类: ( Oracle技术讨论 ) ::阅读:(203次) :: 评论 (0)
===========================================================
offline drop 不起作用?–yh出差记
===========================================================
offline drop 不起作用?–yh出差记 查看全文
brotherxiao 发表于:2006.09.27 15:49 ::分类: ( Oracle技术讨论 ) ::阅读:(182次) :: 评论 (1)
===========================================================
ora600[12700]解决方法[转自metalink]
===========================================================

一次碰到ora600[12700],在metalink上找到了解决办法。

 查看全文
brotherxiao 发表于:2006.09.27 15:44 ::分类: ( Oracle技术讨论 ) ::阅读:(224次) :: 评论 (0)
===========================================================
logminer使用方法
===========================================================
logminer使用方法 查看全文
brotherxiao 发表于:2006.09.27 15:41 ::分类: ( Oracle技术讨论 ) ::阅读:(260次) :: 评论 (1)
===========================================================
ora-1242
===========================================================
遭遇ora-01242 查看全文
brotherxiao 发表于:2006.09.27 15:39 ::分类: ( Oracle技术讨论 ) ::阅读:(177次) :: 评论 (0)
===========================================================
ORA-12011+ORA-06512–job容易令人迷惑的执行失败问题
===========================================================
ORA-12011+ORA-06512–job容易令人迷惑的执行失败问题 查看全文
brotherxiao 发表于:2006.09.27 15:32 ::分类: ( Oracle技术讨论 ) ::阅读:(466次) :: 评论 (0)
===========================================================
控制文件解析
===========================================================

最近抽空翻翻书,对一些internal的东西小有收获,整理一点控制文件的内容。

controlfile.pdf


brotherxiao 发表于:2006.09.27 14:59 ::分类: ( Oracle技术讨论 ) ::阅读:(174次) :: 评论 (0)
===========================================================
Windows下的Oracle数据库的重建
===========================================================

在物理文件都未丢失或有完全备份的情况下重建数据库

1、将原有数据库数据文件copy到原来的位置(相同目录下),如果不是相同目录下就比较麻烦一点:你需要在修改参数文件中的control_files,并在mount状态下修改数据文件位置参数(理论上应该是可行的,因为麻烦所以没有亲自测试)。

2、需要的话修改初始化参数文件%oracle_home%/<SID>/pfile/init<SID>.ora

3、创建windows服务:

Oradim -new -sid <sid> -pfile %oracle_home%/<SID>/pfile/init<SID>.ora

4、配置监听器

修改%oracle_home%/network/admin/tnsname.ora

5、使用REGEDIT创建字符串变量Oracle_SID,值为数据库的sid

6、重起监听器和数据库

lsnrctl>start

c:>set oracle_sid=<sid>

sql>startup


brotherxiao 发表于:2005.03.07 15:57 ::分类: ( Oracle技术讨论 ) ::阅读:(339次) :: 评论 (0)
===========================================================
关于触发器学习的总结
===========================================================

1、触发器的分类及用途

2、触发触发器

3、应注意的几点问题

4、变异表

 查看全文
brotherxiao 发表于:2005.03.03 10:18 ::分类: ( Oracle技术讨论 ) ::阅读:(466次) :: 评论 (0)
===========================================================
大数据量的分页查询
===========================================================

oracle 数据分页查询

1. 利用分析函数
2. 使用rownum 虚列
------------------------------------------------------------------------

 查看全文
brotherxiao 发表于:2005.02.03 15:18 ::分类: ( Oracle技术讨论 ) ::阅读:(363次) :: 评论 (0)
===========================================================
根据线程ID获取线程执行SQL语句
===========================================================

在windows中线程ID可通过工具获取,例如Mircosoft的QSlice,下面是获取线程执行语句的脚本

REM getsql.sql
REM author eygle
REM 在windows上,已知进程ID,得到当前正在执行的语句
REM 在windows上,进程ID为16进制,需要转换,在UNIX直接为10进制
SELECT   /*+ ORDERED */
         sql_text
    FROM v$sqltext a
   WHERE (a.hash_value, a.address) IN (
            SELECT DECODE (sql_hash_value,
                           0, prev_hash_value,
                           sql_hash_value
                          ),
                   DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
              FROM v$session b
             WHERE b.paddr = (SELECT addr
                                FROM v$process c
                               WHERE c.spid = TO_NUMBER ('&pid', 'xxxx')))
ORDER BY piece ASC


brotherxiao 发表于:2005.02.03 10:47 ::分类: ( Oracle技术讨论 ) ::阅读:(369次) :: 评论 (0)
===========================================================
Oracle中的进制转换
===========================================================

1、Oracle提供了十进制及十六进制的转换功能

sql>select to_char(100,'xxx') from dual;

TO_CHAR(100,'XXX')
------------------
  64

sql>select to_number('64','xxx') from dual;

TO_NUMBER('64','XXX')
---------------------
                  100

2、Oracle提供了二进制到十jinzhi 的转换函数,但没有提供直接从十进制到二进制的转换函数,我们可通过自编函数来实现

SQL> select bin_to_num(1,1,0,1) from dual;

BIN_TO_NUM(1,1,0,1)
-------------------
                 13

Oracle中进制转换函数示例:

--十进制转换成其他进制基函数

create or replace function to_base(p_dec in number, p_base in number)
return varchar2
is
declare
l_str varchar2 default null;
l_num number default p_dec;
l_hex varchar2(16) default '0123456789ABCDEF';
begin
 if (p_dec is null or p_base is null)
 then return null;
 end if;
 if trunc(p_dec)<>p_dec then
 raise PROGRAM_ERROR;
 end if;
 loop
  l_str := substr(l_hex, mod(l_num,p_base)+1, 1 ) || l_str;
 l_num := trunc(l_num/p_base );
 exit when (l_num = 0 );
 end loop;
 return l_str;
end to_base;

create or replace function to_bin(p_dec in nummer)
return varchar2
is
begin
 return to_base(p_dec,2);
end;

create or replace function to_hex(p_dec in number)
return varchar2
is
begin
return to_base(p_dec,16);
end;

create or replace function to_oct(p_dec in number)
is
begin
return to_base(p_dec,8);
end;

--其他进制转换成十进制

create or replace function to_dec(p_str in varchar2,p_from_base in number default 16)
return number
is
l_num number default 0;
l_hex varchar2(16) default '0123456789ABCDEF';
begin
 if (p_str is null or p_from_base is null) then
 return null;
 end if;
 for i in 1..length(p_str) loop
 l_num:=l_num*p_from_base+instr(1_hex,upper(substr(l_hex,i,1)))-1;
 end loop;
 return 1_num;
end;


brotherxiao 发表于:2005.02.03 10:30 ::分类: ( Oracle技术讨论 ) ::阅读:(328次) :: 评论 (0)
===========================================================
树形查询与排序
===========================================================

要求:对树形结构中查询出来的数据再对同层兄弟结点进行排序

最简单的解决方法:

Oracle 9i提供了一个ORDER BY子句的关键字SIBLINGS允许对层次数据以有意义的方式进行分类,同时保留层次结构。

例如:表table_name

ID PARENT_ID
---------------
1 0
2 0
11 1
12 1
15 1
19 1

希望查处来的数据:
ID PARENT_ID
-----------------
1 0
11 1
12 1
15 1
19 1
2 0

查处来的数据格式是:
ID PARENT_ID
-----------------
1 0
19 1
15 1
11 1
12 1
2 0

解决方法:

SELECT  t.id,t.parent_id
FROM table_name t
START WITH id = 0
CONNECT BY parent_id = id
ORDER SIBLINGS BY id;


即可在个层级(1,2)上按字母表顺序进行排序,这种方法对生成树状报表非常有用。


brotherxiao 发表于:2005.02.02 17:54 ::分类: ( Oracle技术讨论 ) ::阅读:(416次) :: 评论 (0)
自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
博客统计...
网站链接...