本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
--数据泵IMPDP 导入工具的使用--================================= 数据的导入导出时数据库经常处理的作业之一,Oracle 提供了IMP和IMPDP以及SQL*Loader等工具来完成数据的导入工作,其中IMP服务于早期的9i之前的版本,在10g及后续版本,Oracle 提供了数据泵高速导入工具,本文主要介绍IMPDP的使用方法,关于高速导出工具请参照:数据泵EXPDP 导出工具的使用。SQL*Loader请参照:SQL*Loader使用方法。 一、数据泵的体系结构 数据泵的体系结构在数据泵EXPDP 导出工具的使用已列出,再此不再赘述。 二、IMPDP支持的接口及导入模式 导入接口 使用命令行带参数的 使用命令行带参数文件 使用命令行交互 使用database console(GUI) 几种常用的导入模式 导入表 导入方案 ...
imp的buffer和commit分析 Imp的commit和buffer分析:Imp的commit影响:imp的commit主要用于大表数据插入时减少回滚段的压力,以免出现长时间导入而出现的回滚段过久ora-01555,结合buffer设置则能按照buffer的大小进行分批提交,可以有效的减轻undo压力。但是如果对于插入lob、long、ref、rowid等字段时设置commit=y则会逐条commit,我们都清楚对于批量插入数据逐条commit会降低性能,所以这里需要依据表中的具体信息。而且还存在一个因素则是结合buffer区大小批量commit提交时,如果出现表空间,连接丢失等问题导致imp失败,则可能只提交一批数据,此时带来的影响还是很大的,即使再次插入根据主键筛选依然会出现大量的错误,而imp对这些错误的排查则会降低大量性能,这也可能是oracle默认的imp工具中commit=n缘由吧。Imp的buffer效果生产环境下,oracle 9I下sga大概8G,pga大概6g,需要导入一个2.7g以上的大表到成产库中,由于是同事着手运用imp工具的默认buffer=30K,用时大概一个小时还没有结果,考虑到pga还是很大的,跟同事商议加上buffer=409600000设置buffer大概400M的,15分钟内imp完成。当然运用impdp然后运用parallel=n效率当然更加理想了!首先建好了...
导出ha 用户的表结构expdp ha/ha directory=dump_dir dumpfile=expdp.dmp logfile=expdp.log schemas=ha content=metadata_only 将表结构数据导入ha用户impdp ha/ha directory=dump_dir logfile=local.impdp.log dumpfile=expdp.dmp 导出HA用户的表数据 expdp ha/ha directory=dump_dir dumpfile=gps_acc.dmp tables=GPS_ACC_STATE content=data_only导出的HA表数据,将导入happy表空间,对应的表结构已经建好。impdp happy/happy directory=dump_dir dumpfile=gps_acc.dmp tables=GPS_ACC_STATE remap_schema=ha:happy . importing table "T1"IMP-00058: ORACLE error 30036 encounteredORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'IMP-00028: partial import of previous table rolled back: 14351923 rows rolled backIMP-00017: following statement failed with ORACLE error 2264:About to enable con...
ORA-20005: object statistics are locked SQL> exec dbms_stats.unlock_table_stats(ownname =>'ECC_VIEW',tabname => 'TABLE_TEST1');PL/SQL procedure successfully completedorSQL> EXEC DBMS_STATS.unlock_schema_stats(ownname =>'ECC_VIEW');PL/SQL procedure successfully completed ============(普通用户权限)==SQL> exec dbms_stats.gather_table_stats(ownname =>'ECC_VIEW',tabname => 'TABLE_TEST1',cascade =>TRUE,estimate_percent => 20);PL/SQL procedure successfully completed////////////////执行以下脚本后正常SQL> exec dbms_stats.unlock_schema_stats(ownname =>'test'); PL/SQL procedure successfully completed//////////////////// 发现一个用户下统计信息没有生成,查询user_tab_modifications发现变动信息也超过10%没有警告日志执行exec dbms_stats.gather_schema_stats(ownname =>'test',granularity => 'ALL',cascade => true);还是没有生成 然后执行报begin dbms_stats.gather_table_stats(ownname => 'test',tabname=> ...
假设导入用户为happy数据文件存放目录为dump_dir两台服务器oracle系统作oracle数据迁移。#: mkdir /home/oracle/bakSQL:# create or replace directory dump_dir as '/home/oracle/bak';查询:select * from dba_directories where DIRECTORY_NAME='DUMP_DIR';查看目录是否存在 select owner,table_name,grantor,privilege from dba_tab_privs where grantee='HAPPY'; //注意HAPPY大写查看是否有read write权限如果没有读写权限,执行如下语句,赋给sysdb读写DATA_PUMP_DIR权限:GRANT WRITE ON DIRECTORY DUMP_DIR TO HAPPY WITH GRANT OPTION;GRANT READ ON DIRECTORY DUMP_DIR TO HAPPY WITH GRANT OPTION;导出ha 用户的表结构expdp ha/ha directory=dump_dir dumpfile=expdp.dmp logfile=expdp.log schemas=ha content=metadata_only 将表结构数据导入ha用户impdp ha/ha directory=dump_dir logfile=local.impdp.log dumpfile=expdp.dmp 导出HA用户的表数据 expdp ha/ha directory=dump_dir dumpfile=gps_acc.dmp tables=GPS_ACC_STAT...
今天IMP数据时报20001错误 IMP-00003: 遇到 ORACLE 错误 20001ORA-20001: Invalid or inconsistent input valuesORA-06512: at "SYS.DBMS_STATS", line 3490ORA-06512: at line 1IMP-00017: 由于 ORACLE 的 20001 错误,以下的语句失败"DECLARE SREC DBMS_STATS.STATREC; BEGIN SREC.MINVAL := '5B342C345D'; SREC.M""AXVAL := '5B342C345D'; SREC.EAVS := 0; SREC.CHVALS := NULL; SREC.NOVALS := ""DBMS_STATS.NUMARRAY(473557201670860000000000000000000000,473557201670860000""000000000000000000); SREC.BKVALS := DBMS_STATS.NUMARRAY(0,1); SREC.EPC := 2""; DBMS_STATS.SET_COLUMN_STATS(NULL,'"BB_ATTACH_VAR"','"VAR_DEF"', NULL ,NUL""L,NULL,1,1,2,srec,3,6); END;"IMP-00003: 遇到 ORACLE 错误 20001ORA-20001: Invalid or inconsistent input valuesORA-06512: at "SYS.DBMS_STATS", line 3490ORA-06512: at line 1 查了些资料,加了statistics=noneimp user/user file=file.dmp full=y statistics=none解决参数说明 exp userid=user...
对象统计信息锁定的解决办法(ORA-20005/ORA-38029) 昨天我从9i R2里导出了几张表,然后导入到11g R2中,在导入成功后我要收集下这些表的信息,结果发现好几张表都没法收集,用DBMS_STATS包显示ORA-20005:object statistics are locked (stattype = ALL),用Analyze命令显示ORA-38029: 对象统计信息已锁定。解决办法很明确,就是解锁。可以从两个层面去处理:A、解锁SchemaDBMS_STATS.UNLOCK_schema_STATS(user);B、解锁单个对象1)先查出被锁定的表select table_name from user_tab_statistics where stattype_locked is not null;然后再解锁对象exec dbms_stats.unlock_table_stats(user,'表名');2)也可直接生成sql脚本select 'exec dbms_stats.unlock_table_stats('''||user||''','''||table_name||''');' from user_tab_statistics where stattype_locked is not null;这里不在生成的sql中用动态的user是为了让执行者明确知道到底是解锁哪个schema下的表,防止误操作。不过,你要特别注意,Oracle为什么会要锁定住统计信息?一般而言,这是为了稳定执行计...
1.并集的运算select name from test1union [all]select name from test2;使用union时,默认将对结果进行排序,union all则不进行排序操作,所以会消耗更少的资源;然而,union all将不进行去重的操作~2.交集的运算select name from test1intersectselect name from test2;Oracle不支持Intersect all关键字!3.差的运算select name from test1minusselect name from test2;Oracle中差的运算不同于SQL标准,在SQL标准中,我们使用以下函数进行差运算select name from test1except [all]select name from test2;
install JAccelerator (NCOMP) 数据库从10.2.0.1.0升级到10.2.0.4.0,升级报告警告如下:Warnings DBUA has detected that the JAccelerator(NCOMP) is not Installed.Please refre to the Post-installation Tasks chapterin ther Oracle Database Installation Guide for instructions on how to install JAccelerator(NCOMP). 软件下载:下载companion disk网址:http://www.oracle.com/technetwork/database/10201linx8664soft-092456.html 安装companion解压缩gunzip 10201_companion_linux_x86_64.cpio.gzcpio -idmv < 10201_companion_linux_x86_64.cpio SQL> shutdown immediate;安装cd companion/运行runInstallersh runInstaller 选择Advanced Installation 选择option 2:Oracle Database 10g Products 10.2.0.10 选择install完成安装 将JAccelerator升级到10.2.0.4.0cd Disk1sh runInstaller [oracle@ZSGHRDB01 admin]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - P...
Oracle中转义字符总结 在字段里查找'%',涉及到Oracle的转义字符,现总结如下:SQL> select * from test;TEST--------------------sdd_kkd'ddfsfsadffa%asfs123451%23451%543212%54321%%54321A&B已选择9行。 其中包含特殊的字符分别为%,_,&,有可能包含这些字符的数据含有错误,或者需要查找包含这些字符的数据。SQL> select * from test where test like 'sdd _%' escape ' ';TEST--------------------sdd_kk 转义字符为' ';SQL> select * from test where test like 'sdd\_%' escape '\';TEST--------------------sdd_kk转义字符为'\';SQL> select * from test where test like 'sdd=_%' escape '=';TEST--------------------sdd_kk 转义字符为'=';SQL> select * from test where test like 'sdd/_%' escape '/';TEST--------------------sdd_kk 转义字符为'/';SQL> select * from test where test like 'sddd_%' esca...
最新评论