解决Oracle被锁定的妙招数据库教程

2024-04-25

解决Oracle被锁定的妙招数据库教程(精选8篇)

篇1:解决Oracle被锁定的妙招数据库教程

Oracle 9i共提供了16种标量数据类型,如表7.4所示,

Oracle 9i的数据类型数据库教程

表7.4 Oracle 9i的标量数据类型名称含义Char用于描述定长的字符型数据,长度<=字节varchar2用于描述变长的字符型数据,长度<=4000字节nchar用来存储Unicode字符集的定长字符型数据,长度<=1000字节nvarchar2用来存储Unicode字符集的变长字符型数据,长度<=1000字节number用来存储整型或者浮点型数值Date用来存储日期数据Long用来存储最大长度为2GB的变长字符数据Raw用来存储非结构化数据的变长字符数据,长度<=2000字节Long raw用来存储非结构化数据的变长字符数据,长度<=2GBrowid用来存储表中列的物理地址的二进制数据,占用固定的10个字节Blob用来存储多达4GB的非结构化的二进制数据Clob用来存储多达4GB的字符数据nclob用来存储多达4GB的Unicode字符数据Bfile用来把非结构化的二进制数据存储在数据库以外的操作系统文件中urowid用来存储表示任何类型列地址的二进制数据float用来存储浮点数

 

篇2:解决Oracle被锁定的妙招数据库教程

删除Oracle 9i数据库数据库教程

(2)出现如图6.45所示的【数据库】界面,

(3)出现如图6.46所示的【概要】界面。

(4)出现如图6.47所示的【删除确认】界面。

篇3:解决Oracle被锁定的妙招数据库教程

可以说, 索引是我们提高查询效率的有力工具, 在数据库应用中使用也非常广泛, 可在实际使用索引的过程中我们经常会遇到明明有索引, 但是查询效率却很低的情形, 究其原因是索引并没有被使用。下面我们来看看到底是哪些情况下索引不会被使用。为了说明情况, 本文使用一个employees表来进行测试, 表结构及索引情况如下:

下面, 本文就工程中经常遇到的索引未被使用问题一一进行说明:

1、对同一个表中的两个列进行比较的情形下, 索引有时不会被引用。

2、如果where条件里出现了与Null值的比对, 如isnull或is not null, 索引就不能被使用, 因为B-tree索引中并不索引null值。如下图所示:

3、使用like做模糊匹配时, 如果匹配字符串的第一个字符是通配符, 如%或_, 那么索引不会被使用。但如果第一个字符是普通字符, 则索引可以被使用。

4、当where条件中有not (非) 时, 如not in、not exists或<>时, 索引不能被使用。

5、如果在where条件中使用了单行函数, 如nvl、lower等, 索引不能被使用。因为索引中的索引键是表中的原值, 引用的函数值是非原值, 并不在索引中。

6、在where条件中字符型字段为数字时不添加引号, 也会引起索引不被使用。

7、如果在where条件中单独引用复合索引里非第一位置的索引列, 索引不会被使用。

8、当索引失效时, 无法被使用。

9、使用基于开销优化时, 查询小数据量表, 或查询返回值占总数据量的比重过大时, 索引不会被使用。因为这时作全表扫描开销会更低。

以上就是本文总结的在Oracle数据库中索引未被使用的几点原因, 其中部分原因由于篇幅所限并没有将实验结果附于文中, 但皆为笔者在工作中总结学习而来。为了更好的进行Oracle数据库的开发与管理, Oracle的开发者和DBA都应该熟悉这些规则, 以便写出高效的查询语句。

摘要:本文简述了Oracle索引失效的条件。

篇4:解决Oracle被锁定的妙招数据库教程

关键词:Oracle;数据库;操作系统;恢复

中图分类号:TP311.13

