最近用到从oracle的dmp文件中还原数据
由于没有这方面的资料,在网上搜集了一些,相信有以下这些资料,我们可以成功地将dmp文件用命令行的方式还原回去
在这里我用的是oracle10g的版本,我的机器是512内存的,运行oracle的web管理程序有一些困难,所以我选择通过命令行的方式,
以下我的安装完成后,oracle给出的报告
Enterprise Manager Database Control URL - (orcl) :
http://localhost:1158/em
数据库配置文件已经安装到
E:\oracle\product\10.2.0,
同时其他选定的安装组件也已经安装到
E:\oracle\product\10.2.0\db_1。
iSQL*Plus URL 为:
http://localhost:5560/isqlplus
iSQL*Plus DBA URL 为:
http://localhost:5560/isqlplus/dba
下面我们来看一看如何来完成这一任务
第一,启动服务,(如果数据库处于启动状态,那么略过这一步)
打开命令行执行以下语句
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
第二清理以前还原过的痕迹,如果我们在数据库曾经还原过,我们先来清理一下,痕迹,
//删除用户
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
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)
//---------------------------------------------------------------------------
//做到这里我们就已经完成了,数据库的还原工作,下面我们就可以打开isqlplus查看表中的数据了
select * from ***
第四我们来看一下,对oracle常用的操作命令
1)查看表空间的属性
select tablespace_name,extent_management,allocation_type from dba_tablespaces
2)查找一个表的列,及这一列的列名,数据类型
select TABLE_NAME,COLUMN_NAME,DATA_TYPE from user_tab_columns where TABLE_NAME='xxxx'
3)查找表空间中的用户表
select * from all_tables where owner='xxx' order by table_name desc
4)在指定用户下,的表的数量
select count(*) from user_tab_columns
5)查看数据库中的表名,表列,所有列
select TABLE_NAME,COLUMN_NAME,DATA_TYPE from user_tab_columns order by table_name desc
6)查看用户ZBFC的所有的表名及表存放的表空间
select table_name,tablespace_name from all_tables where owner='xxxx' order by table_name desc
7)生成删除表的文本
select 'Drop table '||table_name||';' from all_tables where owner="ZBFC";
8)删除表级联删除
drop table table_name [cascade constraints];
9)查找表中的列
select TABLE_NAME,COLUMN_NAME,DATA_TYPE from user_tab_columns where column_name like '%'||'地'||'%' order by table_name
desc
10)查看数据库的临时空间
select tablespace_name,EXTENT_SIZE,current_users,total_extents,used_extents,MAX_SIZE,free_extents from v$sort_segment;
http://download1.csdn.net/down3/20070615/15202338310.txt
作者在导入的过程中,还遇到了一个错误,就是数据违反了唯一性约束,数据库拒绝了数据
IMP-00019: 由于 ORACLE 的 1 错误而拒绝行
在网上看到有人说,这是字符集的原因,所以我就新建了一个数据库,将字符集改成了ZHS16GBK这样,从新导了一次,结果就成功了
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunbingzibo/archive/2007/06/15/1653794.aspx
分享到:
相关推荐
网上看到一篇文章《如何将dmp文件还原到oralce库》正和我需,但实践中发现部分内容不是很准确,故实践后加以修改并在此分享。
oracle数据库还原,如何将dmp文件还原到oralce库
Java还原Oracle数据库是指使用Java语言编写的程序来还原Oracle数据库,恢复的过程中需要使用Oracle的IMP工具来将备份文件导入到数据库中。下面是Java还原Oracle数据库的主要知识点: 1. 使用IMP工具还原数据库:IMP...
参数文件方式:将所需的参数写入到一个文件中,然后使用 exp 或 imp 命令加上 parfile 选项来指定参数文件,例如,exp parfile=username.par。 三、模式 exp 和 imp 工具都有三种模式:表方式、用户方式和全库方式...
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。本文介绍如何对数据进行导入导出.
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在...
龙蜥anolis系统oracle11g安装包,内含安装脚本支持龙蜥系统下自动安装数据库,并还原数据库dmp文件
“只导入”,在做这项工作时,需要将 dmp文件放在 d 盘,目录为D:\dbExp\secmsExp , 该目录下全是 dmp 文件 4. 自动在D盘创建备份文件夹,目录为E:\DataBackup\secmsBackup,其中DataBackup自动 创建,...
debian、ubuntu、凝思磐石系统oracle11g安装包,内含安装脚本支持自动安装数据库,并还原数据库dmp文件
Oracle数据库导入dmp文件的详细说明对新手来说是个不错的说明文档
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 ...
oracle数据库安装好之后还原dmp文件的相关命令以及操作顺序,方便快速还原文件和新手练习,亲测可用
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。 大多情况都可以用Oracle数据...你同样可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能你可以构建俩个
mysql,oracle,sqlserver三大数据库备份与还原,在src\test\Test.java里有用例。 DataBase dataBase = new DataBase(); //MySQL dataBase.setMysqlBinPath("D:/dump/bin"); dataBase.setBackPath("D:/dump/...
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。...你同样可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
用友NC57\NC63\NC65业务系统基于ORACLE数据库的数据自动备份程序 源代码分享 可以根据您自己系统的数据库数据名称等特质编辑后生成自己的业务数据自动备份程序,设置定时备份以后可以确保您的数据的安全。 程序包括...
Oracle EXPDP 工具是一个功能强大且灵活的逻辑备份工具,能够将 Oracle 数据库中的数据导出到一个文件中,以便实现备份和还原操作。在使用 EXPDP 工具时,用户可以使用 EXCLUDE 选项来指定那些不需要导出的数据库...
db2不像oracle那样可以很容易的导出dmp文件,进行备份和还原,db2的备份和还原还是很麻烦的,该文档是作者亲自整理,童鞋们只要按照步骤,一步一步来就可以了,简单吧
1.将数据文件还原回所在位置 ,然后启动数据库 2.starup 进行热备份必须处于“归档日志模式下” 1.启动sqlplus ,并以sysdba方式链接到数据库系统,输入下列命令看看是否处于归档模式 SQL> archive log list ...
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在...