本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
Oracle 左连接、右连接、全外连接、(+)号作用 Oracle 外连接(1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 外连接(Outer Join)outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。外连接分为三种: 左外连接,右外连接,全外连接。 对应SQL:LEFT/RIGHT/FULL OUTER JOIN。 通常我们省略outer 这个关键字。 写成:LEFT/RIGHT/FULL JOIN。 在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。 如果基表的数据在另一张表没有记录。 那么在相关联的结果集行中列显示为空值(NULL)。 对于外连接, 也可以使用“(+) ”来表示。 关于使用(+)的一些注意事项: 1.(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。 2. 当使用(+)操作符执行外连接时,如果在w...
WARNING: inbound connection timed out (ORA-3136)错误诊断 WARNING: inbound connection timed out (ORA-3136)参考metalink上的345197.1文章,内容如下:SymptomsThe Oracle Net 10g parameters SQLNET.INBOUND_CONNECT_TIMEOUT and INBOUND_CONNECT_TIMEOUT_listenername default to 0 (indefinite) in 10.1. To address Denial of Service (DOS) issues, the parameters were set to have a default of 60 (seconds) in Oracle 10.2.If applications are longer than 60 secs to authenticate with the Oracle database, the errors occur.The following may be seen in the alert log: WARNING: inbound connection timed out (ORA-3136)SQLNET.INBOUND_CONNECT_TIMEOUT is set to a value in seconds and determines how long a client has to provide the necessary authentication information to a database.INBOUND_CONNECT_TIMEOUT_listenername is set to a value in seconds and determines how long a client has to complete its connect request to the listener after the network connection has been established.To protect both the listen...
ORA-00060: Deadlock detected 先说说什么是死锁(Deadlock),关于死锁的定义google、baidu可以轻易查到,我也不想引经据典,我用一个简单故事来说明一下死锁。 话说一个风和日丽的下午,小明和小强打架,由于情节严重被老师批评教育不说还得放学后写悔过书,大家知道写悔过书要纸和笔,恰巧在刚才那场大战中小明将小强全部作业本和草稿纸撕碎,而小强将小明所有笔摔个稀巴烂,现在两人势如水火,别说借东西,话都不想说,于是就这么等啊等,等到老师来看他们的悔过书写得怎么样,结果当然是“还没开始写”,于是老师说:“小明你把纸借给小强,让小强写”。 哈哈整个故事有点牵强,但这就是一个经典死锁场景,如果老师不出来调停,他两就只能这样等下去,俗语叫“等死”了。 说回正题,Oracle 特殊的锁管理模式使发生死锁的几率大大减少,但是,要相信“一切皆有可能”,以后几篇博客对会分析导致 ORA-00060 的各种场景和处理方法。 今天说说第一个场景,也是网上能找到最多的场景,我都不太好意...
Mysql主从配置,实现读写分离大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力。Ok切入今天微博主题,利用MySQL主从配置,实现读写分离,减轻数据库压力。这种方式,在如今很多网站里都有使用,也不是什么新鲜事情,今天总结一下,方便大家学习参考一下。概述:搭设一台Master服务器(win8.1系统,Ip:192.168.0.104),搭设两台Slave服务器(虚拟机——一台Ubuntu,一台 Windows Server 2003)原理:主服务器(Master)负责网站NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模特性块固定访问Slave服务器,或者自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。...
总结:整理 oracle异常错误处理 目录(?)[-]11 预定义的异常处理12 非预定义的异常处理21 在执行部分引发异常错误22 在声明部分引发异常错误5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4 用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明部分引发异常错误5.3 异常错误处理编程5.4 在 PL/SQL中使用 SQLCODE, SQLERRM异常处理函数即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。ORACLE 提供异常情况(EXCEPTION)和异常处理(EXCEPTION HANDLER)来实现错误处理。5.1 异常处理概念异常情况处理(EXCEPTION)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就...
oracle 查看数据文件大小与使用率方法SELECT d.file_name, TO_CHAR((d.bytes / 1024 / 1024), '99999990.000'), NVL(TO_CHAR(((d.bytes - s.bytes) / 1024 / 1024), '99999990.000'), TO_CHAR((d.bytes / 1024 / 1024), '99999990.000')), d.file_id, d.autoextensible, d.increment_by, d.maxblocks FROM sys.dba_data_files d, (SELECT file# file_id, SUM(e.length * ts.blocksize) bytes FROM sys.fet$ e, sys.ts$ ts WHERE ts.ts# = e.ts# AND ts.name = 'USERS' GROUP BY file# &nbs...
oracle使用sqlplus连接很快客户端却很慢oracle使用sqlplus连接很快客户端却很慢,并且重启监听服务都巨慢无比。每次都要几分钟。最后排查发现原来是监听日志文件太大了,删除即可恢复正常。日志的路径:$ORACLE_HOME\diag\tnslsnr\cloud-publish\listener\trace看了一下日志都4G了,删除以后速度杠杠的。
Oracle 10g r2 有大量表,删除一部分数据后,需要释放高水位表。首先创建一个表 gps_sq ,导入需要压缩的表名.# : create table gps_sq as select rownum sq,table_name from user_tables ;创建了一个存储过程,分批执行压缩表。create or replace procedure p_shrink_space(a in number,b in number) is t_sql varchar2(2000); t_sql1 varchar2(2000); t_sql2 varchar2(2000); t_sql3 varchar2(2000);begin for c in (select table_name from gps_sq t where sq>=a and sq <=b) loop t_sql := 'delete from ' ||c.table_name|| ' where to_char(t.location_time,'||'''yyyymmdd'''||')<'||'''20150531'''; t_sql1 :='alter table '||c.table_name||' enable row movement'; t_sql2 :='alter table '||c.table_name||' shrink space compact'; t_sql3 :='alter table '||c.table_name||' shrink space'; execute immediate t_sql; &n...
kkjcre1p: unable to spawn jobq slave process错误解决 1、查看日志alert_oracle.log,了解问题原因:Process J000 died, see its trace fileMon May 27 16:09:31 CST 2013kkjcre1p: unable to spawn jobq slave process Mon May 27 16:09:31 CST 2013Errors in file /u01/oracle/admin/ORACLE/bdump/oracle_cjq0_2974.trc:2、问题分析:根据提示信息可以了解到系统无法生成job相关的进程,同时达到processes最大限制而出错的。查看系统processes和sessionsSQL> show parameter processes NAME TYPE VALUE------------------------------------ ----------- ------------------------------aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes i...
Oracle 10g r2 有大量表,删除一部分数据后,需要释放高水位表。创建了一个存储过程,这里只是测试了删除三个表中的数据并压缩表。create or replace procedure p_shrink_space is t_sql varchar2(2000); t_sql1 varchar2(2000); t_sql2 varchar2(2000);begin for c in (select table_name from gps_sq t where t.table_name in ('GPS_HT_0','GPS_HT_1','GPS_HT_10')) loop t_sql := 'delete from ' ||c.table_name|| ' where to_char(t.location_time,'||'''yyyymmdd'''||')<'||'''20150531'''; t_sql1 :='alter table '||c.table_name||' enable row movement'; t_sql2 :='alter table '||c.table_name||' shrink space compact'; t_sql3 :='alter table '||c.table_name||' shrink space'; execute immediate t_sql; commit; execute immediate t_sql1; execute immediate t_sql2; ex...
最新评论