首页 >>  正文

oracle存储过程简单案例

来源:baiyundou.net   日期:2024-09-22

服务器存储数据恢复环境:

某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。

北亚企安数据恢复——sap数据恢复

服务器存储故障&分析:

该RAID5阵列中一块硬盘出现故障离线,热备盘自动激活替换故障硬盘,热备盘同步数据的过程中该raid5阵列中又有一块硬盘出现故障,RAID5阵列瘫痪,上层LUN无法正常访问。

因为本案例中存储控制器的磁盘检查策略严格,一旦某些磁盘性能不稳定,该型号存储控制器就将该块磁盘识别为坏盘,并将该块磁盘踢出RAID。一旦RAID中掉线的盘数到超过RAID级别允许掉盘的最大数量,该RAID将不可用,上层基于RAID的LUN也无法访问,从而导致重要数据丢失。

北亚企安数据恢复——sap数据恢复

服务器数据恢复过程:

1、将故障服务器存储中所有磁盘编号后取出,由硬件工程师对所有磁盘做物理故障检测,经过检测发现有一块硬盘存在物理故障,其他硬盘没有发现明显物理故障。将所有完好磁盘以只读方式进行扇区级全盘镜像。针对那块故障磁盘,由专业工具处理后做镜像。镜像完成所有磁盘后,按照编号将所有磁盘还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

2、分析RAID组结构

该品牌服务器存储的LUN是基于RAID的。北亚企安数据恢复工程师基于镜像文件分析底层RAID的信息,通过分析找到了热备盘。继续分析其他硬盘的底层数据,分析Oracle数据库页在每个磁盘中分布的情况,并根据数据分布的情况得出RAID组的条带大小,磁盘顺序及数据走向等RAID的重要信息,然后根据分析获取到的信息虚拟重构原RAID。

3、完成重组raid后,分析LUN在RAID中的分配情况,以及LUN分配的数据块MAP。只需要将LUN的数据块分布MAP提取出来,然后针对这些信息编写相应的程序,解析LUN的数据MAP,然后根据数据MAP导出LUN的数据。

4、服务器存储数据恢复方案:

a、数据恢复实施方案一

将Oracle数据库数据所在的LUN进行JFS2文件系统解析,人工修复文件系统不完整的地方。利用北亚企安自主开发的JFS2文件系统解析工具解析恢复的LUN,恢复文件系统中所有的Oracle数据库文件,并检测Oracle数据库文件的完整性。

针对检测出有坏块的数据库文件,扫描所有磁盘中的Oracle数据页碎片,组合扫描出来的数据页,通过人工将有坏块的数据库文件填补修复完整。

在恢复完所有Oracle数据库之后,发现其上层应用SAP还是无法使用。SAP应用的一些重要数据存放在损坏的存储中,如果缺失这些数据,SAP即使在数据库完整的情况下也无法正常使用,因此还需通过方案二来恢复所有SAP的重要数据。

北亚企安数据恢复——sap数据恢复

b、数据恢复实施方案二

对恢复的所有LUN都进行文件系统解析,并将存放SAP的数据LUN做文件系统一致性检测。对文件系统不完整的部分通过人工进行修复,恢复所有SAP及SAP Test的数据。

检测SAP数据,并修复损坏的SAP数据,确保恢复出来的所有SAP数据均完整,这样才能保证SAP应用启动。

结合恢复出来的SAP数据和数据库,启动SAP及所有应用即可。

5、启动并修复Oracle数据及SAP应用

a、启动数据库并修复

将恢复出来的数据库文件还原到搭建好的环境中,尝试启动数据库。由于数据库的一些临时文件校验不一致导致数据库启动失败。Oracle数据库工程师对数据库进行修复后,数据库启动没有问题,数据库中的所有用户及所有表均完整,尝试启动SAP。

b、启动SAP并修复

将恢复出来的SAP文件还原到已搭建好的环境中,并按照之前的启动脚本启动SAP,SAP启动正常,但SAP中用户权限及使用不正常,SAP表现为没有序列号。数据恢复工程师怀疑SAP的注册文件没有恢复出来。重新检测恢复过程,排查可能疏忽的步骤,最后查明文件系统的损坏导致某些文件没有恢复。重新修复文件系统&恢复这些数据。启动SAP正常,SAP使用正常。

