本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
 
0
select file_name,bytes/1024/1024 from dba_data_files where autoextensible='YES';    一般自动扩展最容易变得很大的就是untotbs  /oradata/rmdb/undotbs01.dbf     32G    处理过程:  (1) 生成autoextend off语句  select 'alter database datafile '''||file_name||''' AUTOEXTEND OFF;' from dba_data_files where autoextensible='YES';    (2) 新建一个undotbs  create undo tablespace undotbs1 datafile '/opt/oracle/oradata/ora11g/undotbs01.dbf' size 500m;    (3) 切换undotbs,并记录到spfile  alter system set undo_tablespace=UNDOTBS2 scope=both;    (4) 过几天再把undotbs1干掉  drop tablespace undotbs1 including contents and datafiles cascad...
Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化汇总   阅读前注意:磁盘空间     表的数据库空间     表空间的数据库空间不同之处。  硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放。【delete后用:alter table table_name move    truncate后用:alter table table_name deallocate unused 均不可解决】解决方法:--delete/truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化汇总--查询DBF文件、数据库空间、高水位线占用情况select /*+ ordered use_hash(a,b,c) */ a.file_id, a.file_name, a.tablespace_name, a.filesize, b.freesize, (a.filesize - b.freesize) usedsize,--使用空间 c.hwmsize, c.hwmsize - (a.filesize - b.freesize) unsedsize_belowhwm,--未使用空间 a.filesize - c.hwmsize canshrinksize--文件大小  from (select tablespace_name,file_id, file_name, round(...
一客户机房新装的UPS不太稳定,好几次意外断电,第3次意外断电之后问题终于来了,数据库起不来了……数据库的硬件环境是一台IBM DS5020存储,2台IBM X3850 X5软件环境是Linux与Oracle 10g RAC数据库2个节点的asm都能正常启动,但数据库实例启动到mount状态后就停下没有反应了,等很久也不能前进到open状态。节点1上的alert日志有如下错误信息:ORA-1013 signalled during: ALTER DATABASE OPEN…………ORA-1089 signalled during: alter database open节点2上的alert日志有如下错误信息:Thu Dec 29 15:32:46 2011Errors in file /opt/oracle/admin/racdb/bdump/racdb2_p015_11496.trc:ORA-27090: Message 27090 not found; product=RDBMS; facility=ORALinux-x86_64 Error: 4: Interrupted system callAdditional information: 3Additional information: 128Additional information: 65536进一步查看/opt/oracle/admin/racdb/bdump/racdb2_p015_11496.trc,有如下信息:ORA-27090: Message 27090 not found; product=RDBMS; facility=ORALinux-x86_64 Error: 4: Interrupted system callAdditional information: 3Additional information: 128Additional information: 65536...
Oracle转移表和索引所在的表空间如果你将创建表和索引创建在USERS表空间下了,(注:在USERS表空间中是合理的),那么在以后的维护中将会出现很多麻烦。 如果是系统无法删除重建,所以必须考虑在不影响使用的情况下做该项工作。    1、表空间移动命令:   alter table table_name move tablespacetablespace_name;   得到表空间移动语句:   select ’alter table ’ || table_name || ’ move tablespacetablespace_name;’    fromuser_tables   where tablespace_name = ’USERS’   得到该连接用户下所有创建在USERS表空间下的表名。   2、执行所得到的语句,至此将表转移到新表空间中。3、重建索引 命令:alter index index_name rebuildtablespace tablespace_name;   得到重建索引语句    SELECT ’alter index ’||index_name||’ rebuild tablespacetablespace_name;’     FROMUSER_INDEXES T where t.table_owner=’’USER_NAME’’     andt.tablespace_name=’USERS’&n...
shell调用sqlplus各种情况示例shell调用sqlplus各种情况示例测试平台:RHEL5.5一、最简单的shell里调用sqlplus.$ vi test1.sh #!/bin/bash sqlplus-s acctmp/acctmp@newtest>/dev/null<<EOF set serveroutput on; exec ngoss.PROC_LOAD3GGROUPUSER; exit; EOF $ chmod +x test1.sh$ ./test1.sh二、把sqlplus执行结果传递给shell方法一注意sqlplus段使用老板键`了, 赋变量的等号两侧不能有空格.$ vi test2.sh  #!/bin/bash #1) 优惠标识列字段为空 preferencetypenull=`sqlplus-s acctmp/acctmp@newtest<<END  set pagesize 0 feedback off verify off headingoff echo off  SELECT COUNT (*) FROMinfo.t_ci_wocardinfo  WHERE  preferencetype IS NULL ANDTO_CHAR   (insertdate, 'yyyymmdd') = TO_CHAR (SYSDATE,'yyyymmdd');  exit;  END` echo "本次csm所给沃家庭电子券优惠文件中优惠标识列为空总数为:"$preferencetypenull#若本次csm所给沃家庭电子券优惠文件中优惠标识列为空总数不为0需要特殊处理:打...
1,创建新表gps-sq ,保存查询出来表名的rownum 值。#:  create table gps_sq as select *              from (select rownum sq , tname                      from tab                     where tname like 'GPS_HT_%'                     order by tname)2,新建存储过程。create or replace procedure p_del_gps_ht(a in number,b in number) is  t_sql varchar2(2000);begin  for c in (select tname              from gps_sq             where sq >= a         &nb...
select * into target_table from source_table;insert into target_table(column1,column2) select column1,5 from source_table;  以上两句都是将源表source_table的记录插入到目标表target_table,但两句又有区别。第一句(select into from)要求目标表target_table不存在,因为在插入时会自动创建。第二句(insert into selectfrom)要求目标表target_table存在,由于目标表已经存在,所以我们除了插入源表source_table的字段外,还可以插入常量,如例中的:5。 例如:需要将user_city表中的部分字段值拷贝到dim_pub_county_act表中(字段名不同),则语句如下:INSERTINTO   SUI1.DIM_PUB_COUNTY_ACT    (       CITY_ID,       COUNTY_ID,       BEGIN_TIME,       END_TIME,       COUNTY_NAME,       ACTIVE_FLAG,   ...
 
0
rownum和rowid都是伪列,但是两者的根本是不同的,rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,但是rowid是物理结构上的,在每条记录insert到数据库中时,都会有一个唯一的物理记录 ,例如  AAAMgzAAEAAAAAgAAB 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30这里的AAAMgzAAEAAAAAgAAB物理位置对应了这条记录,这个记录是不会随着sql的改变而改变。因此,这就导致了他们的使用场景不同了,通常在sql分页时或是查找某一范围内的记录时,我们会使用rownum。1、rownum例如:查找2到10范围内的记录(这里包括2和10的记录)select *  from (select rownum rn, a.* from emp a) twhere t.rn between 2 and 10;查找前三名的记录select * from emp a where rownum < 3;这里我们要注意,直接用rownum查找的范围必须要包含1;因为rownum是从1开始记录的,当然你可以把rownum查出来后放在一个虚表中作为这个虚表的字段再根据条件查询。例如:select *  from (select rownum rn, a.* from emp a) twhere t.rn > 2;这就可以了2、rowid我们在处理一张表中重复记录时经常用到他,当然你也可以用一个很原始...
 
0

Oracle定时执行计划任务

发表者:admin分类:数据库2015-08-03 14:07:11 阅读[1643]
Oracle定时执行计划任务 在日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表、每天从数据库中提取符合条件的数据、每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就想:能不能让系统来自动定时执行计划任务?下面介绍的是在Oracle数据库中如何实现定时执行计划任务。Oracle在10g版本以前,计划任务用的是DBMS_JOB包,10g版本引入DBMS_SCHEDULER来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB提供了更强大的功能和更灵活的机制/管理,但DBMS_JOB包的使用相对比较简单,也基本能够满足定时执行计划任务的需求,故接下来就先看看DBMS_JOB包的使用方法。我们可以在命令窗口输入showparameter job_queue_processes查看数据库中定时任务的最多并发数,一般设置为10(设置方法:altersystem set job_queue_processes=10),如果设为0,那么数据库定时作业是不会运行的。接下来我们尝试实现以下功能:每隔一分钟自动向job_test表中插入当前的系统时间。1、创测试表create tablejob_test(updatetime date);2、创建JOBvariablev_job_no number;begindbms_job.submit(:v_job_no, 'insert into job_testvalues(sysdate);', sysdate, 'sysd...
oracle表名HT_100到HT_200 ,要删除表中一部分数据。create or replace procedure p_delete ist_sql varchar2(2000);begin  for c in (select tname from tab where tname like 'HT_%') loop      t_sql:='delete from  '||c.tname||' where to_char(location_time,''yyyymmdd'')<''20150301''';      execute immediate t_sql;      commit;dbms_output.put_line(c.tname||'删除完成');  end loop;end;这个是一个存储过程,执行这个过程前:先运sql>set serverout on;不会显dbms_output.put_line输出信息。sql>exec p_delete;每次可以自定义 删除 多少数据表中的数据。create or replace procedure p_del_gps_ht(a in number,b in number) is  t_sql varchar2(2000);begin  for c in (select tname              from (sel...
    总共51页,当前第30页 | 页数:
  1. 20
  2. 21
  3. 22
  4. 23
  5. 24
  6. 25
  7. 26
  8. 27
  9. 28
  10. 29
  11. 30
  12. 31
  13. 32
  14. 33
  15. 34
  16. 35
  17. 36
  18. 37
  19. 38
  20. 39
  21. 40