Oracle数据泵(expdp)导入导出数据的详细步骤
作者:0xfather
这篇文章主要介绍了Oracle数据泵(expdp)导入导出数据的详细步骤,文中详细描述了源数据库操作中的数据备份和目标数据库操作中的数据恢复过程,需要的朋友可以参考下
源数据库操作(数据备份)
自定义变量
1.查询当前数据库的自定义变量(里面包含导出数据文件路径变量配置,即DUMP_DIR)
select * from dba_directories;
2.若没有配置,则创建一个dump_dir(变量名可自定义,后面用自定义的变量即可)
create directory dump_dir as 'F:/dbback'
3.导出指定用户的数据,指定导出的用户、导出文件名称、导出文件路径定义、导出时的日志文件信息
expdp PMS_ZS/000000@pms schemas=PMS_ZS dumpfile=pms202410251525.dmp directory=DUMP_DIR logfile=pms202410251525.log
经过以上步骤,源数据库的数据即备份完成
目标数据库操作(数据恢复)
创建用户(若用户存在则跳过)
1.查询当前用户的表空间和临时表空间
select default_tablespace,temporary_tablespace from dba_users where username = USER;
2.根据上面查询出的表空间建立相应临时表空间(临时表空间指定最大容量)
create temporary tablespace PMS_DATA_TMP_ZS tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS.DBF' size 32m autoextend on next 32m maxsize 4096m extent management local;
修改临时表空间为不限制大小(32G上限):
alter database tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS.DBF' autoextend on next 32m maxsize unlimited;
增加一个新的临时表空间文件(此时必须设置固定大小)
alter tablespace temp add tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS_01.DBF' size 4096m;
修改第二个临时表空间文件为不限制大小
alter database tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS_01.DBF' autoextend on next 32m maxsize unlimited;
3. 根据上面查询出的表空间建立相应表空间
CREATE TABLESPACE PMS_DATA_ZS DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS.DBF' SIZE 32M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
-- 给表空间增加数据文件1(一个文件最大支持32G数据,多个文件可突破表空间最大容量32G限制)
ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_01.DBF' SIZE 32M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
-- 给表空间增加数据文件2(一个文件最大支持32G数据)
ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_02.DBF' SIZE 32M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
-- 给表空间增加数据文件3(一个文件最大支持32G数据)
ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_03.DBF' SIZE 32M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
-- 给表空间增加数据文件4(一个文件最大支持32G数据)
ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_04.DBF' SIZE 32M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
若表空间创建错误,可删除多余的表空间数据文件
ALTER DATABASE DROP DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS01.DBF';
4.创建用户并指定表空间
create user PMS_ZS identified by PMSTEST2023 default tablespace PMS_DATA_ZS temporary tablespace PMS_DATA_TMP_ZS;
5.给用户授权
grant create session to PMS_ZS; grant create table to PMS_ZS; grant unlimited tablespace to PMS_ZS; grant create any table to PMS_ZS; grant select on dual to PMS_ZS; grant insert on dual to PMS_ZS; grant all on dual to PMS_ZS; grant dba,connect,resource to PMS_ZS;
导入数据
6.导入数据
导入数据前请先检查导入文件的路径变量是否已定义
检查方法参考本文最上面的自定义变量,若没有定义则需要创建,将备份的数据文件存放在变量对应的路径下即可
impdp pms_zs/000000@pms dumpfile=PMS202410251525.DMP DIRECTORY=dump_dir logfile=imp202410251525.log table_exists_action=replace
总结
到此这篇关于Oracle数据泵(expdp)导入导出数据的文章就介绍到这了,更多相关Oracle数据泵expdp导入导出数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!