欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle IMP,EXP和IMPDP,EXPDP导入方式详细说明

程序员文章站 2024-03-13 17:09:21
...

Oracle IMP,EXP和IMPDP,EXPDP导入方式详细说明

 

1.创建表空间(IMP和IMPDP相同)

一般数据库需要3个表空间,DATA,TEMP,INDEX,具体看项目需求。(TEST是数据库)

CREATE默认表空间大小512M。alter是自动增长表空间大小,表空间不够自动增长50M。

CREATE TABLESPACE "TEST_DATA" DATAFILE 'D:\DATA_FILE\TEST_DATA_01.DBF' SIZE 512M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TEST_INDEX" DATAFILE 'D:\DATA_FILE\TEST_INDEX_01.DBF' SIZE 512M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TEMPORARY TABLESPACE "TEST_TEMP" TEMPFILE 'D:\DATA_FILE\TEST_TEMP_01.DBF' SIZE 512M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

alter database datafile 'D:\DATA_FILE\TEST_DATA_01.DBF' autoextend on next 50m maxsize unlimited;
alter database datafile 'D:\DATA_FILE\TEST_INDEX_01.DBF' autoextend on next 50m maxsize unlimited;
alter database tempfile 'D:\DATA_FILE\TEST_TEMP_01.DBF' autoextend on next 50m maxsize unlimited;

2.创建用户(IMP和IMPDP相同)

下面列表这些基本是用户很大的权限了,具体内容可以百度,自己筛选使用。(TEST是数据库用户)

CREATE USER TEST PROFILE DEFAULT IDENTIFIED BY TEST DEFAULT TABLESPACE TEST_DATA TEMPORARY TABLESPACE TEST_TEMP ACCOUNT UNLOCK;
GRANT CREATE ANY MATERIALIZED VIEW TO TEST;
GRANT CREATE MATERIALIZED VIEW TO TEST;
GRANT UNLIMITED TABLESPACE TO TEST;
GRANT DBA TO TEST;
grant sysdba to TEST;
grant all privileges to TEST;
grant create table to TEST;
grant imp_full_database to TEST;
grant connect to TEST;

3.IMP导入数据库

IMP语句很多默认属性不需要设置,下面这个语句就可以。如果出现错误百度之后加上对应属性即可。(TEST是数据库用户)

imp TEST/[email protected] fromuser=TEST touser=TEST file=D:\TEST.dmp log=D:\TEST.log

4.EXP导出数据库

EXP语句很多默认属性不需要设置,下面这个语句就可以。如果出现错误百度之后加上对应属性即可。(TEST是数据库用户)

exp TEST/[email protected] file=D:\TEST.dmp log=D:\TEST.log owner=TEST

5.IMPDP导入数据库

首先需要创建放置DMP的目录,这个和IMP有区别,IMP不需要单独创建目录。

create or replace directory dir_oracle12 as 'D:\dmp';
Grant read,write on directory dir_oracle12 to sys;
Grant read,write on directory dir_oracle12 to TEST;

IMPDP导入语句,用到了上面的目录信息。

impdp TEST/[email protected] DIRECTORY=dir_oracle12 DUMPFILE=TEST.DPDMP logfile=TEST.log schemas=TEST

有个重要的点是这个属性[ TRANSFORM=SEGMENT_ATTRIBUTES:n],如果在IMPDP导入语句中加入这个属性,那么导入的DMP的表空间就使用你创建用户的表空间,而不是用DMP里的表空间。

6.EXPDP导出数据库

EXPDP导入语句,用到了上面的目录信息。注意导出DMP跟导入DMP的ORACLE版本需要一致。如果ORACLE版本不一致,在导出时指定VERSION属性。

expdp TEST/[email protected] schemas=TEST dumpfile=TEST.DPDMP directory=dir_oracle12 logfile=TEST.log VERSION=12.1.0.2.0

 

附加内容:

如何判断用IMP还是IMPDEP:

dmp文件的后缀名是「.dmp」用IMP,「.dpdmp」用IMPDP。

服务器端登录:

 方式①1.cmd 2.sqlplus / as sysdba

 方式②1.cmd 2.sqlplus sys/[email protected] as sysdba

更改用户密码:

 alter user TEST identified by TEST;

删除表空间和数据库用户的SQL:

drop user TEST cascade;
drop tablespace TEST including contents and datafiles cascade constraint;
drop tablespace TEST_TEMP including contents and datafiles cascade constraint;
drop tablespace TEST_DATA including contents and datafiles cascade constraint;

在导入SQL时出现乱码:

参照https://blog.csdn.net/ningyingjun/article/details/104632524

 

如果资源学习了,可以点赞支持!

 

相关标签: oracle oracle