一个错误的数据文件的恢复
文件名与目录名重名[@more@]环境:RHEL AS3 测试库12:03:07 SQL> select * from v$version; BANNER----------------------------------------------------------------Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionPL/SQL Release 9.2.0.4.0 - ProductionCORE 9.2.0.3.0 ProductionTNS for Linux: Version 9.2.0.4.0 - ProductionNLSRTL Version 9.2.0.4.0 – Production 问题: 测试库不能正常SHUTDOWNSQL>shutdown immediate;ORA-01116: error in opening database file 15ORA-01110: data file 15: '/SERV
全表复制过程创建脚本
能自动创建过程脚本,能让你直接输入源泉表名和目标表名就能创建以下链接中的全表复制过程.(第三部分) http://steven1981.itpub.net/post/7967/413828[@more@]--表复制过程NEWcreate or replace procedure hyf_create_sql(p_sour_tab in varchar2, p_dst_tab in varchar2) as /* -- 此存过能产生:一个用来从源表复制到目标表的存过; -- 要求在目标库上布置这个代码 ;(即 p_dst_tab必须为本地表) -- 使用: exec hyf_create_sql('sour_table_name[@dblink_name]','dst_table
使用Forall 与bulk collect的快速复制表数据
从代码的简易性,FORALL和bulk collect 的使用,以及分批插入这三方面考虑,这里介绍了三种写法:[@more@]1 使用了BULK COLLECT,没有使用FORALL, 一次性插入,分批COMMIT,这种方法比较适用于10万以下条数据的表; create or replace procedure cp_data2 as type TYPE_EMPLOYEES is table of EMPLOYEES%rowtype; V_EMPLOYEES TYPE_EMPLOYEES; v_table varchar2(30); v_sql varchar2(300); v_rows number:=5000;begin execute immediate 'alter session set nls_date_format=''yyyy/mm/dd'''; v_table := 'employee_cp'; v_sq
一个非常离奇关于LINUX SSH连接的问题
SSH时能连,时不能连[@more@]自从某天对LINUX服务器加上itpables规则后,服务器出现了不规则的SSH连接超时. 不规则是指允许连接的时间是不定的.有时能连入,有时却不能连入.服务器有两个网卡,有时用内网能连入,外网却不行. 而且,当SSH不能连接时,其它服务也不能连入,就好像是网卡停止工作一样. 但在某个时候却又会自动恢复正常.重启服务器,刚开始是能正常连入的,但在一定的时间后却又不行了!查看/var/log/secure /var/log/messages都没有异常的错误.不知哪位高手有碰到过这样的问题... ... 是网络攻击? 还是SSH服务本身问题?
iptables 实现端口映射
学习积累[@more@]环境:客户端IP:1.2.3.4网关#eth0 外网 220.101.222.46(此地址为防火墙上填的外网地址) 192.168.123.123(此地址为防火墙映射到网关ETH0上的地址)#eth1 内网 192.168.101.67内网数据库#192.168.101.66:1521要实现这些功能,只要在iptables列表运行以下语句:echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.123.123 --dport 1521 -j DNAT --to 192.168.101.66iptables -A FORWARD -p tcp -d 192.168.101.66 --dport 1521 -j ACCEPTiptables -t nat -A POSTROU
关于收到localhost modprobe: modprobe: Can't locate module ethX的错误
tail -100 /var/log/messages[@more@]在服务器的/var/log/messages文件中,不时收到以下信息,但又不是开机的时候出现的.modprobe: modprobe: Can't locate module eth5modprobe: modprobe: Can't locate module eth6modprobe: modprobe: Can't locate module eth7modprobe: modprobe: Can't locate module eth8modprobe: modprobe: Can't locate module eth9开始的时候不知道,一直翻到GOOGLE第12页,看到这个是由于执行了mii-tool命令后出现的.这个命令大家知道是查看网卡的连接情况.本人猜测系统是将所有的网卡搜索一遍(但不知道为什么没有
断号查询问题
看书而得[@more@]SQL> select * from hyf_t1 order by id2 ;ID-------10010110210310410610710810911211311411711814 rows selectedSQL> SQL> select * from (select id+1 begin,2 sum( id) over(order by id rows between 0 preceding and 1 following) - id-1 end3 ,sum( id) over(order by id rows between 0 preceding and 1 following) - id- id-1 bb4 from hyf_t1 ) where bb>05 /BEGIN END BB---------- ---------- ----------105 105 1110 111 2115 116 2这样也行:SQL> select * from (2 select id+1 begin ,3 lea
Oracle分析函数-6
学习笔记[@more@] cume_dist()和percent_rank()函数 计算一行在该组中的相对位置,但略有不同 select deptno, ename, sal, cume_dist() over(partition by deptno order by sal) aal,percent_rank() over(partition by deptno order by sal) bbL from hyf_tDEPTNOENAMESALAALBBL0I_CDEF1500.2500TRUSTED_LIST$1000.50.3333333333333330AUDIT$1500.750.6666666666666670JOBSEQ200111I_CDEF2510.2501PROPS$1010.50.3333333333333331I_AUDIT1510.750.6666666666666671JOB$20111待续...
Oracle分析函数-5
学习笔记[@more@]1. first_value()和last_value()select fire_date,deptno,sum(sal),first_value(sum(sal)) over(partition by fire_date order by sum(sal)) fir_sale,first_value(sum(sal)) over(partition by fire_date order by sum(sal) desc) last_salefrom hyf_tgroup by fire_date, deptnoFIRE_DATEDEPTNOSUM(SAL)FIR_SALELAST_SALE2005020505054200502151505420050225250542005023535054200502454505420050311011012502005030250101250200504210210210420050431031021042005044104102104显示每月每部门SAL汇总,及SAL最高和最低的
Oracle分析函数-4
学习笔记[@more@]1. sum,avg,max,min移动计算select deptno, ename, sal, sum(sal) over(partition by deptno order by sal) dept_sal, sum(sal) over(order by deptno, sal) all_Total, avg(sal) over(partition by deptno order by sal) dept_avg, avg(sal) over(order by deptno, sal) all_avg, min(sal) over(partition by deptno ) min_sal, max(sal) over(partition by deptno order by sal ) max_sal from hyf_tDEPTNOENAMESALDEPT_SALALL_TOTALDEPT_AVGALL_AVGMIN_SALMAX
Oracle分析函数-3
学习笔记[@more@]1. lag和lead函数select deptno,ename,sal,lag(sal, 2, 0) over(partition by deptno order by sal) pre_2,lag(sal, 1, 0) over(partition by deptno order by sal) pre_1,lead(sal, 2, 0) over(partition by deptno order by sal) later_2,lead(sal, 1, 0) over(partition by deptno order by sal) later_1from hyf_tDEPTNOENAMESALPRE_2PRE_1LATER_2LATER_10I_CDEF150002001000AUDIT$1000503002000JOBSEQ200501003503000I_TYPE23001002004503500KOPM$3502003005004500I_ACTOBJ4503003506005000I2_JIREFRESHSQL$50035045
Oracle分析函数-2
学习笔记[@more@]--C、CUBEselect deptno, ename, sum(sal) salfrom hyf_twhere deptno <2group by cube(deptno, ename) order by deptnoDEPTNOENAMESAL10AUDIT$15020DBMS_STANDARD65030FLOAT600… … … 190V_$SESSION_EVENT1000200V_$SPPARAMETER85021011300221INTEGER601231I_AUDIT151… …. … 391V$SESSION_EVENT1001401V$SPPARAMETER851411V_$SESSION_OBJECT_CACHE10514211132043AUDIT$15044DBMS_STANDARD65057JOB$20158JOBSEQ20059KOPM$350… … … 78V_$OPTION90079V_$PGA_TARGET_ADVICE_HISTOGRAM70080V_$SESSION_EVENT100081
Oracle分析函数-1
学习笔记[@more@]Ø e创建基础数据create table hyf_t as select object_name ename,mod(object_id,50) deptno, created fired_date, object_id salfrom all_objects where rownum<=200create index hyf_t on hyf_t(deptno,fired_date,ename)Ø GROUP函数A、GROUPING SETSselect deptno, ename, sum(sal) salfrom hyf_t where deptno <2group by grouping sets((deptno, ename), deptno)order by deptnoDEPTNOENAMESAL0AUDIT$1500DBMS_STANDARD6500FLOAT6000V_$PGA_TARGET_ADVICE_HISTOGRAM7000V_$SESSION_EVENT10000V_
一次UNDO损坏修复过程
早上发现测试库连不上, 启动时发现UNDO有坏块[@more@]SQL>startup mount;SQL> alter database open;alter database open*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forced查看alert_ora9.logThu Jul 12 09:05:59 2007Errors in file /SERVER/ora9/admin/ora9/udump/ora9_ora_1202.trc:ORA-01578: ORACLE data block corrupted (file # 2, block # 9)ORA-01110: data file 2: '/SERVER/ora9/oradata/ora9/undotbs01.dbf'Thu Jul 12 09:05:59 2007Error 1578 happened during db open, shutting down da
SONY SZ25CP/C 系统安装实录 (XP不能关机)
驱动安装后死活不能关机.原来是摄像头驱动搞得鬼.[@more@]SONY SZ25CP/C 系统安装实录 (XP不能关机) 接到重装系统任务,机型SONY SZ25CP/C,手感轻薄,重量小,按键舒适,超级双核配置,心想重装系统一定很快。 根据经验,先备份重要信息,下一步就是熟为人知的GHOST。非常熟练,仅10分钟,驱动和基本的应用软件都搞定了.,听着熟悉的关机声准备交差... ... 可看着屏幕上那正在关机的字眼,咋就不消失呢? 那硬盘灯在闪了几下后就躺那儿了! 什么问题? 驱动不对? (由于没有原始光盘)官方网站下驱动,再GHOST,10分钟系统搞定.下一步就是一
有关Swap操作的系统命令
增加和删除SWAP空间[@more@]增加Swap空间,分以下几步: 1)成为超级用户 $su - root 2)创建Swap文件 dd if=/dev/zero of=/swap/swapfile bs=1024 count=65536 (这里,BLOCKSIZE为1K,共64M)mkswap /swap/swapfile 65536 (单位为K,交换分区总大小)sync3)激活Swap文件 #/usr/sbin/swapon /swap/swapfile swapfile指的是上一步创建的交换文件。 4)现在新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作。因此要在/etc/fstab文件中记录文件的名字,和Swap类型,如: /path/swapfile none Swap sw,pri=3 0 0
成功通过ORACLE发送邮件
LINUX AS3+ORACLE 9.2||10.20.1 成功从ORACLE发送邮件...[@more@]测试环境:LINUX AS3 , ORACLE 9.0.2.4 SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionPL/SQL Release 9.2.0.4.0 - ProductionCORE 9.2.0.3.0 ProductionTNS for Linux: Version 9.2.0.4.0 - ProductionNLSRTL Version 9.2.0.4.0 - ProductionSQL> select * from v$version;Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
LINUX AS3 ,在安装9i后, 原有的10G出现监听问题
经历共享[@more@]1.LINUX AS3 , 原有10G , 数据库,监听,都正常.2.为了配置DATA GUARD,又装了9i. (选择9i也是迫不得已,另一台测试机内存只有128M)3.配置完9i后,回到10G(没有重新安装,主要是.bash_profile的修改)4.数据库启动正常.5.监听出现如下问题[oracle@ora1 oracle]$ lsnrctl statusLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 29-APR-2007 08:37:52Copyright (c) 1991, 2005, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))TNS-12541: TNS:no listener TNS-12560: T
关于行链接和行迁移和消除
关于行链接和行迁移和几种消除方法(看书笔录)[@more@]Oracle中行迁移和行链接的清除及检测一、行迁移和行链接的介绍 在实际的工作中我们经常会碰到一些Oracle数据库性能较低的问题,当然,引起Oracle数据库性能较低的原因是多方面的,我们能够通过一些正确的设计和诊断来尽量的避免一些Oracle数据库性能不好,Row Migration (行迁移) & Row Chaining (行链接)就是其中我们可以尽量避免的引起Oracle数据库性能低下的潜在问题。通过合理的诊断行迁移和行链接,我们可以较大幅度上提高Oracle数据库的性能。 那究竟什么是行迁移和行链接呢
如果降低表的HWM
看书笔记[@more@](HWM=total_blocks-Unused Blocks+1)可以在DUMP文件第一个EXTENT的前三个数据块中看到HWM.释放在HWM之上的空闲BLOCK:alter table table_name deallocate usused;在HWM之下的空闲块:1. 了解一个table在HWM下有多少blocks是不包含数据的.analyze table &t_name compute statistics;select (1-a.num/b.num_total)*100 as percent from (select count(distinct substr(rowid,1,15)) num from &t_name ) a,(select blocks-empty_blocks num_total from user_tables where table_name='&t_name' )b 在ASSM下,free s