Oralce 11g 恢复 .dmp 文件方法及过程

Oralce 11g 恢复 .dmp 文件方法及过程

主要过程为:新建表空间 -> 新建用户 -> 授予用户权限 -> 恢复备份

〇、删除用户及表空间(如需要)

若要恢复的数据的用户和表空间之间恢复(使用)过,就最好删除并重新创建。

1. 删除用户

drop user autohome cascade;

2. 删除表空间

drop tablespace autohome;

3. 去文件夹删除表空间文件

D:\oracle_data\autohome.dbf

一、新建表空间

要恢复的数据量比较大,dmp文件超过了2个GB,所以最好能创建一个临时表空间加快导入速度:

create temporary tablespace autohome_temp tempfile'D:\oracle_data\autohome_temp.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;

创建完临时表空间后,创建“正式”的表空间:

create tablespace autohome logging datafile'D:\oracle_data\autohome.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;

二、新建用户

新建的用户最好能够与原有的用户名字保持一致:

create user autohome identified by autohome default tablespace autohome temporary tablespace autohome_temp;

三、授予用户权限

grant connect,resource,dba to autohome;

以上操作在SQLplus/PLSQL中执行,恢复备份命令在命令行中执行。


四、恢复备份

使用 imp 方法恢复dmp 文件备份,指明原用户与新用户名字,不需要 full=y

imp 用户名/密码 BUFFER=64000 file="dmp文件路径" FROMUSER=autohome TOUSER=你用户 ignore=y
imp autohome/autohome BUFFER=64000 file="D:/aaa/autohome.dmp" FROMUSER=autohome TOUSER=autohome ignore=y
  • 注意文件路径里的斜杠。 ‘/’ not ‘\’

五、报错

在执行最后的导入命令时,开始正常导入了数据,但随后报了一堆错误,最后也提示终止导入进程了。但是最后查了一下数据量没什么毛病,可能是从MySQL 转到Oracle 格式中出现的一些问题吧,好在不影响最后成功导入。

  • 以下是执行导入命令时的错误信息:

d:\oracle\dbhome_1\BIN>imp autohome/autohome BUFFER=64000 file=”D:/oracle/orcl_backup/autohome20180609.dmp” FROMUSER=autohome TOUSER=autohome ignore=y

Import: Release 11.2.0.1.0 - Production on 星期二 6月 12 16:48:54 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V11.01.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. . 正在导入表 “MD_ADDITIONAL_PROPERTIES”导入了 12 行
. . 正在导入表 “MD_APPLICATIONFILES”导入了 0 行
. . 正在导入表 “MD_APPLICATIONS”导入了 0 行
…………………………………………………..
. . 正在导入表 “MD_PRIVILEGES”导入了 212 行
. . 正在导入表 “MD_PROJECTS”导入了 1 行