鉴于Windows操作系统的普及性和易用性,目前有相当一部分ORACLE数据库服务器是基于Windows服务器操作系统的(Windows Server2003、Windows Server 2008)。当Windows因病毒或因其他原因崩溃需要重新安装部署时。Oracle数据库的恢复是技术人员经常遇到的问题。通常,DBA会定期通过EXP导出DMP文件,或是使用RMAN工具来完成备份和恢复工作。但是对于不熟悉Oracle的用户来说,这些方法具备一定的技术门槛。其实,只要Oracle的文件目录没有被破坏,对Oracle的文件目录结构有基本的了解,使用Windows的一些基本操作,同样也可以完成数据库的恢复。本文就以Oracle 10G在Windows Server2003服务器环境下为例,介绍这种简单快速的数据库恢复方法,使不具备DBA知识的操作人员也能够在Windows服务器操作系统无法启动的情况下快速恢复数据库。

1 数据库恢复流程

1.1 准备工作

首先,需要对原有系统的Oracle安装目录做好备份。建议使用Windows PE工具启动故障服务器,查找Oracle安装主目录。将目录内全部内容拷贝做备份。记录目录路径。(例如Oracle安装在D盘根目录下,就将D:\oracle目录的全部内容备份。并记录原始安装路径为D:\oracle)。其次,记录故障服务器的IP地址和计算机名信息。由于故障服务器的操作系统损坏无法启动,因此无法通过常规方法获得这些信息。笔者建议从经常访问该数据库服务器的客户端主机中找到Oracle目录的TNSNAMES.ORA文件,该文件中包含了数据库服务器IP或主机名信息。如果客户端主机无法轻易访问,也可以从之前备份出的Oracle文件夹中找到listener.log文件来获取这些信息。路径为\oracle\product\10.2.0\db_1\NETWORK\log\listener.log(视Oracle版本不同,文件的路径可能不同)。最后,记录需要恢复的数据库名。找到访问之前备份出的Oracle文件目录,打开\oracle\product\10.2.0\admin文件夹,Oracle针对服务器上的每一个数据库在该路径都单独建立了以数据库名命名的文件夹。记录这些文件夹名即可。

1.2 重新安装Windows操作系统

确认准备工作中所有信息收集完毕后,即可开始操作系统的安装。无论是在原服务器上恢复数据库还是在新服务器上重新部署数据库都需要注意磁盘分区和盘符问题。新安装的系统必须包含准备工作中记录的Oracle安装路径所在盘的盘符。以上文记录的Oracle安装路径为例,新系统必须包含D盘。安装完成后,将计算机名、IP地址信息修改为准备工作中记录的内容,确保新的操作系统环境与故障前的一致性。

1.3 重新安装Oracle DataBase

操作系统重装完毕后,开始安装Oracle 10G Database服务器端软件。注意选用的软件版本一定要与原始服务器安装的版本一致。安装过程中,选择基本安装即可,注意Oracle主目录位置选择要与准备工作中记录的原服务器Oracle主目录位置保持严格一致。如果要恢复的原服务器中并没有名为orcl的数据库,则启动数据库的复选框可以不勾选,这样点击下一步执行安装。

图1 安装Oracle数据库服务

安装完成后,新系统ORACLE路径下已经自动生成了相应的文件。只要在新的服务器上手工建立同原服务器名字相同的数据库即可。使用ORACLE 10G自带的Database Configutarion Assistant工具,根据提示完成操作。所有步骤默认初始配置即可,在第三步数据库标识处注意输入数据库名称。

图2 创建数据库

此时再次打开\oracle\product\10.2.0\admin文件夹,可以看到以这些数据库名命名的文件夹已经自动生成。此时新服务器上的Oracle文件目录结构与故障服务器上的已经十分接近。

1.4 数据库恢复

上述工作完成后,关闭新服务器上的Oracle服务,开始恢复工作。

右键“开始”菜单,选择“任务管理器”,将以ORACLE开头的进程全部结束。然后点击“我的电脑-管理服务和应用程序”,选择服务菜单,窗口右侧列出了系统运行的所有服务。找到以ORACLE为开头命名的服务,一一将其关闭,为备份恢复做好准备。

