oracle 数据泵(impdp)从DMP文件中恢复备份数据

  • 数据库恢复
  1. 数据恢复前准备工作
    1. 数据库基础环境准备

数据恢复目的机器一台,安装ORACLE数据库,建立空数据库并将字符集配置为与待备份数据字符集一致(正常显示中文的字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK)

    1. 数据库备份文件准备

准备待备份数据文件(DMP文件,若有对应的日志文件更好),记录待备份数据文件放置位置全路径FilePath(待恢复数据在Oracle中的逻辑目录);

  1. 数据恢复
    1. 检查逻辑目录

检查逻辑目录是否存在:SQL语句:select * from dba_directories;

若逻辑目录不存在,则创建该逻辑目录:SQL语句:create directorty [逻辑目录名称] as ‘[待备份数据所在目录FilePath]’

    1. 创建表空间

使用oracle数据库管理员登录并创建新的空表空间(表空间名称要与待恢复数据的表空间名称一致)

Sql语句:create tablespace [表空间名]  datafile ‘[表空间物理数据文件全路径]’ size 2000M autoextend on next 300M maxsize unlimited;

    1. 创建用户

使用oracle数据库管理员登录并创建新的用户名(如能与待恢复数据所属的用户名一致更好,不一致也可恢复数据)

Sql语句:create user [用户名] identified by [用户密码] default tablespace [新创建的表空间名];

    1. 用户授权

将逻辑目录的读写权限授权给新建用户。

SQL语句:grant read,write on directory [逻辑目录名] to [用户名];

给用户授予操作数据库更新表空间的权限。

SQL语句:grant dba,resource,unlimited tablespace to [用户名]

    1. 调用数据泵恢复文件

数据恢复命令是在cmd控制台输入,并非sql语句

若新建用户名与原用户名一致:

恢复SQL:impdp [用户名]/[密码]@ip地址/[实例名] directory=[逻辑目录] schames=[用户名] dumpfile=[待恢复数据dmp文件全程] logfile=[impdp操作日志名称]

1)导入模式(从模式username1导入到模式username1)

impdp username1/[email protected]/orcl dumpfile=expdp.dmp directory=dump_dir schemas=username1 logfile=impdp.log;

2)导入表(从username1中把表dept和emp导入到system用户中)

impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=username1.dept, username1.emp remap_schema= username1:system logfile=impdp.log table_exists_action=replace (表空间已存在则替换);

3)导入表空间

impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;

4)导入整个数据库

impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章