Oracle IMP,EXP和IMPDP,EXPDP导入方式详细说明
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
如果资源学习了,可以点赞支持!
上一篇: Docker安装及常用命令
下一篇: Oracle exppd/impdp