ORACLE DBA必备技能 – 使用OSWatcher(OSWBB)工具监控系统性能负载

QQ截图20140728134817

oswbb

 

 

 ORACLE DBA必备技能 – 使用OSWatcher工具监控系统性能负载.pdf

ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册

ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册下载

PRM for Oracle Database灾难恢复工具,Schema级别数据恢复。JAVA图形化界面版Oracle DUL

图片4

Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性

#上海ORACLE用户组2014年高峰论坛#精彩瞬间

PRM – PARNASSUSDATA RECOVERY MANAGER For Oracle Database介绍手册

PRM – PARNASSUSDATA RECOVERY MANAGER For Oracle Database介绍手册下载:

 

PRM – ParnassusData Recovery Manager For Oracle Database, ParnassusData Software System提供,高效地恢复损坏ORACLE数据库中的数据。

 

PRM服务

 

PRM – ParnassusData Recovery Manager For Oracle Database,是由ParnassusData Software System(暨诗檀(上海)软件系统有限公司)独立研发的Oracle数据库灾难修复软件,拥有独立的软件著作权。用户可以购买PRM,通过其全程图形化交互的简单使用体验来自行恢复数据;用户也可以购买ParnassusData提供的Oracle数据库灾难恢复服务,由ParnassusData派遣专家级恢复工程师远程或现场协助用户应对数据库损坏难题。传统数据库损坏后的恢复总是需要资深数据库专家或者原厂专家的帮忙,但是PRM独创的高易用性恢复向导将恢复过程浓缩到简要的几个步骤,任何一个稍有基础的技术人员均可以独立完成恢复作业。由于PRM是直接从损坏数据库的数据文件中抽取数据,故其所做的读取是脏读。在没有充分备份条件下数据库灾难恢复的性质决定了任何软件工具不可能保证可以恢复100%一致的数据,但只要数据还没有被彻底覆盖,那么PRM可以保证恢复99.9%的数据。

 

 

PRM的优势

 

 

ParnassusData立志于提供更高效、简便的Oracle数据库灾难恢复产品:

 

  • 可以从无法打开的数据库中直接抽取Table和Cluster中的数据
  •   独创DataBridge模式将抽取出来的数据直接发送到目标数据库,无需用户费时费力再手动导入
  •   直接从数据文件中恢复数据,健壮度极强
  •   如果有SYSTEM表空间,适用于字典模式(Dict-Mode),提供图形化树形图预览数据
  •   如果丢失了SYSTEM表空间,通过PRM智能扫描同样可以轻松预览数据
  •   无需数据库完成介质恢复或崩溃恢复,即可绕过归档日志archivelog
  •   即便对于已经部分损坏的数据块,PRM仍能恢复其中的可用数据
  •   从ORACLE 9i到12c等多个版本均经过严格测试
  •    基于JAVA开发,最低软件要求为JDK 1.4,绿色无需安装,跨所有操作系统平台包括但不限于:常见Unix如AIX,HPUX ,Solaris, Linux(redhat、OEL、SUSE)以及Windows
  •   全面支持ASM

重整旗鼓

 

虽然我们可以通过PRM为用户克服数据库损坏难关,但数据库灾难恢复仍十分危险。ParnassusData拥有对ORACLE数据库备份恢复的丰富经验和解决方案,可以在用户有限的硬件资源条件下提供最实用的备份恢复方案,这些方案包括但不限于:DataGuard,物理或逻辑备份。ParnassusData将为用户在备份成本控制与备份有效性之间作出最佳平衡。

ParnassusData Recovery Manager For Oracle 白皮书(Version 0.2)

附件为临时的ParnassusData Recovery Manager For Oracle白皮书(Version 0.2),这个白皮书还在完善中,你可以把它当做一个临时的PRM使用手册。

 

prm-pic1_0

 下载ParnassusData Recovery Manager For Oracle社区版本,http://parnassusdata.com/d01/ParnassusData_PRMforOracle_2001.zip

 

 

也许你现在还用不上,但有备无患! PRM For Oracle数据库灾难恢复软件

PRM For Oracle 灾难恢复软件最新版下载地址:

http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3004.zip

PRM For Oracle 灾难恢复软件介绍手册:

http://www.parnassusdata.com/sites/default/files/PRM%20%E2%80%93%20PARNASSUSDATA%20RECOVERY%20MANAGER%20For%20Oracle%20Database%E4%BB%8B%E7%BB%8D%E6%89%8B%E5%86%8C.pdf