. . 正在导入表 “MIGR_DATATYPE_TRANSFORM_MAP”导入了 1 行
. . 正在导入表 “T_KOUBEI”导入了 753602 行
IMP-00017: 由于 ORACLE 错误 1917, 以下语句失败:
“GRANT ALTER ON “T_KOUBEI” TO “ROLE_AAA””
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 ‘ROLE_AAA’ 不存在
IMP-00017: 由于 ORACLE 错误 1917, 以下语句失败:
“GRANT DELETE ON “T_KOUBEI_LABLE” TO “ROLE_AAA””
IMP-00003: 遇到 ORACLE 错误 1917
IMP-00017: 由于 ORACLE 错误 1917, 以下语句失败:
“GRANT FLASHBACK ON “T_KOUBEI_LABLE_S” TO “ROLE_AAA””
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 ‘ROLE_AAA’ 不存在
IMP-00041: 警告: 创建的对象带有编译警告
“CREATE FORCE VIEW “AUTOHOME”.”MGV_ALL_TABLES_DETAILS” ”
” (“OBJTYPE”,”OBJNAME”,”OBJID”,”MAINOBJTYPE”,”MAINOBJNAME”,”MAINOBJID”,”SCH”
“EMANAME”,”SCHEMAID”,”CATALOGNAME”,”CATALOGID”,”CONNNAME”,”CONNID”,”PROJECTN”
“AME”,”PROJECTID”,”CAPTUREDORCONVERTED”,”QUALIFIEDNAME”) AS ”
“SELECT ‘MD_TABLES’ objtype, t.table_name objname, t.id objid, ‘MD_TABLES’ ”
“MainObjType,t.table_name MAINOBJNAME, t.id MAINOBJID, s.name SchemaName, s.”
“id schemaid, cat.catalog_name catalogname,cat.id catalogid, conn.name connn”
“ame,conn.id connid,proj.project_name projectname,proj.id projectid,”
“NVL(conn.type,’CAPTURED’) CapturedOrConverted, ”
“CASE WHEN conn.type IS NULL THEN md_meta.quote(cat.catalog_name,s.name,t.”
“table_name,conn.id)”
” ELSE s.name || ‘.’ || t.table_name END Qualif”
“iedName”
“FROM MD_TABLES t,MD_SCHEMAS s, MD_CATALOGS cat,MD_CONNECTIONS conn, MD_PROJ”
“ECTS proj”
“WHERE t.schema_id_fk = s.id”
“AND s.catalog_id_fk = cat.id”
“AND cat.connection_id_fk = conn.id”
“AND conn.PROJECT_ID_FK = proj.id”
………
“FROM MD_PARTITIONS p, MD_TABLES t,MD_SCHEMAS s, MD_CATALOGS cat,MD_CONNECTI”
“ONS conn, MD_PROJECTS proj”
“WHERE p.table_id_fk = t.id”
“AND t.schema_id_fk = s.id”
“AND s.catalog_id_fk = cat.id”
“AND cat.connection_id_fk = conn.id”
“AND conn.PROJECT_ID_FK = proj.id”
IMP-00041: 警告: 创建的对象带有编译警告
“CREATE FORCE VIEW “AUTOHOME”.”MGV_ALL_DETAILS” (“OBJ”
“TYPE”,”OBJNAME”,”OBJID”,”MAINOBJTYPE”,”MAINOBJNAME”,”MAINOBJID”,”SCHEMANAME”
“”,”SCHEMAID”,”CATALOGNAME”,”CATALOGID”,”CONNNAME”,”CONNID”,”PROJECTNAME”,”P”
“ROJECTID”,”CAPTUREDORCONVERTED”,”QUALIFIEDNAME”) AS ”
“SELECT “OBJTYPE”,”OBJNAME”,”OBJID”,”MAINOBJTYPE”,”MAINOBJNAME”,”MAINOBJID”,”
“”SCHEMANAME”,”SCHEMAID”,”CATALOGNAME”,”CATALOGID”,”CONNNAME”,”CONNID”,”PROJ”
“ECTNAME”,”PROJECTID”,”CAPTUREDORCONVERTED”,”QUALIFIEDNAME” FROM MGV_ALL_CAT”
“ALOG_DETAILS”
“UNION ALL”
……………
“select d1.catalogid capcatalogid,”
” d1.catalogname capcatalogname,”
” d1.connid capconnid,”
” d1.connname capconnname,” ” d2.qualifiedname conqualifiedname,”
” d2.schemaid conschemaid,”
…………………
” d2.schemaname conschemaname,”
” der.derivative_reason,”
” der.transformed”
” FROM mgv_all_details d1”
” LEFT OUTER JOIN md_derivatives der”
” ON der.src_id = d1.objid”
” AND der.derivative_reason IS NULL”
” LEFT OUTER JOIN mgv_all_details d2”
” ON der.derived_id = d2.objid”
” WHERE d1.capturedorconverted = ‘CAPTURED’”
” AND der.derivative_reason IS NULL”
即将启用约束条件…
成功终止导入, 但出现警告。

你可能感兴趣的:(oracle,database)