oracle单用户数据导入导出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前提:如果整个Oracle库坏了,恢复起来就比较复杂,也需要专业一点的人士实际指导来做。
本文档阐述一下如何进行oracle表空间的备份与恢复,主要是为了防止数据的丢失。本文讨论的也是比较简单的情况,一个用户对应一个表空间。具体步骤如下:
1.备份数据
备份oracle中一个用户的所有数据。(我的测试环境是在数据库服务器【136】上进行的),打开命令行,输入备份语句
语句为:exp userid=Ajita/1@ORCL owner=(Ajita) file=d:\d.dmp其中:
用户名:Ajita
密码:1
数据库名称:ORCL
要备份数据的用户:Ajita
备份文件:d:\d.dmp
2.创建新的用户及表空间
由于只有当用户表空间损坏了才需要备份数据,所以我们可以新建一个用户和表空间,并给该用户指定默认表空间。具体SQL如下
CREATE TABLESPACE Ajita_test DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\Ajita_test_data'SIZE1024M AUTOEXTEND ON NEXT 256M MAXSIZE unlimited;
create user ttest identified by aaa;
alter user ttest default tablespace Ajita_test quota unlimited on Ajita_test;
--如果需要DBA权限
grant dba to ttest;
3.数据还原
数据还原也是使用imp语句。我们把原来Ajita用户的数据导给ttest用户。相应的也要修改外围应用的连接字符串。
因为我是进行测试的,没有删除原来的Ajita用户和ECSS表空间,所以数据都导到别的地方了。如果真实的数据损坏,我们就可以删除Ajita和ECSS了。然后在步骤2中重新新建就OK了。
具体的导入代码如下:
imp ttest/aaa fromuser=ajita file=d:/d.dmp。其中:
用户名:ttest
密码:aaa
原来的用户:Ajita
备份文件:d:\d.dmp
导入的过程中可能会出现一些小的错误,如部分主键不能建立(我测试的时候只有一个表的主键建立失败),作业创建失败(这个是需要手动创建的)