Oracle备份表

1、手动备份到表

---创建备份表
create table bosdata.user_info_bak as select * from bosdata.user_info;
---将备份表恢复到主表
truncate table bosdata.user_info;
insert into bosdata.user_info select * from bosdata.user_info_bak;

2、定时自动备份

实际上就是在存储过程中备份,然后用job任务定时去调存储过程

create or replace procedure acct_limit_bak authid current_user is
begin
    execute immediate 'drop table tspdata.acct_bank_card_limit_bak';
    execute immediate 'create table tspdata.acct_bank_card_limit_bak as select * from tspdata.acct_bank_card_limit';
    execute immediate 'CREATE INDEX bank_limit_bak_INDEX1 ON tspdata.acct_bank_card_limit_bak (trans_acctid ASC)';
    execute immediate 'grant select, insert, update, delete on tspdata.acct_bank_card_limit_bak to r_tspdata_dml';
end acct_limit_bak;

注意: authid current_user is很重要,不然在执行Create table时会抛异常:权限不足

先call一下试试存储过程是否可以执行

然后执行JOB定时任务

declare
  v_name number:=99;
begin
  sys.dbms_job.submit(job => v_name,
                      what => 'tspdata.acct_limit_bak();',
                      next_date => sysdate+1/(24*60),---一分钟后开始执行
                      interval => 'trunc(sysdate,''mi'')+2/(24*60)');---两分钟执行一次
  commit;
end;

查看Jobs任务列表和执行情况

SELECT * FROM USER_JOBS;
  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值