将备份的原始ORACLE文件夹拷贝到新系统的ORACLE安装路径,覆盖现有ORACLE文件夹即可。

重新打开和ORACLE相关的各项服务后,恢复工作基本完成。这时点击“开始-运行”,输入“cmd”进入命令行模式,使用sqlplus命令尝试登陆数据库。

sqlplus /nolog

conn / as sysdba

如果报监听错误,则在命令行模式中输入lsnrctl start,开启监听程序即可。至此,ORACLE数据库恢复完毕。

2 结束语

通过本方法恢复ORACLE数据库,操作人员只需对ORACLE文件目录结构有基本的认识,熟练掌握Windows基本操作即可。备份方法也快速简单,归档容易,属于一种低度维护,高度安全的方法。当然,这种方法也存在一定的局限性,例如备份恢复中数据拷贝的时间可能过长、不能按表或者按用户来恢复数据等。

参考文献:

[1]王琴,宋顺林.ORACLE数据库管理系统的备份策略及应用举例[J].计算机工程,2002(02).

[2]魏莉,赵纯坚.ORACLE数据库备份技术探讨[J].信息技术,2008(09).

作者简介:李睿(1987-),男,山西晋中人,助理工程师,本科,研究方向:数据库技术。

篇5:解决Oracle被锁定的妙招数据库教程

需求前提:数据每年变化1~2次,软件预计生命周期50年

实践环境:Oracle Spatial

术语表:时空对象,快照

时空对象:一个地理目标从诞生到消亡所经历的空间和时间范围及其属性信息,这是一个为处理时空数据方便而抽象出来的概念,相当于全信息模型中的全信息对象。为了理解时空对象,我们以二维地物为例。二维地物在二维空间中占据一定的空间范围,表现为一个二维几何体,也就是它的几何属性。如果再增加一条时间轴,成为(x,y,t)坐标系,并认为任何的空间对象都有诞生和消亡,则这个二维地物就在(x,y,t)坐标系中占据了一定的三维空间。我们就把二维地物从诞生到消亡这一时间段所占据的空间-时间范围称之为“时空对象”。同理,也可以将时空对象扩展为三维的空间对象在时间维度上的延续,也就是四维对象。时空对象的属性信息是一张二维表。

快照:一个地理目标在某一特定时刻所占据的空间范围及其属性信息,或者说:时空对象在某一特定的时刻所占据的空间范围及其相应的属性信息。举例来说,地图上绘制了一个饭店的位置,大小,这就是饭店的一个快照。因为饭店是从某一时刻才诞生的,又会在某一时刻消亡,而在诞生和消亡之间,还可能会搬迁或扩建。所以地图上反映的仅仅是饭店在某一时刻的状态,所以称之为饭店在某一时刻的快照或时空对象在某一特定时刻的快照。注意,快照总是对应于某一特定的时刻,否则将失去快照的意义。快照的属性信息是时空对象属性信息表中的一条记录。

设计方向:

以时空对象的概念组织空间数据和属性数据,使得对地物变迁历史的查询和分析成为可能。

对应用层屏蔽历史数据的处理过程,将历史数据的处理当作数据库模块的功能之一。

技术要点:

1、 Oracle包变量的会话独立性

2、 动态视图技术(基于函数的视图)

图形解说:

时间

空间

对象诞生时间

观察方向

当前观察时间

对象消亡时间

快照3

快照2

快照1

时空对象(对象一)

对象三

对象二

从以上示意图中可以清晰地看出,每一个时空对象都是由多个快照记录所描述的。观察者的每一次观察都是基于一个特定的观察时间的。例如,图示中的观察者应该看到对象一的快照2和对象三的快照2,而无法看到对象二和对象一、三的其他快照记录。看不到对象二是因为在此观察时间之前,对象二已经消亡。看不到对象一的快照1是因为对象一有更新的观察数据快照2可以更好地近似反映对象二在当前观察时间所处的状态。

