Oracle导出导入数据库

Oracle导出导入数据库

记录oracle数据库导入导出的执行过程–2019年11月13日

一、Oracle数据库导出

1.1、查询地址

查询数据库配置的地址

select * from dba_directories;

1.2、导出

进入Oracle服务器,打开CMD,运行导出命令。

语法:
--语法
expdp   oracle_user_name/oracle_user_pwd@ip:port/ ORACLE_SID     directory=file_save_address  DUMPFILE=exprot_file_name.dmp  logfile=exprot_logfile_name.log REUSE_DUMPFILES = Y  version=version_num

--名词解释(这些名词都需要换成个人实际的信息)
--oracle_user_name   数据库用户名称
--oracle_user_pwd	 数据库用户密码
--ip	 ip地址(服务器ip地址,个人登录Oracle时填写的IP,也是数据库的ip地址)
--port	端口号
--ORACLE_SID	数据库实例
--file_save_address	数据库保存路径(是数据库配置地址的别名)
--exprot_file_name.dmp	导出数据库名称(.dmp不能更改)
--exprot_logfile_name.log 导出数据库生成的日志文件名称(.log不能更改)
--version_num	数据库版本 (version=version_num 可以不带上)
示例:
  1. 本人登录Oracle的用户信息:

oracle_login

2、执行SQL语句:

select * from dba_directories;
  1. 得到地址信息:

oracle_address

我选择将导出文件保存在G:\app\Administrator/admin/credit/dpdump/目录下,所以选择的file_save_address为DATA_PUMP_DIR,这个地址是Oracle服务器所安装的主机中的地址。

  1. 在Oracle服务器所安装的主机上运行CMD命令

导出mydb用户下的数据库,并将地址保存在DATA_PUMP_DIR 目录下,导出文件名为mydb20191113_expdp.dmp ,导出的日志文件为mydb20191113_expdp.log,Oracle数据库版本为11.2.0.1.0

--示例
expdp   mydb/123456@192.168.168.138:1521/CREDIT     directory=DATA_PUMP_DIR  DUMPFILE=mydb20191113_expdp.dmp  logfile=mydb20191113_expdp.log REUSE_DUMPFILES = Y  version=11.2.0.1.0
  1. 注意:

DATA_PUMP_DIR 是在Oracle管理工具中执行SQL语句后的地址信息中有一条地址名称。

二、Oracle数据库导入

2.1、查询用户名

查询需要导入的数据库的用户名是否存在,如果不存在需要创建用户、创建表空间,创建好之后,再执行导入数据库操作;如果用户存在则直接执行导入数据库操作。

select * from dba_users;

2.2、创建用户、表空间

查询Oracle地址

在执行创建用户、表空间之前,我们需要知道表空间的创建的地址,继续使用查询地址SQL(在需要导入的数据库中执行),查看Oracle的地址。

select * from dba_directories;

继续使用导出时的Oracle数据库:

oracle_address

语法:
--创建表空间
create tablespace oracle_user_name datafile 'oracle_address/tablespace_name.DBF' size 200m reuse autoextend on next 200m maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
--创建表空间中的用户
create user user_name identified by user_password default tablespace tablespace_name;
--授权
grant dba,connect,resource,create any table,select any table,update any table,insert any table,delete any table ,drop any table to tablespace_name;


--名词解释(这些名词都可以换成自己需要的)
--oracle_address	查询数据库地址时的地址,也是导入文件存放的地址
--tablespace_name	表空间名称
--user_name		用户名
--user_password	用户密码
示例:

我选择在E:/export_dir目录下创建表空间qydj,用户名为qydj,密码为1。

create tablespace NECIPS_ZSTZSB datafile 'E:/export_dir/qydj.DBF' size 200m reuse autoextend on next 200m maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
create user qydj identified by 1 default tablespace qydj;
grant dba,connect,resource,create any table,select any table,update any table,insert any table,delete any table ,drop any table to qydj;

2.3、导入数据

  1. 首先将需要导入的数据库文件复制到Oracle的一个地址目录下;
  2. 执行CMD导入命令。
语法:
impdp  user_name/user_password    directory=EXPORT_DIR  dumpfile=exprot_file_name.DMP   remap_schema=old_schema:new_schema  remap_tablespace=old_tablespace:new_tablespace     logfile=import_file_log.log

--名词解释(这些名词都换成自己实际的内容)
--user_name		刚创建的用户名
--user_password	刚创建的用户的密码
--oracle_address	需要导入的数据库的文件地址(这个地址是在oracle中配置好的,我们将数据库的.dmp文件复制到这个目录下)
--old_schema		模式名称(一般为导入数据库的用户名)
--new_schema		模式名称(一般为刚创建的用户名)
--old_tablespace	表空间(导入数据库的表空间)
--new_tablespace	表空间(刚创建的表空间)
--import_file_log	日志文件(导入操作生成的日志文件)
示例:

将之前导出的数据库导入到上一步创建的qydj用户下。

impdp  qydj/1    directory=oracle_address  dumpfile=mydb20191113_expdp.DMP   remap_schema=mydb:qydj  remap_tablespace=mydb:qydj     logfile=qydj20191113.log

注意:

我们在导入的时候可能会报用户名已存在,视图、存储过程报错(已编译,但有警告),这些是没关系的,这些可能是我们的视图、存储过程跨用户查询了数据。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值