分享一次Oracle数据导入导出经历

最近工做上有一个任务要修改一个比较老的项目,分公司这边没有这个项目数据库相关的备份,因此须要从正式环境上面导出数据库备份出来在本地进行部署安装,以前在其它项目的时候也弄过这个数据库的部署和安装,也写了一个操做文档,可是写的不是那么的详细,不少场景都没有考虑到,后面想了想仍是从新写一个操做文档方便下次数据库相关导出的操做,也同时可以帮助其它初次接触的同事快速操做。数据库

项目的采用的开发相关是:Vs2008,Oracle 11g,PLSQL。服务器

第一步,数据库的导出微信

a.数据库用户导出oracle

1.查询全部数据库用户app

 SELECT wm_concat(T.username)
 FROM DBA_USERS T
 WHERE T.account_status = 'OPEN'
 AND T.default_tablespace NOT IN ('SYSTEM', 'SYSAUX')
 AND T.username NOT IN ('SCOTT','EMULATION')

2.导出建立表空间及数据文件脚本工具

 SELECT 'CREATE TABLESPACE ' || T.TABLESPACE_NAME ||
        ' DATAFILE ''E:\ORADATA\FSDB\' || T.TABLESPACE_NAME || '01.DBF'' size 100M autoextend on;'
   FROM DBA_TABLESPACES T
  WHERE T.TABLESPACE_NAME NOT IN
        ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS', 'UNDOTBS2');

E:\ORADATA\FSDB\  本地数据库文件存储目录spa

会查询出相似如下脚本操作系统

CREATE TABLESPACE TBS_TYUM_SMS DATAFILE 'E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF' size 100M autoextend on;

TBS_TYUM_SMS   表空间名称.net

E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF   建立的空间表DBF文件 3d

3.建立导出文件相关操做

1、建立导出文件存放的文件目录(该目录必须存在),该命令不会在操做系统建立真正的目录,最好以system等管理员建立。

create or replace directory DPDATAGGDB as 'E:\backup\xxxx';

2、查看管理理员目录(同时查看操做系统是否存在,由于Oracle并不关心该目录是否存在,若是不存在,则出错)

select * from dba_directories;

3、给scott用户赋予在指定目录的操做权限,最好以system等管理员赋予。

grant read,write on directory DPDATAGGDBto scott;

4.按用户导出

-按用户导出

Expdp system/123456@XXDB schemas=xxxx dumpfile=XXDB20170307BAK.DMP directory=DPDATAGGDB  logfile=XXDB20170307BAK.log

-exp所有导出

exp system/123456@XXDB  file=E:\backup\xxxx\QZDB20170220_bak.dmp full=y  

system/123456   登陆dba帐号密码

XXDB      须要导出的数据库名称

schemas    用户集合

dumpfile=XXDB20170307BAK.DMP   导出的数据dmp文件

directory=DPDATAGGDB   第三部建立的文件目录  这里导出的文件会在该目录下面生成对应文件

logfile=XXDB20170307BAK.log      导出的数据log文件

第二步,数据库导入

1.01打开oracle Databese配置工具

 

1.02进入欢迎页面

 

1.03选择建立数据库,若是须要修改能够选择配置数据库选件

1.04数据库模板

 

1.05填写数据库链接表示

 

1.06管理选项,可直接下一步

 

1.07填写数据库登陆信息,为了管理方便选择所要帐号使用同一管理口令

 

1.08设置数据文件存放位置,可选择默认位置,也可本身设置存放位置

 

1.09设置恢复配置,可选择默认数据

 

1.10数据库内容,可跳过

 

1.11初始化参数,主要分配内存空间,须要考虑当前服务器上面可用空间,多个数据库须要平均处理,后面的调整大写,字符集,连接模式能够选择默认选项

1.12数据库存储

 

1.13建立选项

 

1.14点击完成就会生成数据库了

2.打开PLSQ或者TOAD用sys  DBA身份登陆建立第一步第二个操做导出

CREATE TABLESPACE TBS_TYUM_SMS DATAFILE 'E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF' size 100M autoextend on;

.....这里应该导出多个空间的建立语句

3.建立用于导入导出的文件目录

create or replace directory TY_DUMP_DIR as 'E:\app '

E:\app 必需是已经存在的目录。 

查看已经存在的目录  

select * from dba_directories

 

删除文件目录记录  

DROP DIRECTORY TY_DUMP_DIR

用sys用户登陆给要访问的用户指定访问目录的权限。 

grant read,write on directory TY_DUMP_DIR to scott;

4.导入数据

Impdp SYSTEM/123456@XXDB directory=TY_DUMP_DIR dumpfile=XXDB20170307BAK.DMP  LOGFILE=XXDB20170307BAK.LOG full=y

impdp system/123456@XXDB schemas=xxxx dumpfile=XXDB20170307BAK.DMP directory=DPDATAGGDB logfile=XXDB20170307BAK.log

或者

imp system/123456@XXDB  file=d:\bak.dmp full=y ignore=y

这里的相关关键词不一一解释了,能够参照导出文件说明

若是是EXpdp 导出的则须要用Impdp 导出    EXP则须要用imp  否则会在导出的时候报错

这里全部的导入导出操做都要在cmd命令符操做下进行  window+R   cmd

其实在导入导出的过程当中应该还会遇到其余的一些问题,这里由于以前在操做的时候没有记录了,之后若是碰到了问题,我会在这里一一记录,也但愿这篇文章可以给须要的人带来帮助。若是有什么写错的地方也但愿你们可以指出来。谢谢!

微信连接:连接

若是有感兴趣的能够关注一下。

相关文章
相关标签/搜索