Oracle 备份与还原
2015-12-31 11:44
531 查看
oracle 备份与还原
一、备份数据库(exp)1、完全备份
exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y
demo:用户名、密码
buffer: 缓存大小
file: 具体的备份文件地址
full: 是否导出全部文件
ignore: 忽略错误,如果表已经存在,则也是覆盖
2、将数据库中system用户与sys用户的表导出
exp demo/demo@orcl file=d:\backup\1.dmp owner=(system,sys)
3、导出指定的表
exp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)
4、按过滤条件,导出
exp demo/demo@orcl 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/demo@orcl file=d:\back.dmp full=y ignore=y
2、导入指定表:
imp demo/demo@orcl 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 参数
![](http://images2015.cnblogs.com/blog/22790/201512/22790-20151230203552182-2079567644.jpg)
该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
需要查询所有的空表,然后执行
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
然后再导出即可。
相关文章推荐
- datax中oracleWriter
- Oracle 物理备份--rman
- Oracle 数据库学习
- Oracle12C用户创建、授权、登录
- Oracle12C用户创建、授权、登录
- Oracle ORA-01704文字字符串过长
- oracle 11.2.0.4.0导入导出笔记
- asmlib方式管理oracle asm环境下,新加存储需特别注意
- oracle最容易忽视的两个进程SMON好ARCH
- lepus 监控oracle11g
- Oracle 多行记录合并/连接/聚合字符串的几种方法
- [转]Oracle中使用Rownum分页详细例子
- oracle 数据库收费标准
- 使用pl/sql导出表内数据的方法--oracle导出
- 通过命令行安装Oracle weblogic
- 部署oracle 11g standone,安装grid时,以root执行第二个脚本报错
- 查看自己oracle的service_name
- Oracle10g实现只读表的常用方法
- Oracle 之 锁
- Oracle 之 for update 与for update skip locked