代码改变世界

随笔分类 -  数据库技术(Oracle)

ORACLE基本数据类型总结

2013-08-17 21:04 by 潇湘隐者, 206163 阅读, 收藏, 编辑
摘要: ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的 阅读全文

ORACLE 博客文章目录(2015-05-27更新)

2013-08-13 23:30 by 潇湘隐者, 9501 阅读, 收藏, 编辑
摘要: 从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理、归纳分类,方便自己和大家查看、翻阅。 ORACLE数据类型 ORACLE基本数据类型总结 ORAC 阅读全文

ORACLE的SPFILE与PFILE

2013-08-12 22:35 by 潇湘隐者, 66044 阅读, 收藏, 编辑
摘要: ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。 服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制. 阅读全文

RHEL6 64位系统安装ORACLE 10g 64bit 数据库

2013-08-10 22:12 by 潇湘隐者, 19695 阅读, 收藏, 编辑
摘要: 记得去年4月份的时候,为公司部署测试环境和UAT环境时,在红帽RHEL6 64位系统安装ORACLE 10g 64位数据库时遇到了许多小问题,当时匆匆忙忙也没记录一下这些问题,前几天在虚拟机安装ORACLE 64位 10g时,又有一些常见问题又遇到了,顺便整理一下这篇文章。也许在RHEL6 64版本上安装64位Oracle 10g 的问题是最多的,估计很多人都被这个虐过无数次(很多人都是Oracle虐我无数遍,我待Oracle如初恋)。从网上搜索关于这方面的内容就可见一斑。好,废话少说,正式进入正题。步骤1:准备系统以及在虚拟机上设置共享目录DataBase,准备数据库安装介质。有些细节东西. 阅读全文

ORA-01502: index ‘index_name' or partition of such index is in unusable state

2013-08-10 11:59 by 潇湘隐者, 16737 阅读, 收藏, 编辑
摘要: 错误现象: 今天发布脚本时,一个表插入数据时报如下错误 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 阅读全文

ORA-19502: write error on file "xxxxx", block number xxxx

2013-08-08 08:25 by 潇湘隐者, 27282 阅读, 收藏, 编辑
摘要: 错误现象:在ORACLE 10g下为表空间IGNITE_EGVSQL01增加数据文件时,报如下错误: SQL> ALTER TABLESPACE IGNITE_EGVSQL01 ADD DATAFILE '/oradata/ignt/ignite_egvsql01_d02.dbf' SIZE 40... 阅读全文

SQL*Plus环境变量设置浅析

2013-08-02 15:11 by 潇湘隐者, 5649 阅读, 收藏, 编辑
摘要: 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启动. 阅读全文

PL/SQL重新编译包无反应

2013-07-31 12:12 by 潇湘隐者, 5090 阅读, 收藏, 编辑
摘要: 前几天碰到一个有趣的事情:早上同事执行一个包很久没有反应,就中断了执行,发邮件让我帮忙查看具体情况,我用PL/SQL Developer登录后,找到这个包的过程中发现这个包的图标有红色叉叉,也就是说这个包有地方没有编译通过,于是我便单击右键点击“重新编译”,结果一直没有响应,导致PL/SQL Developer直接卡死,刚开始没太留意,直接杀掉PL/SQL Developer相关进程,重新打开它然后编译这个包,结果还是这个情况,还是头一次遇到这种情况,一头雾水. 后来搜索了一下才知道原因: 1:当包正在被调用执行时,编译该包会导致无响应情况。 2:包中的对象或依赖对象被其它sessio... 阅读全文

Symantec Backup Exec 2012 Agent for Linux 卸载

2013-07-24 21:57 by 潇湘隐者, 2740 阅读, 收藏, 编辑
摘要: 本文介绍一下如何卸载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 地址或完全限定域. 阅读全文

Symantec Backup Exec 2012 Agent For Linux安装

2013-07-24 21:25 by 潇湘隐者, 11333 阅读, 收藏, 编辑
摘要: Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能。借助于强大的 Symantec V-Ray 技术,Backup Exec 2012 可以恢复整个服务器、关键 Microsoft 应用程序以及 VMware 或 Microsoft Hyper-V 虚拟环境,从而最大限度减少业务停机。 主要功能使用获得专利的 V-Ray 技术,通过一次性备份在数秒内轻松地恢复虚拟机、应用程序、数据库、文件/文件夹或全面恢复 虚拟机无代理备份 集成强大的恢复功能,可恢复到裸机、不同硬件以及从物理到 阅读全文

