广告
返回顶部
首页 > 资讯 > 数据库 >oracle job的迁移
  • 518
分享到

oracle job的迁移

2024-04-02 19:04:59 518人浏览 独家记忆
摘要

因为JOB的内容是写死的,如果使用remap导入到别的用户下,其log_user等还是原来的,再加上job的id是固定的,很可能和当前库有冲突,所以建议取出job的ddl。 dbms_metada

因为JOB的内容是写死的,如果使用remap导入到别的用户下,其log_user等还是原来的,再加上job的id是固定的,很可能和当前库有冲突,所以建议取出job的ddl。

 

dbms_metadata.get_ddl是不可以的。不行你们试试就知道了。

 

所以我写了个plsql

set serveroutput on size 100000
set termout on
set feedback off
clear screen
spool /opt/soft/bak/make_jobs.sql
prompt -- exporting jobs
begin
<< export_jobs >>
declare 
  subtype   job_type       is  user_jobs.JOB%type    ;
  subtype   max_text_type  is  varchar2( 8191 char ) ;
  type      job_tab_type   is  table of   job_type        index by pls_integer ;
  type      sql_tab_type   is  table of   max_text_type   index by pls_integer ;
      
  job_tab     job_tab_type  ;
  sql_tab     sql_tab_type  ;
  job         pls_integer   ;
  what        pls_integer   ;
  next_date   pls_integer   ;
  interval    pls_integer   ;
  no_parse    pls_integer   ;
  procedure 
        get_jobs
  is
  begin
        select j.JOB
          bulk collect
          into job_tab
          from user_jobs j
         order by 1
        ;
  end   get_jobs
  ;
  
  procedure 
        fORMat( x pls_integer )
  is 
        sqlx     max_text_type  :=  null ;
  begin 
                sqlx := 'begin'                                                     || chr(10);
        job          :=   instr( sql_tab(x), '(job=>' ) ;
        sqlx := sqlx ||  substr( sql_tab(x), 1, job-1 )                             || chr(10) ;
        what         :=   instr( sql_tab(x),',what=>' ) ;
        sqlx := sqlx ||  substr( sql_tab(x), job, what-job )                        || chr(10) ;
        next_date    :=   instr( sql_tab(x),',next_date=>' ) ;
        sqlx := sqlx ||  substr( sql_tab(x), what, next_date-what )                 || chr(10) ;
        interval     :=   instr( sql_tab(x),',interval=>' ) ;
    --  sqlx := sqlx ||  substr( sql_tab(x), next_date, interval-next_date )        || chr(10) ;
        sqlx := sqlx ||  q'|,next_date=>'01-JAN-3000'|'                             || chr(10) ;
        no_parse     :=   instr( sql_tab(x),',no_parse=>' ) ;
        sqlx := sqlx ||  substr( sql_tab(x), interval, no_parse-interval )          || chr(10) ;
        sqlx := sqlx ||  ',no_parse=>TRUE'                || chr(10) || ');' || chr(10) ;
        sqlx := sqlx ||  'commit;'                        || chr(10)         || chr(10) ;
        sqlx := sqlx ||  'end;'                           || chr(10) || '/'  || chr(10) ;
        
        sql_tab(x)   :=  sqlx;
  end   format
  ;          
  
begin
      get_jobs;
      if    
            job_tab.count > 0 
      then
            for   
                  i   in  1 .. job_tab.count
            loop
                  sql_tab(i) := ' ';
                  sys.dbms_job.user_export
                  (  job    =>  job_tab(i)
                   , mycall =>  sql_tab(i)
                  );
                  format(i) ;
                  dbms_output.put_line( sql_tab(i) ) ;
            end   loop
            ;
      else
            dbms_output.put_line( '-- Nothing to do.' ) ; 
      end   if
      ;
end export_jobs
;
end;
/
spool off

 

然后呢,用这个得到输出重建job。如果你遇到

ORA-00001: unique constraint (SYS.I_JOB_JOB) violated

就说明job列重复了,这时候你有两种方法,一个是重置job,改个没人用的。

另一种就是删了现在的job重建。

删除语法是

exec dbms_job.remove(25);

 如果删除时遇到如下:

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

很有可能是因为你的用户不是job的owner。

select job,log_user,priv_user,schema from dba_jobs where job=25;

然后切换过去再删除,同理,建立也必须使用当前用户。

您可能感兴趣的文档:

--结束END--

本文标题: oracle job的迁移