【Oracle开发】关于11.2上WMSYS.WM_CONCAT的workaround

有很多人问关于新版本中WMSYS.WM_CONCAT函数无法使用的问题。

 

对于该函数,Oracle官方的态度是其从来没有将该函数列入任何官方文档中,这个函数仅仅是让Oracle Dev研发在针对内部对象例如SYS的存储过程、字典表等使用的,并没有鼓励普通的应用开发者去使用该WMSYS.WM_CONCAT函数,但是由于部分应用开发者发现了这个函数,而且觉得较为好用,所以在应用程序编写过程中大量使用该函数,其结果是由于Oracle对该函数在后续版本中的修改(包括fix、增强)乃至于完全去掉这个函数都是有可能的。

 

不少人就遇到了这个问题,在新的11.2中没有找到该WMSYS.WM_CONCAT函数,也就意味着其应用程序无法在11.2上正常运行。

这里可以说最初发现这个WMSYS.WM_CONCAT函数的人,即做了一件好事,同时又做了一件坏事。

Oracle官方的态度是在11.2中应当使用 listagg函数而非WMSYS.WM_CONCAT。

关于LISTAGG:

Oracle® Database SQL Language Reference 11g Release 2 (11.2)

Oracle® Database SQL Language Reference 12c Release 1 (12.1)

但国内的一些朋友肯定还会坚持要在11.2中使用WMSYS.WM_CONCAT,这里提供一种workaround,自己用source来创建WMSYS.WM_CONCAT

 

 

SQL>  CREATE OR REPLACE
type       WM_CONCAT_IMPL wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
d
270 160
bg9hz+fBwa888VEZGViHFs/oOP0wg433f64df3QCWE7VehmhTFcUe3y+JrsniV3cSuvmnE3g
Y93dtR+cCsU1N+UQDGbtzhCf2HIdr8lPzfgF2bmCTvmGlHQbTAjTftNrDq3p093ncwb32OyX
3ZFDTeH2jpjm3uWYyT8kZBfJIYxRwgLfRApoW32cpy0eRnvDBt2XfTAMXKCSNnqSoTiGA83W
6deKW+rWyBu9L/EPyFkmQZeBncNsiNDF8fa1Sm6vdQiEanlCQnaPJ11a0na8hK6psDSaey+x
fdMupCwSvg6gMrSV4QCguhOCqW2AmxRVMqpXJootPpTBxBFZc7hORGbriUI=
/
Type created.

#www.askmaclean.com
SQL>  CREATE OR REPLACE function wm_concat wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
58 96
+CuW1MAfZPVR6NOnXKVmXY2o9pswg8eZgcfLCNL+XhZy8K7/cgzcVrPnfMPnx3TAM7h0ZSXD
j57Asr2ym9ZtFldFmFu+RdpAU8VGORKSvtVG+DmAOR4C+NTa+Pit2kDbEpI5zhZUgqameSkE
DQ==
/
Function created.

#http://www.askmaclean.com/archives/wmsys-wm_concat.html 
#www.askmaclean.com
SQL>  select wm_concat(object_id) from sys.user_objects
/
WM_CONCAT(OBJECT_ID)                                                            
--------------------------------------------------------------------------------
108674,108672,53144,53147,53150,53151,53162                                     
1 row selected.

 

【Oracle数据库恢复】I_OBJ1、I_OBJ2、I_OBJ3、I_OBJ4、I_OBJ5等SYS索引的修复

I_OBJ1、I_OBJ2、I_OBJ3、I_OBJ4、I_OBJ5这几个都是OBJ$基表的索引,如果损坏会非常麻烦,因为ORACLE 对这些对象的DDL做了严格限制,你没有办法简单修复他们。
如下面的例子:

*** 2012-01-31 05:59:24.837
Doing block recovery for file 25 block 2256706
Block header before block recovery:
buffer tsn: 0 rdba: 0x06626f42 (25/2256706)
scn: 0x08b7.b1dff478 seq: 0x01 flg: 0x04 tail: 0xf4780601
frmt: 0x02 chkval: 0x8da3 type: 0x06=trans data
Doing block recovery for file 25 block 2256706
Block header before block recovery:
buffer tsn: 0 rdba: 0x06626f42 (25/2256706)