6、由用户方配合,启动Oracle数据库,启动SAP,并通过SAP客户端验证SAP中所有的数据的完整性,经过验证,用户方确认数据完整有效,SAP正常使用。本次数据恢复工作完成。

","gnid":"9e5a16f04a15d8b7f","img_data":[{"flag":2,"img":[{"desc":"","height":"418","title":"","url":"https://p0.ssl.img.360kuai.com/t015b3f105531a074b4.jpg","width":"948"},{"desc":"","height":"600","title":"","url":"https://p0.ssl.img.360kuai.com/t01ffd6a0156ec75656.jpg","width":"900"},{"desc":"","height":"516","title":"","url":"https://p0.ssl.img.360kuai.com/t01b054ba65bd5dcb92.jpg","width":"800"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"pika","pub_time":1713166440000,"pure":"","rawurl":"http://zm.news.so.com/00bd87465c94e00dbdf49450231204b5","redirect":0,"rptid":"1ccdcb4ca1a5389c","rss_ext":[],"s":"t","src":"数据恢复资讯","tag":[{"clk":"kdigital_1:硬盘","k":"硬盘","u":""}],"title":"服务器数据恢复—基于oracle数据库的SAP数据恢复案例

桓韩进1680关于oracle中建立一个简单的存储过程,求助!
鞠咽刮13491602423 ______ OPEN OUT_ALL FOR V_SQL,这个打开游标的写法,你里面没定义游标! 赞同

桓韩进1680oracle存储过程并且怎么写 -
鞠咽刮13491602423 ______ 一、无参程序过程语法 create or replace procedure noparpro as ; begin ; exception //存储过程异常 ; end; 二、带参存储过程实例 create or replace procedure queryempname(sfindno emp.empno%type) as sname emp.ename%type; sjob emp....

桓韩进1680如何编写高效健壮的ORACLE存储过程 -
鞠咽刮13491602423 ______ 新建存储过程,Create or Replace Procedure CHK_SYS_EMP 检查系统工号.Oracle编写一个简单的存储过程 定义参数及变量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25); Oracle编写一个简单的存储过程 存...

桓韩进1680oracle 存储过程写法 -
鞠咽刮13491602423 ______ 过程可以有三个参数,一个入参,即时间参数,两个出参,出参提示过程执行的结果(若失败则提供失败信息,成功就提示成功即可).根据入参就可以按周统计的信息.

桓韩进1680oracle中的存储过程,有什么作用? -
鞠咽刮13491602423 ______ 定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要 对象,任何一个设...

桓韩进1680关于Oracle的存储过程
鞠咽刮13491602423 ______ 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,...

桓韩进1680ORACLE存储过程的写法.
鞠咽刮13491602423 ______ 先创建包,Create Package,然后创建包体,Create Package Body ,把存储过程放进包体就OK .

桓韩进1680我要写个oracle的存储过程,这个存储过程查询视图,然后把查询到的内容插入一张表中,请举例说明! -
鞠咽刮13491602423 ______ 很简单,代码如下 create or replace procedure test is begin --两个表字段一样 insert into 表名1 select * from 表名2; --字段不一样 insert into 表名1(字段1,字段2,字段3) select 字段1,字段2,字段3 from 表名2; COMMIT; end

桓韩进1680oracle 存储过程? -
鞠咽刮13491602423 ______ create table dept(deptno number,dname varchar2(20),loc varchar2(20))1.如果你是取出单个的,你可以定义一个或者多个变量,将取出的值赋给变量 例如:create or replace procedure dept_procedure(a in varchar2) is v_no number; v_a varchar2(...

桓韩进1680oracle存储过程 -
鞠咽刮13491602423 ______ i number := 0;beginselect count(dept) into i from person where dept is not null and rownum<=1;if i=1 return true else return false end if; end;放到存储过程里执行就可以了 这种低级sql不...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024