Linux系统下使用impdp导入dmp文件

以下是记录一次导入dmp文件的过程。在Linux环境下操作,dmp文件是从另一个服务器上的数据库导出来的,用的expdp命令,所以导入到这个服务器用的是与之对应的impdp命令。
1,管理员登录

sqlplus / as sysdba

2,创建临时表空间
(之所以把这个临时表空间命名为E8ITSM,是因为导出这dmp文件的时候,用的表空间就是E8ITSM,我也不知道为什么,命名成其他会导入失败。)

create temporary tablespace E8ITSM tempfile '/data/oracle/oradata/orcl/E8ITSM.DBF' size 100M reuse autoextend on next 100M maxsize unlimited;

3,创建数据表空间
(命名成epuser的原因同上)

create tablespace epuser datafile '/data/oracle/oradata/orcl/epuser.DBF' size 300M reuse autoextend on next 100M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

4,创建用户
(将用户名命名成epuser,和导出的时候用的用户名一样,也可以不一样。)

create user epuser identified by sjk12014 default tablespace epuser temporary tablespace E8ITSM;

5,给用户授权

grant connect,resource,dba to epuser;
grant exp_full_database,imp_full_database to epuser;
grant create any sequence,create any view to epuser;
grant create any table,delete any table to epuser;
grant insert any table,select any table to epuser;
grant unlimited tablespace,execute any procedure to epuser;
grant update any table,create any view to epuser;

6,导入

impdp epuser/sjk12014@orcl directory=DATA_PUMP_DIR dumpfile=data20190813_2.dmp REMAP_SCHEMA=epuser:epuser  remap_tablespace=EXAMPLE:epuser,EXAMPLE_TEMP:E8ITSM version=10.2.0

DATA_PUMP_DIR是数据库默认的路径,我们把文件放在这些目录下就能读到,查看DATA_PUMP_DIR文件的路径,sql命令模式下执行如下命令:

select * from dba_directories;

version参数,是用来兼容Oracle低版本的。

7,其他一些可能用到的命令
(1)查看表空间

select tablespace_name from dba_tablespaces;

(2)查询Linux服务器上执行过的命令

history

(3)查看Linux服务器的主机名

hostnamectl

(4)Linux下重启oracle数据库监听

lsnrctl stop
lsnrctl start

当连接oracle报“目标主机或对象不存在”或者“没有监听”:修改tnsnames.ora和listener.ora,使其中的主机名或者IP一致,然后重启oracle监听
(5)查看用户拥有的权限

select * from dba_sys_privs where grantee='EPUSER';  // 用户名大写

(6)查看用户拥有的角色

select * from dba_role_privs where grantee='EPUSER';  // 用户名大写

(7)查询某个用户的表空间

select default_tablespace from dba_users where username='EPUSER';  // 用户名大写

(8)查询某个用户的临时表空间

select temporary_tablespace from dba_users where username='EPUSER';  // 用户名大写

(9) 如果需要删除表空间

DROP tablespace epuser including contents and datafiles;

(10)如果需要删除临时表空间

DROP tablespace E8ITSM including contents and datafiles;

(11)如果需要删除用户

drop user epuser cascade;

(12)删除某个Oracle用户下面的所有数据

--delete tables
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;

--delete views
select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views;

--delete seqs
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences;

--delete functions
select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION';

--delete procedure
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE';

--delete package
select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE';

你可能感兴趣的:(数据库)