[oracle@ccdevsvr admin]$ exp wmap/pass@jackeydb
. . exporting table BJ_AFFILIATES 37 rows exported
在学习Oracle的时候,必然会接触到sql解析的过程。这个过程大体是这样的步骤。 1.对sql的文法检查,查看是否有文法错误,比如from,select拼写错误等。 2.在数据字典里校验sql涉及的对象是否存在。 3.将对象进行名称转换,比如同义词转义成对应的对象。比如select * from t t是一个同义词指向hr.test 4.检查语句的用户是否具有访问对象的权限 5.生成执行计划 6.将游标产生执行计划,sql文本装载入library cache所在的heap中。 这个过程看起来比较容易理解,
今天快下班的时候,有个开发的同事问我一个问题,说他在客户端执行一条sql语句,里面包含子查询,如果单独执行子查询,会报"invalid identifier"的错误,但是整个sql语句一致性就没有错误,而且数据的结果还是正确的,碰到这种问题,想必都是信心满满,越是奇怪越想探个究竟。 为了能够简单说明这个问题,我使用如下下面的语句来模拟一下。 select *from test1_customer where customer_id in (select customer_id from test2_c
最近负责搭建某系统的用户环境,其中涉及从测试环境导入数据,由于受客观因素制约,不能使用传输表空间方法同步,因此需要用imp/exp或数据泵的方法,这里采用的是imp/exp。下面记录操作过程中碰到的问题。
一般情况下,标识符错误是因为:语句中的列名在表中不存在,修改sql语句或者修改列名即可。
如果抛出一个问题,你是如何理解MySQL解析器的,它和Oracle解析器有什么差别?相信大多数同学都会比较迷茫,因为这个问题很难验证,要不是看源码,要不就是查看书上是怎么说的,其实这两种方法对我们去理解这个问题来说不是很合适,如果能够通过实践来做下理解就好了。
某物化视图在增量刷新的时候报错ora-00920,尝试全量刷新的时候,报错ora-00904。
主题:EXP导出aud$报错EXP-00008,ORA-00904 解决 环境:Oracle 11.2.0.4 问题:在自己的测试环境,导出sys用户下的aud$表报错。
C:\Documents and Settings\noah>exp system/pd0000@orcl file=d:\data.dmp wner=dev log=d:\log.log
1.知识点:可以对照下面的录屏进行阅读 SQL> --组函数类型:avg,count,max,min,sum SQL> --工资总额 SQL> select sum(sal) from emp; SQL> --员工人数 SQL> select count(*) from emp; SQL> --平均工资 SQL> select sum(sal)/count(*) 一, avg(sal) 二 from emp; SQL> --平均奖金的三种方式:二三方法一样,一方法不一样; SQL> select
本来今天想继续写另一篇外传,但总是熬这么晚不是个事儿,况且今儿北京又输了,恨铁不成钢,堵得慌。。。
最近有一个同事问我一个问题,说他运行一个SQL语句抛出了ORA-00600的错误,想让我帮忙分析一下,这种问题听了确实有兴趣,了解了问题的大体情 况之后,发现这个问题还是值得分析分析的,因为只是客户端调用抛出异常,没有给服务器端带来什么致命的影响,这样的问题还是很耐人寻味的。 简单沟通后,我得到了同事提供的SQL语句和执行环境,语句类似下面的形式: MERGE INTO (SELECT * FROM TEST_SERVER_LOG WHERE BUY_TIME>=TO_DATE(:1 ,'YYYY-
expdp/impdp是10g推出的导入导出工具,9i下是没有该工具的,有人提议用10g的expdp,通过dblink导出9i的数据,乍一听感觉是那么回事,但究竟行不行,咱们实验说明。
参考:DBA和开发同事的一些代沟(一)(r7笔记第17天) 有些朋友给我反馈了他们遇到的小故事,我后续再整理整理,看看有多少。 我还是继续来分享我这边碰到的一些小插曲,这些除非你确实碰到,想遍出来还着实需要想象力。 和开发的博弈 在Oracle中有资源管理的概念,其中一个功能就是设置每个用户可以使用的session数,即sessions_per_user,这个设置通过profile来完成。 一般的线上库都还是有一定的配额设置,保证不会出现过量的资源使用情况,这一点也和开发达成了共识。如果违反了共识,那就需要
Oracle 9i执行Stackpack(10g是AWR),当前是一个普通账户,没有DBA权限。
我将A服务器下的导入B服务器时其中一个表出现以下错误,出错误后我单独将这个表导出,然后导入。B服务器下已有T_CALLREORDS表,并且已有新数据,T_CALLREORDS有外键约束T_USER表。我的语句如下C:UsersAdministrator>imp gxcfkefu/gxcfkefu full=y file=e:/gxcf_T_CAL…显示全部
SELECT cust_id, cus_ last_name "Last Name"
同一台机器上,其中一个备份正常 <1>,另外一个报错 <2>。同一台机器上导出日志显示的版本居然不一样,哪个高人给指点下。
经常会碰到开发人员给出这样的SQL脚本,如下所示,其中表名、字段名,都带了双引号,
今天处理了几件事情,有几件还比较有意思,我拿出三件来说说。 首先是早上有一个同学打电话求助一个问题,给我的反馈是他们目前有一个表,数据量越来越大,目前数据插入变得很慢。想问问我该怎么分析。对于这个问题,听 起来还是有些模糊,稍后想他明确了数据库是10gR2的版本。至于他说的数据量是很大,目前是百万数据量,其实还可以了,不算很大,那么他说的速度很慢, 到底有多慢,是1秒钟变为2秒钟还是更大,他说大概有30秒。 通过这个问题,可以简单猜想能让insert很慢的场景其实还是比较少的,至少对于增量数据的插入这一点上
今天下午的时候得到反馈,说开发在导入一个dump的时候报了错误,他们尝试连接数据库,发现连接都有问题,让我们赶紧看看。 这是一个测试环境的库,在服务器上同时还跑着十多个数据库不同应用的数据库实例。 > sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Mon May 25 14:28:50 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. ERROR: ORA-
本文作为概要,包括如何定位SQL问题、SQL相关的问题类别以及诊断SQL性能问题需要的相关信息。
在Oracle中,有一类特殊的索引,称为函数索引(Function-Based Indexes,FBI),它基于对表中列进行计算后的结果创建索引。函数索引在不修改应用程序的逻辑基础上提高了查询性能。如果没有函数索引,那么任何在列上执行了函数的查询都不能使用这个列的索引。当在查询中包含该函数时,数据库才会使用该函数索引。函数索引可以是一个B-Tree索引或位图索引。
C:\Documents and Settings\Administrator>exp [email protected]_db file=E:\lsxy.dmp owner=lsxy
最近同事报料,数据库无法执行一些关于数据字典的查询。即使是查询dba_users都会出现错误。从错误日志来看,全部是数据字典的一些错误信息,而用户数据还是ok的。Google了一下,看了看metalink,需要重建数据字典。那就执行catalog.sql吧。晕,竟然连执行这个SQL语句都报错!数据没有备份呢,汗!!! 如果你也是无法成功执行catalog.sql,接着往下看。
exclude和include参数能够在使用expdp或impdp是对特定的对象或对象类型进行筛选或过滤。比如因工作的需要导出特定的表或不导出特定 的表、视图以及存储过程、索引、约束、授权统计信息等等。下面将给出expdp或impdp使用exclude和include参数的方法和示例。
因为业务需要,有个临时的活动需要DBA来支持一些数据业务,问题来了,需要从MySQL端同步一部分数据到Oracle端,然后从Oracle端匹配查 到相应的数据返回给MySQL,至于原因,也是不同的业务系统,不同的权限分配,还没法做到一个应用端去读取这些信息,而且也有安全的考虑,大体就是两部 分的数据也是互相补充,但又彼此独立,是一个全集和子集的关系。 这个流程本来从开发的角度来看似乎是一头雾水,所以交给他们来规划就容易出现问题,最后沟通后的流程是下面的形式。 下面这个图左边是Oracle的环境,右边是MyS
ORA-00904: "wm_concat":invalid identifier错误如何解决?
说起数据类型转换,在开发中如此,在数据库中也是如此,之前简单对比过MySQL和Oracle的数据类型转换情况,可以参见MySQL和Oracle中的隐式转换 http://blog.itpub.net/23718752/viewspace-1787973/ 不过当时写完之后,有个读者随口问了一句为什么,为什么呢?似乎自己还是一知半解,说是规则,无规矩不成方圆,倒也无可非议,不过我觉得还是要再看看,看看还能有哪些收获,接下来的内容我就不能保证正确性了,希望大家明辨,也希望提出意见,毕竟就是希望把问题搞明白而已。
同事前几天问到exp/expdp根据条件导出一张/多张表数据的问题,借此机会,依次对这些需求做个实验,仅供参考。
null值也不支持 加减乘除 大小比较 相等比较,否则只能为空。 对于其他函数,在使用时最好测试一下null值时会返回什么结果。
C:\Documents and Settings\Administrator>explsxy/lsxy@lsxy_dbfile=E:\lsxy.dmp owner=lsxy
1.知识点:可以对照下面的录屏进行阅读 SQL> --子查询所要解决的问题:问题不能一步求解 SQL> --查询工资比SCOTT高的员工信息 SQL> --(1)使用普通方法 SQL> --1. SCOTT的工资 SQL> select sal from emp where ename='SCOTT'; SQL> --2. 查询比3000高的员工 SQL> select * 2 from emp 3 where sal>3000; SQL> --(2)使用子查询 SQL> select *
本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数进行了说明,然后通过一些演示样例进行演练,加深理解. 文章最后对运用这两个命令可能出现的问题(如权限不够,不同oracle版本号)进行了探讨,并提出了对应的解决方式; 本文部分内容摘录自网络,感谢网友的经验总结;
英文解析:resource busy and acquire with NOWAIT specified
1月 25日, Linus Torvalds 在 Linux 的 GitHub 仓库中提交了一个恶作剧 README页面,其备注名为《delete linux because it sucks》—— 我删除了 Linux ,因为它就是个垃圾。
RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数。对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置,但一般不建议这么用。本文描述RAC 环境下参数文件(spfile)的相关管理工作。
服务器重启之后节点一集群服务如下 [grid@p19c01:/home/grid]$ crsctl stat res -t CRS-4535: Cannot communicate with Cluster Ready Services CRS-4000: Command Status failed, or completed with errors. 节点二集群状态 [grid@p19c02:/home/grid]$ crsctl stat res -t -----------------------
最近碰到了一个关于ASM无法启动的案例,当然这个案例比较长,准备分两篇来写。 问题的背景如下: 目前存在一套standalone的环境,采用了ASM作为存储管理,业务属于实时统计,在某一天下班的时候开发的同事突然联系我说,数据库感觉有些问题,因为部分应用开始报错了,然后他们问我在这段时间做过什么操作没有,从我的印象来看下午4点只对部分分区做了例行维护,其它什么都没调整。问题是在6点开始发现,所以应该没有什么关联。 当然口说无凭,开发的同学也反馈了报错的信息。 反馈错误信息1:Yourdatabase con
Oracle数据恢复顾问用于当数据发生错误或故障时,进行自动收集数据故障信息,并生成恢复脚本,用于完成数据恢复。数据恢复顾问也可以主动检查故障。 在这种模式下,它可以在数据库进程发现数据损坏并发出错误之前进行潜在的检测并分析数据故障。数据故障可能非常严重。 例如,如果您当前的日志文件丢失,则无法启动你的数据库。 一些数据故障(如数据文件中的块损坏)不是灾难性的他们不会将数据库关闭或阻止您启动Oracle实例。 数据恢复顾问处理这两种情况:当您无法启动数据库时(因为某些情况)所需的数据库文件丢失,不一致或损坏)以及文件损坏时的数据库文件在运行时发现。
应用程序工作负载在Oracle 10g中可以被定为services,也称之为服务,能够在单实例中使用,也能够在RAC中单独使用和管理。因此整个数据库负载能够被分割为多个不同的services,通过管理service能够简化用户或session的管理。其次services特性的重要体现在RAC之中用于实现负载均衡与故障转移。本文描述什么是services,以及使用services的好处,以及如何使用services.
crs_register命令主要是将资源注册到CRS。该方法通常结合crs_stat -p 或者crs_profile先创建配置文件。同时crs_register也具有更新CRS的功能。本文将描述crs_register以及crs_unregister的用法。
不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册。与单实例相同,RAC非缺省端口的监听器也是通过设置参数local_listener来达到目的。除此之外,还可以对实例进行远程注册,以达到负载均衡的目的。这是通过一个参数remote_listener来实现。
在ORACLE中移动数据库文件 --ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。 --由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等, --我們可能会考虑移动数据库文件。 --下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法。 一.移动数据文件: -- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。 1. ALTER DATABASE方法; -- 用此方法,可以移动任何表空间的数据文件。 STEP 1. 下数据
1.背景概述 2.本次测试环境基本信息 3.测试步骤 3.1. 使用BCO进行压缩备份 3.2. 不使用压缩备份 3.3. 使用ACO中LOW级别进行压缩备份 3.4. 使用ACO中MEDIUM级别进行压缩备份 3.5. 使用ACO中HIGH级别进行压缩备份 4.各类备份方式对比分析 4.1. 生成备份文件大小差异 4.2. 备份时长差异 4.3. 备份CPU资源差异 4.4. 备份Memory资源差异 4.5. 备份IO资源差异 5.总结
Oracle RAC 集群中,对于各种资源的管理,也存在所有者与权限的问题。crs_getperm与crs_setperm则是这样的一对命令,主要用于查看与修改集群中resource的owner,group以及权限等,下面通过具体的演示来获得其使用方法。
墨墨导读:通过历史控制文件恢复数据库,只需这10步。 1. 记录控制文件、数据文件头的scn SYS@enmo>select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 18502624 SYS@enmo>select name,checkpoint_change# from v$datafile; NAME
领取专属 10元无门槛券
手把手带您无忧上云