朋友是一位Oracle初学者 可以说刚刚接触Oracle 昨天晚上试着学习 EXP 结果出现了以下几种不同的 错误 总结了一下 供初学者参考
C:\>exp system/abc wner=(test ) file= d:\orabak\exp dmp ;
Export: Release Production on 星期二 月 : :
Copyright (c) Oracle Corporation All rights reserved
EXP : 遇到 ORACLE 错误
ORA : ORACLE not available
ORA : shared memory realm does not exist
EXP : 所有允许的登录尝试均失败
EXP : 导出终止失败
此错误是由于数据库没有被OPEN造成的
然后告诉朋友数据库要打开 他做了以下动作 alter databse mount;
C:\>exp system/abc wner=(test ) file= d:\orabak\exp dmp ;
Export: Release Production on 星期二 月 : :
Copyright (c) Oracle Corporation All rights reserved
EXP : 遇到 ORACLE 错误
ORA : ORACLE initialization or shutdown in progress
用户名: sys as sysdba
口令:
EXP : 遇到 ORACLE 错误
ORA : 数据库未打开: 仅允许在固定表/视图中查询
EXP : 导出终止失败
数据库到了mount状态 但是如我们大家都知道的 在MOUNT下是无法打开表或其他对像的所以还是导出终止失败
再次告诉朋友要OPEN 所以他 :alter database open;
C:\>exp system/acb wner=(test ) file= d:\orabak\exp dmp ;
Export: Release Production on 星期二 月 : :
Copyright (c) Oracle Corporation All rights reserved
连接到: Oracle i Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production
已导出 ZHS GBK 字符集和 AL UTF NCHAR 字符集
即将导出指定的用户
正在导出 pre schema 过程对象和 *** 作
正在导出用户 test 的外部函数库名称
导出 PUBLIC 类型同义词
导出私有类型同义词
正在导出用户 test 的对象类型定义
即将导出 test 的对象
正在导出数据库链接
正在导出序号
正在导出群集定义
EXP : 遇到 ORACLE 错误
ORA : 临时表空间为空
ORA : 在 SYS DBMS_LOB line
ORA : 在 SYS DBMS_METADATA line
ORA : 在line
EXP : 导出终止失败
此问题是因为朋友的DB上表空间没有数据文件
告诉他做以下动作:
SQL> alter tablespace temp add tempfile D:\oracle\oradata\test\temp dbf size m reuse;
表空间已更改
再次EXP
C:\>exp system/acb wner=(test ) file= d:\orabak\exp dmp
Export: Release Production on 星期二 月 : :
Copyright (c) Oracle Corporation All rights reserved
连接到: Oracle i Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production
已导出 ZHS GBK 字符集和 AL UTF NCHAR 字符集
即将导出指定的用户
正在导出 pre schema 过程对象和 *** 作
正在导出用户 test 的外部函数库名称
导出 PUBLIC 类型同义词
导出私有类型同义词
正在导出用户 test 的对象类型定义
即将导出 test 的对象
正在导出数据库链接
正在导出序号
正在导出群集定义
即将导出 test 的表通过常规路径
正在导出表 EXCEPTIONS 行被导出
正在导出表 MO 行被导出
正在导出表 WIP 行被导出
正在导出同义词
正在导出视图
正在导出存储的过程
正在导出运算符
正在导出引用完整性约束条件
正在导出触发器
正在导出索引类型
正在导出位图 功能性索引和可扩展索引
正在导出后期表活动
正在导出实体化视图
正在导出快照日志
正在导出作业队列
正在导出刷新组和子组
正在导出维
正在导出 post schema 过程对象和 *** 作
正在导出统计
lishixinzhi/Article/program/Oracle/201311/16748
头部验证失败是由于版本号不同所致,经试验可以通过如下方法进行修改:用notepad++工具打开dmp文件,可以看到头部信息
--TEXPORT:V110100,即为源数据库的版本号,将其修改为目的数据库的版本号,如本机的版本号为100201,再次进行导入 *** 作尝试。
导入不成功也有可能是因为数据库用户不对造成的。
选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。
在对象资源管理器窗口中展开服务器,然后选择数据库节点
右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。
执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。
在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。
切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到文件组页,在这里可以添加或删除文件组。
完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。
Oracle的导出实用程序(Export utility)允许从数据库提取数据 并且将数据写入 *** 作系统文件 exp使用的基本格式 exp[username[/password[@service]]] 以下例举exp常用用法 获取帮助 exp help=y 导出一个完整数据库 exp system/manager file=bible_db log=dible_db full=y 导出数据库定义而不导出数据 exp system/manager file=bible_db log=dible_db full=y rows=n 导出一个或一组指定用户所属的全部表 索引和其他对象 exp system/manager file=seapark log=seapark owner=seaparkexp system/manager file=seapark log=seapark owner=(seapark amy amyc harold)注意 在导出用户时 尽管已经得到了这个用户的所有对象 但是还是不能得到这些对象引用的任何同义词 解决方法是用以下的SQLPlus命令创建一个脚本文件 运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本 然后在目标数据库上运行该脚本就可重建同义词了 SET LINESIZE SET PAGESIZE SET TRIMSPOOL ONSPOOL c:\seapark synSELECT Create public synonym ||synonym_name|| for ||table_owner|| ||table_name|| ; FROM dba_synonymsWHERE table_owner = SEAPARK AND owner = PUBLIC ;SPOOL OFF 导出一个或多个指定表 exp seapark/seapark file=tank log=tank tables=tankexp system/manager file=tank log=tank tables=seapark tankexp system/manager file=tank log=tank tables=(seapark tank amy artist) 估计导出文件的大小 全部表总字节数 SELECT sum(bytes) FROM dba_segments WHERE segment_type = TABLE ;seapark用户所属表的总字节数 SELECT sum(bytes)FROM dba_segmentsWHERE owner = SEAPARK AND segment_type = TABLE ;seapark用户下的aquatic_animal表的字节数 SELECT sum(bytes)FROM dba_segmentsWHERE owner = SEAPARK AND segment_type = TABLE AND segment_name = AQUATIC_ANIMAL ; 导出表数据的子集(oracle i以上) NT系统 exp system/manager query= Where salad_type= FRUIT tables=amy salad_type file=fruit log=fruitUNIX系统 exp system/manager query=\ Where salad_type=\ FRUIT\ \ tables=amy salad_type file=fruit log=fruit 用多个文件分割一个导出文件 exp system/manager file=(paycheck_ paycheck_ paycheck_ paycheck_ )log=paycheck filesize= G tables=hr paycheck 使用参数文件 exp system/manager parfile=bible_tables parbible_tables par参数文件 #Export the sample tables used for the Oracle i Database Administrator s Bible file=bible_tableslog=bible_tablestables=(amy artistamy booksseapark checkupems) 增量导出 完全 增量导出(plete) 即备份整个数据库 exp system/manager inctype=plete file= dmp 增量型 增量导出(incremental) 即备份上一次备份后改变的数据 exp system/manager inctype=incremental file= dmp 累计型 增量导出(cumulative) 即备份上一次 完全 导出之后改变的数据 exp system/manager inctype=cumulative file= dmp lishixinzhi/Article/program/Oracle/201311/17383
那就要针对情况具体分析,一般可参考如下方法:
1 获取帮助
exp help=y
2 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=y
3 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n
4 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQLPlus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seaparksyn
SELECT 'Create public synonym '||synonym_name||' for'||table_owner||''||table_name||';' FROM dba_synonyms WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
5 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seaparktank
exp system/manager file=tank log=tank tables=(seaparktank,amyartist)
6 估计导出文件的大小
全部表总字节数:
SELECT sum(bytes) FROM dba_segments WHERE segment_type = 'TABLE';
seapark用户所属表的总字节数:
SELECT sum(bytes) FROM dba_segments WHERE owner = 'SEAPARK' AND segment_type = 'TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes) FROM dba_segments WHERE owner = 'SEAPARK' AND segment_type = 'TABLE' AND segment_name = 'AQUATIC_ANIMAL';
7 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amysalad_type file=fruit log=fruit
UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amysalad_type file=fruit log=fruit
8 用多个文件分割一个导出文件
exp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G tables=hrpaycheck
9 使用参数文件
exp system/manager parfile=bible_tablespar
bible_tablespar参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible
file=bible_tables
log=bible_tables
tables=(
amyartist
amybooks
seaparkcheckup
seaparkitems
)
10 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702dmp
以上就是关于Oracle错误:EXP记录全部的内容,包括:Oracle错误:EXP记录、用exp从oracle中导出的文件,在另一个数据库导入时报错:、sqlplus连接远程数据库,想导出数据库dmp,但是exp命令无效等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)