数据表:数据表的设计基于以上概念

对象表

Obj_id

NUMBER

时空对象标识号

Start_time

DATE

对象诞生时间

End_time

DATE

对象消亡时间

Obj_Attr

VARCHAR2(100)

对象属性数据

会因时间的流逝而发生变化的属性信息。

快照记录表

Obj_id

NUMBER

时空对象标识号

Snap_id

NUMBER

快照数据的唯一序号

Snap_time

DATE

快照时间

Snap_end

DATE

快照结束时间

属于同一时空对象的最近的下一条快照的快照时间,

设置此列的目的是为了查询方便。

Geom.

MDSYS.SDO_GEOMETRY

快照几何数据

Attr

VARCHAR2(100)

快照属性数据

会因时间的流逝而发生变化的属性信息。

存储过程:

利用Oracle中包变量的会话独立性,在包中建立以下几个基本的存储过程:设置当前观察时间,获取当前观察时间,利用当前观察时间和传入的Snap_time,Snap_end参数判断快照记录是否可见(Snap_Filter)。

视图:建立在快照记录表上的视图,基于存储函数Snap_Filter实现对表中记录的筛选。传入参数为:Snap_time,Snap_End.,返回值为此快照是否可见。

SELECT Obj_id, Snap_time, Geom, Attr

FROM 快照记录表

WHERE Snap_Filter(Snap_time, Snap_end) >0;

Obj_id

NUMBER

时空对象标识号

Snap_time

DATE

快照时间

Geom.

MDSYS.SDO_GEOMETRY

快照几何数据

Attr

VARCHAR2(100)

快照属性数据

触发器:

视图上的触发器,使应用层用户可以在视图中插入,修改,删除数据。

要点:   1、维护表中数据时要避免出现时间悖论,造成时间逻辑混乱。

2、快照记录表中的Snap_end列的维护稍微麻烦一些,应小心谨慎。

扩展与变化:

1、 支持多种观察模式。

为了查询功能的灵活性,可以增加几个扩展功能的存储过程:设置当前的观察模式,获取当前的观察模式,重写Snap_Filter函数以支持多种观察模式。

例如:

【对象历史追溯模式】此时当前观察时间这一参数失效,Snap_Filter的行为发生变化,视图中看到的是某一(或某几个)指定对象的所有快照。这种模式便于对单个对象的整个历史变迁过程加以追踪。

【时间段观察模式】此时需要设置的观察时间不是一个时间点,而是一个时间段。Snap_Filter的返回值也有了更丰富的含义,可以用不同的数字(例如:1,2,4)表示某一快照记录在当前时间段开始,结尾,中间的可见性。这种模式可以用于需要对两个不同时间点的数据进行比较的场合。

2、 增加对象关系表以描述时空对象之间的联系

时空对象之间可能会有各种各样的联系,例如:变化,融合,分裂等。可通过以下表格加以描述。

时空对象关系表

Obj_1

NUMBER

时空对象标识号

Obj_2

NUMBER

时空对象标识号

Relation_type

NUMBER

关系类型

使用方法:

如果是查询最新信息,即观察时间为系统当前时间,则直接访问视图即可。

篇6:解决Oracle被锁定的妙招数据库教程

我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的功能,我们

可以通过采取以下的功能实现自动增加ID的功能

1.首先创建 sequence

create sequence seqmax increment by 1

2.使用方法

select seqmax.nextval ID from dual

就得到了一个ID

篇7:解决Oracle被锁定的妙招数据库教程

Waterxp 从oracle版本转化为sqlserver版本

1,系统安排

为了oracle版本和sqlserver版本能很方便的转化,也为了两个版本能同步修改,特别是业务逻辑层,现决定如下:

A,两个版本的业务逻辑层都放在source目录下。在该目录下有两个目录:

