一次rman问题的处理
今天在进行例检的时候,发现dp在凌晨一点多的时候备份归档日志发生了一些错误,具体的rman报错为OB2BAR application on "XXXX02" successfully started.ob2rman.exe started with arguments:-backup -fullRecovery Manager: Release 9.2.0.6.0 - 64bit ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMAN> connected to target database: XXXX (DBID=169290886)RMAN> connected to recovery catalog databaseRMAN> RMAN> run {2> allocate channel 'dev_0' type 'sbt_tape'3>
linux查看处理器个数的方法
今天做设备验收,在查看cpu个数的时候,发现的一条命令[@more@]cat /proc/cpuinfo 1,processor 会从0开始记数 继续下去多个cpu2,flags 如果有 ht 说明支持超线程技术3,判断物理CPU的个数可以查看physical id 的值,相同则为同一个物理 CPU。下面是自己服务器上的cpuinfo文件的内容:processor : 0vendor_id : GenuineIntelcpu family : 15model : 4model name : Intel(R) Xeon(TM) CPU 3.00GHzstepping : 3cpu MHz : 3000.953cache size : 2048 KBphysical id : 3siblings
Rman Crosscheck删除失效归档
最近在做巡检的时候发现,有台数据库服务器归档日志备份经常会出现一些问题,"specification does not match any archive log in the recovery catalog",估计是arch目录中的文件名称和catalog中的文件名称有差异.所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常.[@more@]1.连接数据库rman target / catalog rman/rman@fjrman --> 在db01上连接dp的备份数据库.fjrman为备份数据库的连接串2.Crosscheck日志RMAN> crosscheck archivelog all;configuration for SBT_TAPE channel 2 is ignoredconfiguration f
ora-02298
最近升级脚本老是发现主外健的一些冲突,造成数据不完整,于是这里了一个脚本,怎么查那些数据造成主外健冲突[@more@]CREATE OR REPLACE PROCEDURE P_CON_ERR(AC_I_CONSTRAINT_NAME VARCHAR2, AC_I_OWNER VARCHAR2) AUTHID CURRENT_USER AS V_CURSORID INTEGER; V_CONSNAME VARCHAR2(30); V_OWNER VARCHAR2(30); V_TABLE_NAME VARCHAR2(30); V_RTABLE_NAME VARCHAR2(30); V_COLUMN VARCHAR2(100); V_STR VARCHAR2(600); TYPE T_COL_VALUE IS TABLE OF VARCHAR2(30) INDEX BY BINARY_IN
Oracle 10g 中sga_max_size 和sga_target用法
每次要修改sga的时候,都发现把这两个参数记错了,今天整理了一下用法,但愿不会再忘记了[@more@]一、oracle 10g中的SGA_MAX_SIZE与SGA_TARGET参数 sga_target是自动管理内存时使用的,这样你就不用设置DB_CACHE_SIZE,SHARED_POOL_SIZE等参数,他们会根据需要自动的进行调整的。SGA_MAX_SIZE是从oracle9i以来一直存在﹐是不可动态修改的。 SGA_TARGET是oracle10g中用于实现自动SGA内存管理而新增加的。 SGA_MAX_SIZE指的是可动态分配的最大值﹐而SGA_TARGET是当前已分配的最大sga。 SGA_MAX_SIZE是不可以动态修改的﹔而SGA_TARGET是可动态修
Linux下xmanager开启总共分几步
闲来无聊,事情又不想做,还是对以前的一些东西做个总结吧[@more@]第一步 我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句: # * #any host can get a login window 去掉最前面的#号,成为 * #any host can get a login window 第一步 我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句: # * #any host can get a login window 去掉最前面的#号,成为 * #any host can get a login window 第二步 我们修改/etc/X11/gdm/gdm.conf文件,找到下
关于行转列的总结(转)
最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结,希望对大家有所帮助,同时有何错疏,恳请大家指出,我也是在写作过程中学习,算是一起和大家学习吧。行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串*多行转换成字符串*字符串转换成多列*字符串转换成多行下面分别进行举例介绍。首先声明一点,有些例子需要如下10g及以后才有的知识:a。掌握model子句,b。正则表达式c。加强的层次查询讨论的适用范围只包括8i,9i,10g及以后版本。begin:[@more@]1、列转行CREATE TABLE t_col_row(ID INT,
使用临时表的sql优化案例一
基于RBO的情况下[@more@]oracle:92041.table和index的相关信息:create global temporary table tmp_ic_atp_test1(CTMPCORPID CHAR(4),CTMPCALBODYID CHAR(20),CINVENTORYID CHAR(20),VFREE1 VARCHAR2(20),VFREE2 VARCHAR2(20),VFREE3 VARCHAR2(20) ,VFREE4 VARCHAR2(20) ,VFREE5 VARCHAR2(20) ,VFREE6 VARCHAR2(20) ,VFREE7 VARCHAR2(20) ,VFREE8 VARCHAR2(20) ,VFREE9 VARCHAR2(20) ,VFREE10 VARCHAR2(20) ,DPLANDATE CHAR(10) ,USABLEAMOUNT CHAR(16) ,USABLEAMOUNTBYFREE CHAR(1) ,TS CHAR(19) )on commit preserve rows;create inde
使用临时表的sql优化案例(二)
对于基于成本优化器的数据库来说,准确的统计信息对数据库是否选择最优化的执行方式尤其重要。然而对于临时表,利用这种方式统计信息却有可能造成明显的效率故障。因为临时表平时都是空表,如果对其进行分析,其统计信息记录数为0行,与实际使用时的情况相差甚远。[@more@]那么对于临时表,我们建议自己来指定统计信息:1,估算临时表行数根据实际业务估算临时表在计算过程中可能产生多少数据,2,计算临时表block数简单的方法就是建一个与临时表结构相同的固定表,插入上面估算出的数据,例如估算出2000条,则根据临时表数据生成情况插入
删除死锁的进程
最近发现并行插入数据容易造成表的死锁,以下为一些解锁的语句[@more@]查询sql:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT A.OWNER,A.OBJECT_NAME,B.XIDUSN,B.XIDSLOT,B.XIDSQN,B.SESSION_ID,B.ORACLE_USERNAME, B.OS_USER_NAME,B.PROCESS, B.LOCKED_MODE, C.MACHINE,C.STATUS,C.SERVER,C.SID,C.SERIAL#,C.PROGRAMFROM ALL_OBJECTS A,V$LOCKED_OBJECT B,SYS.GV_$SESSION C WHERE ( A.OBJECT_ID = B.OBJECT_ID )AND (B.PROCESS = C.PROCESS )ORDER BY 1,2 释放sessio
调用者权限过程的权限问题
首先描述一下当时我碰到的问题:我写了一个存储过程,要在其中使用DBMS_METADATA过程获取另一个用户的某对象的定义。[@more@]SQL> CREATE OR REPLACE PROCEDURE P_TEST AS2 BEGIN3 FOR I IN (SELECT DBMS_METADATA.GET_DDL('TABLE', 'DUAL', 'SYS') DEFINE FROM DUAL) LOOP4 DBMS_OUTPUT.PUT_LINE(SUBSTR(I.DEFINE, 1, 255));5 END LOOP;6 END;7 /过程已创建。SQL> SET SERVEROUT ON SIZE 1000000SQL> EXEC P_TESTBEGIN P_TEST; END;*ERROR 位于第 1 行:ORA-31603: 对象 "DUAL" 属于类型 TABLE, 在方案 "SYS"
正则表达式——Oracle篇
Oracle 8 和Oracle 9i中缺乏灵活性的SQL 正则表达式最终在Oracle 10g中得到了解决。Oracle 数据库目前内建了符合POSIX 标准的正则表达式。[@more@]四个新的函数分别是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和EGEXP_REPLACE。它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。 POSIX 正则表达式由标准的元字符(metacharacters)所构成:'^' 表示字符串的开始 '$' 表示字符串的结束 '.' 表示任何字符 字符的范围,比如说'[a-z]',表示任何
正则表达式的基本语法
今天看到正则表达式的方便,于是便想研究一番[@more@]首先让我们看两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;"notice":表示任何包含"notice"的字符串。象最后那个例子,如果你不使用两个
关于Oracle中树结构的查询
ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表中的数据还呈现出树型结构的联系。例如,我们现在讨论雇员信息表EMP,其中含有雇员编号(EMPNO)和经理(MGR)两例,通过这两列反映出来的就是雇员之间领导和被领导的关系。有些雇员领导另一些雇员,有些雇员被领导,还有些雇员领导一些人又被别人领导,他们之间的这种关系就是一种树结构,图1.1表示了EMP表雇员间的这种树结构。[@more@] MGR=7839 MGR=7839 MGR=7839 EMPNO=7566
ORA-14402
ORA-14402: Updating partition key column would cause a partition change[@more@]今天遇到这个分区表的问题。解决方法为:select TABLE_NAME, ROW_MOVEMENT from dba_tables where partitioned = 'YES' ORDER BY ROW_MOVEMENTalter table salary.ps_overtime enable row movement;
Move表、索引、LOB/Long
move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效。(LOB类型例外)[@more@]表move,我们分为:*普通表move*分区表move*LONG,LOB大字段类型move来进行测试和说明。索引的move,我们通过rebuild来实现SQL> select * from v$version;Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit ProductionPL/SQL Release 9.2.0.6.0 - ProductionCORE 9.2.0.6.0 ProductionTNS for Solaris: Version 9.2.0.6.0 - ProductionNLSRTL Version 9.2.0.6.0 - Production一:move普通表、索引基本语法:alter table tab_name move ta
关于oracle中Move机制的一点探讨 (转)
从8i开始,oracle开始提供Move的命令。我们通常使用这个命令,将一个table segment从一个tablespace移动到另一个tablespace。[@more@]Move实际上是在block之间物理的copy数据,那么,我们可以通过这种方式来降低table的HWM。我们先通过一个实验来看看move是如何移动数据的。创建table TEST_HWM,insert一些数据:SQL> create table TEST_HWM (id int ,name char(2000)) tablespace hwm;Table created我们往table TEST_HWM 中insert如下数据:insert into TEST_HWM values (1,'aa');insert into TEST_HWM values (2,'bb');insert into T
Oracle的硬解析和软解析(转)
说到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程: 1、语法检查(syntax check) 检查此sql的拼写是否语法。 2、语义检查(semantic check) 诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。 3、对sql语句进行解析(prase) 利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。 4、执行sql,返回结果(execute and return) 其中,软、硬
改变桌面和开始菜单的默认路径
把桌面和开始菜单的默认路径指定到其他分区,当系统出现紧急故障需要重装或Ghost时,就不用担心这些资源丢失了[@more@]运行 regedit 进入注册表,在 HKEY CURRENT USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders 下双击字符串值“Desktop”,默认值为:%USERPROFILE%桌面,将其设为你想要的路径,如 D:桌面记得在新路径建一个相应的文件夹,如上,请在 D 盘建一个“桌面”的文件夹。按上面的方法更改字符串“Programs”、“Start Menu”、“Startup”。注销后生效。
java连接oracle数据库的各种方法及java在数据库中的含义
java与oracle的接口: 在数据库中运行JAVA可以说是ORACLE8i的最令人激动的新特性。在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JAVA有关的新特征,轻松的将程序发布到INTERNET或INTRANET上。[@more@]Methods for Using Java in ORACLE==================================大家都知道JAVA在跨平台开发与INTERNET开发中已经比较流行,ORACLE8i及以后的版本中都包含了对在数据库中运行JAVA的扩展支持,这里有两种方法可以使用:JDBC:与ODBC类似, JDBC 提供了一个驱动接口使你可以在JAVA程序中访问数据库。注:JDBC驱动内嵌在