暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

通过数据泵expdp、impdp方式导入与导出oracle数据库

海中的舵手 2021-05-28
1773

  oracle数据库的方式有很多种,今天我们只介绍expdp、impdp数据泵方式的导入与导出数据库,也就是我们通常所说的oracle数据的还原/备份。这种方式可以导出/导入数据库表以及表中的数据。

 

  简单来说数据库导入就是将.dmp 格式文件从本地导入到数据库服务器中,数据库导出就是将服务器上的数据导出到本地生成.dmp格式文件。

 

一、数据库导出

1.打开DOS命令行界面,使用system用户登录oracle

 


2.创建备份逻辑目录

  创建备份逻辑目录,此目录不是真实的目录(单引号里面的内容是备份的目录,可以先查看一下所有的目录:select * from dba_directories;)

SQL>create or replace directory data as 'E:\app\Administrator\admin\orcl\dpdump'; 


3.导出数据库

 进入DOS命令行界面,执行下列命令导出数据库

 SQL>expdp bpmdef_xsmd/123456@orcl directory=data               dumpfile=JEECG_20180226.DMP  schemas=bpmdef_xsmd

 解读:

 directory是创建备份逻辑目录(上面第二步)

 dumpfile:导出的文件名,存放于directory目录里

 schemas:用户名

 

4.查看导出的文件


 

二、数据库导入

1、创建表空间和用户

  SQL>CREATE TABLESPACE BPMAPP_XSMD DATAFILE                    'E:\oracle\oradata\orcl\BPMAPP_XSMD.DBF' 

     size 1024M autoextend on next 100M;

  SQL>create user SYS identified by 12345 DEFAULT TABLESPACE SYSTEM ;


2.给用户授权

 SQL>GRANT DBA,RESOURCE,CONNECT TO SYS ;

 SQL>GRANT CREATE VIEW TO SYS WITH ADMIN OPTION;

 注:dba为最高级权限,可以创建数据库,表等。

 

3.进行导入DOS命令行执行下列命令

 impdp 用户名/密码@orcl dumpfile=bpmapp_xsmd_20191206.dmp  remap_tablespace=A:B remap_schema=A:B table_exists_action=replace


解读:

dumpfile是导出的文件名

remap_tablespace:导出的表空间A:导入的表空间B

remap_schema:导出的用户A:导入的用户B

table_exists_action=replace:如果导入的表已存在,就将其覆盖掉


三、知识扩展

1.删除dbf文件方式

select * from user_tablespaces;

DROP TABLESPACE 表空间名称 including contents and datafiles cascade constraint;


2.查询锁表

SELECT a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwait FROM All_Objects a, v$locked_object b , v$session c WHERE a.object_id=b.object_id AND c.sid=b.session_id;


3.查询表空间使用情况 单位MB

select a.tablespace_name,

a.bytes 1024 1024 "sum MB",

(a.bytes - b.bytes) 1024 1024 "used MB",

b.bytes 1024 / 1024 "free MB",

round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "used%"

from (select tablespace_name, sum(bytes) bytes

from dba_data_files

group by tablespace_name) a,

(select tablespace_name, sum(bytes) bytes, max(bytes) largest

from dba_free_space

group by tablespace_name) b

where a.tablespace_name = b.tablespace_name

order by ((a.bytes - b.bytes) / a.bytes) desc;


4.查询oracle当前连接数

select count(*) from v$process

5.数据库允许的最大连接数

select value from v$parameter where name = 'processes'




 

 

 

 

 

 

 

 

 

 

 

 


文章转载自海中的舵手,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论