公司服务器在前几天因断电原因,导致oracle 创建数据库数据库不能进入,提示12532错误

Posts - 431,
Articles - 0,
Comments - 884
随笔分类 -数据库技术(Oracle)
23:26 by 潇湘隐者, 29 阅读, ,
今天在重构数据库时(将表空间中的表、索引转移到其它表空间)时,发现有两个奇怪的对象SYS_EXPORT_FULL_01、SYS_EXPORT_FULL_02搜索了一下,发现这个可能是EXPDP导出异常时遗留下的对象,但是搜到的资料不多,不能确认其具体用途以及该表是否删除。后来同事在metalink搜索到How To Cleanup Orphaned DataPump Jobs In DBA_DAT...
14:03 by 潇湘隐者, 54 阅读, ,
ORACLE如何查看表空间存储了那些数据库对象呢?可以使用下面脚本简单的查询表空间存储了那些对象: SELECT TABLESPACE_NAME AS TABLESPACE_NAME , SEGMENT_NAME AS SEGMENT_NAME , SUM(BYTES)/ AS SEGMENT_SIZE FROM DBA_SEGM...
11:13 by 潇湘隐者, 143 阅读, ,
有个网友问我,如何授予某个用户只能查看某些存储过程的定义权限,而不能让用户去修改、执行存储过程。看似简单的问题,却因为从没有碰到这样的需求。花了点时间才梳理、总结清楚。 关于ORACLE账号的权限问题,一般分为两种权限: 系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、创建存储过程等 对象权限: 允许用户操纵一些特定的对象,如读取视图,...
17:34 by 潇湘隐者, 48 阅读, ,
由于需要ORACLE的UAT测试环境,克隆了虚拟机后,修改IP地址后,启动实例遇到了ORA-07445 &ORA-00108错误. 案例环境: SQL& select * from v$ BANNER----------------------------------------------------------------Oracle Database 10g Releas...
23:57 by 潇湘隐者, 104 阅读, ,
安装了ORACLE的SQL Developer 4.0.3.16,但是连接数据库时,如果选择连接类型为“TNS”,无法获取网络别名,那么要如何设置,才能访问到TNS文件呢? 此时需要设置TNS_ADMIN环境变量指向tnsnames.ora文件所在目录,最简单的方法如下所示 C:\Users\konglb&set tns_names=C:\OracleClient\Oracle32\prod...
22:54 by 潇湘隐者, 178 阅读, ,
收到监控告警日志文件(Alert)的作业发出的告警邮件,表空间TEMPSCM2不能扩展临时段,说明临时表空间已经被用完了,TEMPSCM2表空间不够用了 Dear All: The Instance SCM2' alert log occured the ora errors ,please see the detail blow and take action for it. many th...
00:33 by 潇湘隐者, 46 阅读, ,
RMAN备份数据库时,出现下面错误错误信息: Starting backup at 25-MAY-15 current log archived allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=953 devtype=DISK RMAN-00571: ===========================================...
22:58 by 潇湘隐者, 128 阅读, ,
1:环境准备 在新的服务器上安装ORACLE实例,安装过程中需要注意源服务器与目标服务器的ORACLE_SID一致,另外确保安装路径与源路径一致(不仅是安装目录,甚至包括数据文件、控制文件目录、联机重做日志文件所在目录都要注意)。如果不一致相当麻烦,需要修改spfile。 2:RMAN做冷备份 使用cold_backup.sh将数据库备份到/u04/migration目录下面 mkdir ...
23:07 by 潇湘隐者, 90 阅读, ,
刚刚安装了ORACLE 10g R2后,启动数据库时发现告警日志有如下错误: Database Characterset is UTF8replication_dependency_tracking turned off (no async multimaster replication found)WARNING: AQ_TM_PROCESSES is set to 0. System ope...
11:18 by 潇湘隐者, 96 阅读, ,
在使用expdp导出一个表的数据时遇到了下面情况,也不见其提示报错信息,一下子就执行完了,也没有导出我需要的数据 [oracle@getlnx01 dump_dir]$ expdp system/xxxx TABLES=xxx.inv_workshop_stock dumpfile=inv_workshop_stock.dmp DIRECTORY=DUMP_DIR logfile=1. ...
16:32 by 潇湘隐者, 91 阅读, ,
测试服务器做了RMAN还原后,发现告警日志文件有如下错误信息ORA-01110: data file 206: '/u04/epps/oradata/temp02.dbf' Errors in file /u01/app/oracle/admin/epps/bdump/epps_j000_12672.trc:ORA-01157: cannot identify/lock data file 2...
16:58 by 潇湘隐者, 66 阅读, ,
在一个数据库使用下面SQL找出了一批需要降低高水位线的表,其中有几个表没有数据,于是我打算用TRUNCATE来降低高水位线HWM SELECT a.owner, a.segment_name, a.segment_type, a.tablespace_name, a.blocks &real block&, ...
22:28 by 潇湘隐者, 106 阅读, ,
在测试服务器还原数据库时遇到了ORA-19563错误。如下所示 RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: =============...
23:55 by 潇湘隐者, 125 阅读, ,
今天遇到了一个很有意思的NUMBER类型Scale引发的问题,我用一个简单的测试用例来展示一下这个案例。假如有个TEST的表,有个字段类型为NUMBER,我插入下面两条数据 CREATE TABLE TEST( Category VARCHAR(12), QTY NUMBER) INSERT INTO TESTSELECT 'M', 12 FROM DUAL UNION ALL...
14:22 by 潇湘隐者, 79 阅读, ,
测试环境做了RMAN还原(从10.2.0.4.0 32bit 还原到 10.2.0.4.0 64bit)后,查询dba_registry系统视图时报如下错误 SQL& select comp_name,version,status from dba_select comp_name,version,status from dba_registry ...
16:33 by 潇湘隐者, 248 阅读, ,
今天遇到一个有意思的案例,一开发同事告诉我他删除一个表的记录非常慢,已经快1个多小时了还没有完成。而且删除的记录只有1百多条。真是大跌眼镜的一件事情。最后发现该表与多个表有外键关联关系(这个表即是主表、又是从表),最后我禁用引用该表的外键约束后。一秒内删除了记录。然后启用外键约束关系。下面记录、分析一下解决过程的思路(下面是在测试环境的记录,数据量不一样)。 我去处理这个问题时,首先怀疑可...
12:23 by 潇湘隐者, 254 阅读, ,
早上检查一ORACLE数据库的RMAN备份的邮件时,发现出现了ORA-27072: File I/O error等错误,具体信息如下所示: channel ORA_DISK_1: starting piece 1 at 23-MAR-15RMAN-00571: ===========================================================RMAN-0056...
19:52 by 潇湘隐者, 113 阅读, ,
将ORACLE 10g 32bit数据库还原到测试机ORACLE 10g 64bit的数据库实例上, 还原、恢复数据库后,使用open resetlogs打开数据库后,发现警告日志里面有ORA-12012以及ORA-06553错误: Sun Mar 8 13:31:08 2015LOGSTDBY: Validation completeStarting control autobackupC...
14:21 by 潇湘隐者, 269 阅读, ,
在ORACLE测试服务器上还原恢复了一个数据库后,启动监听服务时出现了TNS-12541, TNS-12560,TNS-00511之类的错误,具体情况如下所示: [oracle@getlnx01 admin]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 09-MAR-:29 Copy...
21:56 by 潇湘隐者, 502 阅读, ,
在ORACLE 10g数据库还原过程遭遇RMAN-06023: no backup or copy of datafile x found to restore,具体情况如下所示 .....................................................................................File Name: /u03/flash_re...
22:44 by 潇湘隐者, 548 阅读, ,
在测试环境中使用某个账号ESCMOWNER对数据库进行ALTER操作时,老是报如下错误: ORA-00604: error occurred at recursive SQL level 1 ORA-20016: (ALTER) Action denied as it is a protected object! ORA-06512: at line 7 不清楚发生了什么情况,于是想跟踪当...
20:14 by 潇湘隐者, 171 阅读, ,
在ORACLE数据库中,如何计算一个表所占用的存储空间呢?我们可以通过系统视图DBA_SEGMENTS、USER_SEGMETNS、DBA_TABLES来查看一个表所占空间的大小,如下所示: SELECT SEGMENT_NAME TABLE_NAME ,SUM(BLOCKS) BLOCKS ,SUM(BYTES)/(...
22:54 by 潇湘隐者, 206 阅读, ,
应用程序以及客户端工具(Toad、PL/SQL Developer等)出现突然连接不上数据库服务器的情况,监听日志listener.log里面出现了TSN-12518与TSN-12540错误,如下所示, 27-JAN-:19 * (CONNECT_DATA=(SERVICE_NAME=scm2)(CID=(PROGRAM=c:\windows\system32\in...
16:16 by 潇湘隐者, 1250 阅读, ,
关于ORA-01012这个错误,惜分飞的博客ORA-01012: not logged on里面已经做了一些介绍,原因就不多说了,看看他的描述说明:现象说明: 1)终于发现了ORA-01012错误,期待了很久。发现只有当sys登录系统,对数据库进行查询或者操作之时才会出现ORA-01012,其他用户...
14:26 by 潇湘隐者, 389 阅读, ,
在ORACLE数据库中如何查找那些字段里面包含中文的数据记录呢,有时候就是有这样的特殊需求,下面整理了一些判别字段中包含中文记录的几个方法 1:使用ASCIISTR函数判别 ASCIISTR函数说明: ASCIISTR返回字符的ASCII形式的字符串。非ASCII的字符被转化为\xxxx的形式。 使用ASCIISTR函数也是根据非ASCII字符会被转化这个特性来判别中文字符,只要里...
00:41 by 潇湘隐者, 3045 阅读, ,
在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大,想必不少人听说过关于“LISTENER.LOG日志大小不能超过2GB,超过会导致LISTENER监听器无法处理新的连接”,当然这个不是真理,不会绝对出现,只是发生在老旧的32bit Linux或Unix系统下面,真实的原因是一些32bit O...
22:54 by 潇湘隐者, 156 阅读, ,
今天同事让我看一个触发器为什么老是报错,当执行DML语句触发触发器后,会报ORA-04091错误:ORA-04091: table xxxx is mutating, trigger/function may not see it 。对应的中文错误提示为:ORA-04091: 表 xxx发生了变化, 触发器/函数不能读它。 原因分析: [oracle@DB-Server ~]$ oerr ora ...
23:16 by 潇湘隐者, 586 阅读, ,
案例场景: 新建了一个表空间后TBS_MARKET_DAT,希望将归档的数据放置在这个表空间。 SQL& CREATE TABLESPACE TBS_MARKET_DAT 2 DATAFILE '/u04/oradata/gps/bookt_data_arch_01.dbf' 3 SIZE 100M 4 AUTOEXTEND ON 5 NEXT 10M 6 MAXSIZE ...
11:56 by 潇湘隐者, 696 阅读, ,
连接ORACLE服务器一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。那么两者有啥区别和不同呢?下面我们将对这两者的区别与不同一一剖析。 专用服务器模式(dedicated server)模式 在专用服务器模式中,用户进程运行在客户端的机器上,专用服务器进程运行在数据库服务器,用户进程和专用服务器进程是...
16:33 by 潇湘隐者, 366 阅读, ,
当你碰到ORA-12520错误时,如下所示: 英文:ORA-12520: TNS:listener could not find available handler for requested type of server 中文:ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序 一般你应该从下面两个方面考虑: 1:数据库是专用服务器,但是在tnsname.ora配置...
15:55 by 潇湘隐者, 1045 阅读, ,
今天使用PL/SQL Developer连接到一台新的测试服务器时,遇到ORA错误:ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程。对应的监听日志文件里面错误为TNS-12523: TNS:listener could not find instance appropriate for the client connection 首先使用oerr命令查看ORA-...
00:03 by 潇湘隐者, 91 阅读, ,
突然才发现一个数据库的LGWR进程的跟踪文件scm2_lgwr_5690.trc有大量的告警信息,如下所示: Warning: ;log write time 680ms, size 11569KB*** ; 02:41:17.122Warning: ;log write time 520ms, size 2764KB*** ; 03:11:40.885...
12:19 by 潇湘隐者, 168 阅读, ,
案例环境: 服务器A: 操作系统 : Red Hat Enterprise Linux ES release 4 (Nahant Update 6) 数据库版本: Oracle Database 10g Release 10.2.0.4.0 32bit Production 服务器B: 操作系统 : Oracle Lin...
14:40 by 潇湘隐者, 1273 阅读, ,
最近一周,有一台ORACLE数据库服务器的监听服务在凌晨2点过几分的时间点突然崩溃,以前从没有出现过此类情况,但是最近一周出现了两次这种情况,检查时发现了如下一些信息: $ lsnrctl servicesLSNRCTL for Linux: Version 10.2.0.4.0 - Production on 12-DEC-:34Copyright (c) 1991,...
21:46 by 潇湘隐者, 375 阅读, ,
检查我们的一台ORACLE数据库的监听日志发现有不少TNS-12502错误信息。如下所示 TNS-12502: TNS:listener received no CONNECT_DATA from client09-DEC-:06 * (CONNECT_DATA=(SERVICE_NAME=epps)(CID=(PROGRAM=D:\Tasks\FGIS2MES\CEG...
00:22 by 潇湘隐者, 1405 阅读, ,
前阵子遇到一个案例:一个同事说以前一个运行很正常的包,突然间比以前慢了很多,执行时间非常长,晚上的作业调用这个包跑了几个小时也没有跑出数据。于是我在跟踪、优化过程中定位到包中一个存储过程的一段SQL,我将原SQL简化了一下(对应的表名、函数全都随机取名替换掉),大体如下所示,在一个游标中,循环更新表TMP_JO_ORDERS, 其中需要通过函数获取一些值,这些值用来更新目标表的字段值 ...
22:53 by 潇湘隐者, 1327 阅读, ,
在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致。如果执行频繁的SQL,往往容易遭遇一些并发性的问题。 那么如何查看ORACLE数据库某个SQL的执行频率/次数呢? 有哪些途径方法呢? 方法1: 通过查询V$SQLAREA或V$SQL的EXECUT...
00:15 by 潇湘隐者, 1871 阅读, ,
概念介绍 通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息. 连接(Connection):连接是从客户端到ORACLE实例的一条物理路径。连接可以在网络上建立,或者在本机通过IPC机制建立。通常会在客户端进程与一个专用...
21:43 by 潇湘隐者, 113 阅读, ,
YourSQLDba可以将数据库备份到网络路径(共享路径),这个也是非常灵活的一个功能,以前一直没有使用过这个功能,最近由于一个需求,于是我测试了一下YourSQLDba备份到网络路径,中间遇到了一些问题,遂整理如下。 测试环境: 操作系统: Windows Server Standard 2012 数据库版本: SQL SERVER 2014 1:设置共享路径权限 ...
12:30 by 潇湘隐者, 584 阅读, ,
关于创建视图遇到ORA-01031错误信息,请参考我以前整理的一篇文章Create view failed with ORA-01031:insufficient privileges,本来以为我那篇文章已经已经囊括了很多案例,但是今天遇到一个特殊案例,折腾了我比较久。下面通过几个例子来演示一下遭遇ORA-01031的来龙去脉。 在测试环境准备两个用户dm、ods并授予一定的权限,准备好我们演...
15:36 by 潇湘隐者, 5817 阅读, ,
在实际工作中,总会遇到一些需要查看、验证ORACLE客户端版本的问题,因为一台服务器可能装了多个Oracle客户端版本;也有可能你需要知道安装的版本是32位还是64位的。如何查看Oracle客户端(Oracle Client)的版本呢? 下面介绍一下在Windows、Linux下如何查看Oracle客户端版本的方法。 Windows平台: 方法1: 查看安装的Oracle客户端版本 如...
13:52 by 潇湘隐者, 127 阅读, ,
本文转自惜分飞的博客,博客原文地址:/1109.html,支持原创,分享知识! 当一个数据块读入sga区,相应的buffer header会被放置到hash列表上,我们称其这hash chains,chain在中文的意为链条或串的意思,表达就是关连性.如果一个进程想访问或修改hash chain上的block,它首先要获得”cache buffers c...
10:39 by 潇湘隐者, 348 阅读, ,
在ORACLE数据中修改会话级临时表时,有可能会遇到ORA-14550错误,那么为什么会话级全局临时表会报ORA-14450错误呢,如下所示,我们先从一个小小案例入手: 案例1: SQL& CREATE GLOBAL TEMPORARY TABLE TEMP_TEST 2 ( 3 NAME VARCHAR2(12) 4 ) ON COMMIT PRESERVE ROWS;T...
09:12 by 潇湘隐者, 2520 阅读, ,
在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,即使会话状态为“KILLED”,依然会阻塞其它会话。 下面根据Eygel的&Oracle中Kill session的研究&,构造一个案例看看kill s...
00:23 by 潇湘隐者, 648 阅读, ,
由于规范存储位置以及存储空间调整缘故需要移动表空间MRP_INDEX2的数据文件,如下所示,首先将表空间MRP_INDEX2脱机; 然后复制数据文件;接着重命名数据文件,最后将表空间MRP_INDEX2联机. 在操作过后,最后一步将表空间MRP_INDEX2联机上线时,出现了意外错误信息,如下所示: SQL& ALTER TABLESPACE MRP_INDEX2 OFFLINE NORMAL...
16:09 by 潇湘隐者, 1365 阅读, ,
回收站概念 从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念。它的全称叫Tablespace Recycle Bin。回收站实际是一个逻辑容器(逻辑区域),原理有点类似于WINDOW系统的回收站。它以表空间中现有已经分配的空间为基础,而不是从表空间上物理划出一个固定区域用作回收站。这意味着回收站和表空间中的对象共用存储区域、系统没有给回收站预留空间。因此,当表被DR...
11:35 by 潇湘隐者, 8313 阅读, ,
临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERS...
08:51 by 潇湘隐者, 878 阅读, ,
ORACLE 11g 的数据库体系结构图,非常全面、系统、高屋建瓴的整体介绍了ORACLE 11g 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_11g_ARCHITECTURE.pdf
13:12 by 潇湘隐者, 291 阅读, ,
ORACLE 10g 的数据库体系结构图(ORACLE 10g(Release 2)ARCHITECTURE),非常的全面、系统、高屋建瓴的整体介绍了ORACLE 10g 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_10g_ARCHITECTURE.pdf
12:42 by 潇湘隐者, 144 阅读, ,
ORACLE 9i 的数据库体系结构图,非常的全面、系统、高屋建瓴的整体介绍了ORACLE 9i 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_9i_ARCHITECTURE.pdf
21:25 by 潇湘隐者, 631 阅读, ,
替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据;在SQL语句之间传递值。一般使用&或&&前缀来指定替换变量. 关于使用替换变量,一般是利用其创建通用的脚本或达到和用户交换目的。如下所示: 例如,我需要查看表的相关信息,如果不使用替换变量,每次查询我都要修改脚本。非常不便,如果使用替换变量,我们可以将下面脚本存放在tab.sql脚本中,每次运行时,只需要输入替换变...
13:15 by 潇湘隐者, 1927 阅读, ,
Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法。都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇。 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误;ORA-44002: 对象名无效 Windows 平...
15:48 by 潇湘隐者, 3440 阅读, ,
告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file)。告警日志文件命名一般为alert_.log,其中SID为ORACLE数据库实例名称。数据库告警日志是按时间顺序记录message和错误信息。 告警日志位置 在ORACLE 10g中,BACKGROUND_DUMP_DEST参数确定了告警日志的位置,但是告警日志的文件名无法修改,告警日志的名称为:alert_.log...
10:38 by 潇湘隐者, 747 阅读, ,
昨晚下班的时候,我准备关闭本机的虚拟机上的ORACLE数据库后准备下班,但是由于我SecureCRT开了多个窗口,结果一不小心,疏忽之下在一个生产服务器上执行了shutdown immediate命令,大概过了6到7秒,发现该命令还没有响应,我才发现我这个命令执行错了服务器。一惊之下,想都没有想直接CTRL+C想中断这个操作。 如下所示: SQL& SP...
12:19 by 潇湘隐者, 865 阅读, ,
外部表介绍ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不...
15:01 by 潇湘隐者, 760 阅读, ,
动态采样概念 动态采样(Dynamic Sampling)是在ORACLE 9i Release 2中开始引入的一个技术,引入它的目的是为了应对数据库对象没有分析(统计信息缺失)的情况下,优化器生成更好的执行计划。简单的说,在数据库段(表、索引、分区)对象没有分析的情况下,为了使CBO优化器得到足够多的信息以保证优化器做出正确执行计划而发明的一种技术。它会分析一定数量段对象上的数据块...
10:38 by 潇湘隐者, 3068 阅读, ,
RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimization 基于规则的优化器 CBO: Cost-Based Optimization ...
09:11 by 潇湘隐者, 304 阅读, ,
案例环境: 操作系统版本: Red Hat Enterprise Linux ES release 4 数据库版本 : 10.2.0.4.0 32 bit 案例介绍: 今天我执行stop_oracle.sh脚本关闭数据库时遭遇了ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose], [], [...
15:53 by 潇湘隐者, 6609 阅读, ,
VARCHAR2数据类型的最大长度问题,是一个让人迷惑的问题,因为VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型。简单的说,要看你在什么应用场景下,否则难以回答VARCHAR2数据类型的最大长度问题。 ORACLE数据库字段类型 关于Oracle Database中的字段的VARCHAR2类型的最大长度,我们先看下面的例子: ...
17:05 by 潇湘隐者, 1103 阅读, ,
相信不少人遇到过ORA-02429: cannot drop index used for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键的索引”,其实从错误提示信息已经很明显了。下面还是用一个简单的例子述说一下该错误的来龙去脉。 ORA-02429错误的原因是因为用户试图删除一个用于强制唯一/主键的...
14:57 by 潇湘隐者, 3033 阅读, ,
今天遇到一个错误提示:ORA-06502:PL/SQL :numberic or value error: character string buffer too small,一般对应的中文信息为:ORA-06502: PL/SQL: 数字或值错误 :字符串缓冲区太小。仔细检查调试过程中才发现是开发人员定义了一个变量,但是在脚本里面赋予了该变量超过其长度的值。结果就报这个错误。我习惯总结每一个遇到...
11:06 by 潇湘隐者, 263 阅读, ,
以前在博客里面介绍了RMAN备份脚本一列分享,通过RMAN备份到本地路径,然后通过FTP将备份文件上传到FTP服务器。 下面简单介绍另外一例RMAN备份解决方案,下面是我简单画的一个图(很少画图,感觉有点粗制滥造)。 首先将数据库备份到本地服务器的一个目录下(目录是按日期格式生成,本地备份保留周期视存储情况而定.一般一天即可)。 然后将备份文件通过Symantec Backup Exec ...
23:26 by 潇湘隐者, 696 阅读, ,
在ORACLE数据库中,RMAN备份的脚本非常多,下面介绍一例shell脚本如何通过RMAN备份,以及FTP上传RMAN备份文件以及归档日志文件的脚本。 fullback.sh 里面调用RMAN命令做数据库备份,它使用的cmdfile为/home/oracle/backup/bin/fullback.rcv,同时在/home/oracle/backup/logs目录下生成日志文件。 1: ...
23:33 by 潇湘隐者, 4863 阅读, ,
概念描叙 ORACLE数据库有国家字符集(national character set)与数据库字符集(database character set)之分。两者都是在创建数据库时需要设置的。国家字符集主要是用于NCHAR、NVARCHAR、NCLOB类型的字段数据,而数据库字符集使用很广泛,它用于:CHAR、VARCHAR、CLOB、LONG类型的字段数据; ORACLE的字符集名字...
09:01 by 潇湘隐者, 297 阅读, ,
实验环境: 操作系统 :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 案例说明: 为了测试、验证备份的有效性,需要将服务器A上的数据库的备份集还原到服务器B上,服务器B上...
11:16 by 潇湘隐者, 430 阅读, ,
案例环境: 操作系统 :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production案例介绍: 在一个刚刚安装实例的服务器,使用dbca创建新的数据库时,在...
16:22 by 潇湘隐者, 1963 阅读, ,
应用程序连接测试数据库时报ORA-12516:TNS:listener could not find available handler with matching protocol stack 检查监听日志文件,发现大量的TNS-12516错误 cd /u01/app/oracle/product/10.2.0/db_1/network/log more listener....
16:50 by 潇湘隐者, 4352 阅读, ,
在日常数据库维护过程中,我们会发现数据库中一些对象(包Package、存储过程Procedure、函数Function、视图View、同义词.....)会失效,呈现无效状态(INVALID)。有时候需要定期检查数据库中存在哪些失效对象,对于存在异常的对象需要重新编译,有些自动失效的对象,一般会在下次...
15:32 by 潇湘隐者, 659 阅读, ,
Oracle License的计算有两种方式:按照用户数和CPU个数. 其中按CPU计算方式如下: License Number = The Number of CPU Cores * Core Factor 其中Core Factor 可以参考官方文档 Oracle Processor Core Factor 。 如果Oracle 安装在VMWARE 上,是否也是按照这个方式计算呢?...
09:59 by 潇湘隐者, 1013 阅读, ,
ORACLE数据库有时候需要对存储进行调整,增加分区、IO调优等等,此时需要移动数据文件、重做日志文件、控制文件等等,下文结合例子总结一下这方面的知识点。 进行数据文件、重做日志文件、控制文件的迁移前,需要总体了解一下当前Linux服务器的磁盘、分区信息,以及服务器文件使用情况,如下所示 查看Linux服务器的文件使用情况 1: [root@DB-Server ~]# ...
17:45 by 潇湘隐者, 1547 阅读, ,
opatch 是ORACLE开发的用来安装,卸载,检测patch冲突、管理ORACLE所有已经安装的补丁的工具,当然这是一个命令工具。opatch命令工具一般位于$ORACLE_HOME/OPatch/下, 1: 查看opatch帮助信息 一般可以用./opatch -help来查看帮助提示。不同版本的opatch的命令有所差异,通过help看到的信息估计有所出入。虽然opatch只有...
08:43 by 潇湘隐者, 619 阅读, ,
案例场景: 在Oracle Linux Server release 5.7上安装完ORACLE 10g后,顺便将PSR(Patch Set Release)p04_Linux-x86-64.zip也安装了。结果在查看补丁时出现了下面情况 [oracle@DB-Server OPatch]$ ./opatch lsinventory Invo...
22:38 by 潇湘隐者, 435 阅读, ,
案例环境: 操作系统环境 : Oracle Linux Server release 5.7 x86_64 数据库版本 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi 在安装Oracle安装过程中,dbca 建instance的,遇到如下错误:ORA-27125: unable to create ...
15:40 by 潇湘隐者, 2553 阅读, ,
安装完ORACEL 10g数据库后,启动数据库时遇到ORA-01102: cannot mount database in EXCLUSIVE mode [oracle@DB-Server ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 10 13:53:08...
00:22 by 潇湘隐者, 1121 阅读, ,
测试环境: 操作系统 : Red Hat Enterprise Linux ES release 4 (Nahant Update 4) VMWARE 数据库 : Oracle Database 10g Release 10.2.0.4.0 - Production 简要介绍,一台服务器A位于虚拟机VMWARE上,由于测试需要,在VMWARE上克隆了...
14:57 by 潇湘隐者, 408 阅读, ,
我们生产服务器中的一个数据库发出监控告警日志的邮件,内容如下所示,在31号09:11分出现了大名鼎鼎的ORA-00600错误。Dear All: The Instance xxx' alert log occured the ora errors ,please see the detail blow and take action for it. many thanks! ----------------------------------------- The errors is blow-----------------------------------------------
22:25 by 潇湘隐者, 3157 阅读, ,
ORACLE数据库会话有ACTIVE、INACTIVE、KILLED、 CACHED、SNIPED五种状态。INACTIVE状态的会话表示此会话处于非活动、空闲、等待状态。例如PL/SQL Developer连接到数据库,执行一条SQL语句后,如果不继续执行SQL语句,那么此会话就处于INACTIVE状态。一般情况下,少量的INACTVIE会话对数据库并没有什么影响,如果由于程序设计等某些原因...
23:46 by 潇湘隐者, 1753 阅读, ,
在删除临时表时遇到了ORA-14452错误:ORA-14452: attempt to create , alert or drop an index on temporary table already in use。第一次碰到这种情况,问题解决过后,为了加深理解,特意参考网上资料,做了下面实验重现错误出现的场景,以及应该如何解决.会话级临时表由于实验需要两个或多个会话配合,所以使用SET SQLPROMPT来标识会话,如下所示,SESSION 1与SESSION 2:Step 1:在会话1中创建了会话级的临时表TMP_TEST 1 SQL& SET SQLPROMPT &S
15:15 by 潇湘隐者, 1283 阅读, ,
早上收到一台Linux服务器磁盘告警邮件以及监控告警日志程序发来的邮件。检查过后,发现Linux服务器中一个分区没有空间了。主要原因是由于昨晚程序员做升级时,产生了大量的归档日志,导致联机重做日志无法归档,出现下面错误: 363 | Wed Mar 19 02:33:16 2014 | ORA-00312: online log 2 thread 1: '/u01/app/oracle/orad...
14:35 by 潇湘隐者, 588 阅读, ,
有时候在ORACLE数据库创建视图时会遇到:ORA-01031:insufficient privileges错误,我也多次碰到了各种创建视图出错的情况,很多时候也没有太在意,今天被一同事问起这个问题,顺便总结一下出错的各种场景。 场景1:使用sys或system账号登陆数据库,创建dm、ods账号(授予connect、resource角色) 1: [...
17:26 by 潇湘隐者, 2512 阅读, ,
最近部署测试环境时,将测试环境ORACLE数据库从10.2.0.1升级到了10.2.0.4,顺便整理记录一下升级过程。 实验环境: 操作系统:Oracle Linux Server release 5.7 数据库:Oracle 10.2.0.1 下载解压补丁包 1: [oracle@DB-Server tmp]$ unzip p04_Lin...
11:24 by 潇湘隐者, 3531 阅读, ,
为了测试需要,系统管理员帮忙将一台ORACLE数据库服务器克隆到虚拟机上,我上去删除了root、oracle、tomcat账号下的crontab定时作业,然后启动了ORACLE数据库实例,删除了ORACLE下的作业,然后启动监听时报如下错误: [oracle@EGMLNX02 admin]$ lsnrctl stop LSNRCTL for Linux: Version 10.2.0....
17:03 by 潇湘隐者, 2356 阅读, ,
今天遇到一个有意思的小问题,一同事有这样一个需求:在更新表T时,如果只是更新字段C,那么不希望触发该该表的触发器去处理业务逻辑。即想在触发器中做出判断:如果更新了字段C,那么跳出触发器,不处理业务逻辑,如果是更新其它字段,那么让触发器去处理业务逻辑。 他是这样做的 1: if :NEW.C != :OLD.C then ...
18:13 by 潇湘隐者, 1496 阅读, ,
安装了Oracle 12C后,启动数据库的过程中出现如下错误 SQL& startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/12.1.0/db_1/dbs/initepps...
18:20 by 潇湘隐者, 800 阅读, ,
平台环境 : Oracle Linux Server release 5.7 x86_64 数据库版本 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi 在安装Oracle安装过程中,dbca 建instance的,遇到如下错误 以前遇到安装ORACLE成功后,启动过程中遇到OR...
17:18 by 潇湘隐者, 4339 阅读, ,
在Oracle Linux Server Release 5.7上安装64位Oracle 10g 时,遇到如下问题: Error in invoking target 'install' of makefile '/u01/app/oracle/product/dbhome_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oracle/oraInventory...
23:08 by 潇湘隐者, 950 阅读, ,
实验操作环境: 操作系统:Red Hat Enterprise Linux ES release 4 (Nahant Update 6) 数据库 : Oracle Database 10g Release 10.2.0.4.0 – Production 32bit 今晚使用shutdown immediate(其实是执行...
10:31 by 潇湘隐者, 3807 阅读, ,
一同事由于系统需求关系,将SQL SERVER数据库的一个表导入ORACLE数据库时,发现居然报错:ORA-12899: value too large for column xxxx (actual:56, maximum:50),该字段长度在两个数据库都是50,之所以出现这个错误,原因无外乎两个: 一:因为ORACLE数据库它可以存储字节或字符,例如 CHAR(12 BYTE) CHAR(1...
14:52 by 潇湘隐者, 2035 阅读, ,
在测试服务器上使用shutdown immediate命令关闭数据库时,长时间无法关闭数据库,如下所示 1: [oracle@DB-Server admin]$ sqlplus / as sysdba 2: 3: SQL*Plus: Release 10.2.0.4.0 - Production on Thu Nov 21 ...
16:37 by 潇湘隐者, 1159 阅读, ,
在数据库里面使用TRUNCATE命令截断一个表的数据时,遇到如下错误 SQL &TRUNCATE TABLE ESCMOWNER.SUBX_ITEM ORA-02266: unique/primary keys in table referenced by enabled foreign keys 有时候对应的中文错误提示为:ORA-02266: 表中的唯一/主键被启用的外部关键字引用,一般...
23:24 by 潇湘隐者, 9819 阅读, ,
1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成。 如下图所示,一个数据库由对应一个或多个表空间,表空间逻辑上有一个或多个段(Segment)组成,物理上由一个或多个os file组成。 1.1基本的表空间 系统中默认...
22:17 by 潇湘隐者, 5549 阅读, ,
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关..
11:58 by 潇湘隐者, 2817 阅读, ,
SQL语句在数据库中处理过程是怎样的呢?执行顺序呢?在回答这个问题前,我们先来回顾一下:在ORACLE数据库系统架构下,SQL语句由用户进程产生,然后传到相对应的服务端进程,之后由服务器进程执行该SQL语句,如果是SELECT语句,服务器进程还需要将执行结果回传给用户进程。SQL语句的执行过程一般如下:解析(PARSE)—— 绑定(BIND)——执行(EXECUTE)——提取(FETCH 只有SELECT才需要这步)解析服务器进程接收到一个SQL语句时,首先要将其转换成执行这个SQL语句的最有效步骤,这些步骤被称为执行计划。Step 1:检查共享池中是否有之前解析相同的SQL语句后所存储的..
11:27 by 潇湘隐者, 550 阅读, ,
实验环境: 操作系统 : Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库版本: Oracle Database 12c Release 12.1.0.1.0 - 64bit Production前两天在服务器上安装了ORACLE 12c后,从客户端连接到数据库的时候,出现ORA-12170错误,由于以前在博客的ORA-12170:TNS:连接超时总结过这个问题,所以很快定位到是防火墙问题,于是编辑iptables,开放1521端口,然后重新启动防火墙-A RH-Firewall-1-INPUT -p tcp -m state
00:05 by 潇湘隐者, 1445 阅读, ,
当你碰到ORA-12520错误时,如下所示:英文错误提示:ORA-12520: TNS:listener could not find available handler for requested type of server中文错误提示:ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序一般你应该从下面两个方面去检查出错原因并解决问题:1:数据库是专用服务器,但是在tnsname.ora配置文件中设置的连接方式是shared,这种情况需要修改tnsname.ora配置文件,这种错误情况一般发生在第一次连接数据库服务器。2:运行正常的数据库服务器,突然报ORA-
18:50 by 潇湘隐者, 10758 阅读, ,
1)下载Oracle Database 12cRelease 1安装介质官方的下载地址:1:/technetwork/database/enterprise-edition/downloads/index.html2:/EPD/Download/get_form?egroup_aru_number=URL地址2需要先注册,然后才能登陆下载,注册登陆界面关于这两者有啥区别: 听一个同事说,用metalink 账号下载的安装文件完
22:18 by 潇湘隐者, 314 阅读, ,
这篇文章是上篇文章”Expdp 导数错误 ORA-00832”的延续,前几天工作比较忙、累,直到今天才整理发出来。这个数据库实例的参数设置比较诡异其实是有原因的,由于这台数据库服务器系统是32位,数据库也是32位的。对于绝大部分32位系统上的32位数据库,SGA最大的设置都不能超过2G,有的系统最大值甚至不能超过1.7G左右。DBA为了让内存充分利用,不至于浪费内存资源,于是想让SGA_MAX_SIZE最大化,对数据库相关参数做了调整,设置参数USE_INDIRECT_DATA_BUFFERS为TRUE,调整SGA_MAX_SIZE为3424M,然而使用USE_INDIRECT_DATA_B.
23:40 by 潇湘隐者, 627 阅读, ,
问题实验环境 操作系统:Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库 :Oracle Database 10g Release 10.2.0.4.0 - Production错误再现分析在使用数据泵导数据时,遇到下面错误:[oracle@gsp db_expd_bak]$ expdp system/xxxx directory=dump_dir dumpfile=dm.dmp tablespaces=dm content=Export: Release 10.2.0.4.0 - Production on Thurs
23:28 by 潇湘隐者, 630 阅读, ,
在自己虚拟机搭建的ORACLE数据库环境下,折腾捣鼓做实验时,不知道什么特殊的改动、操作导致从SQL*PLUS里启动数据库实例时,报如下错误:然后用startup nomout启动时,任然报ORA-10997,ORA-09968等错误,于是查看了一下ora相关进程,发现数据库的进程都在,也就是说在某次关闭数据库时,出现了异常导致数据库实例根本没有关闭的情况下出现了该错误((期间我使用shutdown immediate后,还没看到出结果,一不小心点错了,就将SecureCRT关闭了)),于是出现了下面一幕:于是使用 shutdown immediate 命令关闭数据库,结果报ORA-24324
20:23 by 潇湘隐者, 9213 阅读, ,
临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别。它只能存储在临时表空间,而非用户的表空间。ORACLE临时表是会话或事务级别的,只对当前会话或事务可见。每个会话只能查看和修改自己的数据。 临时表语法临时表分类ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。1)ON COMMIT DELETE ROWS它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构 以及元数据还存储在用户的数据字典中
21:04 by 潇湘隐者, 5790 阅读, ,
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的
23:30 by 潇湘隐者, 2393 阅读, ,
从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理、归纳分类,方便自己和大家查看、翻阅。ORACLE数据类型ORACLE基本数据类型总结ORACLE ...
22:35 by 潇湘隐者, 6559 阅读, ,
ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。 服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制.
22:12 by 潇湘隐者, 5659 阅读, ,
记得去年4月份的时候,为公司部署测试环境和UAT环境时,在红帽RHEL6 64位系统安装ORACLE 10g 64位数据库时遇到了许多小问题,当时匆匆忙忙也没记录一下这些问题,前几天在虚拟机安装ORACLE 64位 10g时,又有一些常见问题又遇到了,顺便整理一下这篇文章。也许在RHEL6 64版本上安装64位Oracle 10g 的问题是最多的,估计很多人都被这个虐过无数次(很多人都是Oracle虐我无数遍,我待Oracle如初恋)。从网上搜索关于这方面的内容就可见一斑。好,废话少说,正式进入正题。步骤1:准备系统以及在虚拟机上设置共享目录DataBase,准备数据库安装介质。有些细节东西.
11:59 by 潇湘隐者, 1948 阅读, ,
错误现象: 今天发布脚本时,一个表插入数据时报如下错误 ORA-01502: index ‘index_name' or partition of such index is in unusable state ORA-06512: at line 168 错误原因: 这个错误一般是因为索引状态为UNUSABLE引起的。你可以通过下面SQL,查看索引的状态SELECT OWNER, INDEX_NAME,STATUS FROM DBA_INDEXES WHERE INDEX_NAME='INDEX_NAME' SELECT OWNER, INDEX_NAME,STATU
08:25 by 潇湘隐者, 1880 阅读, ,
错误现象:在ORACLE 10g下为表空间IGNITE_EGVSQL01增加数据文件时,报如下错误: SQL& ALTER TABLESPACE IGNITE_EGVSQL01 ADD DATAFILE '/oradata/ignt/ignite_egvsql01_d02.dbf' SIZE 4096M AUTOEXTEND OFF; ERROR at line 1: ORA-19502: write error on file &/oradata/ignt/ignite_egvsql01_d02.dbf&, block number 334080 (
15:11 by 潇湘隐者, 951 阅读, ,
SQL*Plus的使用环境是可以通过login.sql 或 glogin.sql脚本来设置的,可能很多初学者或不习惯使用SQL*Plus的老鸟都不知道。因为在如今UI工具(Toad、PL/SQL Developer..)大行其道的年代,SQL*Plus这种命令工具渐渐被冷落了,可能只是偶尔被用用,不过这并不妨碍它被很多DBA或SQL*Plus爱好者广泛使用。 其中glogin.sql文件是全局设置文件,位于$ORACLE_HOME/sqlplus/admin下,而login.sql文件属于个性化设置文件,则可以位于任何位置。既可以通过SQLPATH环境变量设置或不设置。 SQL*Plus启动.
12:12 by 潇湘隐者, 854 阅读, ,
前几天碰到一个有趣的事情:早上同事执行一个包很久没有反应,就中断了执行,发邮件让我帮忙查看具体情况,我用PL/SQL Developer登录后,找到这个包的过程中发现这个包的图标有红色叉叉,也就是说这个包有地方没有编译通过,于是我便单击右键点击“重新编译”,结果一直没有响应,导致PL/SQL Developer直接卡死,刚开始没太留意,直接杀掉PL/SQL Developer相关进程,重新打开它然后编译这个包,结果还是这个情况,还是头一次遇到这种情况,一头雾水. 后来搜索了一下才知道原因: 1:当包正在被调用执行时,编译该包会导致无响应情况。 2:包中的对象或依赖对象被其它sessio...
21:57 by 潇湘隐者, 676 阅读, ,
本文介绍一下如何卸载Symantec Backup Exec 2012 Agent for Linx。首先我们来看看Symantec_Backup_Exec2012管理员手册的文档介绍:卸载 Agent for Linux1 在 Linux 服务器上,将 Backup Exec 安装介质插入相应的设备中。2 以 root 身份登录到要从中卸载 Linux Agent 的服务器。3 导航到 Backup Exec 安装介质上的以下目录:4 启动 uninstallralus 脚本。例如:./uninstallralus5 执行以下操作之一:键入 Linux 服务器的名称、IP 地址或完全限定域.
21:25 by 潇湘隐者, 4843 阅读, ,
Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能。借助于强大的 Symantec V-Ray 技术,Backup Exec 2012 可以恢复整个服务器、关键 Microsoft 应用程序以及 VMware 或 Microsoft Hyper-V 虚拟环境,从而最大限度减少业务停机。 主要功能使用获得专利的 V-Ray 技术,通过一次性备份在数秒内轻松地恢复虚拟机、应用程序、数据库、文件/文件夹或全面恢复 虚拟机无代理备份 集成强大的恢复功能,可恢复到裸机、不同硬件以及从物理到
21:05 by 潇湘隐者, 467 阅读, ,
上周星期天在迁移数据时,碰到了ORA-10635: Invalid segment or tablespace type 错误,当时的操作环境如下: 操作系统版本: [oracle@xxxxx scripts]$ more /etc/issue Red Hat Enterprise Linux ES release 4 (Nahant Update 6) 数据库版本 : SQL& select * from v$ BANNER ---------------------------------------------------------------- Or...
10:58 by 潇湘隐者, 550 阅读, ,
环境:在数据服务器A(Red Hat Enterprise Linux Server release 5.5 (Tikanga))上装有数据库ORACLE 10g,但是我们现在从机器B上用DBA账号远程连接数据库时,登录不了。如下所示:问题一:SYSDBA不能远程登录(此处是不是指CRT远程登录)SYSDBA不能远程登录分两种情况:1:提示的是ORA-01017:用户名密码出错C:\Users\kerry&sqlplus &sys/wgods123@gsp as sysdba&SQL*Plus: Release 11.2.0.1.0 Production on 星期五
10:19 by 潇湘隐者, 184 阅读, ,
实验环境:操作系统版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga), 数据库版本 :Oracle Database 10g Enterprise Edition Release 10.2.0.1.0。卸载ORACLE 10g的过程,在不同平台或不同版本数据可能有些步骤略有不同,具体操作的时候请结合实际情况酌情处理。1. 首先做好备份工作(如果有需要的话,如果你想重新完全安装,可以忽略这个步骤)。用 oracle 用户登录。 最好先做一些备份工作。例如备份数据库文件等。2. 使用SQL*PLUS停止数据库[oracle@wg...
09:59 by 潇湘隐者, 384 阅读, ,
在itpub论坛上看到一个问题:如果库正在被写,exp是不是导出的数据就是不同步的了? http://www.itpub.net/forum.php?mod=viewthread&tid=1772882&page=1#pid按照推理逻辑,exp导出的数据应该不是同步的,也不可能同步,除非exp能智能判断数据库是否正在写操作,而且一直等到写操作结束为止。显然这些假设都不合理。下面我们来做个实验,验证一下exp导出数据是否同步。新建一个测试表TEST, 我们写一个循环,往表里面插入1000条记录,而且每插入插入一条记录,停顿0.5秒。这样来模拟数据库处于写状态。CR
12:08 by 潇湘隐者, 2212 阅读, ,
序列介绍序列是一个计数器,它并不会与特定的表关联。通过创建Oracle序列和触发器实现表的主键自增。 序列的用途一般用来填充主键和计数。序列使用1.创建序列ORACLE序列的语法格式为:CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|NOCACHE}]; 1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。 2)START WITH 定义序列的初
22:35 by 潇湘隐者, 632 阅读, ,
今天同事碰到一个SQL的性能问题,主要是MERGE INTO的性能问题,执行脚本的时候,居然耗时50多分钟,汗!简直让人抓狂,脚本如下:MERGEINTO EDS.TW_DP_B_TDTERM_IMEI_DAY DM USING T_IMEI_DAY_1111 TEMP ON( DM.DATE_CD =TEMP.DATE_CD AND DM.CITY_ID = TEMP.CITY_ID AND DM.IMEI =TEM...
10:18 by 潇湘隐者, 1455 阅读, ,
概念介绍横表概念横表就是普通的建表方式,每一个字段代表一个KPI指标。举个列子,一个学生的成绩表:学号、数学成绩、语文成绩、英语成绩、物理成绩、化学成绩......如下所示:SQL& DESC STUDENT_SCOREName Type Nullable Default Comments ---------------- ---------- -------- ------- -------- STUDENT_NO NUMBER(10) 学号 CHINESE_SCORE NUMBER Y ...
11:55 by 潇湘隐者, 233 阅读, ,
浅谈数据库的分割技术 电信信息化部/周陈雄 关健词 读写分离分布,垂直分割,水平分割,虚拟化存储,wEB 缓存分割, 存储 CACHE 缓存分割 随着社会的日益进步, 各行业的运营支撑系统都面临着越来越大的压力, 承受着业务数 据量、访问并发数的飞速增长的双重巨大压力,在我们电信行业,同样面临着这样的难题, 是否有一套适合可行的方案来应对呢?本文重点描述数据库的分割技术, 如果能适当的应用在生产中, 必然能极大减缓来自与 日俱增的业务量带来的巨大压力。 如何分割?我们可以从如下六个方面来考虑: 一、读写分离分布技术 由于数据库存在这样的特性, 索引可以提升查询的性能, 但却极大...
10:55 by 潇湘隐者, 2042 阅读, ,
一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,容易产生混乱,这时一个管理者站出来,增加多个打饭窗口,把那条长长的队伍拦腰截断成几队。更形象一点的理解,你拿一把“手术刀”,把一个大表猛的切了几刀,结果这个大表,变成了几个小表. 水平分割根据某些条件将数据放到两个或多个独立的表中。即按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。水平切割将表分为多个表。每个表包含的列数相同,但是数据行更少。例如,可以将一个包含十亿行的表水平分区成 12 个表,每个小表表示特定年份内一个月的数据。..
19:02 by 潇湘隐者, 2083 阅读, ,
如果你想管理(启动、关闭等)ORACLE数据库的监听服务,在Windows/Linux平台,你都可以通过lsnrctl命令来实现,下面我们主要讲一下如何用lsnrctl命令来管理监听服务(我在两台数据库(不同平台、不同版本)分别操作,暂且叫为服务器A、服务器B):1:查看服务监听命令的详细帮助信息服务器A:Red Hat Enterprise Linux Server release 6.0 (Santiago) ORACLE 10[oracle@DB-Server ~]$ lsnrctlLSNRCTL for Linux: Version 10.2.0.1.0 - Production on
14:59 by 潇湘隐者, 7820 阅读, ,
同义词概念Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词
17:32 by 潇湘隐者, 9393 阅读, ,
在Red Hat Enterprise Linux Server Releae 5.5 成功安装ORACLE 10g 后,在客户端配置TNS后,测试是否可以连接到数据块服务器,结果报错: ORA-12170:TNS:连接超时1:首先检查网络是否能ping通,如下所示,网络是畅通的。2:检查TNS配置(TNS配置也没有问题)GSP =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 172.20.36.79)(PORT = 1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = gsp)))3:
15:27 by 潇湘隐者, 6433 阅读, ,
客户端配置好服务名后,用PL/SQL Developer连接数据库时,报错:ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME。一般这种情况请检查tnsnames.ora文件中TNS是否配置正确,如下所示,SERVICE_NAME 名字弄错了,结果报如上错误:GSP = (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST = 172.20.36.79)(PORT = 1521)) (CONNECT_DATA= (SERVER = DEDICATED) ...
20:08 by 潇湘隐者, 998 阅读, ,
iSQL*PLUS介绍iSQL*PLUS是从ORACLE 9i开始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已经不支持)。是基于三层结构设计的。其client、middle、server可以位于同一台机器上也可以位于不同的机器。iSqlPlus不需要单独安装,通过isqlplus,用户可以不需要安装任何ORACLE客户端,就能够通过浏览器方式的使用SQL*PLUS进行数据操作与数据库管理。普通的数据库用户可以直接通过isqlplus的网址http://ip:port/isqlplus登陆,进入该网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆;但如果是
22:53 by 潇湘隐者, 5438 阅读, ,
联机重做日志文件概念联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改。它主要用于在发生故障的时候和数据库备份文件配合恢复数据库,一般发生故障有2个情况:一个是介质损坏另外一个是用户误操作。每个数据库至少有两个日志文件组,每组至少包含1个或者多个日志成员,这里要多个日志成员的原因是防止日志文件组内某个日志文件损坏后及时提供备份,所以同一组的日志成员一般内容信息相同,但是存放位置不同。在Oracle数据库中,执行数据修改操作后,并不是马上写入数据文件,而是首先生成重做信息,并写入SGA中的一块叫LOG_BUFFER的固定区域,LOG_BUF
00:18 by 潇湘隐者, 2608 阅读, ,
在Linux系统中安装了ORACLE客户端Instant Client,但是它缺少SQL*LOADER、IMP等工具,那么怎么安装这些工具呢?直接从同版本的数据库服务器的安装文件中拷贝sqlldr文件过来,执行sqlldr会报如下错误:Message 2100 No message file for product=RDBMS, facility=ULMessage 2100 No message file for product=RDBMS, facility=UL[etl@m1 instantclient_10_2]$^C 事实上也只能通过拷贝文
15:32 by 潇湘隐者, 1780 阅读, ,
查看ORACLE数据库的版本以及补丁情况,可以通过opatch lsinventory命令来查看,Linux版本和Windows版本几乎差不多(测试的两台机器都没有打补丁。呵呵!):先看一下Windows平台的设置:首先转到ORACLE_HOME目录,然后切换到OPatch目录:(如下所示)E:\&cd E:\app\kerry\product\11.2.0\dbhome_1E:\app\kerry\product\11.2.0\dbhome_1&cd OPatch如果首先没有设置ORACLE_HOME目录,则会报如下错误:E:\app\kerry\product\11.2.0\d
15:14 by 潇湘隐者, 285 阅读, ,
笔记本拔掉网线后,从服务启动ORACLE监听服务器时报错(如下图所示)通过命令启动查看具体错误信息如下所示:查看具体的报错日志信息log.xml,如下所示:代码&msg time='T13:58:04.381+08:00' org_id='oracle' comp_id='tnslsnr'type='UNKNOWN' level='16' host_id='KERRY-PC'host_addr='fe80::bdcd:f603:9ae2:a99%16'&gt
21:21 by 潇湘隐者, 374 阅读, ,
今天有个同事说生产机有个PERL脚本老是报死锁的错误,脚本里面开启了并行度:错误如下:Failure: ORA-12801: error signaled in parallel query server P126, instance NMS_ODS_NDB1:wgods1 (1)ORA-00060: deadlock detected while waiting for resource (DBD ERROR: OCIStmtExecute)检查了所有的脚本后,发现没有其他会话、进程造成脚本里面ODS表的死锁,后来搜索发现http://jidongzheng.itpub.net/post/3
22:28 by 潇湘隐者, 9662 阅读, ,
基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对SQL进行优化做相应说明。一、什么是执行计划(explain plan)执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。二、如何查看执行计划1: 在PL/SQL下按F5查看执行计划。第三方工具toad等。很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面设置的。可以看到很多其它信息,如下所示2: 在SQL*PLUS
22:57 by 潇湘隐者, 1388 阅读, ,
下载安装文件先去ORACLE官方网站下载所需版本的Instant Client Package 和 Instant Client Package - SQL*Plus安装包,(千万注意版本)/us/solutions/linuxx86-64soft-092277.html/technetwork/topics/linuxsoft-082809.html这两个地址分别是linux 32和64位操作系统的下载地址。我下载了如下几个安装文件basic-10.2.0.4.0-linux-x86_64.zipsqlplu
22:43 by 潇湘隐者, 1806 阅读, ,
在ORACLE里面,远程数据访问,像查询、更新等可以通过Database Link来实现。数据库连接需要在建立Database Link的两台机子上都运行Oracle Net(以前叫SQL*NET 和NET 8)。 语法如下1 Database Link 的创建:有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机。服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务器A上实例配置:BIWG_TEST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT =
23:48 by 潇湘隐者, 448 阅读, ,
在安装ORACLE安装的时候,报如下错误:ORA-12154: TNS:could not resolve the connect identifier specified。如下图所示: 折腾了很久才找到罪魁祸首:原来在安装数据库时,设置用户密码的时候里面包含了@符号,引起了这个错误,这个错误倒是有点诡异,应该是ORACLE连接DB时就把口令@后面的串当连接字用了。所以切记注意这个,否则很难发现问题。
23:44 by 潇湘隐者, 1333 阅读, ,
VMWARE + REDHAT + ORA10先说一下环境,操作系统为Microsoft Windows Server 2003,安装的是虚拟机VMware Workstation Version 7.1.2 build-301548,虚拟机上选择安装的是Redhat Enterprise Linux 5。1:安装虚拟机工具:虚拟机工具是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),可以大幅度的增强虚拟机和主机的交互能力,和显著提供虚拟机的性能。比如,安装虚拟机工具后,虚拟机的显示效果会增强。另一
08:36 by 潇湘隐者, 6488 阅读, ,
你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了。ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本ORACLE是否不同)?视图有约束吗?约束是否会影响SQL性能? 约束信息存储在哪些系统视图、数据字典中?约束能否修改名称?能否禁用约束?延迟约束有啥好处.......约束定义约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行这个操作。约束可以是列一级别的 也可以是表级别的。定义
23:50 by 潇湘隐者, 125 阅读, ,
【转自http://www.chinaunix.net/jh/19/272188.html】裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。 2.如何辨别裸设备? 在Unix的/dev目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。 字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件...
19:38 by 潇湘隐者, 675 阅读, ,
平台环境:Linux Red Hat Enterprise Linux Server release 6.0 (Santiago)数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi安装好ORALCE数据库后,启动数据库就会报如下错误参考/archives/2011/12/hugepageshugetl.html 文章,说跟hugetbl有关,只需按如下操作[root@DB-Server ~]#id oracle uid=501(oracle) gid=502(oin
22:18 by 潇湘隐者, 1012 阅读, ,
&历史总是上演惊人的相似&, 在技术开发过程中,你也会总会碰到惊人相似的问题,这段时间我就碰到了”ORA-01031:insufficient privileges 权限不足”这个错误多次,一次是自己,一次是同事碰到的,顺便整理了下这个知识点。情况一:如果数据库实例安装在服务器A上,你用管理员权限Administrator登录后,使用SQL& conn system/manage as sysdba登录 没有问题。但是如果你在服务器A上建立一个etl账号,使它率属于Remote Desktop Users 和Users 组,如下所示:此时你用sys账号登录数据库时,就
00:22 by 潇湘隐者, 535 阅读, ,
今天有个同事问我一个问题,描述如下: 有一个日志信息表,对应同一个ID,可能有一条、两条、三条不同状态的记录。例如ID= 10001的日志记录可能有三条,一条记录状态为正确, 一条记录状态为错误, 一条记录状态是未知。也有可能只有其中一条记录或两条,现在的问题是,对应同一日志ID,我们只需要取一条记录,取数规则是:1:如果有状态为正确、错误、未知三条记录,我们只取状态为正确的记录。2:如果只有状态为正确、错误状态两条记录的,我们只取状态为正确的记录3:如果只有状态为错误、未知记录两条记录的,我们只取状态为错误的记录4:如果只有状态为正确、未知记录两条记录的,我们只取状态为正确的记录5:如果只有
13:24 by 潇湘隐者, 5724 阅读, ,
在安装ORACLE 11G 过程中由于配置的原因,安装过程中报了如下错误:按照安装提示执行后面的操作后,打开PL/SQL DEVELOPER 连接数据库时总报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务!ORACLE NET MANAGER里面测试,测试服务是否能够成功。结果还是报如上错误在网上百度了一下这个错误ORA-12514,原来很多人都碰到过这个问题,于是按照别人的处理步骤依依配置了,这个问题解决了,不过还是觉得有必要把这个问题解决的步骤记录下来,一来让自己能跟深刻的体会一下,锻炼一下总结能力,二来可以帮助到以后碰到这个问题的人。先找到找到listener
13:07 by 潇湘隐者, 1309 阅读, ,
大家都知道ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用来对误删的表进行修复。但是今天却发现了FLASHBACK TABLE的一个有趣问题,请看下面慢慢道来:下面我用一个例子来说明我的遇到的有趣的问题,欢迎大家探讨。SQL&CONNECTSYSDBA/*****ASSYSDBA已连接。SQL&CREATETABLETEST(TVARCHAR2(10));表已创建。SQL&DROPTABLETEST;表已删除。SQL&FLASHBACKTABLETESTTOBEFOREDROP;FLASHBACKTABLETESTTOBEFORED
18:01 by 潇湘隐者, 432 阅读, ,
本篇介绍一下一些不太常用的脚本,它们往往有“奇能异效”,但是由于不太常用、不常见、或效率方面的原因,往往被大多数人给遗忘在某些角落里。呵呵,不知道你看见下面这些脚本,是否觉得眼熟呢?1: 如果我需要从SCOTT模式下EMP表中查询职位为CLERK(秘书)、SALESMAN(销售人员)这两种员工,你会怎么写?是下面哪种写法呢?SELECT*FROMSCOTT.EMPWHEREJOB=ANY('CLERK','SALESMAN')/SELECT*FROMSCOTT.EMPWHEREJOBIN('CLERK','SALESMAN')/A
12:23 by 潇湘隐者, 1166 阅读, ,
Oracle数据库里面,如果已经创建了一个表,创建时没有给表进行分区,现在由于性能等方面原因需要对该表创建分区。能否直接把一个未分区的表修改成分区表呢(即能否通过ALTER语句把该表修改成分区表呢)?答案是不能,至少目前版本不能。但是可以对已分区表增加新分区、合并分区、删除分区等一系列操作。如果要对对未分区表A创建分区,可以用下面的方法:把原表改名为B,然后创建分区表A,再把表B的数据导入A。
12:16 by 潇湘隐者, 4297 阅读, ,
ORACLE数据库如何查看分区表的相关信息呢?不知道你有没有总结过这方面的知识。下面我们先创建两个表TEST、GPRS_CELLTOPVOL_WK来做实验,脚本如下:CREATETABLEGPRS_CELLTOPVOL_WK(DATE_CDNUMBER(8)NOTNULL ,WK_CDNUMBER(2)NOTNULL ,CITY_IDNUMBER(10) ,CELL_EN_NAM VARCHAR2(64)NOTNULL,CELL_CN_NAM VARCHAR2(64)NOTNULL,CELL_VOL NUMBER ,CELL_VOL_PCT NUMBER ,AVG_RATNUMBER ,CON
23:45 by 潇湘隐者, 1279 阅读, ,
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或多表联合查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。通过这个MERGE你能够在一个SQL语句中对一个表同时执行INSERT和UPDATE操作. 在 Oracle 10g中MERGE有一些新特性,后面我会介绍这些新特征。先看看MERGE语法如下:MERGEINTODM.TM_WGG_SYSVLRUSER_HRDMUSING(SELECTDAT
23:00 by 潇湘隐者, 4521 阅读, ,
其实网上已经有SQL*PLUS命令大全这方面的资料了,不过大都不完整,只覆盖了一些常用的命令,本着学习、实践的原则,也为了梳理、总结SQL*PLUS方面的知识,自己也整理了一份这方面的文档资料,不足之处还请大家多多指教。---1:HELPINDEXHELP命令查询相关命令的信息。你可以从下面看到大概有54个SQL*PLUS命令。每个命令都有大量的参数选项,你不可能清楚的记得每个命令以及它相关的参数细节,所以当你遗忘时,就可以用HELP命令来查看相关命令的命令信息SQL&HELPINDEXEnterHelp[topic]forhelp.@COPYPAUSESHUTDOWN@@DEFINEP
23:28 by 潇湘隐者, 2321 阅读, ,
今天一个同事碰到一个问题:用SQL求一个指标的计算公式:其中Xi即指标,X—指标均值,N是指标个数,看到这样的计算公式确实比较发愁。在处理问题前,先去恶补了下数理统计方面的知识(数理统计的知识基本上都还给老师了):方差、标准差、平均值.....随机变量是指变量的值无法预先确定仅以一定的可能性(概率)取值的量。它是由于随机而获得的非确定值,是概率中的一个基本概念。样本方差 :样本中各数据与样本平均数的差的平方和的平均数叫样本方差。样本标准差:样本方差的算术平方根叫做样本标准差。样本方差和样本标准差都是衡量一个样本波动大小的量,样本方差或样本标准差越大,样本数据的波动就越大。 数学上一般用E{[X
23:47 by 潇湘隐者, 1498 阅读, ,
这阵子折腾ORACLE数据库,今天还真给我“折腾”出问题来了,清理磁盘里面文件时,把D:\KERRY.MDF这个数据库文件删除了(呵呵,事后才想起来的,当时以为是SQL SERVER 05 数据库实验时创建的),结果今天启动ORACLE服务后,PL/SQL连接过去时报错:ORA-01033: ORACLE initialization or shutdown in progress。查看D:\oracle\product\10.2.0\admin\orcl\bdump下告警日志,发现了下面一些错误,仅仅贴出部分日志信息(太多了,不好贴)OSD-04002: 无法打开文件O/S-Error: (
20:48 by 潇湘隐者, 10949 阅读, ,
今天碰到一个存储过程编译错误,提示PLS-00103错误,关于这个错误网上能搜到一大把,原因很多,我碰到的错误提示如下:Compilation errors for PROCEDURE ETL.PRO_TM_WG_NETSEV_PVError: PLS-00103: 出现符号 &EXCEPTION&在需要下列之一时: begin case declare end exit for goto if loop mod null pragma raise return select update while with &an identifier& &a dou
20:27 by 潇湘隐者, 940 阅读, ,
近期上班时,由于开机时老是提示“ 局域网出现计算机重名冲突”,于是把计算机名字给改了,从PCzeo改为了CXBIKKKKKKK,结果第二天来的时候,用PL/SQL连接我本地机子的ORACLE实例时,弹出ORA-12541:TNS无监听程序错误的提示,当时也没想到是计算机改名引起的问题,以为是相关服务没有启动缘故,于是我打开服务面板,如图所示,发现OracleOraDb10g_home1TNSListener服务没有启动,于是启动这个服务,结果等我启动后,出现下面的错误提示我又启动一次,结果还是上面错误错误提示,于是去ORACLE实例所在的安装目录%\10.2.0\db_1\
20:47 by 潇湘隐者, 723 阅读, ,
在看到标题时,你先想想:在ORACLE中能否修改一个表的某个字段名呢?如果能的话,你是否还记得SQL脚本如何写的呢,呵呵,写这个的目的是因为在论坛上看见许多信誓旦旦的说ORACLE中不能修改字段名称,只能先删除、后添加字段或是其它方法来处理。当然我不知道他们是在ORACLE那个版本下测试。我在ORACLE 9.0 ,10上是都可以执行的。http://topic.csdn.net/t//780826.htmlhttp://topic.csdn.net/u//c3fe94e2-ce50-4c0f-a205-f8f19a3f17a2.htmlhttp:/
22:26 by 潇湘隐者, 2958 阅读, ,
在数据库新建一个测试表(数据库版本为ORACLE10.2.0.1.0),表名为小写的test。脚本如下所示:CREATETABLEtest(idNUMBER(10),NameVARCHAR2(20),SexVARCHAR(2))--查找不到对应数据SELECT*FROMUSER_TABLESWHERETABLE_NAME='test'--改用大写才可以查到对应的数据SELECT*FROMUSER_TABLESWHERETABLE_NAME='TEST'--查找不到对应数据SELECT*FROMALL_TAB_COLUMNSWHERETABLE_NAME=&#39
21:37 by 潇湘隐者, 490 阅读, ,
ORACLE用户管理包括: 创建用户、修改用户、删除用户 创建用户的脚本命令是CREATE USER语句,创建用户一般要由DBA或拥有该系统权限的用户来执行。那么我们首先来创建一个名为:kerry的用户(账号)CREATEUSERkerryIDENTIFIEDBYK123456DEFAULTTABLESPACEUSERSQUOTA10MONUSERSTEMPORARYTABLESPACETEMP 创建用户以后,我们可以通过下面的脚本来查看用户信息SELECTUSERNAME,PASSWORD,ACCOUNT_STATUS,DEFAULT_TABLESPACE, TEMPORARY_TABLES
00:34 by 潇湘隐者, 942 阅读, ,
------------------------------------------类型转换函数------------------------------------------------自动类型转换,ORACLE可以自动根据具体情况进行如下转换:*字符串到数值*字符串到日期*数值到字符串*日期到字符串EX:--*字符串到数值SELECT'3.1FROMDUAL;SELECT'3.1T'+20FROMDUAL;--报错:无效数字,即字符串必须能转换为数值类型才能进行操作--*数值到字符串SELECT'100'||124FROM
00:51 by 潇湘隐者, 593 阅读, ,
-----------------------------------------------字符函数-----------------------------------------------1:ASCII返回字符串的ASCII值 SELECTASCII('A')FROMDUAL;SELECTASCII('a')FROMDUAL;--2:CHR返回整数所对应的ASCII字符SELECTCHR('65')FROMDUAL;SELECTCHR(400)FROMDUAL;--如果超出ACII值,则返回空--3:CONCAT函数连接字符串A和字符串B
00:06 by 潇湘隐者, 5925 阅读, ,
---------------------------------------------日期/时间函数-------------------------------------------------1:SYSDATE用来得到系统的当前日期SELECTSYSDATEFROMDUAL;--2:ADD_MONTHS增加或减去月份SELECTTO_CHAR(ADD_MONTHS(TO_DATE(';,'YYYYMMDD'),2),'YYYY-MM-DD')FROMDUAL;SELECTTO_CHAR(ADD_MONTHS(SYSDAT
23:06 by 潇湘隐者, 2540 阅读, ,
/************************************************************************************************************************** ORACLE 常用函数 这个系列我将整理一些日常我们经常使用到的ORACLE函数,鉴于篇幅太长,我大体会按下面分类来整理、汇总这些常用的ORACLE函数,如果有些常用函数没有被整理进来,也希望大家指点一二。1: 聚合函数2: 日期函数3: 字符串函数4: 格式化函数5: 类型转换函数6: 加密函数7: 控制流函数8: 数学函数9: 系统信息函数***
08:41 by 潇湘隐者, 1271 阅读, ,
Oracle ORA-06550:错误网上说该异常产生的原因是临时表空间不足导致的检查数据库后发现 真正的原因是用户权限不够 导致没有临时表空间的操作权限 导致该异常
22:45 by 潇湘隐者, 264 阅读, ,
(转载)1:先在开始—&控制面板—&管理工具—&服务 把里面orale相关的服务全部停掉。这样做是避免删除出错。2:打开Oracle程序下的Universal Installer卸载程序(如下图所示),但是Universal Installer本身不能被卸载。 3: 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE...
22:31 by 潇湘隐者, 1617 阅读, ,
首先你应该下载Oralce 10g的安装文件(版本比较多,大家可以选择自己需要的),你可以去Oracle官方网站也可以去任何其它网站下载,官方网站/technology/global/cn/software/products/database/index.html,不过你下载前应该仔细看清楚你下载的版本,因为Oracle的版本比较多,免得你下载了Linux...
19:59 by 潇湘隐者, 3517 阅读, ,
在PLSQL里是可以调试触发器的,相信有一部分人可能不清楚这个。以前我一直使用SQl Server,哈哈,养成了一个根深蒂固的观念,以为Oracle里触发器也是不能调试的,其实SQLServer里面也是可以调试的(写这个的时候特意在网上查找了下资料)。好了,为了形象说明,下面列举个例子,如下图所示,表NVOICE_CLASS里有个触发器INVOICE_CLASS_AFTER其中触发器INVOICE...
01:05 by 潇湘隐者, 428 阅读, ,
今天在做计费报表的时候,由于粗心,拿数据的的脚本给写错了,却让我发现了一个很奇怪的问题,下面来让我介绍我发现的这个问题:数据库有表CHARGE_REF ,CLIENT_INVOICE ,CLIENT_INVHDR。其中CHARGE_REF表是保存的收费类型的数据;CLIENT_INVHDR表保存的是发票头部信息,CLIENT_INVOICE表保存的是发票的详细信息,大体如下图所示我当时拿数据的时候...}

我要回帖

更多关于 oracle 创建数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信