加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle11g数据库的备份及还原

发布时间:2020-12-12 13:22:34 所属栏目:百科 来源:网络整理
导读:一、备份数据库(exp) 1、完全备份 exp demo/[email?protected] buffer=1024 file=d:back.dmp full=y demo:用户名、密码 buffer: 缓存大小 file: 具体的备份文件地址 full: 是否导出全部文件 ignore: 忽略错误,如果表已经存在,则也是覆盖 2、将数据库中s


一、备份数据库(exp)
1、完全备份
exp demo/[email?protected] buffer=1024 file=d:back.dmp full=y
demo:用户名、密码
buffer: 缓存大小
file: 具体的备份文件地址
full: 是否导出全部文件
ignore: 忽略错误,如果表已经存在,则也是覆盖
2、将数据库中system用户与sys用户的表导出
exp demo/[email?protected] file=d:backup1.dmp owner=(system,sys)
3、导出指定的表
exp demo/[email?protected] file=d:backup2.dmp tables=(teachers,students)
4、按过滤条件,导出
exp demo/[email?protected] file=d:back.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/[email?protected] file=d:back.dmp full=y ignore=y log=D:implog.txt
指定log很重要,便于分析错误进行补救。
2、导入指定表:
imp demo/[email?protected] file=d:backup2.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 错误 959ORA-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,便于分析解决成功提示是这样的:成功终止导入,没有出现警告

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读