icevi(按钮工厂):Oracle
KingSunSha(弱水三千): 因为我觉得肯定可以完成,所以前台的处理不是没有用的。希望各位帮忙,当然,感谢前两位同志的支持,同样有分啊。

解决方案 »

  1.   

    前台工具是什么?你的具体要求?备份表?备份整个库?定时备份?手动备份?你是不是不想让用户用DBA STUDIO之类的工具来建立备份方案所以写了这个向导?
      

  2.   

    前台工具VC6,做法:让用户输入备份时间,如:每天6:00开始每隔5分钟进行一次增量备份,每星期日进行一次完全备份。
    我不是要通过程序进行备份,只是让不会用Oracle的用户能通过简单界面进行备份向导操作。我说清楚没有?
      

  3.   

    IS
      any_instance CONSTANT BINARY_INTEGER := 0; 
      PROCEDURE submit    ( job       OUT BINARY_INTEGER,
                            what      IN  VARCHAR2,
                            next_date IN  DATE DEFAULT sysdate,
                            interval  IN  VARCHAR2 DEFAULT 'null',
                            no_parse  IN  BOOLEAN DEFAULT FALSE, instance  IN  BINARY_INTEGER DEFAULT 0,
    force     IN  BOOLEAN DEFAULT FALSE );  FUNCTION background_process RETURN BOOLEAN;
      FUNCTION is_jobq RETURN BOOLEAN;END;用这个存储过程可以解决吗?
      

  4.   

    5分钟进行一次增量备份肯定是不合适的,数据库压力太大了!!!!没听说过这种做法。
    你的想法很难让人理解,
    1、从你5分钟备份的要求来看数据是相当重要的,而相当重要的数据没有DBA来管理能行吗?
    2、现在你只是让你的用户来直接管理备份工作,在备份的过程中随时随地可能会发生不可预知的错误(比如磁盘失败、表空间设置的问题、备份加锁问题等等),那万一失败由谁来处理?这么看这些数据也不是很重要。至于如何用前台在数据库中建立JOB,其实也是运行一段SQL,调用DBMS_JOB.SUBMIT()过程,请见下例:
    VARIABLE jobno NUMBER;
    BEGIN
       DBMS_JOB.SUBMIT(:jobno, 
          'dbms_ddl.analyze_object(''TABLE'',
          ''dquon'', ''accounts'', 
          ''ESTIMATE'', NULL, 50);', 
          SYSDATE, 'SYSDATE + 1');
       COMMIT;
    END;
    /
    Statement processed.
    PRINT jobno
    JOBNO
    ----------
    14144你在前台submit一个job,让这个job定时执行host exp是可行的,但是我还没想通由谁来监视job的执行状况、或者在异常情况下终止/删除job,还能让用户自己做吗?