--------------------
It looks like PMON is trying to recover a block, and is unable to do so.
select * from dba_extents where 2256706 between block_id and block_id +
blocks
SQL> i
2 and file_id = 25;
SYS I_OBJ5
INDEX SYSTEM
70 25
2256640 1048576 128
25


以上确认了25号文件2256706出现了问题,对应对象为SYS的索引i_obj5 ,但是由于这个是字典基表OBJ$上的索引,所以无法直接重建的:

 

 

No ddl is allowed for i_obj5 as it is needed for warm start:
SQL> drop index i_obj5;
drop index i_obj5
*
ERROR at line 1:
ORA-00701: object necessary for warmstarting database cannot be altered

alter system set events '10293 trace name context forever, level 1';
and also get 3 PMON errorstack at level 5133 in 1 min intervals.
dbv userid=sys/pass file= blocksize= start=2256706 end=2256706

 

以上可以看到对索引做任何操作都会报ORA-701错误,这里我们需要特殊的手段才能真正意义上修复I_OBJ1、I_OBJ2、I_OBJ3、I_OBJ4、I_OBJ5等SYS索引。

 

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 400-690-3643   备用电话: 18501767907    邮箱:service@parnassusdata.com

 

#ORACLE 12c in-memory#

#ORACLE 12c in-memory# IBM这次很敏捷,马上就DB2 BLU和Oracle 12c in-memory做对比。其攻击矛头指向几点:Oracle磁盘上的数据仍以行row形式存,存放重复列存数据,O必须把所有列存数据放入内存,内存列存让重启预热变长。Oracle说我只是蛋糕上加了草莓而已,别整那些没用的。

ORACLE DUL/PRM常见问题汇总FAQ

FAQ 常见问题解答

  1. 我不知道我的数据库的字符集信息怎么办?

你可以通过ORACLE告警日志alert.log来大致了解你的数据库字符集信息,例如:

[oracle@mlab2 trace]$ grep  -i character alert_Parnassus.log

Database Characterset is US7ASCII

Database Characterset is US7ASCII

alter database character set INTERNAL_CONVERT AL32UTF8

Updating character set in controlfile to AL32UTF8

Synchronizing connection with database character set information

Refreshing type attributes with new character set information

Completed: alter database character set INTERNAL_CONVERT AL32UTF8

alter database national character set INTERNAL_CONVERT UTF8

Completed: alter database national character set INTERNAL_CONVERT UTF8

Database Characterset is AL32UTF8

Database Characterset is AL32UTF8

Database Characterset is AL32UTF8

  1. 为什么我使用PRM总是闪退或者报一些例如” gc warning: Repeated allocation of very large block (appr.size 512000)”的GC报错?

就目前ParnassuData看到的案例而言,绝大多数此类问题都是由于使用了非推荐的JAVA环境所造成的;特别是在Linux平台上使用了redhat gcj java的话很容易造成该问题。ParnassusData建议用户使用ORACLE提供的JDK1.6以上环境运行PRM,可以直接使用$JAVA_HOME/bin/java –jar prm.jar来启动PRM。

各个操作系统平台的JDK 1.6的下载连接如下:

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR

  1. 如果我发现了PRM的bug,我应当如何report bug给ParnassusData?

ParnassusData欢迎任何人给我们report bug,只需要发邮件到report_bugs@parnassusdata.com就好了, 建议提交bug时附上您详细的运行环境 包括操作系统、JAVA运行环境和ORACLE数据库版本的环境信息。

  1. 我启动PRM出现下面的错误怎么办?

Error: no `server’ JVM at `D:\Program Files (x86)\Java\jre1.5.0_22\bin\server\jvm.dll’.

这是由于用户的环境中安装的是JAVA Runtime Environment JRE,而没有安装JDK。而启动PRM的脚本中加入了-sever的选项,该选项在JRE 版本1.5之前是没有的,所以会出现该错误。

ParnassusData建议用户使用ORACLE提供的JDK1.6以上环境运行PRM。

各个操作系统平台的JDK 1.6的下载连接如下:

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR

  1. 为什么我在使用PRM时中文显示乱码?

目前已知有2种可能导致该中文显示乱码问题:

l  PRM所运行操作系统环境没有安装中文语言包,例如PRM运行在没有安装中文语言包的Linux平台上,那么PRM作为一个软件是无法正常显示中文的。

l  操作系统已经安装了必要的语言包,但启动PRM使用的是JDK 1.4的JAVA运行环境,同样可能出现中文乱码,该问题建议使用JDK 1.6或以上版本来解决

  1. PRM是否支持LOB大对象字段?

