易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Oracle

Oracle数据库RMAN的自动备份脚本

http://hi.baidu.com/james_yulei/blog/item/7cc8c834063d6f3a0b55a920.html
Oracle数据库RMAN的自动备份脚本
2009-12-21 18:04
Oracle数据库RMAN的自动备份脚本
操作系统:Linux
数据库:oracle9.2.0.4
1、数据库设置为归档方式
2、数据库的备份脚本
db_full_backup.sh :数据库全备脚本
db_l0_backup.sh :数据库0级备份脚本
db_l1_backup.sh :数据库1级备份脚本
ftp.sh :数据FTP上传脚本
ftp_del.sh :数据FTP清理脚本
rman_bak.sh :数据备份主程序
3、备份原理
每周1、3、6进行0级备份
每周日、2、4、5进行1级备份
备份文件上传到FTP服务器
FTP服务器每周清理一次,但是清理后将周六和周日的备份进行保留(6.bak和0.bak)
所有工作防暑crontab中自动执行备份
4、备份目录含义
arc :数据库归档目录
rmanbak :数据库备份文件的保存目录
rmanscripts :数据库脚本存放路径
5、FTP目录
ftp上必须手动建立目录
L0:
---1
---3
---6
---6.bak
L1:
---2
---4
---5
---0
---0.bak
rman_bak.sh脚本主程序
#!/bin/bash
#--------------------------------------------
# Oracle auto backup using rman
#
# author:songrh
# week:1 ......

ORACLE 统计正负个数sql

select ss.*,
       sum(ss.aa) over (partition by ss.zsid order by ss.zsid) as fu,
       sum(ss.bb) over (partition by ss.zsid order by ss.zsid) as zheng
from
(
select m.zsid,
       sum(n.f0004_028n) over(partition by m.zsid) n011,
       sum(n.f0004_029n) over(partition by m.zsid) n012,
       sum(n.f0004_030n) over(partition by m.zsid) n013,
       sum(n.f0004_031n) over(partition by m.zsid) n014,
       sum(n.f0004_032n) over(partition by m.zsid) n015,
       sum(n.f0004_033n) over(partition by m.zsid) n021,
       sum(n.f0004_034n) over(partition by m.zsid) n022,
       sum(n.f0004_035n) over(partition by m.zsid) n023,
       n.f0004_017n,
& ......

oracle pl/sql 编程

                                              第一部分  基本概念
一、查询系统表
select * from user_tables  查询当前用户所有表
select * from user_triggers 查询当前用户所有触发器
select * from user_procedures 查询当前用户所有存储过程
二、分组函数的用法:
max()
min()
avg()
sum()
count()
rollup()
注意:
  1)分组函数只能出现在 group by ,having,order by 子句中,并且order by 只能放在最后
  2)如果选择列表中有列,表达式和分组函数,那么列,表达式必须要出现在group by 函数中
  3)当限制分组显示结果时,必须出现在having子句中,而不能在where子句中
rollup 函数  函数用于形成小合计
Group by 只会生成列相应数据统计
select deptno,job,avg(sal) from emp group by deptno,job;
rollup 会在原来的统计基础上,生成小统计
select deptno,job,avg(sal) ......

oracle pl/sql 编程

                                              第一部分  基本概念
一、查询系统表
select * from user_tables  查询当前用户所有表
select * from user_triggers 查询当前用户所有触发器
select * from user_procedures 查询当前用户所有存储过程
二、分组函数的用法:
max()
min()
avg()
sum()
count()
rollup()
注意:
  1)分组函数只能出现在 group by ,having,order by 子句中,并且order by 只能放在最后
  2)如果选择列表中有列,表达式和分组函数,那么列,表达式必须要出现在group by 函数中
  3)当限制分组显示结果时,必须出现在having子句中,而不能在where子句中
rollup 函数  函数用于形成小合计
Group by 只会生成列相应数据统计
select deptno,job,avg(sal) from emp group by deptno,job;
rollup 会在原来的统计基础上,生成小统计
select deptno,job,avg(sal) ......

oracle基本操作

describe  TABLE_NAME;   --描述
----------------------------------------------------------------
create table as select XXXXXX
insert into TABLE_NAME (reac_1,reac_2.....) values(v1,v2)
insert into TABLE_NAME (select * from ..........)
update TABLE_NAME set reac_1=v1,................... where .....
delete from TABLE_NAME  where ...................
----------------------------------------------------------------
select [all|distinct top n[percent]] with ties  SELECT_LIST
[into[NEW_TABLE_NAME]]
[from {TABLE_NAME,....}][(OPTIMIZWE_HINTS)]
[where CLAUSE]
[group by CLAUSE]
[order by CLAUSE]
[compute CLAUSE]
[for browse]
--distinct 检索唯一的表列值
----------------------------------------------------------------
= != <> like and or between XXX and XXX in(XX,XX) union (合并查询)
----------------------------------------------------------------
alter table TABLE_NAME add REAC_NAME  REAC_TYPE &nbs ......

ORACLE JOB 汇总

一。job的运行频率设置
1.每天固定时间运行,比如早上8:10分钟:Trunc(Sysdate+1) + (8*60+10)/24*60
2.Toad中提供的:
每天:trunc(sysdate+1)
每周:trunc(sysdate+7)
每月:trunc(sysdate+30)
每个星期日:next_day(trunc(sysdate),'SUNDAY')
每天6点:trunc(sysdate+1)+6/24
半个小时:sysdate+30/1440
3.每个小时的第15分钟运行,比如:8:15,9:15,10:15...:trunc(sysdate,'hh')+75/1440。原先我设置的是trunc(sysdate,'hh')+15/1440,发现居然不行。
二。JOB为什么不运行?
1.先来了解一下JOB的参数说明:与job相关的参数一个是job_queue_processes,这个是运行JOB时候所起的进程数,当然系统里面JOB大于这个数值后,就会有排队等候的,最小值是0,表示不运行JOB,最大值是36,在OS上对应的进程时SNPn,9i以后OS上管理JOB的进程叫CJQn。可以使用下面这个SQL确定目前有几个SNP/CJQ在运行。
select * from v$bgprocess,这个paddr不为空的snp/cjq进程就是目前空闲的进程,有的表示正在工作的进程。
另外一个是job_queue_interval,范围在1--3600之间,单位是秒,这个是唤醒JOB的process,因为每次snp运行完他就休息了,需要定期唤醒他,这个值不能太小,太 ......

Oracle中BLOB/CLOB字段可能遇到的问题

Blob 采用单字节存储,适合保存二进制数据,如图片、视频等。
Clob 采用多字节存储,适合保存大型文本数据。
1. 在Oracle JDBC中采用流机制对 BLOB/CLOB 进行读写操作,所以要注意不能在批处理中读写 BLOB/CLOB字段,否则将出现
Stream type cannot be used in batching 异常。
2. Oracle BLOB/CLOB 字段本身拥有一个游标(cursor),JDBC通过游标对Blob/Clob字段进行操作,在Blob/Clob字段创建之前,无法获取其游标句柄,会出现
Connection reset by peer: socket write error 异常。
正确的做法是:首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码:
PreparedStatement ps  =  conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " );
//  通过oralce.sql.BLOB/CLOB.empty_lob()构造空Blob/Clob对象
ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());
ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());
ps.excuteUpdate();
ps.close();
//  再次对读出Blob/Clob句柄
ps  =  conn.prepareStatement( " select image,resume from PICTURE where id=? for update " );
ps.set ......
总记录数:3994; 总页数:666; 每页6 条; 首页 上一页 [357] [358] [359] [360] 361 [362] [363] [364] [365] [366]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号