发现系统数据没有更新,查看oracle定时任务,估计没有执行。
发现next_date变成了4000/1/1 ,broken被选中。
select * from user_jobs发现该任务失败次数达16次。
查得如下原因:
当任务运行失败时,SNP过程在1分钟后将再次试图运行该任务。如果这次运行又失败了,下一次尝试将在2分钟后进行,再下一次在4分钟以后。任务队列每次 加倍重试间隔直到 它超过了正常的运行间隔。在连续16次失败后,任务就被标记为中断的(broken),如果没有用户干预,任务队列将不再重复执行。
当将一个任务的next_date参数赋值为null时,则该任务下一次运行的时间将被指定为4000年1月1 日,也就是说该任务将永远不再运行。在大多数情况下,这可能是我们不愿意 看到的情形。但是,换一个角度来考虑,如果想在任务队列中保留该任务而又不想让其 运行,将next_date设置为null却是一个非常简单的办法。
手动test该定时任务,发现了报错原因,是插入ipv6的ip失败,将其删除。将定时任务恢复,重新执行,执行成功则失败次数将重置0.
将任务停掉的方法:
dbms_job.broken(v_job,true,next_date); //停止一个job,v_job可写job号,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
本文链接
第一天:视频4
database
1.parameter pfile(spfile:server parameter,用show parameter spfile查看)
2.instance;
1.sga
a.data buffer cache
b.shared pool
2 select * from v$process
select * from v$session
sqlplus / as sysdba
启动和停止数据库要用sysdba,
1shutdown immediate,关闭数据库
2startup启动数据库
进入监听功能:在cmd里直接敲入:lsnrctl
启动数据库
第一个阶段
启动数据库到unmount状态,也就是实例起来:startup nomount
show parameter spfile
第二个阶段,由nomount到mount
从unmount状态到mount状态
alter database mount;用到了控制文件
select status form v$instance;查看实例状态
select name form v$controlfile;
mount的时候用到了控制文件
第三个阶段open阶段
open阶段数据库才真正用到了数据文件和日志文件。
通过控制文件就可以找到数据文件盒日志文件,控制文件记录了数据文件和日志文件的位置
alter database mount
视频5
强制重启:startup force(相当于断电重启,内存里的所有东西都没有了)
第一天:视频4
database
1.parameter pfile(spfile:server parameter,用show parameter spfile查看)
2.instance;
1.sga
a.data buffer cache
b.shared pool
2 select * from v$process
select * from v$session
sqlplus / as sysdba
启动和停止数据库要用sysdba,
1shutdown immediate,关闭数据库
2startup启动数据库
进入监听功能:在cmd里直接敲入:lsnrctl
启动数据库
第一个阶段
启动数据库到unmount状态,也就是实例起来:startup nomount
show parameter spfile
第二个阶段,由nomount到mount
从unmount状态到mount状态
alter database mount;用到了控制文件
select status form v$instance;查看实例状态
select name form v$controlfile;
mount的时候用到了控制文件
第三个阶段open阶段
open阶段数据库才真正用到了数据文件和日志文件。
通过控制文件就可以找到数据文件盒日志文件,控制文件记录了数据文件和日志文件的位置
alter database mount
视频5
强制重启:startup force(相当于断电重启,内存里的所有东西都没有了)
本文链接
Oracle 11g 允许将索引标记为invisible. oracle像维护其他索引一样维护 invisible index ,但是默认invisible index不能被优化器使用,除非显式设置 OPTIMIZER_USE_INVISIBLE_INDEXES=TRUE(可以alter system/session).可以在创建索引的时候指定 INVISIBLE关键字或 ALTER INDEX命令来invisible一个索引。
CREATE INDEX idx_name on table_name(column_name) INVISIBLE;ALTER INDEX idx_name INVISIBLE;ALTER INDEX idx_name VISIBLE;
demo:
SQL> create table ii_tab( id number);Table created.SQL> begin 2 for i in 1 .. 10000 loop 3 insert into ii_tab values (i); 4 end loop; 5 commit; 6 end; 7 /PL/SQL procedure successfully completed.SQL> create index ii_tab_id on ii_tab(id) invisible;Index created.SQL> exec dbms_stats.gather_table_stats(USER,'ii_tab',cascade=>TRUE);PL/SQL procedure successfully completed.SQL> set autotrace onSQL> select * from ii_tab where id=9999; ID---------- 9999Execution Plan----------------------------------------------------------Plan hash value: 2057286804----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 4 | 7 (0)| 00:00:01 ||* 1 | TABLE ACCESS FULL| II_TAB | 1 | 4 | 7 (0)| 00:00:01 |----------------------------------------------------------------------------Predicate Information (identified by operation id):--------------------------------------------------- 1 - filter("ID"=9999)Statistics---------------------------------------------------------- 11 recursive calls 0 db block gets 43 consistent gets 0 physical reads 0 redo size 521 bytes sent via SQL*Net to client 523 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 5 sorts (memory) 0 sorts (disk) 1 rows processedSQL> alter session set optimizer_use_invisible_indexes=true;Session altered.SQL> selec