Oracle 备份与还原
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 log=D:\implog.txt
指定log很重要,便于分析错误进行补救。
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 参数

该参数值默认是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:\oracle\data\xxx.dbf' size 100M autoextend on;
2、指定用户该表空间不受限
alter user demo quota unlimited on xxx;//后面的xxx是表空间名
3、然后再imp即可
注意导入时一定要指定log,便于分析解决
成功提示是这样的:
成功终止导入,没有出现警告
Oracle 备份与还原的更多相关文章
- C#oracle备份和还原
最近公司的oracle备份工具不好使了,原来是公司的人用VB写的,由于我是主攻C#的,所以想着自己来写一个C#版本的oracle备份和还原工具. 一开始,我按照原来的设计思路来进行编写,想在pluss ...
- oracle 备份与还原 及相关操作
drop user 用户名 cascade; ........删除用户 create user 用户名 identified by 密码 default tablespace 数据文件名 tempor ...
- oracle备份与还原(导入导出)
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp相当于oracle数据还原与备份.说明:大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的 ...
- oracle备份与还原数据
一.表数据备份与还原 creat table 备份表 select * from 原表 where insert into 原表 select * from 备份表 二.利用备份 ...
- oracle 备份和还原还有创建用户、表空间、授权
--找到存放dbf文件的路径--E:\oracle\product\10.2.0\oradata\orcl--可以通过此语句进行查询select * from v$datafile; --创建表空间c ...
- oracle备份、还原
----第一步:设置空表导出 ----由于Oracle 11G在用EXPORT导出时,空表不能导出.解决方法如下:(11G中有个新特性,当表无数据时,不分配segment,以节省空间) select ...
- Oracle备份、还原数据库
备份数据库 创建备份目录(用sys账号),若已创建备份目录,此步可忽略 create directory db_bak as 'D:\ ECIMS_DB' --查看创建的目录 select * fro ...
- oracle备份和还原
用exp命令即可完成,但要看具体的备份方式. 1. 导出一个完整数据库 exp system/manager file=bible_db log=dible_db full=y 2. 导出数据库定义而 ...
- oracle数据泵备份与还原
完整的常用的一套oracle备份以及还原方案 --在新库中新建数据目录,我没有特别说明在哪执行的语句都可在plsql中执行 CREATE OR REPLACE DIRECTORY dump_dir A ...
随机推荐
- Unity Ugui射线坐标转换总结
世界空间中的点坐标转换到屏幕坐标: screenPos = RectTransformUtility.WorldToScreenPoint(cam, worldPos.transform.positi ...
- 黑马程序员——【Java高新技术】——代理
---------- android培训.java培训.期待与您交流! ---------- 一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法 ...
- jquery点赞和取消点赞插件
<script> /* @author:Romey * 动态点赞 * 此效果包含css3,部分浏览器不兼容(如:IE10以下的版本) */ $(function(){ $("#p ...
- DotNetBar中collapsibleSplitContainer的问题
如果有两个collapsibleSplitContainer,并且将splitwidth都设置为1,则只有第一个起作用,如,窗体设计中的图是: 而执行的图是: 解决办法:在窗体load里手动将第二个c ...
- 【LeetCode】Roman to Integer & Integer to Roman
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...
- C#查找以某个字母开头另一字母结尾的字符串
using System; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { ...
- IOS 更改百度地图的定位图片
使用了百度地图的SDK,定位图片一直是蓝色的小圆点,很不喜欢,想换成自定义的图片,在网上搜罗了一大通,找到了解决的方案. 写下如下代码: //定位图层自定义样式参数 BMKLocationViewDi ...
- collections系列
一.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 c = Counter('abcdeabcdabcaba') prin ...
- EF里一对一、一对多、多对多关系的配置
EF关系规则 参考文章:http://www.cnblogs.com/feigao/p/4617442.html Entity Framework 实体间的关系,一对一,一对多,多对多,根据方向性来说 ...
- 《C标准库》——之<string.h>
<string.h>里的字符串操作函数是经常要用到的,因此阅读了源码后自己实现了一些: 拷贝函数 void * Mymemcpy(void * sDst, const void * sSr ...