11G导成10G
- 格式:docx
- 大小:11.72 KB
- 文档页数:1
Oracle11g数据迁到Oracle10g(expdp和impdp)由于客户要求,要把一个Oracle11g数据库迁移到一个Oracle10g ,由于deferred_segment_creation参数建库之初没有设置为false,并且目前存在空表,所以还是使用expdp和impdp。
1、expdp和rman相像的地方时都是在主机端(目标数据库端)生成dmp文件所以文件夹和权限等都在主机端设置。
2、由于是从11g迁移到10g,所以expdp增加了一个参数 version在需要迁移的目标数据库端执行 select * from v$version; 就知道version的值了,不然会报错。
【报错内容ORA-39001: invalid argument valueORA-39000: bad dump file specificationORA-39142: incompatible version number】expdp opsteel/opsteel dumpfile=20150923.dmp logfil e=exp20150923.logdirectory=expdp_dir schemas=opsteel version=10.2.0.1.03、impdp和 ORA-39125这个错误出现在10.2.0.4之前的版本,需要加参数exclude=statistics就可以10.2.0.4是否不需要加,忘了测试了,明天测试一把,看metalink 10.2.0.4已经修订了这个BUG【报错内容ORA-39125: KUPW$WORKER.PUT_DDLS[DBMS_METADATA.CONVERT]调用出错ORA-06502:LPX-00210:】最终的impdp的语法impdp opsteel/opsteel dumpfile=20150923.dmp logfil e=imp20150923.logDIRECTORY=impdp_dir SCHEMAS=opsteel version=10.2.0.1.0 exclude=statistics。
Oracle 11G数据库导出问题解决oracle11g数据库导出问题解决一:11g数据库dmp文件导出问题问题描述:windows2021r2无法正常加装64十一位oracle10g,只可以加装64十一位11g和32十一位10g(兼容性模式)。
由于我们习惯用10g客户端相连接11g数据库展开建立表中空间等有关操作方式,此时求出存有一个问题:通过exp命令求出的dmp版本与客户端版本有关,如果10g客户端相连接另一台服务器上的11g数据库通过exp求出dmp文件在完结后可以提示信息“切换外溢数据类型错误”,这就是因客户端(10g)和数据库(11g)版本号不一致引致。
但如果客户端和数据库在同一服务器,求出时会通过环境变量去挑选调用适当版本的exp程序,我们在求出窗口中也可以看见适当版本号。
所以客户端和数据库在一台服务器时,求出完结后通常不能存有问题(由于环境变量的布局而调用了11g数据库的exp程序)。
问题解决:方法一:求出11g数据库的dmp文件中无法涵盖空表,可以使用以下方法化解:求出前在plsql中继续执行以下语句,用以查阅当前用户下数据库中所有空表:select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=0将查询出的结果中生成的语句复制到sql窗口中执行,通过给所有空表分配空间的方式就可以通过exp命令成功导出空表。
对于加装oracle11g的2021r2服务器,如果数据库和客户端拆分,可以在客户端服务器加装一个11g客户端,再协调上面的方法,就可以正常求出涵盖空表的dmp文件,并且因为调用的就是11g客户端的exp命令,求出完结也不收起。
但由于导出所用的exp版本号为11g,直接将dmp文件导入10g会提示头部验证失败:可以用notepad++修正版本号用imp引入10g数据库,经测试引入并无错误提示信息,登入系统可以正常采用。
Oracle 8i、9i、10g、11g不同版本的比较Oracle 9i比8i多了哪些新特性?简要说:9i更易于管理。
详细说:并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上。
9i可以在线修改内核参数和内存分配,8i不行。
数据文件和表空间管理,8i手工管理,9i自动管理。
9i比8i增强了对ANSI SQL99的支持。
9i比8i增强了故障后的快速恢复(Fast-start)。
8i只支持物理备份(physical backup)数据库,9i还增加了支持逻辑备份(logical backup)数据库,使备份数据库除了作为主数据库的镜像外,还可以提供其他数据服务.Oracle 10g比9i多了哪些新特性?简要说:10g支持网格(Grid),支持自动管理(Automatic Management)。
详细说:10g的g是”Grid”缩写,支持网格计算,即,多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中均衡(Load Balance),按需增删结点,避免单点故障(Single Point of Faliure)。
安装容易,安装工作量比9i减少了一半。
新增基于浏览器的企业管理器(Enterprise Manager)。
自动存储管理(ASM),增删硬盘不再需要操作系统管理员设置的镜像、负载均衡、物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。
内存自动化,根据需要自动分配和释放系统内存。
SQL性能调整自动化。
免费提供基于浏览器的小应用开发工具Oracle Application Express(原名HTML DB),支持10g和9iR2。
快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。
数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15–45倍。
环境介绍源环境:Windows Server 2008 X64+ Oracle 11G 64目标环境:Linux 5.4 + Oracle 10G(10.2.0.4.0)Rac迁移方式由于由上至下迁移,采用exp/imp无法正常导入;故使用expdp/impdp(数据泵)迁移 迁移步骤源端:连接cms数据库服务器192.168.253.113 administrator/******打开dos窗口通过expdp命令导出dmp文件,命令如下:Expdpcms/******@orcl directory=DATA_PUMP_DIRdumpfile=cms.dmp schemas=cmslogfile=cms.log version=10.2.0.3.0;参数说明:expdp用户名/密码@实例名directory=【directory_object】虚拟目录对象(DATA_PUMP_DIR系统安装后默认的目录可用system登陆通过select*FROM dba_directories;查看)dumpfile=导出文件的名schemas=方案名logfile=日志文件version=指定版本导出将导出的.dmp,.log 文件拷贝到目标环境中(路径是DATA_PUMP_DIR对应的目录) Plsql system连接数据库创建cms用户创建cms表空间授权cms用户Ssh连接目标服务器切换oracle 用户执行命令:Impdp system/******@other directory=DATA_PUMP_DIRdumpfile=cms.dmpschemas=cms logfile=cms.log参数同expdp一次艰辛的数据导入导出:环境介绍源环境:Windows Server 2008 X64 + Oracle 11G 64目标环境:Linux 5.4 + Oracle 10G(10.2.0.4.0)Rac迁移方式由于由上至下迁移,采用exp/imp无法正常导入;故使用expdp/impdp(数据泵)迁移 要求目标表空间,用户按照源数据格式创建好导出文件●SELECT CURRENT_SCN FROM V$DATABASE;●expdp system/oracle@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR _PUB logfile=FALABELLA_AR_expdp_20111214.log status=10 parallel=1 CONTENT=ALL f lashback_scn=612654934压缩dmp文件[sql]view plaincopyprint?1.gzip -9 FALABELLA_AR_20111214.DMP三、上传DUMP文件到目标库并解压。
oracle11g数据库导入导出方法教程oracle11g数据库导入导出:①:传统方式——exp(导出)和(imp)导入:②:数据泵方式——expdp导出和(impdp)导入;③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出?oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。
数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。
.dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);二、二者优缺点描述:1.exp/imp:优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就保证了服务器上数据文件的安全性。
缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。
如果文件超过几个G,大众性能的电脑,至少需要4~5个小时左右。
2.expdp/impdp:优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。
我们都知道数据库服务器的重要性,所以在上面的操作必须慎重。
所以这种方式一般由专业的程序人员来完成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。
3.PL/sql Develpoer:优点:封装了导入导出命令,无需每次都手动输入命令。
方便快捷,提高效率。
缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。
三、特别强调:目标数据库:数据即将导入的数据库(一般是项目上正式数据库);源数据库:数据导出的数据库(一般是项目上的测试数据库);1.目标数据库要与源数据库有着名称相同的表空间。
9i、10g、11g版本的区别Oracle 10g比9i多的新特性?1. 10g支持网格计算,即多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中衡(Load Balance),按需增删结点,避免单点故障(Single Point of Faliure)2.10g容易安装,且安装速度比9i少了一半3.新增基于浏览器的企业管理器(Enterprise Manager)。
4.支持自动管理(Automatic Management)增删硬盘不再需要操作系统管理员设置的镜像、负载均衡物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。
5.内存自动化,根据需要自动分配和释放系统内存。
6.SQL性能调整自动化。
7.快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。
8.数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15--45倍.9.精细审计(Fine-Grained Auditing),记录一切对敏感数据的操作10.存储数据的表空间(Tablespace)跨平台复制,极大的提高数据仓库加载速度。
11.流(Streams)复制,实现低系统消耗、双向(double-direction)、断点续传(resume from breakpoint)、跨平台(cross platform)、跨数据源的复杂复制。
12.容灾的数据卫士(Data Guard)增加了逻辑备份功能,备份数据库日常可以运行于只读状态,充分利用备份数据库。
13.支持许多新EE选件,加强数据库内部管理的“Database Vault”,数据库活动的审计的(Audit Vault),数据仓库构建高级功能(Warehouse Builder Enterprise ETL, Warehouse Builder Data Quality).14.免费提供基于浏览器的小应用开发工具Oracle Application Express(原名HTML DB),支持10g和9i R2。
在10g服务器的D盘创建文件夹'datadump'。
将从11g服务器导出的数据库文件orcl_1(his_dp).dmp放到该目录下。
①进入到命令提示符号开始”——“运行”——输入“CMD”回车②输入“sqlplus”回车③输入“system”回车④输入密码(密码输入时是不可见的,此密码是在安装oracle10G时设置的)"orcl"⑤现在已经登陆了oracle,输入“drop user @数据库方案名 cascade;”回车⑥输入“CREATE USER @数据库方案名 identified by @数据库方案密码;”回车⑦输入“Grant dba to @数据库方案名;”回车⑧输入“Create tablespace dzh_datadatafile 'D:\oracle\dzh_data01.dbf'size 3M reuse autoextend on next 5M maxsize 4096M;”回车创建表空间⑨输入“CREATE TEMPORARY TABLESPACE dzh_temptempfile 'D:\oracle\dzh_temp.dbf'size 2M reuse autoextend on next 5M maxsize 4096M;”回车创建临时表空间⑩输入“Alter user @数据库方案名 temporary tablespace dzh_temp;”回车指定数据库方案存放表空间输入“Alter user @数据库方案名 default tablespace dzh_data;”回车指定数据库方案临时表空间11 输入“create directory dumpdir as 'D:\datadump';”回车如果要删除 drop directory dumpdir;输入“grant read,write on directory dumpdir to @数据库方案名;”回车12 输入“exit”回车,退出sqlplus命令行。
一.准备工作1.确认字符集为保证数据一致,新旧数据库的字符集必须统一。
查询语句:select * from V$NLS_PARAMETERS where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');MES 10g2.确认用户角色首先在10g数据库上查询当前用户的角色,之后在11g库中查询刚才的用户所拥有的角色在11g库中是否存在。
查询语句:select * from dba_role_privs where grantee IN ('MESPROD','LBLPROD');每个应用用户均需查询,如果发现有系统默认没有的用户自建角色,需要在11g库中新建该角色,角色创建语句可以在10g库中由plsql developer软件进行自动生成。
3.新建表空间在11g数据库中新建以下表空间:CREATE TABLESPACE "TS_MES_DAT" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_HISTORY_DAT" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_MES_IDX" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_HISTORY_IDX" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_LABEL_DAT" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_LABEL_IDX" SIZE 1G maxsize unlimited;4.新建用户在11g数据库中新建以下用户:-- Create the usercreate user MESPROD identified by mesproddefault tablespace USERStemporary tablespace TEMPprofile DEFAULT;-- Grant/Revoke object privilegesgrant execute on SYS.DBMS_DEFER_IMPORT_INTERNAL to MESPROD;grant execute on SYS.DBMS_EXPORT_EXTENSION to MESPROD;-- Grant/Revoke role privilegesgrant connect to MESPROD;grant dba to MESPROD;grant mw_role_dba to MESPROD;grant resource to MESPROD;-- Grant/Revoke system privilegesgrant create any index to MESPROD;grant create any table to MESPROD;grant drop any table to MESPROD;grant unlimited tablespace to MESPROD;-- Create the usercreate user LBLPROD identified by lblproddefault tablespace USERStemporary tablespace TEMPprofile DEFAULT;-- Grant/Revoke role privilegesgrant connect to LBLPROD;grant dba to LBLPROD;grant mw_role_dba to LBLPROD;grant resource to LBLPROD;-- Grant/Revoke system privilegesgrant unlimited tablespace to LBLPROD;二.导出数据库导出语句:(耗时约1小时,如果在服务器上导出,需要修改路径)expmesprod/*************.10.100:1521/MESfull=yfile=e:\mesprod.dmplog=e:\mesprodlog owner=(MESPROD,LBLPROD)导出过程中,遇到的报错及解决方式:报错1:EXP-00008: ORACLE error 6550 encounteredORA-06550: line 1, column 18:PLS-00201: identifier 'SYS.DBMS_DEFER_IMPORT_INTERNAL' must be declared 解决方法:GRANT EXECUTE ON SYS.DBMS_DEFER_IMPORT_INTERNAL TO mesprod ;GRANT EXECUTE ON SYS.DBMS_DEFER_IMPORT_INTERNAL TO lblprod ;报错2:EXP-00008: ORACLE error 6510 encounteredORA-06510: PL/SQL: unhandled user-defined exceptionORA-06512: at "SYS.DBMS_EXPORT_EXTENSION", line 50解决方法:GRANT EXECUTE ON SYS.DBMS_EXPORT_EXTENSION TO mesprod;GRANT EXECUTE ON SYS.DBMS_EXPORT_EXTENSION TO lblprod ;PS:导出过程中的exp00091的错误,通常修改nls_lang环境变量即可解决,可以直接忽略这个错误。
oracle11g关于内存的分配方案。
1,在32位的操作系统上,安装oracle的话,oracle最大能分配到的内存是1.7G。
这样的话,推荐最好使用64位的操作系统。
这样在物理内存足够大的情况下,oracle也能分配到无限制的足够大的内存。
2,在物理内存既定的情况下,如果服务器是只为oracle应用提供的服务器。
在创建数据库实例时,oracle的典型内存分布,默认总共给sga 和pga分配系统内存的40%,同时oracle建议自动内存管理。
此时,如果选择oracle的典型内存分布,同时不选择自动管理内存分布,那么sga : pga的内存比是3:1。
但是当sga的内存达到1536M之后,就不会再增加内存了,多出来的内存全都被增加到了pga的内存中去了。
(问题一:请问一下,如果是自动管理内存分布的话,sga和pga 也会出现这样的情况吗? sga达到1536m之后也不会继续增加吗?问题二:pga增多的话,排序等的性能会增加。
但是如果适当的增加sga,将表数据全都缓存到sga中的话,内存中的排序等性能同样会得到很大的提升。
为什么典型配置在sga增加到1536m之后就不再增加了呢?)3,定制数据库实例的内存时:pga,根据实际的情况,可以增加到足够大。
sga的共享池,日志缓冲池如果过大的话,会对性能产生较大的负面影响。
sga的java池,建议20msga的共享池,建议sga的22%sga的large池,建议sga的9.9%sga的缓冲区,可以设置到足够大。
(问题三,当创建数据库实例时,如果选择的是自动管理内存的话,这时的内存结构参数的值都是0。
如果只想要手动管理sga的一个缓冲区的话,是不是必然将重新手动设置sga的全部内存结构?包括重新设置sga本身的大小?)4,问题四:请问一下,如果手动设置的话,那sga和pga的内存比应该多少比较合适?以上只是个人的一些理解,有可能有错误的地方,希望大家能帮忙指出,最后将做出总结,将错误的地方改正。
SPA实施目的为了保证升级10g能更加平稳,我们采用Oracle 11g SQL 性能分析器(SQL Performance Analyzer,以下简称SPA)新功能来预测数据库的关键SQL在Oracle 10g平台上性能情况,以便提前发现问题并做相关的优化。
大型业务关键应用程序要在响应时间、吞吐量、运行时间和可用性方面提供特定服务级别的保证。
对系统的任何更改(如升级数据库或修改配置)通常都需要进行全面的测试和验证,然后才能在生产系统中实施这些更改。
在移到生产系统之前为了保证安全,数据库管理员(DBA) 必须让测试系统承受与生产环境中的工作量很近似的压力,以便分析系统级更改对整体SQL 性能的影响,并在在移到生产之前进行必要的优化。
Oracle Database 11g 引入了SQL 性能分析器;使用该工具可以准确地预测系统更改对SQL 语句性能的影响。
这种功能可向DBA 提供有关SQL 语句性能的详细信息,例如,执行前后的统计信息,提高或降低性能的语句。
这样,你就在测试环境中先进行更改,以确定数据库升级是否会影响SQL性能。
SQL 性能分析器可用于预测和防止会影响SQL 执行计划结构的任何数据库环境更改所带来的潜在性能问题。
这些更改可以包括(但不限于)以下任何一种更改:●数据库升级●实施优化建议●更改方案●收集统计信息●更改数据库参数●更改操作系统和硬件SQL 性能分析器是11g的新功能,通过相关的配置可以应用在Oracle 9i升级到10g的过程中,大致的框架如下:先收集9i数据库的上的sql trace信息(需要涵盖关键业务的SQL),然后在11g数据库上生成STS(SQL T uning Set)和SQL统计信息,接着把这些SQL通过数据库链连接到10g 数据库上运行并把统计信息返回到11g库上,最后对每条SQL生成9i和10g上的对比报告,从这个报告便能发现SQL性能是否改善,执行计划有没有改变。
Oracle11g和oracle10g之间的导⼊导出Oracle11g和oracle10g之间数据的导⼊/导出⼀:oracle的IMP/EMP特性:Oracle的imp/exp组件的⼀个操作原则就是向下兼容,且有⼀些规则:规则1:低版本的exp/imp可以连接到⾼版本(或同版本)的数据库服务器,但⾼版本的exp/imp不能连接到低版本的数据库服务器。
规则2:⾼版本exp出的dmp⽂件,低版本⽆法imp(⽆法识别dmp⽂件);低版本exp出的dmp⽂件,⾼版本可以imp(向下兼容)。
规则3:从Oracle 低版本Export的数据可以Import到Oracle⾼版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。
对于两个不相邻版本间进⾏转换,如从Oracle 6 到 Oracle 8,则应先将数据输⼊到中间版本—Oracle 7,再从中间数据库转⼊更⾼版本Oracle 8。
⼆:oracle的IMPDP/EMPDP的特性:1.在oracle9i以后引⼊数据泵命令IMPDP/EXPDP,oracle11g中exp命令是⽆法导出数据库中的空表的,但可以通过EXPDP导出2.Oracle11g通过exp导出的数据是⽆法通过imp导⼊到oracle10g中的,但可以通过expdp和impdp完成。
3.IMPDP/EMPDP是服务器端是命令,⽆法在客户端使⽤。
三:oracle10g数据导⼊到oracle11g中:在oracle10g上执⾏:Exp ccense/ccense@orcl file=D:\2012123101.dmp在oracle11g上创建好表空间和⽤户后执⾏:Imp ccense/ccense@orcl full=y file=D:\20121231001.dmp四.Oracle11g数据导⼊到oracle10g中:1.在oracle11g服务器命令⾏中⽤expdp导出数据(数据泵的⽤法请参考23期相应⽂档)expdp ccense/ccense@orcl directory=expdp_dir dumpfile=expdp11g_123101.dmp logfile=expdp11g_123101.logversion=10.2.0.1.0 (schemas=ccense)具体备份⽂件在expdp_dir⽬录中:2.在oracle10g服务器DOS命令⾏中⽤IMPDP导⼊数据:把oracle11g的备份⽂件放到oracl10g服务器的impdp_dir⽬录中,并创建好相应的⽤户和表空间,然后执⾏下⾯的命令:impdp ccense/ccense@orcl directory=impdp_dir dumpfile=expdp11g_123101.dmp logfile=impdp11g_123101.logversion=10.2.0.1.0 (schemas=ccense)。
oracle11G导出完整表结构配置oracle 11G 导出完整表结构配置1.一定要在导入数据之前,在初始化参数里修改配置如图:改成FALESdeferred_segment_creation关闭数据库重新登录启动数据库输入。
在Oracle 11g里,默认空表不占空间,exp无法导出,因为11g 里新加个参数deferred_segment_creation,默认为true,也就是延迟创建段空间。
在sys用户下,可以通过命令:alter system set deferred_segment_creation=false;调整这个参数的值,之后,创建的空表会立即分配空间,再通过exp就可以导出空表了。
但是之前的表仍然不占空间,可以通过sql生成批量命令:select 'alter table ' || table_name || ' allocate extent(size 64k);' sql_text,table_name,tablespace_namefrom user_tableswhere table_name not in(select segment_name from user_segments where segment_type = 'TABLE');把生成的命令执行一下,就可以通过exp导出了进入sqlplus 状态C:\Documents and Settings\Administrator>sqlplus "/as sysdba"关闭数据库SQL>shutdown immediate;启动数据库SQL>startup mount;开启数据库SQL> alter database open;。
oracle11g⽤户system使⽤expdp导出报错ORA-39181 oracle11g⽤户system使⽤expdp导出报错ORA-39181# 环境操作系统$ uname -aLinux jinhu-db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux$ cat /etc/redhat-releaseCentOS release 6.9 (Final)数据库BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionPL/SQL Release 11.2.0.4.0 - ProductionCORE 11.2.0.4.0 ProductionTNS for Linux: Version 11.2.0.4.0 - ProductionNLSRTL Version 11.2.0.4.0 - Production1. expdp导出⽇志[oracle@test-oracle db_transport]$ /home/oracle/db_transport/db_expdp_full.shExport: Release 11.2.0.4.0 - Production on Fri Apr 13 14:41:41 2018Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsStarting "SYSTEM"."SYS_EXPORT_FULL_01": system/********@ORCL DIRECTORY=exp_dirDUMPFILE=expdp_full_20180413.dmp FULL=y LOGFILE=expdp_full_20180413.logEstimate in progress using BLOCKS method...Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATATotal estimation using BLOCKS method: 375.6 MB.................ORA-39181: Only partial table data may be exported due to fine grain access control on "OE"."PURCHASEORDER". . exported "OE"."PURCHASEORDER" 243.9 KB 132 rows.................Master table "SYSTEM"."SYS_EXPORT_FULL_01" successfully loaded/unloaded******************************************************************************Dump file set for SYSTEM.SYS_EXPORT_FULL_01 is:/home/oracle/exp_dir/expdp_full_20180413.dmpJob "SYSTEM"."SYS_EXPORT_FULL_01" completed with 1 error(s) at Fri Apr 13 14:44:30 2018 elapsed 0 00:02:47ORA-39181: Only partial table data may be exported due to fine grain access control on "OE"."PURCHASEORDER"错误的原因是⼀个没有权限的⽤户试图导出⼀个具有细粒度访问控制的表。
1、在建虚拟机的时候一定要多定义几个可以加载ISO的光驱。
2、先来查看Linux的IP地址,然后设置一个主机名。
查到IP地址后,就往里面添加一个主机名,其他部位不要改。
2、$符号表示的是普通用户,#符号表示的是root用户,用su - root 命令来实现两者之间的转换。
3、配置yum源,我的Oracle Linux版本是7.1的,在配置yum源的时候只要输入ol7即可。
然后,把参数中所有的enabled=1的都改成等于0,这样就不会把所有操作都连到网上去。
然后往里面插入这些内容,让安装介质去调光盘里面的内容。
(名字可以乱取,无实际意义)修改后要进行保存,按Esc键,然后输入一组命令“:wq”再按回车即可。
4、加载Linux系统光盘5、之后,我们要系统镜像重新挂载到我们指定的目录去先用df命令查看光盘所在的路径然后把它挂载到我们指定的目录6、导入key文件7、进一步安装相关的包执行到这里,就表示相关的软件包都已经处理好了。
8、查询用户名为oracle 的相关信息,可以考到相关的oinstall 组和dba 组也都已经建好了。
9、改Oracle用户组的密码(改为自己熟悉的密码:08268614,很重要!在后续安装grid 过程中必须用到这个用户!)10、查看内核参数可见,所有的内核参数都已经自动配置好了。
最后一行的端口参数9000~65500,这个已经满足Oracle 11g 和12c 的安装,要想安装Oracle 10g ,则要改为:1024 65000即可。
改后按Esc 接着输入“:wq ”按回车保存。
11、查看资源限制文件,按Esc 然后输入“:$”可以看到文件的最后。
这里可以看到,所有的资源设置参数也都已经自动设置好了,不需要再修改。
12、建一个命名为u01的文件夹,用来装Oracle 。
并修改其权限。
成功之后,我们今后就可以把grid (Oracle 数据库相关服务) 装在/u01/grid/12c 这样的目录里。
Oracle11g常⽤基本操作命令 这⾥是单实例数据库情况下:1、启动监听 启动监听,即启动1521监听端⼝号:lsnrctl start #启动监听lsnrctl stop #停⽌监听lsnrctl status #查看监听状态 监听端⼝1521修改:# su - oracle$ lsnrctl stop$ echo $ORACLE_HOME$ cd $ORACLE_HOME/network/admin$ vim listener.ora# listener.ora Network Configuration File: /home/data/oracle/product/11.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC6666))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 6666))))ADR_BASE_LISTENER = /home/data/oracle直接在此处修改是不⽣效的,我们还需要修改local_listener参数$ sqlplus / as sysdbaSQL> show parameter local_listener #登录并查看local_listener参数//由于开始的时候使⽤的是默认值,这个时候VALUE这个值应该是空的,这⾥修改local_listener参数SQL> alter system set local_listener="(address = (protocol = tcp)(host = 10.10.16.245)(port = 6666))";SQL> show parameter local_listener #查看local_listener参数$ lsnrctl start #重新启动监听$ netstat -an|grep 6666 #查看状态$ lsnrctl status$ su - root #防⽕墙端⼝开放# /sbin/iptables -I INPUT -p tcp --dport 6666 -j ACCEPT# /etc/rc.d/init.d/iptables save#到此oracle的监听端⼝号就已经由原来的1521变成6666View Code2、启动数据库 启动数据库有两种⽅式,⼀种是登录sqlplus执⾏startup;另⼀种是使⽤dbstart //启动数据库脚本⽤oracle⽤户进⼊# su - oracle$ sqlplus /nolog #运⾏sqlplus命令,进⼊sqlplus环境,nolog参数表⽰不登录;SQL> conn /as sysdba #以管理员模式进⼊SQL > startup; #启动数据库SQL > SHUTDOWN IMMEDIATE #停⽌数据库远程连接数据库sqlplus /nologconn sys/sys@IP:1521/orainstance as sysdba也可以直接运⾏:dbstart //启动数据库脚本dbshut //停⽌数据库脚本3、⽤户管理 创建普通⽤户,权限相关:创建⽤户:SQL> create user "username" identified by "userpasswd" ; #注:后⾯可带表空间删除⽤户:SQL> drop user “username” cascade; #注:cascade 参数是级联删除该⽤户所有对象,经常遇到如⽤户有对象⽽未加此参数则⽤户删不了的问题,所以习惯性的加此参数授权⽤户:SQL> grant connect,resource,dba to "username" ;查看当前⽤户的⾓⾊SQL> select * from user_role_privs;SQL> select * from session_privs;查看当前⽤户的系统权限和表级权限SQL> select * from user_sys_privs;SQL> select * from user_tab_privs;查询⽤户表SQL> select username from dba_users;修改⽤户⼝令SQL> alter user "username" identified by "password";显⽰当前⽤户SQL> show user;4、表和表空间创建表空间SQL> CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M;删除表空间SQL> DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;修改表空间⼤⼩SQL> alter database datafile '/path/NADDate05.dbf' resize 100M;增加表空间SQL> ALTER TABLESPACE NEWCCS ADD DATAFILE '/u03/oradata/newccs/newccs04.dbf' SIZE 4896M;查询数据库⽂件SQL> select * from dba_data_files;查询当前存在的表空间SQL> select * from v$tablespace;表空间情况SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;查询表空间剩余空间SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;查看表结构SQL> desc table;修改连接数:要重启数据库SQL> alter system set processes=1000 scope=spfile;SQL> shutdown immediate;SQL> startup;查看⽤户当前连接数SQL> select count(*) from sys.v_$session;5、修改字符集相关 将数据库启动到RESTRICTED模式下做字符集更改:$ sqlplus / as sysdbaSQL> select * from v$nls_parameters; #查看当前系统使⽤的各种字符集SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; #精确查询NLS_CHARACTERSET值SQL> shutdown immediate; #关闭数据库SQL> startup mount #启动实例,可以加载数据库,不运⾏数据库DBA在做⼀些操作的时候不希望有⼈登⼊数据库可以使⽤restrict模式:SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; #开启限制会话模式Oracle job进程,包含协调进程(主进程)以及奴⾪进程(⼦进程),job_queue_processes取值范围为0到1000,总共可创建多少个job进程由job_queue_processes参数来决定。
Oracle 11G R2 用exp无法导出空表解决方法Oracle 11G在用E XPORT导出时,空表不能导出11G R2中有个新特性,当表无数据时,不分配segment,以节省空间解决方法:一、insert一行,再rollb ack就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。
导出时则可导出空表。
二、设置defe rred_segme nt_cr eatio n 参数该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
修改SQL语句:altersystem set deferr ed_se gment_crea tion=falsescope=both;需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
如需导出之前的空表,只能用第一种方法。
三、用以下这句查找空表select 'alter table '||table_name||' allocate extent;' from user_t ables wherenum_ro w s=0;把查询结果导出,执行导出的语句,强行修改se gment值,然后再导出即可导出空表,注意:数据库插入数据前,修改11g_R2参数可以导出空表查找空表select 'altertable'||table_name||' alloca te extent;' from user_t ables wherenum_ro ws=0四、Oracle 10g以后增加了exp dp和im pdp工具,用此工具也可以导出空的表oracle expdp/impdp用法详解1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。