===========================================================
本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数据库文件
===========================================================
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下安装配置文档
===========================================================
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错误解决一例
===========================================================
brotherxiao
发表于:2006.09.27 16:12
::分类:
(
Oracle技术讨论
)
::阅读:(187次)
::
评论
(0)
===========================================================
enqueue 等待事件一点理解
===========================================================
brotherxiao
发表于:2006.09.27 15:55
::分类:
(
Oracle技术讨论
)
::阅读:(194次)
::
评论
(0)
===========================================================
Latch 系列之一
===========================================================
brotherxiao
发表于:2006.09.27 15:51
::分类:
(
Oracle技术讨论
)
::阅读:(203次)
::
评论
(0)
===========================================================
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使用方法
===========================================================
brotherxiao
发表于:2006.09.27 15:41
::分类:
(
Oracle技术讨论
)
::阅读:(260次)
::
评论
(1)
===========================================================
ora-1242
===========================================================
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)
===========================================================
大数据量的分页查询
===========================================================
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)