oracle 复制不好使,oracle 数据同步复制故障解决

故障解决:oracle10g 数据库复制同步

呵呵。oracle我是个菜鸟,没花功夫研究它,但我还是兼任dba,目前oracle全部是由以前的dba创建的,oracle确实好。基本没有出过问题,我也就基本不管它了,可是由于自己粗心大意,在一次修改服务器地址时候,数据库里的tns...这个配置文件忘了修改,结果导致同步失败,等我发现的时候,发现已经失效,结果我花了2天时间,才得以解决。。。

先说说问题的发现

我有2台服务器,分别放置于不同机房,系统都为linux,数据库都为oracle10g,俩台数据库之间定时同步数据,有一次我更改了一台服务器地址,后来发现oracle同步出现故障,故障为broken 的值为Y,FAILURES=16,经过google ,说是broken =Y,FAILURES=16就是表示此job 失效,就是不再执行。

故障解决:

经过了无数次的google。。。。。我解决过程如下:

首先用oracle帐号登陆进数据库

sqlplus / as sysdba

然后查询dba_jobs情况

select job,next_date,next_sec,failures,broken from dba_jobs;

于是我运行

execute dbms.job.run(这里是停止了的job-id号)

发现无法运行。

这时发现failures 为16  , broken 为 Y

经过google,job如果由于某种原因未能成功之行,oracle将重试16次后,还未能成功执行,将被标记broken为Y(说明此工作将标记为破,而FLASE说明此工作将标记为未破)

现在看来这个job为破了,那就先将它改为未破

execute dbms.job_broken(id号,false,next_date);

说明一下:

id号:是停止了job所标示的唯一号

false:表示将broken 设置为false,意思就是未破啦

next_date:表示下一次此job运行的时间。

运行以上命令后,发现提示一下:

提示错误如下:

ORA-23421: job number 109 is not a job in the job queue

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86

ORA-06512: at "SYS.DBMS_IJOB", line 529

ORA-06512: at "SYS.DBMS_JOB", line 258

ORA-06512: at line 2

通过查询,才明白,如果你是以sys登录数据库的话,如果运行其他用户的job,必须使用SYS.DBMS_IJOB,如果是当前用户登录运行当前用户的job,就用SYS.DBMS_JOB,这我才明白。重新输入上述代码::

execute sys.dbms_ijob.broken(id号,false,next_date);

输入后完成,显示成功

然后提交 commit;

这时在查询job表的broken,发现那个为破的job,现在以改为未破 N。

接下来在运行execute dbms_ijob.run(id)

发现自动停止,在察看又发现broken 又变为

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值