sql 和ora。这两个目录有三个文件:

common.pbl,water_modi.pbl,dw_version.pbl。

这三个 文件里面绝大部分是数据窗口,主要是因为sql server 和oracle的语法有差别。如果只是因为数据窗口有双引号在sql server里不能用,那么把数据窗口的select语法的字段引号去掉即可,因为没有引号的select语句在sql server和oracle下面都是可用的。修改的过程中注意update属性。

B,不同的数据库将使用不同的目录。

2,系统环境的建立

每台机器上建立下面的磁盘映射:

P指向oraservrp237

V指向oraservr ql237或者是 oraserverora237

源代码在 oraservercodewater237 ource 里面。

P盘是肯定要有的, V盘由使用什么版本决定。

3,源代码的修改

业务层的修改尽可能的在源代码处,因为这样修改能让两个版本同时修改。

P盘是类库可以不需要修改。

V盘里的数据窗口都需要改。

改sql237里面的数据窗口,要修改和要注意的地方:

替换的方法

oracle里面使用sql server 里面使用

to_char(readingdate,’yyyymm’)convert(char(6),readingdate,111)

to_char(readingdate,’yyyy/mm’)convert(char(7),readingdate,112)

decode( ,,,,)case when then end 或者 isnull(x,0)

左右连接 (+)left outer join

修改过程中要注意数据窗口的update属性,

4,工作计划

4,1先修改sql237目录下的三个pbl里面的数据窗口的语法。为了照顾数据窗口的update属性,建议使用edit source的方法,而且select语法字段的引号在sql server版本建议去掉。使用pb的replace功能即可。

4,2 修改某些数据窗口的内嵌式sql 的语法。因为有一些内嵌式sql 也使用了decode ,或者是to_char(),这些语法在sqlserver也是必须代替的。

修改方法:

if gs_database = ‘ORACLE’ then

………………decode()……………;

else

…………………case when then end ………..;

end if

4,3 最后的工作是测试。这是最繁琐的最重要的。在测试的过程会发现有一些数据窗口在sql server不能用:修改方法是将字段的引号去掉或者是移到sql 和ora目录里面的dw_version.pbl文件里面,在那里进行修改。

篇8:oracle数据库迁移解决方案

1 oracle数据迁移工具概述

oracle提供了多种进行数据迁移的工具供用户选择:

(1) 数据泵expdp/impdp:可对数据库按照表空间, 用户或表等不同方式, 保存到OS下的一个与平台无关的二进制格式的文件里。

(2) 数据库链接DBlink:通过网络建立一个远端的数据库链接, 快速的复制数据。

(3) RMAN:用于备份、还原和恢复数据库的工具, 它可以迁移数据库以及其各种数据库文件, 也允许进行增量数据块级别的备份。

2 数据迁移方案规划

使用oracle数据库技术的企业中, 每天要产生大量的数据, 且大多数的公司都在各地都有子公司, 员工常常需要在不同的地方进行办公。针对企业的业务需求, 会使用不同的数据库迁移方案:

方案一:企业要求将每日产生核心的数据进行备份, 将数据保存在磁带中或在存到另一个数据库中做数据冗余, 进行数据保护。这种情况下会选择把数据文件通过RMAN备份到本地磁盘。

方案二:企业员工在不同城市办公, 需使用原office的业务数据进行工作, 为了使员工在当地快速使用原工作地的各类数据, 就需要将这些数据迁移到本地。这种情况下会采用数据泵 (expdp) 先导出原单位用户数据, 通过网络传到本地, 并用数据泵 (impdp) 导入到本地数据库。

方案三:当企业发展壮大, 现有的配置不能满足企业的业务需求时, 服务器等设备需要更新或升级。这种情况下首先对新旧数据库进行分析, 在新服务器上进行操作系统和数据库管理系统的配置。如果各个软件没有变化, 可以创建一个与当前数据库相同的配置环境。如果需要服务器升级话, 往往会升级服务器的OS, 就要对两台服务器的物理环境和操作系统环境进行检查, 找出两者间的映射关系, 再编写脚本实现数据库迁移。

