当前位置:Gxlcms > 数据库问题 > 分享一次Oracle数据导入导出经历

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

时间:2021-07-01 10:21:17 帮助过:11人阅读

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\  本地数据库文件存储目录

会查询出类似以下脚本

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

TBS_TYUM_SMS   表空间名称

E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF   创建的空间表DBF文件 

3.创建导出文件相关操作

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

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

二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)

select * from dba_directories;

三、给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

其实在导入导出的过程中应该还会遇到其他的一些问题,这里因为之前在操作的时候没有记录了,以后如果碰到了问题,我会在这里一一记录,也希望这篇文章能够给需要的人带来帮助。如果有什么写错的地方也希望大家能够指出来。谢谢!

微信链接:链接

如果有感兴趣的可以关注一下。

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

标签:cot   amp   最好   文章   undo   导出数据库   导出   open   服务器   

人气教程排行