ORA-10635: Invalid segment or tablespace type

2013-07-17 21:05 by 潇湘隐者, 5708 阅读, 收藏, 编辑
摘要: 上周星期天在迁移数据时,碰到了ORA-10635: Invalid segment or tablespace type 错误,当时的操作环境如下: 操作系统版本: [oracle@xxxxx scripts]$ more /etc/issue Red Hat Enterprise Linux ES 阅读全文

sys不能远程登录的问题

2013-03-27 10:58 by 潇湘隐者, 4315 阅读, 收藏, 编辑
摘要: 环境:在数据服务器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 星期五 阅读全文

Linux平台下卸载ORACLE

2013-03-27 10:19 by 潇湘隐者, 1312 阅读, 收藏, 编辑
摘要: 实验环境:操作系统版本: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... 阅读全文

EXP&EXPDP导出数据同步问题

2013-03-19 09:59 by 潇湘隐者, 2137 阅读, 收藏, 编辑
摘要: 在itpub论坛上看到一个问题:如果库正在被写,exp是不是导出的数据就是不同步的了? http://www.itpub.net/forum.php?mod=viewthread&tid=1772882&page=1#pid21172716按照推理逻辑,exp导出的数据应该不是同步的,也不可能同步,除非exp能智能判断数据库是否正在写操作,而且一直等到写操作结束为止。显然这些假设都不合理。下面我们来做个实验,验证一下exp导出数据是否同步。新建一个测试表TEST, 我们写一个循环,往表里面插入1000条记录,而且每插入插入一条记录,停顿0.5秒。这样来模拟数据库处于写状态。CR 阅读全文

ORACLE序列总结

2013-03-18 12:08 by 潇湘隐者, 37020 阅读, 收藏, 编辑
摘要: 序列介绍序列是一个计数器,它并不会与特定的表关联。通过创建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 定义序列的初 阅读全文

MERGE INTO 性能问题疑问

2013-03-17 22:35 by 潇湘隐者, 9608 阅读, 收藏, 编辑
摘要: 今天同事碰到一个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... 阅读全文

横表与竖表性能浅析

2013-03-13 10:18 by 潇湘隐者, 8204 阅读, 收藏, 编辑
摘要: 概念介绍横表概念横表就是普通的建表方式,每一个字段代表一个KPI指标。举个列子,一个学生的成绩表:学号、数学成绩、语文成绩、英语成绩、物理成绩、化学成绩......如下所示:SQL> DESC STUDENT_SCOREName Type Nullable Default Comments ---------------- ---------- -------- ------- -------- STUDENT_NO NUMBER(10) 学号 CHINESE_SCORE NUMBER Y ... 阅读全文

浅谈数据库的分割技术[转载]

2013-01-25 11:55 by 潇湘隐者, 1491 阅读, 收藏, 编辑
摘要: 浅谈数据库的分割技术 电信信息化部/周陈雄 关健词 读写分离分布,垂直分割,水平分割,虚拟化存储,wEB 缓存分割, 存储 CACHE 缓存分割 随着社会的日益进步, 各行业的运营支撑系统都面临着越来越大的压力, 承受着业务数 据量、访问并发数的飞速增长的双重巨大压力,在我们电信行业,同样面临着这样的难题, 是否有一套适合可行的方案来应对呢?本文重点描述数据库的分割技术, 如果能适当的应用在生产中, 必然能极大减缓来自与 日俱增的业务量带来的巨大压力。 如何分割?我们可以从如下六个方面来考虑: 一、读写分离分布技术 由于数据库存在这样的特性, 索引可以提升查询的性能, 但却极大... 阅读全文

数据库表分割技术浅析

2013-01-25 10:55 by 潇湘隐者, 6606 阅读, 收藏, 编辑
摘要: 一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,容易产生混乱,这时一个管理者站出来,增加多个打饭窗口,把那条长长的队伍拦腰截断成几队。更形象一点的理解,你拿一把“手术刀”,把一个大表猛的切了几刀,结果这个大表,变成了几个小表. 水平分割根据某些条件将数据放到两个或多个独立的表中。即按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。水平切割将表分为多个表。每个表包含的列数相同,但是数据行更少。例如,可以将一个包含十亿行的表水平分区成 12 个表,每个小表表示特定年份内一个月的数据。.. 阅读全文

监听服务管理

2012-12-19 19:02 by 潇湘隐者, 9221 阅读, 收藏, 编辑
摘要: 如果你想管理(启动、关闭等)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 阅读全文