Oracle数据库导出
1、查询地址
查询数据库配置的地址
1 | select * from dba_directories; |
2、导出
进入Oracle服务器,打开CMD,运行导出命令。
语法:
1 | --语法 |
示例:
- 本人登录Oracle的用户信息:
2、执行SQL语句:
1 | select * from dba_directories; |
- 得到地址信息:
我选择将导出文件保存在G:\app\Administrator/admin/credit/dpdump/目录下,所以选择的file_save_address为DATA_PUMP_DIR,这个地址是Oracle服务器所安装的主机中的地址。
- 在Oracle服务器所安装的主机上运行CMD命令
导出mydb用户下的数据库,并将地址保存在DATA_PUMP_DIR 目录下,导出文件名为mydb20191113_expdp.dmp ,导出的日志文件为mydb20191113_expdp.log,Oracle数据库版本为11.2.0.1.0
1 | --示例 |
- 注意:
DATA_PUMP_DIR 是在Oracle管理工具中执行SQL语句后的地址信息中有一条地址名称。
Oracle数据库导入
1、查询用户名
查询需要导入的数据库的用户名是否存在,如果不存在需要创建用户、创建表空间,创建好之后,再执行导入数据库操作;如果用户存在则直接执行导入数据库操作。
1 | select * from dba_users; |
2、创建用户、表空间
查询Oracle地址
在执行创建用户、表空间之前,我们需要知道表空间的创建的地址,继续使用查询地址SQL(在需要导入的数据库中执行),查看Oracle的地址。
1 | select * from dba_directories; |
继续使用导出时的Oracle数据库:
语法:
1 | --创建表空间 |
示例:
我选择在E:/export_dir目录下创建表空间qydj,用户名为qydj,密码为1。
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); |
导入数据
首先将需要导入的数据库文件复制到Oracle的一个地址目录下;
执行CMD导入命令。
语法:
1 | 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 |
示例:
将之前导出的数据库导入到上一步创建的qydj用户下。
1 | impdp qydj/1 directory=oracle_address dumpfile=mydb20191113_expdp.DMP remap_schema=mydb:qydj remap_tablespace=mydb:qydj logfile=qydj20191113.log |
注意:
我们在导入的时候可能会报用户名已存在,视图、存储过程报错(已编译,但有警告),这些是没关系的,这些可能是我们的视图、存储过程跨用户查询了数据。
最后更新: 2020年06月02日 09:44