业务数据备份功能
来源:互联网 发布:剑三脸型数据下载 编辑:程序博客网 时间:2024/06/01 07:25
有了这个功能,妈妈再也不用担心我丢数据拉!( ̄︶ ̄)↗
需求:
在drop、truncate、update、delete操作之前,把需要备份的表或数据备份起来,然后定期删除备份数据。
实现:
1.创建DML备份表空间
create tablespace tbs_dmlbak datafile 'D:\APP\TECH\ORADATA\ORCL\tbs_dmlbak01.dbf' size 100m autoextend onextent management localsegment space management auto;
2.创建DML备份用户
create user DMLBAK identified by oracle default tablespace tbs_dmlbak;
3.赋权
grant resource,connect to dmlbak;grant drop any table to dmlbak;grant select any table to dmlbak;grant update any table to dmlbak;grant delete any table to dmlbak;grant insert any table to dmlbak;grant create any table to dmlbak;grant create public synonym to dmlbak;grant create any synonym to dmlbak;
4.创建备份信息表
DMLBAK用户下创建
-- Create tablecreate table T_BAKTAB_INFO( baktab_name VARCHAR2(30), origtab_name VARCHAR2(30), orig_owner VARCHAR2(30), bak_time DATE, bak_condition VARCHAR2(2000), keep VARCHAR2(1), comments VARCHAR2(2000))tablespace TBS_DMLBAK pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited );-- Add comments to the columns comment on column T_BAKTAB_INFO.baktab_name is '备份表名';comment on column T_BAKTAB_INFO.origtab_name is '原表名';comment on column T_BAKTAB_INFO.orig_owner is '原表用户';comment on column T_BAKTAB_INFO.bak_time is '备份时间';comment on column T_BAKTAB_INFO.bak_condition is '条件';comment on column T_BAKTAB_INFO.keep is '是否保存备份表';comment on column T_BAKTAB_INFO.comments is '备注';
5.备份过程
DMLBAK用户下创建
create or replace procedure p_dmlbak(vi_tab_name in varchar2, --原表名 vi_bak_condition in varchar2 default null) is --条件 tab_t_baktab_info t_baktab_info%rowtype; --映射表记录 v_bak varchar2(2000); --备份语句begin --生成备份表表名 select dbms_random.string('a',25) into tab_t_baktab_info.baktab_name from dual; --获取原表名 tab_t_baktab_info.origtab_name := upper(vi_tab_name); --获取当前SESSION_USER select SYS_CONTEXT('USERENV', 'SESSION_USER') into tab_t_baktab_info.orig_owner from dual; --获取操作时间 tab_t_baktab_info.bak_time := sysdate; --获取where条件 tab_t_baktab_info.bak_condition := vi_bak_condition; --是否保留备份表 tab_t_baktab_info.keep := 'Y'; --备份表备注 tab_t_baktab_info.comments := ''; --备份符合条件的表 v_bak := 'create table ' || tab_t_baktab_info.baktab_name || ' as select * from ' || tab_t_baktab_info.orig_owner || '.' || upper(vi_tab_name) || ' ' || vi_bak_condition; execute immediate v_bak; insert into t_baktab_info values tab_t_baktab_info; commit;end p_dmlbak;
6.给使用这个过程的用户赋权
grant execute on p_dmlbak to scott;
7.创建同义词
create or replace public synonym P_DMLBAK for DMLBAK.P_DMLBAK;
8.SCOTT下调用验证
sql>exec P_DMLBAK('t1');
0 0
- 业务数据备份功能
- 银行储蓄业务系统数据备份解决方案案例
- Android5.1.1实现备份应用数据功能
- 备份功能
- BOS项目练习(业务受理功能,快速录入工作单{datagrid数据表格编辑功能使用})
- 全球性的数据保护公司Acronis宣布推出Acronis备份即服务业务
- 业务表单系统----功能
- TFunc业务功能类
- func业务功能对象
- 《业务功能说明书》修订
- Centrex业务-秘书功能
- Prototype功能预览六:业务数据与处理代码集中管理的工作流水线
- 框架 day52 BOS项目练习(业务受理功能,快速录入工作单{datagrid数据表格编辑功能使用})
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- Javascript中的this
- 关于Xcode不显示中文解决方案
- CentOS6.4+Oracle11.2.0.4安装(单实例ASM)
- pat1012 The Best Rank
- C++拾遗--多线程:主线程与子线程的同步
- 业务数据备份功能
- 寻路算法基础研究
- swift UI专项训练14 ImageView图像视图
- 莫利定理:UVa 11178 Morley's Theorem
- UVa 511 - Do You Know the Way to San Jose? [STL应用]
- [LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql)
- C++ private成员变量作用域的扩展
- 半透明的实现
- 关于linux内核container_of宏的理解