方案四:企业应用中, 常要在数据仓库中的调用数据, 用分析数据库软件对企业的业务数据进行统计分析。这就需要将数据仓库的数据迁移出来。由于数据仓库中的数据是以一个个的数据文件进行保存的, 就要考虑文件之间是否存在着关系。这种情况下要用ORACLE的包来查看包含这些数据文件的表空间是否独立, 比如表的索引存放在另外索引表空间上。如果不独立, 就需要将这个表空间连同需要迁移的表空间一起迁移出来。一般会采用远端命令SCP配合expdp/impdp的方式来进行数据迁移。

3 数据迁移方案的实施

数据迁移之前要将检查进行迁移操作的两个服务器之间的网络, 保证能正常通讯。在oracle数据库中, 配置好服务器的监听能正常工作。然后具体实施企业的迁移方案。常见的有以下几种:

3.1 用户迁移

用数据泵进行用户数据的导入导出。先创建一个目录用来存放导出文件, 并授权该目读和写的权限。使用expdp导出用户, 通过网络传输到目标服务器。注意在创建目录前需手工在/ORACLE下创建一个与在sqlplus命名相同的目录, 否者在导入或者导出的时候就会报错。目标服务器在接受到导出文件后, 再用impdp向目标数据库中导入用户。

3.2 数据库迁移

3.2.1 同平台同结构的数据库迁移

将目标数据库的字符集和原数据库设置一样, 然后根据原数据库的参数文件创建参数文件;接着将oracle启动到nomount状态下创建控制文件。最后用RMAN COPY迁移数据文件, 编写一个脚本RMAN_COPY.sh (用RMAN将数据文件中的数据转换到目标数据库并通过Copy来实现将数据文件远程迁移到目标数据库中) 执行迁移数据文件

3.2.2 不同平台同结构的数据库迁移

一般这种情况下两个服务器的型号不一样, 操作系统也不一样。在迁移时, 需对新旧系统进行分析和检查。首先使用disk_config脚本分析旧服务器上磁盘的空间并检查新磁盘上的磁盘分配, 然后用server_config分析整理数据字典, 再用disk_init.pdlc脚本在新服务器上创建管理的设备并检查其状态, 如果正常, 接下来就可使用crtdb.pdlc创建数据库。创建数据库成功后, 接着就需要使用dumpdb.Pdlc将从旧数据库中导出的数据导入到新的数据库中。在进行数据迁移时, 常常两台服务器处于不同的网段, 这就需要将数据存在云端的公共存储设备中, 然后新的服务器就到云端下载该数据到本地。数据导入成功后, 再将数据库变到在线状态。

3.2.3 表空间迁移

先将要迁移表空间设置为只读模式, 再将要迁移表空间的数据文件拷贝到远程数据库, 然后创建一个DBlink来迁移表空间。也可使用impdp命令配合DBlink来实现对表空间的迁移以方便查看表空间。

4 结束语

随着数据库技术在企业中应用的不断深入发展, 数据已经成为企业的核心, 数据迁移已成为企业中的重要工作。oracle数据库的数据迁移工具帮助了企业完成了各种不容的数据迁移工作, 越来越多的企业正在使用这些工具。

摘要:本文主要论述了数据迁移的原理以及oracle数据库迁移技术工具。介绍了企业中不同数据迁移方案以及具体的应用实施情况。

关键词:数据迁移数据泵,RMANDBlink

参考文献

[1]郑晓艳.Oracle数据库原理与应用[M].北京:清华大学出版社, 2011.

[2]李丙洋.涂抹Oracle:三四笔记之一步一步学ORACLE[M].北京:中国水利水电出版社, 2010.

上一篇:无声告白读书心得下一篇:观最爱有感