oracle使用expdp和impdp进行数据迁移

使用expdp导出备份文件

#切换到oracle用户
su - oracle
#登录本地管理员账号
sqlplus / as sysdba
#创建备份目录
create directory dump_dir as '/oracle/dump_dir';
#查询目录创建是否成功
select owner,directory_name,directory_path from dba_directories;
#赋予用户对dump_dir目录的读写权限。
grant read,write on directory dump_dir to 用户名;
#赋予用户全库导出的权限。
grant datapump_exp_full_database to 用户名;
#备份全库
expdp 账号/密码@服务名 schemas=xnyqtsrm dumpfile=xnyqtsrm`date +%Y%m%d`.dmp directory=dir_dump

使用impdp导入备份文件到不同库的不同表空间

#创建存放dmp备份文件的目录
cd /u01/app/oracle
mkdir -p dump_dir
chown -R oracle:oinstall /u01/app/oracle/dump_dir
chmod -R 775 /u01/app/oracle/dump_dir
#登录本地管理账号
sqlplus / as sysdba
#查看表空间所在位置
select name from v$datafile;
#创建表空间
create tablespace xnyqtsrm_test datafile '/u01/app/oracle/oradata/xnyqtsrm/xnyqtsrm_test.dbf' size 100M reuse autoextend on;
#创建临时表空间
create temporary tablespace xnyqtsrm_test_temp tempfile '/u01/app/oracle/oradata/xnyqtsrm/xnyqtsrm_test_temp.dbf' size 50m reuse autoextend on;
#创建用户
create user xnyqtsrm_test identified by xnyqtsrm_test default tablespace xnyqtsrm_test temporary tablespace xnyqtsrm_test_temp quota unlimited on xnyqtsrm_test;
#授予权限
grant create user,drop user,alter user ,create any view ,drop any view,exp_full_database,imp_full_database, dba,connect,resource,create session to xnyqtsrm_test;
#授予dba权限(可选)
grant dba to xnyqtsrm_test;
#赋予用户全库导入的权限
grant datapump_imp_full_database to xnyqtsrm_test;
#创建恢复目录
create directory dump_dir as ‘/u01/app/oracle/dump_dir’;
#查询目录是否创建成功。
select owner,directory_name,directory_path from dba_directories;
#授予用户读写恢复目录的权限
grant read,write on directory dump_dir to xnyqtsrm_test;
==需要注意的是,需要清楚原备份文件物理表空间文件有多少个,迁移导入也应该保持一致,否则无法正常导入==
#如在旧环境表空间有4个物理文件,新的也要创建4个保持一致
#查看旧环境表空间有几个物理文件
select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_name;
#新环境创建表空间物理文件,当创建表空间时会产生一个,所有只需要创建三个
#也可用来扩容,当表空间文件超过32G用满时,创建表空间文件来扩容
alert tablespace xnyqtsrm_data add datafile '/u01/app/oracle/oradata/xnyqtsrm/xnyqtsrm_test01.dbf' size 1024M autoextend on;
alert tablespace xnyqtsrm_data add datafile '/u01/app/oracle/oradata/xnyqtsrm/xnyqtsrm_test02.dbf' size 1024M autoextend on;
alert tablespace xnyqtsrm_data add datafile '/u01/app/oracle/oradata/xnyqtsrm/xnyqtsrm_test03.dbf' size 1024M autoextend on;
#导入备份文件
impdp xnyqtsrm_test/xnyqtsrm_test@xnyqtsrm DUMPFILE=xnyqtsrm20230122.dmp DIRECTORY=dump_dir REMAP_SCHEMA=xnyqtsrm:xnyqtsrm_test REMAP_TABLESPACE=xnyqtsrm:xnyqtsrm_test
此条目发表在oracle分类目录。将固定链接加入收藏夹。

发表评论