oracle的数据导入导出问题
问题背景:第二天领导要去给客户演示项目,让我在演示电脑上部署我们的项目。由于我们的项目的数据库使用的是oracle 10g,但是我从来没有进行过导数据库和还原数据库的操作,第一次操作都是找度娘,而且还是很迷茫。刚开始我一直想办法在我的plsql上把数据库导出来,但是一直摸不到窍门,而且我们的数据库较大,导出的时间也比较久。后来,同事指导我从服务器段导出数据库。但是我面临了新的问题,我不清楚公司的服务器密码,最后求助了测试组的同事,让他帮我从服务器导出数据库。
导出数据库的执行语句
第一步:创建dmp导出目录
create directory 目录名 as '目录路径'
第二步:查看当前创建的所有dmp导出目录 (验证看是否创建成功)
select * from dba_directories
第三步:为创建的目录赋权限
grant read,write on directory 目录名 to 需要赋值的用户名
第四部:导出数据库
第一种:用我同事的话来说,导出比较快
expdp 用户名/密码@数据库实例名 directory=导出目录 dumpfile=导出的文件名.dmp logfile=导出的日志名.log
第二种:
:exp 用户名/密码@数据库名称 file=目标文件地址及文件名称 full = y
导入数据库的执行语句
第一步:创建表空间
create tablespace 表空间名称 datafile 表空间文件地址 size 表空间大小 autoextend on next 自适应扩展大小
第二步:创建目录
create or replace directory 目录名称 as 目录地址
PS:把要导入的DMP文件放入目录下。
第三步:创建用户,并指定默认的表空间
create user 用户名 identified by root default tablespace 表空间名称;
第四步:授权
授权dba权限:grant connect, dba to 用户名
授权用户读写目录文件: grant read, write on directory 目录名称 to 用户名称
第五步:导入文件
impdp 用户名/密码@数据库实例名 directory=目录名称 dumpfile=导入文件名称.dmp logfile=日志文件名.log full=y
PS:lodfile可以不加,不加系统自动创建。
第六步:扩展表空间,如果导入的数据库太大,一个表空间不够,需要扩展表空间的大小【以下方法实在原来表空间的基础上新增表空间文件进行扩容】
ALTER TABLESPACE 表空间(和之前创建的表空间的名字相同)ADD DATAFILE
'新的表空间文件的地址.DBF' SIZE 表空间大小
AUTOEXTEND ON NEXT 扩容大小 MAXSIZE 最大值大小
最后成功把数据库导入到演示电脑上了!