Oracle Base
密斯特羅
低头做事,抬头做人,参考借鉴,勤学共勉!
展开
-
理解ORACLE数据库字符集
一.引言 ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持,ORACLE为用户提供自己熟悉的数据库母语环境,诸如日期格式、数字格式和存储序列等。Oracle可以支持多种语言及字符集,其中oracle8i支持48种语言、76个国家地域、229种字符集,而转载 2012-02-16 14:51:10 · 429 阅读 · 0 评论 -
第一次遇到ORA-04031的错误!!!!
早上CRM的人说Exadata的数据库无法登陆,一看发现节点一个节点Hang住了,使用SQL*Plus登陆会卡死,且日志中提示:无法分配共享内存。查看alert日志发现,其中出现了很多ORA-04031的错:Errors in file /u01/app/oracle/diag/rdbms/srcbfin/SRCBFIN2/trace/SRCBFIN2_smon_12501原创 2012-09-26 16:12:17 · 2554 阅读 · 0 评论 -
记一次ORA-24247: network access denied by access control list (ACL)
这两天在测试使用UTL_SMTP发送邮件时,遇到了ORA-24247的错误:Error report:ORA-24247: network access denied by access control list (ACL)ORA-06512: at "SYS.UTL_TCP", line 17ORA-06512: at "SYS.UTL_TCP", line 267ORA-0原创 2012-10-02 17:21:48 · 4300 阅读 · 0 评论 -
调整表的CHAR/VARCHAR2字段的Byte为CHAR
使用如下SQL脚本即可:set serveroutput onDECLAREsqlstr varchar2(4000);cursor sqlcurs isselect owner,table_name,column_name,data_type,CHAR_LENGTH from dba_tab_columns where owner='&username'and data_ty原创 2012-03-08 17:31:58 · 579 阅读 · 0 评论 -
Oracle10.2.0.1升级至10.2.0.4时遭遇的错误一则
今天做Oracle10.2.0.1升级至10.2.0.4时,在安装过程中总是遇到如下提示:Coping libocr10.so to /opt/app/oracle/product/10.2.0/libocr10.so(Cannotopen or remove a file containing a running program.)但是我使用ps命令却没有看到任何oracle用户进程在运原创 2012-09-20 15:59:40 · 1526 阅读 · 0 评论 -
使用impdp的networ_link从11.2.0.3向10.2.0.1同步数据时遭遇内部错误
为了减少数据落地时间,使用network_link远程抽取的方式导入数据,结果报错了:[rac11g1@oracle]$ username=ODSAML ;password=ODSAML ;impdp $username/$password directory=dumpdir logfile=$username.impdp.20120920.log network_link=${userna原创 2012-09-20 17:04:49 · 1948 阅读 · 0 评论 -
偶遇Oracle 11g 的DBMS_TABCOMP_TEMP_UNCMP和DBMS_TABCOMP_TEMP_CMP
这两天有个系统上线,刚好在晚上10点多的时候准备数据库环境,结果发现当时数据库很繁忙,日志的生成量竟然比白天交易时间产生的日志量还大。最开始还以为是新上的系统起来以后在执行什么操作呢,后来一看发现时SYS用户在执行一些很耗时耗资源的操作,摘录如下:超级耗时的作业,可以看到这些SQL都是SYS用户发起的,而且每个的执行时间都特别长:再来看看这些SQL是什么,已经他们的执行计划原创 2012-11-26 11:31:20 · 4637 阅读 · 0 评论 -
数据泵(expdp/impdp)跨版本导入,11g导出10g导入
最近在做数据库升级的事情,开发那边提了个需求说,如果升级并运行几天后怎么把新的数据倒回到旧版本的数据库里面?我做升级时是使用数据泵做的数据迁移,大家都知道软件的使用“一般”情况下都是向下兼容的,即例如使用10g的expdp工具导出的文件使用11g的impdp导入到11g的数据库里面“几乎”不会出现什么问题,但是如果反过来则可能需要做一些处理,其实也就是在expdp导出时需要使用version参原创 2012-11-26 14:09:52 · 4981 阅读 · 1 评论 -
纯命令行静默安装Oracle11gRAC+ASM+AIX
#1.修改PagingSpace Size/usr/sbin/lsps -achps -s 32 hd6#swapoff /dev/'paging00'#rmps 'paging00'#2.确认/tmp文件系统至少2Gdf -g /tmp #3.网络规划至设置host表filename=/etc/hostsecho '#for rac1原创 2012-11-12 10:35:17 · 4403 阅读 · 0 评论 -
Oracle10.2.0.4升级至Oracle11.2.0.3错误手记一则
今天在做一个测试库的升级,本以为和由10.2.0.1升级至10.2.0.4那样,于是直接就做了,没有去做由10g升级至11g之前的准备工作。于是直接就使用11g的软件把10g的数据库启动到upgrade状态,然后开始执行升级脚本:@catupgrd.sql结果这个脚本一执行就报错了,检查发现时在执行下面的select语句时报错的:SELECT TO_NUMBER('MUST_H原创 2012-11-28 13:09:53 · 3162 阅读 · 0 评论 -
使用expdp/impdp迁移数据经验一则
今天在测试环境做一下迁移工作:1、使用network_linK选项,减少数据落地时间2、可以使用system等系统用户做impdp,免去目标端创建用户的操作3、迁移前最好在源端执行以下下面的SQL,把CHAR和VARCHAR类型的字段由按byte计算修改为按char计算,这样可以避免在目标端出现ORA-01401的错误:set serveroutput on DECLARE原创 2012-11-30 12:03:24 · 820 阅读 · 0 评论 -
11g中SYSTEM用户的Procedure中不能访问DBA_视图
简直是无语了,不知道问题出在那里,已开了SR,先记录下来吧。今天从一个10g数据库中迁移几个存储过程到11g数据库中,结果发现在10g完全没问题的Procedure,在11g中就报Error了,而且报错的地方竟然是在存储过程中引用DBA_视图的地方,如下图所示:在10g的system用户中这些Procedure是正常的在11g的SYS用户中也是正常的原创 2012-12-13 11:08:27 · 881 阅读 · 0 评论 -
数据库内存设置
自己总结的,也许不对,也许不合理,欢迎指正!OLTP内存设置(按64G计算):1、总内存设置,约等于总内存的72%memory_max_target=memory_target=总内存*0.72≈46G2、SGA和PGA设置,预留约9%作为SGA和PGA的自由伸展空间,其中SGA和PGA比约为3:1至4:1预留空间=46*0.09≈4Gsga_max_size=sga_ta原创 2013-05-03 12:56:26 · 869 阅读 · 0 评论 -
RMAN 创建恢复目录
1、恢复目录数据库配置建议: 表空间 大小需求 SYSTEM 90MB TEMP 5MB UNDO 5MB RECOVERY_CATALOG_SCHEMA 每个主城的数据库15MB原创 2012-08-16 15:46:14 · 597 阅读 · 0 评论 -
记一次Exadata故障
懒得整理了,直接把故障分析报告黏贴上来了。【故障基本信息描述】 故障基本信息2012年8月07日上午08:15左右,系统管理员接到后置应用人员反映批处理出现了异常,经检查发现是数据库服务器的根目录/和oracle软件安装目录/u01都满了,临时删除一些日志后后置批处理继续。影响时间:2012-08-07.04:00 – 2012-08-07.08原创 2012-08-10 15:23:11 · 2287 阅读 · 0 评论 -
Oracle关闭遇到ORA-00600 【LibraryCacheNotEmptyOnClose】的错误
今天在测试环境正常关闭数据库时突然遇到ORA-00600的错误,我的数据库版本为10.2.0.411:32:57 MYHSZHLC@SYS> shutdown immediateDatabase closed.Database dismounted.ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnC原创 2012-02-23 14:41:51 · 769 阅读 · 0 评论 -
Oracle字符集整理(一)
1、CHAR和VARCHAR2类型的列最多可插入汉字为如果数据库字符集为ZHS16GBK此类中文字符集数据库,则可插入汉子数字为:4000/2=2000个,单字节字符为4000个如果数据库字符集为UTF8,则可插入单字节字符数为4000个,双字节字符数为:4000/2=2000个,三字节字符(汉字)为4000/3=1333个汉字+1个单字节字符2、NLS_LENGTH_SEMA原创 2012-02-16 14:35:24 · 735 阅读 · 0 评论 -
查看 Oracle 位数的方法
1、使用sqlplus命令[rac11g1@oracle]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.2.0 Production on Wed Feb 15 16:19:43 2012Copyright (c) 1982, 2010, Oracle. All rights reserved.Connected to:原创 2012-02-15 16:22:26 · 2368 阅读 · 0 评论 -
【转】深入分析Oracle字符集
文章出自:http://blog.163.com/zhyang@yeah/blog/static/130143844200991535913471/?fromdm&isFromSearchEngine=yes如何选择数据库的字符集是一个有争议的话题,字符集本身涉及的范围很广,它与应用程序、客户的本地环境、操作系统、服务器等关系很密切,因此要做出合适的选择,需要明白这些因素之间的关系。另外对转载 2012-02-25 19:04:59 · 1090 阅读 · 0 评论 -
DBCA创建ASM数据库时遇到ORA-01031
情况是这样的,我有一台服务器安装的是Oracle11gR201,并且分别使用grid和oracle用户安装了Grid Infrastructure和Database软件,结果在使用dbca工具创建数据库时,在进度条为96%的地方报错了,dbca的trace.log日志内容:[Thread-161] [ 2012-03-04 15:29:08.101 CST ] [PostDBCreationS原创 2012-03-06 21:32:24 · 1526 阅读 · 0 评论 -
11gR201创建数据库时遭遇ORA-19202和ORA-31154的错误
OS版本:RHEL5.6-x86-64DB版本:Oracle 11.2.0.1今天在使用dbca创建数据库时,在进度条为61%的地方出错了,出现了XML文件解析错误的情况:[Thread-71] [ 2012-03-05 17:59:31.528 CST ] [BasicStep.handleNonIgnorableError:431] ORA-31154: invalid XML d原创 2012-03-06 11:26:51 · 4532 阅读 · 7 评论 -
发现Oracle11.2.0.1关于NLS_LENGTH_SEMANTICS的一个Bug
这段时间在做数据迁移,需要从10g的ZHS16GBK字符集的数据库里面迁移数据到11g的UTF8字符的数据库,并且源数据库的NLS_LENGTH_SEMANTICS参数值为Byte,目标端的NLS_LENGTH_SEMANTICS参数值为CHAR。如果直接从源使用exp/expdp导出数据,然后使用imp/impdp导入数据到目标的话,可能会出现数据超长的情况,这时候就不好搞了,因此我就使用了中转原创 2012-03-07 16:32:37 · 999 阅读 · 0 评论 -
11g不能在创建具有重复列的函数索引了
把一个测试系统的数据从10g迁移到11g中后,听开发人员说他们有个创建索引的SQL语句执行失败,但是在10g里面是能够正常执行。这个索引是一个具有重复列的函数索引,可能是手误并且这个索引没怎么用,所以就一直没注意这个索引。自己感觉挺有意思的,于是就自己试验了一下:1、先来看11g的情况:[oracle@instsvr1 ~]$ sqlSQL*Plus: Release 11原创 2012-03-16 13:29:52 · 527 阅读 · 0 评论 -
netca报错: line 190: 16835 Aborted
在创建数据库时,想先使用netca创建一下监听,结果发现主要一直线netca命令就意外终止:Oracle Net Services Configuration:## An unexpected error has been detected by HotSpot Virtual Machine:## SIGSEGV (0xb) at pc=0x002ffdb3, pid=16原创 2012-04-28 13:02:46 · 1368 阅读 · 0 评论 -
11.2.0.3在非Exadata环境禁掉了diskmon服务
今天装了个11.2.0.3的环境,结果发现diskmon总是处于offline状态:[root@osdbso ~]# crs_stat -tName Type Target State Host ------------------------------------------------------------原创 2012-05-01 11:32:56 · 2097 阅读 · 0 评论 -
终于目睹EM12C的风采
折腾了N天的12C,今天终于搞定了。不过搞定的很莫名其妙,之前是把OMS和RepositoryDatabase放在一台服务器上,结果不管是怎么折腾,就是各种问题,尝试过更换成OS版本,依然是各种无语,浪费了我N天时间。今天把OMS和RD分开之后,使用一模一样的配置,结果一切很顺利,然后就OK了,简直无语。先来个图纪念一下吧!呵呵原创 2012-05-07 16:56:33 · 1285 阅读 · 0 评论 -
限制oracle普通用户能且只能kill自己的会话
声明:仅用于测试环境方便调试,不可能应用于生产环境;故请勿加入到程序源代码来实现自动杀进程。只需一个参数,就能kill用户自己的会话,请小心操作,以免误kill进程。使用方法:新开一个session后,执行EXEC SYS.P_KILL_USER_SESSION(要杀的会话的sid);就能实现sys用户才能操作的 alter system kill session(si原创 2012-05-30 16:58:43 · 1492 阅读 · 0 评论 -
使用触发器和自治事务做了个DDL审计
目的:禁止对ZFPT用户的表执行ALTER TABLE的操作,并审计操作行为。--创建ZFPTADM用户用于管理触发器CREATE USER ZFPTADM IDENTIFIED BY ZFPTADMDEFAULT TABLESPACE ZFPT_CDATA TEMPORARY TABLESPACE ZFPT_TEMP;--授予ZFPTADM用户创建会话、触发器、表、查询字典视图以及不原创 2012-04-28 14:54:42 · 743 阅读 · 0 评论 -
偶遇ORA-07445 [kslgetl()+120] [SIGSEGV] [Address not mapped to object] [0x000000208] [] [] 和ORA-00108
今天发现一台数据库宕了,一看原来是文件系统目录满了,进一步查看发现是由于bdump目录下生成过多的trace文件所致,而为什么生成那么多trace文件呢?发现alert日志中出现大量的如下错误:Thu Jun 20 19:12:32 2013Errors in file /soft/oracle/admin/zhs10g/bdump/zhs10g_ora_2972.trc:ORA-07原创 2013-06-20 17:19:29 · 2307 阅读 · 0 评论