• Oracle数据库备份及还原(删除恢复、同步数据)


    Oracle 数据库复制表
    --------------------------------------------------------------------------------
    create table table_new_name as
    select * from table_name
     
     
    Oracle 数据库批量处理表(同步表,同步数据,删除)
    ---------------------------------------------------------------------------------
    DECLARE
    V_ROW USER_TABLES%ROWTYPE;
    CURSOR V_CUR IS
    select * from user_tables@DBS; --同步表
    --select * from user_tables@DBS a where a.table_name not in (select table_name from user_tables);--同步 不存在的表
    V_OP VARCHAR2(100);
    BEGIN
    OPEN V_CUR; -- 打开游标
    LOOP
    FETCH V_CUR INTO V_ROW; -- 将游标所在行的数据转存到v_row中
    EXIT WHEN V_CUR%NOTFOUND; -- 当游标到最后一行时跳出
    DBMS_OUTPUT.PUT_LINE('names= ' || V_ROW.TABLE_NAME);
    --v_op:='INSERT INTO '|| v_row.table_name || ' select * from '||v_row.table_name||'@dbs'
    v_op:='CREATE TABLE '|| v_row.table_name || ' as select * from '||v_row.table_name||'@dbs'; --同步表
    --V_OP := 'drop table ' || V_ROW.TABLE_NAME; --删除表
    DBMS_OUTPUT.PUT_LINE(v_op);
    EXECUTE IMMEDIATE v_op;
    COMMIT;
    END LOOP;
    CLOSE V_CUR; -- 关闭游标
     
     
    Oracle数据库备份及还原
    -----------------------------------------------------------------------------------
    1、单击开始,这里输入cmd,打开dos窗口
    2、输入命令 exp user/password@orcl file=E:appeifen.dmp 
    备注:user是指备份时,登录数据库实例orcl 的用户名;
    password是用户user登录数据库orcl 时的密码;
    orcl 是Oracle数据库的实例名。
    file=E:appeifen.dmp  是指备份文件的存放路径。
    3、如果在导出命令的最后加上full=y的参数,也就是
    exp user/password@orcl file=E:appeifen.dmp  full=y
    意思是将用户user在orcl 数据库实例中的所有文件都备份,也就是完整备份
    数据还原
    4、数据库还原使用语法
    imp user/password@orcl file=E:appeifen.dmp
    注:file=E:appeifen.dmp  是指备份文件的存放路径。
     
     
    Oracle中误删除数据并commit后的数据恢复办法
    ------------------------------------------------------------------------------
    --1.先备份A表当前数据。
    --2.查询某时间点前的SCN号码
    SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < To_Date(某时间点, 'YYYYMMDD hh:mi:ss');
    --3.查看某时间点的A表数据
    SELECT * FROM A AS OF SCN '步骤2的SCN号';
    --4.如果查看数据是想要的数据,则恢复
    SELECT row_movement FROM user_tables WHERE table_name = 'A';
    --5.步骤4结果如果为DISABLE ,则执行下面这句话,否则跳过
    ALTER TABLE A  ENABLE ROW MOVEMENT;
    --6.执行
    FLASHBACK TABLE A TO SCN '步骤2的SCN号';
    --7.如果原来为enable则不用执行,否则执行
    ALTER TABLE A DISABLE ROW MOVEMENT;
    --8.如果权限不够,就换个DBA用户进行上述操作
  • 相关阅读:
    一次关于聚合根的激烈讨论
    基于 abp vNext 和 .NET Core 开发博客项目
    PYTHON 学习笔记1 PYTHON 入门 搭建环境与基本类型
    DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下
    DOCKER 学习笔记8 Docker Swarm 集群搭建
    DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结
    DOCKER 学习笔记6 WINDOWS版尝鲜
    DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排
    DOCKER 学习笔记4 认识DockerCompose 多容器编排
    DOCKER 学习笔记3 使用Docker部署SpringBoot
  • 原文地址:https://www.cnblogs.com/lgx5/p/13571647.html
Copyright © 2020-2023  润新知