PRM支持CLOB、NCLOB、BLOB等大对象字段,包括分区表、Disable/Enable Storage in ROW等情况均支持对LOB的数据搭桥模式,LOB数据一样无需落地,就可以应用到远程目标数据库中。

对于LOB大对象字段不支持普通的UNLOAD抽取方式,因为抽取方式在数据导入时会十分麻烦;所以我们也推荐用户尽可能使用DataBridge数据搭桥模式。

  1. PRM有什么讨论的论坛吗?

目前我们有中文的PRM讨论BBS版面,地址为:

http://t.askmaclean.com/forum-24-1.html

  1. 为什么我运行PRM遇到以下的报错?

JVMJ9GC020E -Xms too large for heap

JVMJ9VM015W Initialization error for library j9gc23(2): Failed to initialize

Could not create the Java virtual machine.

这是因为AIX上IBM的JVM无法分配prm.sh所指定的JAVA虚拟机分配内存,之所以在prm.sh中指定-Xms最小分配内存大小是为了获得更好的性能和稳定性。

对于上述错误 可以直接运行 java –jar prm.jar 来绕过。

但诗檀仍推荐用户安装JDK 1.6或以上版本。  下为部分平台上的JDK下载地址:

AIX JAVA SDK 7 http://pan.baidu.com/s/1i3JvAlv
Linux JDK 7 64bit http://pan.baidu.com/s/1jGl3AT4
Linux JDK 7 32bit http://pan.baidu.com/s/1mg6ymnQ
Solaris JDK 7 x86-64bit http://pan.baidu.com/s/1gdzgSvh
Solaris JDK 7 x86-32bit http://pan.baidu.com/s/1mgjxFlQ
Solaris JDK 7 Sparc http://pan.baidu.com/s/1pJjX3Ft

其他下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

9.  为什么我运行PRM并加载数据文件LOAD后报错说 “据文件版本不一致!请检查输出内容以确认“

首先确认加入的数据文件是否都属于同一个数据库,如果不属于同一个数据库那么出现上述错误是正常的。

其次检查后台输出的信息(启动PRM的终端如cmd,terminal):

D:\Software\Management Tools\ParnassusData_PRMforOracle_2001>java -Xms1024M -server -jar  prm.jar

Error in checkDBFFilesVersion(). E:\app\oracle\oradata\orcl\SYSTEM01.DBF (拒绝访问。)

java.io.FileNotFoundException: E:\app\oracle\oradata\orcl\SYSTEM01.DBF (拒绝访问。)

at java.io.RandomAccessFile.open(Native Method)

at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)

at java.io.RandomAccessFile.<init>(RandomAccessFile.java:98)

at com.zeradata.k.a(k.java:1)

at com.zeradata.k.<init>(k.java:12)

at com.zeradata.A.a(A.java:6)

at com.zeradata.A.a(A.java:186)

at com.zeradata.B.a(B.java:2214)

at com.zeradata.B.<init>(B.java:2511)

at com.zeradata.o.<init>(o.java:90)

at com.zeradata.zrm.gui.a4.b(a4.java:69)

at com.zeradata.zrm.gui.a4.c(a4.java:128)

at com.zeradata.zrm.gui.q.actionPerformed(q.java:2)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:5517)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)

at java.awt.Component.processEvent(Component.java:5282)

at java.awt.Container.processEvent(Container.java:1966)

at java.awt.Component.dispatchEventImpl(Component.java:3984)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Component.dispatchEvent(Component.java:3819)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

at java.awt.Container.dispatchEventImpl(Container.java:2010)

at java.awt.Window.dispatchEventImpl(Window.java:1791)

at java.awt.Component.dispatchEvent(Component.java:3819)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

DB file version info:

File: E:\app\oracle\oradata\orcl\SYSTEM01.DBF, db version: 0

如发现上述类似信息,则说明是因为PRM无权限访问输入的数据文件所致,由于Window下的文件权限管理,可能导致上述由于权限而无法访问数据文件的错误。

对于上述问题,可以通过 以“管理员身份“ 启动cmd命令行,然后在有管理员权限的cmd下启动prm.bat来解决。

分享一张Oracle CBO(cost based optimizer)的图 从APP到DB到HW

分享一张Oracle CBO(cost based optimizer)的图 从APPlication 到DB数据库到Hardware 硬件

cbo sql performance