
#1 首先以管理员的身份登录到oracle系统中
cmd;
sqlplus sys/sys as sysdba;
#2创建用户test,密码为test
create user test identified by test;
#3创建表空间,在D盘下建立50m的表空间data_dbfcreate tablespace ts_tablespace datefile 'D:\data_dbf' size 50m;#4为用户分配表空间
alter user test default tablespace ts_tablespace to test;#5给用户授权
grant create session, create table, create view, unlimited tablespace to test;#6以test/test登录
conn test/test;
#7导入SQL语句,导入创建好的表
@D:\testsql
#8查询表结构导入格式(按用户方式导入,oracle在本机)
impdp 用户名/密码
schemas=要导入的用户(即是使用expdp导出的用户) directory=创建的文件夹名称(directory_name)
dumpfile=testdmp(要放入到directory_path路径下) logfile=implog(可以不写)
[sql] view plain copy
--导入时必须先创建文件夹路径
create or replace directory bao as 'd:\oracle\test';
--给使用的用户授权(读写权限)
Grant read,write on directory bao to scott;
--查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE ttable_name(+) = ddirectory_name ORDER BY 2, 1;
创建完文件夹后,在win7下是没有创建的文件夹的,需要手动创建文件夹,并且把使用expdp导出的dmp文件放入该文件夹下(开始自己导入时,创建完文件夹后始终在磁盘上找不到)
期间报过好多错,像org-29283,org-06512,ora-29283,ora-39002,org-39070等等,反正很郁闷的~!
创建好文件夹后,进行导入:(我使用的是通过运行command命令进入命令行界面导入)
impdp scott/tiger schemas=certification directory=test dumpfile=testdmp
这要导入后会报错,提示表空间XXX不存在,用户certification不存在
根据错误信息,创建好表空间,和用户,并设置用户的表空间
[sql] view plain copy
CREATE TABLESPACE TEACHER
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\ORCL\TEACHERDBF'
SIZE 1024M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
drop user certification;
create user certification identified by cert
DEFAULT TABLESPACE TEACHER;
grant connect,resource to certification;
grant create session,dba to certification;首先要了解一个图层的组成啊,
看你的里,一个图层分成四个文件,dbf包含属性信息,prj为坐标参考,shx是空间索引,shp为图形数据,这些文件共同组成了一个图层;
这也是在硬盘上你看到的。
通过arccatalog软件,他会自动识别图层,将上述四个文件显示成一个图层,就是第二个图的shp文件了,这个shp文件包含四个文件,并不是单独的硬盘上的shp后缀的文件。
所以导入的时候其实是导入了四个文件。这可能是部分刚接手的运维人员或者代维人员所要遇到的问题,一个老的数据库只剩下DBF文件了,要如何恢复其中的数据?其实这个问题分成好多种情况,请自行对号入座:1)数据库所有的DBF文件都在,没有缺失,也没有损坏这个情况是最简单的自己建一个参数文件INITORA,并基于这些DBF文件去创建控制文件,然后尝试打开数据库即可。如果说数据文件都是干净的CLEAN的,那么直接可以打开。如果数据文件是DIRTY的,这里由于没有REDOLOG了,所以需要以隐藏参数等方式打开数据库。2)数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,没有损坏这种情况在1)的基础上将缺失的数据文件OFFLINEDROP掉就好了,因为对应的数据文件都没了,那么丢了对应数据文件上的数据也很正常3)数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,非SYSTEM01dbf的数据文件有少量损坏这种情况在2)的基础上打开数据库问题并不大,但打开数据库后由于其他表空间数据文件上有少量损坏,所以具体访问用户数据时可能出现ORA-1578、ORA-8103、ORA-1410、ORA-00600等错误,还是比较容易克服的4)数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,SYTEM01DBF有损坏这种情况下打开数据库就不容易了,可能需要用到BBED技术去修改SYSTEM01DBF,以便才能打开数据库5)只有部分DBF,其中还缺失了SYSTEM01DBF这种情况不要指望能打开数据库,只能使用PRM-DUL之类的软件来直接抽取数据以上情况1)~4)只要SYSTEM01DBF还在或者损坏的不是太严重,那么都可以由专业技术人员去打开数据库后导出数据,但是在情况5)下只能使用DUL类工具去抽取数据了。如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!诗檀软件专业数据库修复团队oracle的dbf文件导出数据:
只有DBF文件的情况下做Oracle 数据恢复
1)数据库所有的DBF文件都在,没有缺失,也没有损坏
这个情况是最简单的 自己建一个参数文件INITORA,并基于这些DBF文件去创建控制文件,然后尝试打开数据库即可。如果说数据文件都是干净的CLEAN的,那么直接可以打开。如果数据文件是DIRTY的,这里由于没有REDO LOG了,所以需要以隐藏参数等方式打开数据库。
2) 数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,没有损坏
这种情况在 1)的基础上将缺失的数据文件OFFLINE DROP掉就好了,因为对应的数据文件都没了,那么丢了对应数据文件上的数据也很正常
3) 数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,非SYSTEM01dbf的数据文件有少量损坏
这种情况在 2)的基础上打开数据库问题并不大,但打开数据库后 由于其他表空间数据文件上有少量损坏,所以具体访问用户数据时可能出现ORA-1578、ORA-8103、ORA-1410、ORA-00600等错误,还是比较容易克服的
4) 数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,SYTEM01DBF有损坏
这种情况下打开数据库就不容易了,可能需要用到BBED技术去修改SYSTEM01DBF,以便才能打开数据库
5) 只有部分DBF,其中还缺失了SYSTEM01DBF
这种情况不要指望能打开数据库,只能使用PRM-DUL之类的软件 来直接抽取数据
以上情况1)~4) 只要SYSTEM01DBF还在或者损坏的不是太严重,那么都可以由专业技术人员去打开数据库后导出数据,但是在情况5)下只能使用DUL类工具去抽取数据了。从Oracle导出成CVS,然后使用ODBC导入到dbf中,不要自己写程序搞。
ODBC导入到dbf中使用外部数据库方式导,在Access中写SQL执行就可以了。
搜索下Access的外部数据库引用方式就知道了。
也可以尝试使用SQLServer的DTS,只要有Oracle和dbf的驱动就可以导了。
曾经做过审计软件的数据采集,我们有使用Ole控制SQLServer的DTSPackage对象进行数据导入导出,楼主可以去找找这方面的,这个可以程序实现。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)