(已实践)PLSQL本地还原Oracle数据库dmp文件

这个方法很烂,导致重装Oracle时候处处出现问题,不建议使用这个方法,除非你以后不再用Oracle这个软件了,这个方法很烂,再评论一下。

第一,启动服务,(如果数据库处于启动状态,那么略过这一步)

也可以这样:

打开命令行执行以下语句
net start OracleServiceORCL
net start  OracleOraDb10g_home2TNSListener
net start OracleOraDb10g_home2iSQL*Plus

以上方式是在windows服务中启动服务,当windows服务不能启动数据库实例的时候,应用以下的语句

set oracle_sid=orcl

oradim -startup -sid orcl

sqlplus internal/oracle
startup

二、给用户授权时候,必须使用system用户登录

清理以前还原过的痕迹,如果我们在数据库曾经还原过,我们先来清理一下,痕迹,

 //删除用户
 drop user xxxx cascade; 
 //删除表空间
 drop tablespace xxxx;
 //删除数据库文件
 e:/xxxxxx.dbf

第三,接下来,准备工作做好后,我们就可以开始还原了
//创建用户

【用户名一般最好大写,不然会出现很多麻烦】

CREATE USER 用户名 IDENTIFIED BY 密码 

DEFAULT TABLESPACE  USERS 

TEMPORARY TABLESPACE TEMP;
 //给予用户权限
grant connect,resource,dba to xxxx;
 //创建表空间,并指定文件名,和大小

CREATE SMALLFILE TABLESPACE "xxxx" DATAFILE 'E:/ORADATA/ORCL/xxxx.DBF' 
 SIZE 100M 
 AUTOEXTEND ON NEXT 100M 
 MAXSIZE UNLIMITED 
 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

//执行给予权限的脚本grant.txt,将权限给予刚才创建的用户
//给予权限
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION  TO xxxx;

---------------------------------------------------------------------------------------
//开始导入(完全导入),file:dmp文件所在的位置, ignore:因为有的表已经存在,对该表就不进行导入。
   在后面加上 ignore=y 。指定log文件 log=e:/log.txt(注:以下必须在cmd里执行,在SQL*PLUS里无法执行)
imp user/pass@orcl full=y file=e:/xxx.dmp ignore=y log=e:/log.txt;

//当我们不需要完整的还原数据库的时候,我们可以单独地还原某个特定的表
//---------------------------------------------------------------------------
imp user/pass@datbase file=e:/xxx.dmp ignore=y log=e:/log.txt tables=(xxxx)
imp user/pass@database file=e:/xxx.dmp ignore=y log=e:/log2.txt tables=(xxxx) 
//---------------------------------------------------------------------------

posted @ 2017-07-25 16:28  herizai  阅读(2460)  评论(0编辑  收藏  举报