• Oracle11g数据库的备份及还原



    一、备份数据库(exp)
    1、完全备份
    exp demo/demo@orcl buffer=1024 file=d:ack.dmp full=y
    demo:用户名、密码
    buffer: 缓存大小
    file: 具体的备份文件地址
    full: 是否导出全部文件
    ignore: 忽略错误,如果表已经存在,则也是覆盖
    2、将数据库中system用户与sys用户的表导出
    exp demo/demo@orcl file=d:ackup1.dmp owner=(system,sys)
    3、导出指定的表
    exp demo/demo@orcl file=d:ackup2.dmp tables=(teachers,students)
    4、按过滤条件,导出
    exp demo/demo@orcl file=d:ack.dmp tables=(table1) query=" where filed1 like 'fg%'"
    导出时可以进行压缩:
    命令后面 加上 compress=y
    如果需要日志,后面: log=d:log.txt

    5、备份远程服务器的数据库
    exp 用户名/密码@远程的IP:端口/实例 file=存放的位置:文件名称.dmp full=y

    二、还原数据库
    打开cmd直接执行如下命令,不用再登陆sqlplus。
    1、完整还原
    imp demo/demo@orcl file=d:ack.dmp full=y ignore=y log=D:implog.txt
    指定log很重要,便于分析错误进行补救。
    2、导入指定表:
    imp demo/demo@orcl file=d:ackup2.dmp tables=(teachers,students)
    3、还原到远程服务器
    imp 用户名/密码@远程的IP:端口/实例 file=存放的位置文件名称.dmp full=y

    三、解决11G后,空表无法导出的问题
    11G中有个新特性,当表无数据时,不分配segment,以节省空间。这样在导出数据的时候,空表不被导出
    解决方法:
    1、insert一行,再rollback就产生segment了。
      该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
    2、设置deferred_segment_creation 参数

    该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
    需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
    需要查询所有的空表,然后执行
    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
    然后再导出即可。

    四、导入数据时遇到 ORACLE 错误 959,表空间 'xxx' 不存在
    IMP-00003: 遇到 ORACLE 错误 959
    ORA-00959: 表空间 'xxx' 不存在
    IMP-00017: 由于 ORACLE 错误 959, 以下语句失败:
    解决方案:
    1、导入前,先创建表空间
    (创建目录即为oracle的数据目录)
    create tablespace xxx datafile 'D:oracledataxxx.dbf' size 100M autoextend on;
    2、指定用户该表空间不受限
    alter user demo quota unlimited on xxx;//后面的xxx是表空间名
    3、然后再imp即可
    注意导入时一定要指定log,便于分析解决
    成功提示是这样的:
    成功终止导入,没有出现警告

  • 相关阅读:
    python 取整的两种方法
    django class-based view 考古
    django缓存基于类的视图
    MySQL参数优化案例
    django后台使用MySQL情况下的事务控制详解
    讲讲python“=”运算符上的优雅语法
    p标签不折行的问题
    django-TDD
    session 和 flask_session 实现原理(源码解析)
    网关地址和网关IP是什么,他们有什么关系?
  • 原文地址:https://www.cnblogs.com/boosli/p/10201479.html
Copyright © 2020-2023  润新知