本文链接: https://www.lsjlt.com/news/38473.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle job的迁移
    因为JOB的内容是写死的,如果使用remap导入到别的用户下,其log_user等还是原来的,再加上job的id是固定的,很可能和当前库有冲突,所以建议取出job的ddl。 dbms_metada...
    99+
    2022-10-18
  • Oracle 审计表AUD$迁移表空间及创建清理job
    Oracle 10.2.0.5以上的版本可以使用DBMS_AUDIT_MGMT清理audit1、查看audit是否已经打开SQL> show parameter audit_trail NAME ...
    99+
    2022-10-18
  • oracle中的job
    oracle知识点-joboracle中的job类似于Linux中的crontab的作用,用于定时执行某些操作相关视图:dba_jobs,user_jobs,all_jobs,dba_jobs_runnin...
    99+
    2022-10-18
  • oracle 数据库迁移
    PL/SQL Release 11.2.0.4.0 - Production导出版本,数据库地址10.36.40.53PL/SQL Release 11.2.0.4.0 - Production导入版本,数...
    99+
    2022-10-18
  • Oracle数据迁移MySQL
    前言: 现今,Oracle数据迁移MySQL的需求已经越来越普遍,主要的迁移场景大致可以分为三类,第一类是涉及小表以及少量表的一次性迁移,无需进行增量同步,第二类是涉及大表以及多表的一次性迁移,第三类是涉及增量实时同步,而对于数据的迁移方法...
    99+
    2023-09-26
    oracle mysql 数据库 运维 dba
  • 数据库迁移系列之--Oracle迁移到Mysql
    敬请期待......
    99+
    2017-12-07
    数据库迁移系列之--Oracle迁移到Mysql
  • Oracle迁移到Postgresql的方法
    Oracle迁移到Postgresql的方法一:用Oracle_fdw参考资料:https://www.jianshu.com/p/e0d11f57ab75http://francs3.blog.163.c...
    99+
    2022-10-18
  • Oracle RAC集群迁移至Oracle单机_Oracle RAC迁移_数据库迁移与备份恢复12
    风哥本套课程熟悉生产环境Oracle RAC集群迁移至Oracle数据库单机的项目实施Oracle RAC集群迁移至Oracle单机_Oracle备份恢复与数据迁移12课程地址:https://edu.51...
    99+
    2022-10-18
  • Oracle单机迁移至Oracle RAC集群_Oracle RAC迁移_数据库迁移与备份恢复13
    风哥本套学习Oracle单机迁移至Oracle RAC集群过程Oracle单机迁移至Oracle RAC集群_Oracle备份恢复与数据迁移13课程地址:https://edu.51cto.com...
    99+
    2022-10-18
  • 迁移oracle用户密码
    如何迁移oracle user的密码到新的环境,以下列出了方法: select name,spare4||';'||password pwd from sys.user$ wher...
    99+
    2022-10-18
  • Oracle 12C RAC数据迁移
    源端:12C RAC primay backup file目标端:12C 单实例部分总结:1 pfile修改2 disable redo thread N3  drop logfile group...
    99+
    2022-10-18
  • Oracle 11g 数据库迁移
    由于服务器更换,或者硬盘损坏等问题,在有些场景下,我们需要对数据库进行迁移。Oracle 数据库有多种备份方式,如果可以停机,建议最好使用冷备的方式,直接迁移数据文件,这样效率会比较高。由于两台主机都是Wi...
    99+
    2022-10-18
  • ORACLE 11G XMLTYPE 迁移切换
    xmltype 迁移切换的过程 着实让我郁闷了很久,但是最终解决还是好的,方案已经验证OK了, 针对 xmltype的表 导出的时候有诸多的限制,因为xml的内容格式还是比较多样,oracle ...
    99+
    2022-10-18
  • oracle学习-数据迁移
    如果只是迁移表空间或者数据文件,可以先将表空间或者数据文件offline之后移动位置,并通过alert database rename 和 alter tablespace rename 将位置变化写入控制...
    99+
    2022-10-18
  • oracle 数据文件迁移
    环境:win 2008   oracle 11g    应开发人员申请,将本地automap数据文件迁移到磁阵上。    数据库非归档模式 数据文件迁移...
    99+
    2022-10-18
  • 【Oracle Database】 数据迁移(expdp/impdp)
    导出SCHEMA [oracle@king01 ~]$ sqlplus / as sysdba SQL> col owner&nb...
    99+
    2022-10-18
  • 怎么从MySQL迁移到Oracle
    这篇文章主要讲解了“怎么从MySQL迁移到Oracle”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么从MySQL迁移到Oracle”吧! 1. 自动增...
    99+
    2022-10-19
  • oracle的定时器job
    1、创建一个存储过程my_proc();2、创建一个定时器,这是这个JOB在创建的时候已经被运行;declare test_job number;begin    s...
    99+
    2022-10-18
  • GoldenGate架构下oracle与oracle数据迁移
    GoldenGate架构下的oracle与oracle数据迁移1:确定数据库版本下载相应的GG软件、开启归档模式、修改归档文件格式、添加附加日志、创建安装目    录、解压软件、设置变量...
    99+
    2022-10-18
  • Oracle XTTS跨平台数据库迁移(从Unix迁移数据库到Linux)_Oracle数据库迁移项
     Oracle数据库迁移教程04 Oracle XTTS跨平台数据库迁移实战(真正超越OCP/OCM的项目实战系列教程)本套风哥Oracle教程学习内容1.Oracle XTTS技术基础知识2.Oracle...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作