oracle坏块修复

oracle坏块修复
oracle坏块修复

Oracle 坏块总结收藏

Oracle数据库出现坏块现象是指:在Oracle数据库的一个或多个数据块(一个数据块的容量在创建数据库时由db_block_size参数指定,缺省为8K)内出现内容混乱的现象。由于正常的数据块都有固定的合法内容格式,坏块的出现,导致数据库进程无法正常解析数据块的内容,进而使数据库进程报错乃至挂起,并级联导致整个数据库实例出现异常。

一.坏块的产生原因

坏块产生的原因大致有以下几种:

1.1 硬件问题

Oracle进程在处理一个数据块时,首先将其读入物理内存空间,在处理完成后,再由特定进程将其写回磁盘;如果在这个过程中,出现内存故障,CPU计算失误,都会导致内存数据块的内容混乱,最后反映到写回磁盘的数据块内容有误。同样,如果存储子系统出现异常,数据块损坏也就随之出现了。

1.2 操作系统BUG

由于Oracle进程对数据块的读写,都是以操作系统内核调用(system call)的方式完成的,如果操作系统在内核调用存在问题,必然导致Oracle进程写入非法的内容。

1.3 操作系统的I/O错误或缓冲问题

1.4 内存或paging问题

Oracle软件BUG

Oracle软件特定版本上,可能出现导致数据块的内容出现异常BUG。

1.5 非Oracle进程扰乱Oracle共享内存区域

如上文所述,在当数据块的内容被读入主机的物理内存时,如果其他非Oracle进程,对Oracle 使用的共享内存区域形成了扰乱,最终导致写回磁盘的数据块内容混乱。

1.6 异常关机,掉电,终止服务

异常关机,掉电,终止服务使进程异常终止,而破坏数据块的完整性,导致坏块产生。注:这也是为什么突然断电会导致数据库无法启动

由上可见,坏块的形成原因复杂。当出现坏块时,为了找到确切的原因,需要大量的分析时间和排查操作,甚至需要多次重现才能找出根本原因。但当故障发生在生产系统上,我们为了减少停机时间,会尽快实施应急权变措施以保证系统的可用性,这样就破坏了故障现场,对根本原因的分析因而也更加困难了。

二.坏块的预防

坏块问题破坏性大,但并非不可预防。

2.1 在https://www.360docs.net/doc/337992082.html,网站,Oracle定期发布基于特定软件版本的“已知问题(known issues)说明”。对于可能导致坏块的Oracle软件BUG,在Oracle公司内部,是作为高严重级别的问题进行处理,在“已知问题(known issues)说明”中,这些BUG以严重(Noticable)问题标出(标记为*或+),部分问题,Oracle还会发布警告(Alert)通告。在文档中,Oracle会提供相应的补丁或应对措施。

2.2 Oracle提供备份恢复工具-Recovery Manager,提供了扫描文件检查坏块的功能。

在Recovery Manager界面中,使用:

RMAN> BACKUP CHECK LOGICAL V ALIDATE DATAFILE n ;

可以检查数据文件是否包含坏块,同时并不产生实际的备份输出。

2.3 Dbv工具检查

注:因为dbv要求file后面跟的必须是一个文件扩展名,所以如果用裸设备存储

的,就必须使用ln链接裸设备到一个文件,然后再用dbv对这个链接文件进行检

查。

ANAL YZE TABLE tablename V ALIDATE STRUCTURE CASCADE

它执行坏块的检查,但是不会标记坏块为corrupt,检测的结果保存在USER_DUMP_DEST 目录下的用户trace文件中。

2.4 利用exp工具导出整个数据库可以检测坏块

对以下情况的坏块是检测不出来的:

HWM以上的坏块是不会发现的

索引中存在的坏块是不会发现的

数据字典中的坏块是不会发现的

结合数据库性能综合考虑db_block_checksum和db_blockchecking参数。

当我们使用Recovery Manager进行实际的数据库备份时,同时也就进行了坏块

检查。但要注意的是,在线使用Recovery Manager扫描坏块和备份时,需要数

据库运行在归档模式(archive log),否则只能在数据库未打开的情况下进行。

对于操作系统问题和硬件故障,则需要相应厂商的配合支持。同时,避免在数

据库主机运行其他用户进程,避免异常停机,也会减少坏块发生的几率。

三.坏块故障的识别

遇到坏块问题时,数据库的异常表现通常有:

报告ORA-01578错误。

报告Ora-1110错误。

报告ORA-00600错误,其中,第一个参数为2000-8000,Cache layer 2000 –4000,Transaction layer 4000 –6000,Data layer 6000 - 8000。

Trace文件中出现Corrupt block dba: 0x160c5958 . found。

分析对象失败。

后台进程,如DBWR,LGWR出现长时间异常等待,如“LGWR wait for redo copy”。

四.Oracle数据块损坏恢复总结

可以用DBV 命令来检测是否有坏块:

在恢复前使用DBV命令检查数据文件是否存在坏块

dbv file=d:\oracle\oradata\mydb\RONL Y.DBF blocksize=8192

查看数据坏块所在数据文件号及块号可以对表进行一次全表扫描,如:

select count(*) from tablename;

关于DBV 命令的具体使用,请参考blog:

https://www.360docs.net/doc/337992082.html,/tianlesoftware/archive/2009/12/16/5015164.aspx

4.1 没有备份的情况下:

4.1.1、使用exp/imp恢复

在这种情况下肯定会造成数据的丢失,在这种情况下应采取将数据导出然后重建表再进行导入的方法,来尽量恢复损坏数据块中的数据,但是在有坏块的情况下是不允许导出的,如下命令:

Exp test/test file=t.dmp tables=t;

导出命令在执行中会报ORA-01578错误,在这错误提示中会提示那个文件号的文件以及这个文件中的哪个块被损坏,如:ORA—01578:ORACLE 数据块损坏(文件号4,块号35)

针对以上的提示首先查询那些对象被损坏:

Select tablespace_name,segment_type,owner,segment_name From dba_extents Where file_id=4 and 35 between block_id and block_id+blocks-1;

如果被损坏的块是索引,通常可以通过索引重建来解决,如果损坏的是数据(segment_type 为table),那么通过设置如下内部事件使得Exp操作跳过坏块。

Alter session set events=’10231 trace name context forever,level 10’;

然后重新执行导出命令,导出相关的表,然后执行Drop Table命令删除相关表,之后重建表最后导入数据。

4.1.2、使用DBMS_REPAIR恢复

用DBMS_REPAIR当然也会丢失数据。这里不做详细的介绍,有兴趣的可以查看oracle的在线文档

4.2 使用Rman进行恢复:

首先要存在Rman的最新备份集,然后执行如下命令:

RMAN>backup validate datafile 4;

检查4号数据文件是否存在坏块

执行查询:

select * from v$database_block_corruption where file#=4;

如果4号文件存在坏块的话,那么将在结果集中有所显示,会显示损坏的块号,根据显示结果执行如下命令进行恢复:

RMAN>blockrecover datafile 4 block 35 from backupset;

该命令执行后即可恢复坏块,并且不会造成数据丢失,但是要求数据库必须要运行在归档模式下,否则RMAN无法发挥作用,而且通过RMAN做过最新的数据库备份

4.3 使用bbed恢复

使用bbed恢复时必须有数据文件的拷贝。

bbed就是英文block browse edit的缩写,用来直接查看和修改数据文件数据的一个工具。

BBED在windows 8i中在$ORACLE_HOME/bin下可以找到,9i中似乎未随软件发布,故在windows没有这个工具,linux下需要编译:

然后把$ORACLE_HOME/rdbms/lib加到环境变量的PATH里面,就可以直接在命令中bbed 了。

BBED的缺省口令为blockedit,

For Oracle Internal Use only 请谨慎使用Oracle不做技术支持。

BBED具体的使用,参考blog:

https://www.360docs.net/doc/337992082.html,/tianlesoftware/archive/2009/12/14/5006580.aspx

五.如何查找坏块所含的数据表名称和数据的rowid

关于Rowid 的相关知识参看blog:

https://www.360docs.net/doc/337992082.html,/tianlesoftware/archive/2009/12/16/5020718.aspx

5.1. 首先肯定知道那个数据文件坏了,查出该文件的file_id,relative_fno,tablespace_name

利用dba_data_files可以查询file_id(整个数据库唯一序号),RELATIVE_FNO(相对一个表空间内的序号)

5.2. 找到坏块的ID(可以运行dbverify实现),假设找到的坏块ID为1234。

5.3.运行下面的查询,根据,坏块的file_id,block id查找该块对应的owner,segment_type, segment_name等信息

select owner,file_id,segment_name, segment_type, block_id, blocks

from dba_extents

where file_id=13 and block_id<=1234 and (block_id + blocks- 1) >= 1234;

5.4. 根据坏块的file_id,owner,segment_name,block_id,如果是数据表的话,用下面的查询来得到对应坏块的rowid

假设owner : DA VE

segment_name: BL

file_id : 13

block_id : 162

运行下面的查询来获得该块所含的rowid(如果没有索引,可能就不能用下面的方式了):

select /*+ index(DA VE, i_test) */ rowid

from DA VE.BL

where dbms_rowid.rowid_to_absolute_fno(rowid,'DA VE','BL')=13

and dbms_rowid.rowid_block_number(rowid)=162;

六,如何模拟坏块

DBA 的基本知识,制造坏块的方法很多的,可以用ultraedit,也可以用dd命令,同时也呆以

用orapatch工具

6.1 orapatch 工具:

$orapatch open tools001.dbf write

patch>set hex --要用十六进制

patch>display 177 --orapatch以512字节为工作模式,假定想破坏第11个block即为:8k/512*11+1(file header)

patch>find 00400003 --选一个要编辑的点

patch>modify 00400002 --破坏

patch>exit

6.2 用编辑器打开datafile 以8192 字节为一大小(db 的block是8192)

下面是一个block 的开始的20个字节和结尾的 4 个字节

06 02 00 00 08 00 c0 02 6c 43 0d 00 00 00 01 02

00 00 00 00 -- block head

06 02 6c 43 -- block tail 这里有scn(6c 43) 的情况和block (06)的类型(01) 和head 的seq: 0x01 对应,只要改block尾部的4个字节中的或block开始的对应字节任何一个就一定会有ora-1578,但如果数据库有ora-1578的error不一定是这样引起的

btw :UE不是很好用winhex吧不错喔

6.3 BBED 工具

BBED具体的使用,参考blog:

https://www.360docs.net/doc/337992082.html,/tianlesoftware/archive/2009/12/14/5006580.aspx

七.如何利用dbms_repair来标记和跳过坏块

但是当数据量很大,或7*24的系统时,我们使用dbms_repair来处理。dbms_repair是从oracle8i 开始提供的。

准备工作:

create tablespace block datafile '/u01/block.dbf' size 5M;

create table DMM tablespace block as select * from all_tables;

commit;

CREATE INDEX indx_dmm on DMM(TABLE_NAME);

select count(*) from DMM;

COUNT(*)

----------

12896

7.1.创建管理表:

SQL> conn sys/admin as sysdba;

已连接。

SQL> exec DBMS_REPAIR.ADMIN_TABLES('REPAIR_TABLE',1,1,'USERS'); PL/SQL procedure successfully completed

SQL> exec DBMS_REPAIR.ADMIN_TABLES('ORPHAN_TABLE',2,1,'USERS'); PL/SQL procedure successfully completed

7.2.检查坏块:dbms_repair.check_object

/* Formatted on 2009-12-16 23:41:32 (QP5 v5.115.810.9015) */

Set serveroutput on;

DECLARE

cc NUMBER;

BEGIN

DBMS_REPAIR.check_object (schema_name => 'SYS', -- 注意此处是用户名

object_name => 'DMM',

corrupt_count => cc);

DBMS_OUTPUT.put_line ( TO_CHAR (cc));

END;

正常情况下输入为0.

如果有坏块,可以在创建的REPAIR_TABLE中查看块损坏信息:

/* Formatted on 2009-12-17 13:18:19 (QP5 v5.115.810.9015) */

SELECT object_name,

relative_file_id,

block_id,

marked_corrupt,

corrupt_description,

repair_description,

CHECK_TIMESTAMP

FROM repair_table;

注意:在8i下,check_object只会检查坏块,MARKED_CORRUPT为false,故需要执行第三步:定位坏块,fix_corrupt_blocks定位,修改MARKED_CORRUPT为true,同时更新CHECK_TIMESTAMP。9i以后经过check_object,MARKED_CORRUPT的值已经标识为TRUE了。所以可以直接进行第四步了。

7.3.定位坏块:dbms_repair.fix_corrupt_blocks

只有将坏块信息写入定义的REPAIR_TABLE后,才能定位坏块。

/* Formatted on 2009-12-17 13:29:01 (QP5 v5.115.810.9015) */

DECLARE

cc NUMBER;

BEGIN

DBMS_REPAIR.fix_corrupt_blocks (schema_name => 'SYS',

object_name => 'DMM',

fix_count => cc);

DBMS_OUTPUT.put_line (a => TO_CHAR (cc));

END;

7.4.跳过坏块:

我们前面虽然定位了坏块,但是,如果我们访问table:

SQL> select count(*) from SYS.DMM;

ORA-01578: ORACLE 数据块损坏(文件号14,块号154)

ORA-01110: 数据文件14: 'D: \BLOCK.DBF'

还是会得到错误信息。这里需要用skip_corrupt_blocks来跳过坏块:

/* Formatted on 2009-12-17 13:30:17 (QP5 v5.115.810.9015) */

exec dbms_repair.skip_corrupt_blocks(schema_name => 'SYS',object_name => 'DMM',flags => 1);

SQL> select count(*) from SYS.DMM;

COUNT(*)

----------

12850

丢失了12896-12850=46行数据。

7.5.处理index上的无效键值;dump_orphan_keys

/* Formatted on 2009-12-17 13:34:55 (QP5 v5.115.810.9015) */

DECLARE

cc NUMBER;

BEGIN

DBMS_REPAIR.dump_orphan_keys (schema_name => 'SYS',

object_name => 'INDX_DMM',

object_type => 2,

repair_table_name => 'REPAIR_TABLE',

orphan_table_name => 'ORPHAN_TABLE',

key_count => CC);

END;

通过以下命令可以知道丢失行的信息:

SQL> SELECT * FROM ORPHAN_TABLE;

我们根据这个结果来考虑是否需要rebuild index.

7.6.重建freelist:rebuild_freelists

/* Formatted on 2009-12-17 13:37:57 (QP5 v5.115.810.9015) */

exec dbms_repair.rebuild_freelists(schema_name => 'SYS',object_name => 'DMM');

八.设置内部事件使exp跳过坏块

我们可以用设置event的方法来处理坏块:先模拟出坏块,然后用dbv检查,此时,不用dbms_repair,而用下面的方法:

8.1. 先exp该表试验一下

在这种情况下,如果有备份,需要从备份中恢复,如果没有备份,那么坏块部分的数据肯定要丢失了

在这个时候导出是不允许的:

E:\>exp system/admin file=t.dmp tables=t

报错如下:

即将导出指定的表通过常规路径...

. . 正在导出表T

EXP-00056: 遇到ORACLE 错误1578

ORA-01578: ORACLE 数据块损坏(文件号4,块号35)

ORA-01110: 数据文件4: 'E:\ORACLE\ORADA TA\EYGLE\BLOCK.DBF'

导出成功终止,但出现警告。

8.2. 对于不同的情况需要区别对待,如果损失不是数据而是重要的oracle内部信息,则不能用set event。

首先你需要检查损坏的对象,使用以下SQL:

/* Formatted on 2009-12-17 14:00:42 (QP5 v5.115.810.9015) */

SELECT tablespace_name,

segment_type,

owner,

segment_name

FROM dba_extents

WHERE file_id = 4 AND 35 BETWEEN block_id AND block_id + blocks - 1;

8.3. 如果损失的是数据,ok,可以设置内部事件,使exp跳过这些损坏的block

10231事件指定数据库在进行全表扫描时跳过损坏的块

ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10' ;

然后我们可以导出未损坏的数据

E:\> exp system/admin file=t.dmp tables=t

即将导出指定的表通过常规路径...

. . 正在导出表T 8036 行被导出

在没有警告的情况下成功终止导出。

然后我们可以drop table,recreate,然后导入数据

8.4. 重建表,再导入

SQL> connect sys/admin as sysdba

已连接。

SQL> drop table t;

表已丢弃。

E:\>imp system/admin file=t.dmp tables=t

. 正在将system的对象导入到system

. . 正在导入表"T" 8036行被导入

成功终止导入,但出现警告。

E:\>exit

SQL> select count(*) from t;

COUNT(*)

----------

8036

完成数据恢复.

损失的行数可以从2个行数相减计算:

8192 - 8036 = 156 行数据

8.5如果要取消events设置,做以下操作:

1. 如果你在初始化参数中设置的

注释之

2. 如果在命令行设置的

alter system set events='10231 trace name context off';

本文来自CSDN博客,转载请标明出处:https://www.360docs.net/doc/337992082.html,/tianlesoftware/archive/2009/12/18/5024966.aspx

BCDautofix V1.0.3 [ NT6 启动菜单自动修复工具 ] 帮助文档

BCDautofix V1.0.3 [ NT6 启动菜单自动修复工具] 帮助文档 程序适用范围: 1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows Recovery Environment)菜单丢失 b.BCD引起的win7/2008r2的3D启动画面丢失(变成VISTA滚动条启动画面) c.BCD引起的启动菜单选择界面乱码现象 d.为VISTA/2008添加修复计算机(Windows Recovery Environment)菜单,使用方法:在系统盘符中新建recovery文件夹,再把光盘或安装程序中的sources\boot.wim(这个文件是否改名为winr e.wim随意)和boot\boot.sdi两个文件复制至recovery文件夹,再运行本程序,即可自动添加。 e.不明原因的启动菜单丢失 090412更新: f.系统BCD非法的强制修复,现象:VISTA/2008/WIN7中-- 运行msconfig后“启动”(BOOT)栏空白 管理员身份运行命令提示符中后运行bcdedit等和BCD相关的操作提示出错 系统属性的“启动和故障恢复”窗口无法配置“默认操作系统”和等待时间 其它软件无法添加BCD管理的新启动菜单 注:这种情况是否要强制修复自行决定。 使用方法: 非安装软件,直接运行,可运行于32位和64位系统或光盘WINPE系统。程序以盘符形式搜索系统,因此得确保你要添加的系统分区别被隐含盘符。 090416:增加支持繁体中文系统 090417(v1.0.0):修正一些处理流程,改版本号V1.0 090616(v1.0.3):细微修改/改打包方式 可以添加修复Vista/2008/Win7启动菜单,在满足条件的情况下也可以添加修复2000/xp/2003启动菜单。例如可以在xp中运行添加其它分区的vista启动菜单,自动生成xp+vista多系统启动菜单,反过来在vista中运行添加xp的启动菜单就需要满足xp的三个必要引导文件(ntldr/https://www.360docs.net/doc/337992082.html,/boot.ini)已存在活动分区且活动分区不被隐藏盘符的情况才会添加(当xp 菜单不符合条件而无法添加时,如xp菜单已在原多系统菜单中存在,不会影响已存在的xp 启动菜单项)。

oracle课后题答案

一、选择题 1. 若关系的某一属性组的值能唯一地标识一个元组,我们称之为(B)。 A、主码 B、候选码 C、外码 D、联系 2. 以下不属于数据库模式的三要素的是(C)。 A、数据结构 B、数据操作 C、数据控制 D、完整性约束 3. 以下对关系性质的描述中,哪个是错误的?(B) A、关系中每个属性值都是不可分解的 B、关系中允许出现相同的元组 C、定义关系模式时可随意指定属性的排列次序 D、关系中元组的排列次序可以任意交换 二、填空题 1.数据管理发展的三个阶段是人工管理、文件管理和数据库系统管理。 2.数据库系统的三级模式包括逻辑模式、用户模式、物理模式。 三、思考题 1. 数据库管理系统的主要功能有哪些? 1)数据定义功能。DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。 2)数据存取功能。DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。 3)数据库运行管理功能。DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。 4)数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。 5)数据库的传输;DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。 2.思考关系规范化的过程。 答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。 3.思考数据库设计的步骤。 答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。

Oracle数据库日常维护手册

Oracle数据库日常维护手册 在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: ●数据库的启动、关闭,启动时的非缺省参数; ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件; ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600) DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题处理 启动参数不对检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率; 有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限 出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建 表空间不够增加数据文件到相应的表空间 出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁 二、数据库表空间使用情况监控(字典管理表空间)

数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name; 个人收集整理 上面的SQL列出了数据库中每个表空间的空闲块情况,如下所示: TABLESPACE_NAME CHUNKS MAX_CHUNK -------------------- ---------- ---------- INDX 1 57.9921875 RBS 3 490.992188 RMAN_TS 1 16.515625 SYSTEM 1 207.296875 TEMP 20 70.8046875 TOOLS 1 11.8359375 USERS 67 71.3671875个人收集整理 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合: alter tablespace 表空间名 coalesce; 然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。 MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、ORA-1653、ORA-1654的错误信息,DBA应该及时对表空间的空间进行扩充,以避免这些错误发生。 对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。 三、查看数据库的连接情况

基于Oracle的小型数据库应用系统设计实现

实验三设计开发小型网络数据库应用系统 一、实验目的 1、(可选)在实验一、二构建的环境下,选择并安装数据库设计CASE工具、 开发文档程序版本管理工具、可视化开发工具,配置其访问协议,用户 权限。 2、在上述环境下,自拟题目完成一个小型网络数据库应用系统的需求分析、 结构设计、编码实现,及调试运行。 二、实验原理、内容及步骤 1、自拟一个小型网络数据库应用系统的题目,完成该系统的设计与开发 2、完成系统设计说明书,包含“系统需求说明、系统E-R逻辑关系、系统物 理结构、系统功能设计。 3、依据上述设计文档,开发实现相应数据库应用系统,要求所开发应用软 件支持多文档界面,具备基本的数据增加、修改、删除、浏览、查询功 能。 三、实验过程及结果 3.1、设计题目 人事资源管理系统 3.2、需求分析 此次人事资源管理系统包括:系统配置信息管理、人脉信息管理、和人脉查询管理,其详细功能描述如下。 1、系统配置信息管理:包括地区信息、认识途径信息、职位信息和行业 信息,这些信息确定你的人脉资源的的简单而又关键的信息,而这些信息比较固定,在系统运行之前就能确定,可以把它作为系统配置信息来处理。 2、人脉信息管理:它提供了人脉信息的增加、删除、修改的功能人脉信 息包括:姓名、所在地、职位、行业、所在单位、认识途径、联系方式和爱好等。 3、人脉查询管理:是指对人脉信息的详细查询的功能,提供了多种查询 方式,包括所在地、认识途径、行业信息、职位信息的查询方式,翻遍用户

自己的人脉资源。 3.3、概要设计 3.3.1、系统功能模块设计: 图3-3-1 系统功能模块图 3.3.2、数据库表设计: 以下是所设计的5张表: 图3-3-2-1地区信息表 字段说明:地区ID,地区名称,例如右边的图。 图3-3-2-1认识途径信息表 字段说明:认识途径ID,认识途径名称,例如右边的图。 图3-3-2-1职位信息表 字段说明:职业ID,职业名称,例如右边的图。

UEFI+GPT、Legacy+MBR引导模式介绍及引导修复教程

UEFI+GPT、Legacy+MBR引导模式介绍及引导修复教程 磁盘分区表格式 一般来说,磁盘分区表有两种格式:MBR 和GPT MBR 分区表在windows 操作系统下最多支持4 个主分区或3 个主分区+1 个扩展分区(包含多个逻辑分区),扩展分区必须划分为逻辑分区才能使用,1 个扩展分区可以划分多个逻辑分区 MBR 分区表不支持容量大于2.2TB 的分区(一些硬盘制造商将他们的容量较大的磁盘升级到了4KB 的扇区,这意味着MBR 的有效容量上限提升到了16 TB) 如下图是一个MBR 分区表示例:1 个主分区+1 个扩展分区(划分了3 个逻辑分区) GPT 分区表对分区数量没有限制,但在windows 系统上最多可以支持128 个主分区GPT 分区表突破了MBR 最大支持2.2T 分区的限制,貌似最大支持18EB 的分区如下图是一个GPT 分区表示例:划分了7 个主分区 BIOS 引导方式目前主要的系统引导方式也有两种:传统的Legacy BIOS 和新型的UEFI BIOS一般来说,有如下两种引导+磁盘分区表组合方式:

Legacy BIOS+MBR 和UEFI BIOS+GPT Legacy BIOS 无法识别GPT 分区表格式, 所以也就没有Legacy BIOS+GPT 组合方式; UEFI BIOS 可同时识别MBR 分区和GPT 分区,所以UEFI 下,MBR 和GPT 磁盘都可用于启动操作系统。不过由于微软限制,UEFI 下使用Windows 安装程序安装操作系统是只能将系统安装在GPT 磁盘中。 再来说说传统Legacy BIOS 和新型UEFI BIOS 引导方式的工作原理吧: Legacy BIOS Legacy BIOS → MBR →“活动的主分区”→ \bootmgr→ \Boot\BCD →\Windows\system32\winload.exe 传统Legacy BIOS 引导windows 操作系统时,是通过一个活动的主分区下的bootmgr(启动管理器)文件导入根目录下boot 文件夹里的BCD(启动设置数据)文件,然后BCD 文件根据自身的配置内容加载系统启动文件winload.exe (位置:根目录 \Windows\system32\winload.exe)来启动系统。 一个BCD 文件可以加载多个系统启动文件从而实现引导多个系统的启动通过EasyBCD工具看以看到BCD 文件的内容,如下是我的win8.1 和win10 两个系统的BCD 内容: 我的windows 8.1 在C 盘,winload.exe 位置:C: \Windows\system32\winload.exe 我的window 10 在G 盘,winload位置:G: \Windows\system32\winload.exe 通过BCD 来加载不同 位置的winload.exe 来实现这两个系统的启动

Oracle数据库管理与应用实例教程(刘志成)课后习题及答案

【填空题】 1.默认情况OEM的URL地址是https://sd04:1158/em(其中sd04为机器名) 2.Oracle9i发布于2001,i代表Internet,11G发布于2007,g代表grid(网格) 3.在oracle内存结构中,保存正在执行或可能执行的代码的区是代码区 4.在oracle进程结构中,用于实现进程监控功能的进程是PMON 1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、重做日志文件、控制文件。 2.一个表空间物理上对应一个或多数据文件 3.在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分成为数据段、索引段、回滚段、LOB段和临时段。 1.在设计表时,对于邮政编码最适合的数据类型是CHAR 2.在alter table语句中,如果要删除列,可以通过指定DROP COLUMN关键字来实现。 3.如果需要在表中插入一批已经存在的数据,可以在insert语句中使用SELECT语句。 4创建一个update语句来修改goods表中的数据,并且把每一行的t-id值都改成15,应该使用的SQL语句是UPDATE SCOTT.Goods SET t_ID=’15’ 5.使用DESC命令可以显示表的结构信息 6.两个表的主关键字和外关键字的数据应该对应一致,这是属于引用完整性,通常可以通过主键和外键来实现。 7.UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性。 1.在select语句中选择满足条件的记录使用where关键字,分组之后进行选择使用having 关键字 2.用来返回特定字段中所有值得总和的聚合函数是SUM 3.编写查询语句时,使用%通配符可以匹配多个字符。 18.集合运算符UNION实现集合的并运算,操作符INTERSECT实现了对集合的交运算,而MINUS则实现了减运算 19.如果要定义只读的视图,可以在创建视图时使用READ ONLY关键字 20.删除视图的PL\SQL语句是DROP VIEW [用户方案.]视图名 21.在使用CREATE INDEX创建索引时,使用BITMAP关键字可以创建位图索引 22.聚集(Cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用,表中相关的列称为聚集键 23.在为表中某个列定义PRIMARY KEY约束PK_ID后,则系统默认创建的索引名为PK_ID 24.如果表中某列的基数比较低,则应该在该列上创建反向索引 25.如果要获知索引的使用情况,可以通过查询DBA_INDEXES视图,而要获知索引的当前状态,可以查询INDEX_STATS视图。 26. 在Oracle的PL/SQL程序中,除了可以使用Oracle规定的数据类型外,还可以使用%TYPE 类型的变量,由系统根据检索的数据表列的数据类型决定该变量的类型,也可以使用%ROWTYPE 类型的变量用来一次存储从数据表中检索的一行数据。 27. SYSDATE函数可以获得当前系统的日期,SUBSTR(s,start,len)函数可以实现从指定的字符串中取指定长度的字符串。 28. 用来变异存储过程的PL/SQL语句是ALTER PROCEDURE,CREATE FUNCTION语句可以用来创建函数。

macbook OS和WINDOWS双系统引导修复

起因 在通过Boot Camp安装完Win8之后,发现只有一个分区,就在Win8的磁盘管理中通过“压缩卷”功能对当前系统分区操作,扩展了一部分未使用的容量出来,于是在重启系统之后发现引导界面中“Macintosh HD”引导项不见了,在一番折腾之后(貌似是合并刚刚扩展出来的空闲空间)我把“Recovery HD”也弄丢了。。。 现象 尝试着回忆之前做过的操作,并试着修复,不过失败了,把当前情况记录如下: 在Windows系统下可以正常加载OS X分区(Boot Camp驱动已装),分区类型显示为HFS(右键该分区,查看属性)

?在第一次重启时仍可看到“Recovery HD”,进入“Recovery HD”后,OS X 分区显示为:disk0s2,分区类型显示为:“MS-DOS”(也或许是“MS-FAT”之类,此部分为回忆,细节已忘) 分析 既然分区内数据都在,并且在Recovery环境下显示的分区类型有误,猜想可能跟分区表/ 写得太好了,解答了我以下几个问题: ?磁盘分区表目前主要有两种:MBR 与GPT,并且把GPT 的结构大概读了下 ?OS X 的磁盘分区结构 ?Mac 引导系统的过程 ?如果同时存在MBR与GUID,那么EFI会读取哪个分区表?(既混合分区,帖子里有细说) 于是我决定记录下这个问题,自己的思考以及最后如何解决问题的,并分享出来。 在了解了帖子中的大部分概念后,这个情况就感觉清楚多了,那么我需要解决这几个问题: 1.如何确定磁盘所使用的分区表类型(MBR or GPT) 2.如何查看某个分区的GUID(是否是OS X分区的GUID变更导致引导时找不到此系 统) 3.如何更改分区类型ID(如果是,那么我需要重新设置这个分区ID)

Oracle 笔试题目带答案

1.( )程序包用于读写操作系统文本文件。(选一项) A、Dbms_output B、Dbms_lob C、Dbms_random D、Utl_file 2.( )触发器允许触发操作的语句访问行的列值。(选一项) A、行级 B、语句级 C、模式 D、数据库级 3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项) A、控制文件 B、参数文件 C、数据文件 D、可执行文件 4.CREATE TABLE 语句用来创建(选一项) A、表 B、视图 C、用户 D、函数 5.imp命令的哪个参数用于确定是否要倒入整个导出文件。(选一项) A、constranints B、tables C、full D、file 6.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项) A、当phone为字符串0000-0000时显示空值 B、当phone为空值时显示0000-0000 C、判断phone和字符串0000-0000是否相等 D、将phone的全部内容替换为0000-0000 7.ORACLE交集运算符是(选一项) A、intersect B、union C、set D、minus 8.ORACLE使用哪个系统参数设置日期的格式(选一项) A、nls_language

B、nls_date C、nls_time_zone D、nls_date_format 9.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项) A、主键 B、Rowid C、唯一索引 D、整表扫描 10.Oracle数据库中,下面()可以作为有效的列名。(选一项) A、Column B、123_NUM C、NUM_#123 D、#NUM123 11.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项) A、drop B、delete C、truncate D、cascade 12.Oracle中, ( )函数将char或varchar数据类型转换为date数据类型。(选一项) A、date B、to_date C、todate D、ctodate 13.ORACLE中,执行语句:SELECT address1||','||address2||','||address2 "Address" FROM employ; 将会返回()列(选一项) A、0 B、1 C、2 D、3 14.Oralce数据库中,以下()函数可以针对任意数据类型进行操作。(选一项) A、TO_CHAR B、LOWER C、MAX D、CEIL 15.partition by list(msn_id)子句的含义是(选一项) A、按msn_id列进行范围分区 B、按msn_id列进行列表分区

第1章Oracle11g数据库系统

第1章Oracle 11g数据库系统 Oracle数据库系统是世界领先的数据库管理系统,Oracle数据库以其功能强大和配置灵活而著称,同时也因有一定的操作难度,让很多初学者望而却步。本书将由浅入深,以简单易懂的示例带领读者拨开Oracle的神秘面纱。 目前在Oracle世界主要有两类人员:一类是Oracle数据库管理人员,简称DBA;一类是Oracle开发人员。Oracle DBA主要的工作是负责日常的数据库维护和性能优化管理。由于Oracle系统较庞大、复杂,要成为一名合格的DBA,需要掌握的知识较多,比如要掌握Oracle体系结构和性能优化等方面的知识,相对其他数据库而言入门门槛较高,但是薪酬一般也较丰厚。Oracle开发人员的主要工作是使用Oracle提供的SQL语言和PL/SQL 结构化程序设计语言操作数据库,主要职责是操纵Oracle数据库对象,不需要对Oracle系统结构有深入了解,入门较容易。当Oracle开发人员积累了一定的开发知识后,可以通过学习Oracle DBA方面的知识向数据库管理员转型。 1.1 关系型数据库系统介绍 1970年6月,IBM公司的研究员E.F.Codd博士(中文名:埃德加·弗兰克·科德),发表了名为“大型共享数据库的关系模型”的论文,受到了学术界和产业界的高度重视和广泛响应,使得关系型数据库系统很快成为数据库市场的主流。E.F.Codd博士被誉为“关系数据库之父”,其照片如图1.1所示。 图1.1 关系数据库之父埃德加·弗兰克·科德

第1章 Oracle 11g 数据库系统 ·3· 1.1.1 什么是关系型数据模型 关系型数据库简而言之就是使用关系或二维表存储信息。以公司的人员信息管理为 例,为了存储公司内部的员工信息,人事部门一般会建一份列表,在公司未引入信息化管理系统时,大多数人事职员会使用Excel 来保存员工信息,例如图1.2是一份简单的人员信息列表的Excel 文件。 这种Excel 存储数据的方式,将人员的所有信息都包含在一张表中,随着Excel 中的 栏位和记录数越来越多,这份人员信息表会变得越来越繁杂,这种存储数据的方式称为平面文件数据模型。 为了简化修改与维护的复杂性,关系型数据库设计人员通过使用实体关系模型进行数 据库建模,例如人员信息表可以分为员工表和部门表,通过部门编号进行关联,ER 模型如图1.3所示。 图1.2 Excel 人员信息列表 图1.3 人员信息表ER 关系模型 由图1.3中可以看到,通过将员工和部门分别存储在不同的二维表格中,使用主键(PK )和外键(FK )进行关联,使得获取和维护数据变得更容易,这就是关系型数据模型。上述ER 图的3个关键组件分别如下所示。 ? 实体:需要了解的信息,比如部门和员工信息。 ? 属性:一般也称为列或字段,描述实体必须或可选的信息,比如员工表中的工号 和姓名等。 ? 关系:实体之间指定的关联,比如员工的部门编号关联到了部门表的编号属性。 关系型数据模型还涉及一些较复杂的组成元素,涉及较多的数学知识,有兴趣的读者 可以参考一些理论性的读物。 1.1.2 数据库系统范式 为了规范化关系型数据模型,关系型数据库系统在设计时必须遵循一定的规则,这种 规则称为关系型数据库系统范式。了解范式是每个数据库设计或开发人员必须具备的基本功,范式的主要目的是降低数据冗余,设计结构合理的数据库。目前较常用的范式有如下3种。

Oracle 官方安装文档

rpm -q grep binutils-2.* \ elfutils-libelf-0.* \ glibc-2.* \ glibc-common-2.* \ libaio-0.* \ libgcc-4.* \ libstdc++-4.* \ make-3.* \ compat-libstdc++-33 \ elfutils-libelf-devel-0.* \ glibc-devel-2.* \ gcc-4.* \ gcc-c++-4.* \ libaio-devel-0.* \ libstdc++-devel-4.* \ unixODBC-2.* \ unixODBC-devel-2.* \ sysstat-7.* 2.如缺少相应的补丁包,可以到系统安装盘安装相关的补丁包 cd /media/Enterprise\ Linux\ dvd\ 20090127/Server/ rpm -Uvh grep binutils-2.* rpm -Uvh elfutils-libelf-0.* rpm -Uvh glibc-2.* rpm -Uvh glibc-common-2.* rpm -Uvh libaio-0.* rpm -Uvh libgcc-4.* rpm -Uvh libstdc++-4.* rpm -Uvh make-3.* rpm -Uvh compat-libstdc++-33 rpm -Uvh elfutils-libelf-devel-0.* rpm -Uvh glibc-devel-2.* rpm -Uvh gcc-4.* rpm -Uvh gcc-c++-4.* rpm -Uvh libaio-devel-0.* rpm -Uvh libstdc++-devel-4.* rpm -Uvh unixODBC-2.* rpm -Uvh unixODBC-devel-2.* rpm -Uvh sysstat-7.*

系统引导菜单自动修复工具(中文帮助文档)NTBOOTautofix v2.5.7

NTBOOTautofix v2.5.7NT系统引导菜单自动修复工具 (简繁英三语版中文帮助文档) 免责声明: 本软件为免费软件,作者对使用本软件而给用户带来的任何损失不负任何责任。如不同意本免责声明,你必须立即删除本软件。 -------------------------------------------------------------------------------- 更新概述: v2.5.7:修正v2.5.6在win8中运行时把系统错认为winPE而不进行修复的BUG。 v2.5.6:修正win8部分情况下winRE不能修复的BUG,增加一种少见的系统环境的修复支持。 v2.5.5:修正v2.5.4修复后主引导菜单为英文的一个BUG。 v2.5.4:一些不常用功能的修复结果上小修改。 v2.5.2:初步支持EFI的GPT磁盘系统。 v2.5.1:更换NTLDR文件以减少软件体积,修正修复WES7系统时可能发生的一个BUG。v2.4.6:错误修正 - 修复OSLetter的一处错误;繁体高级菜单2和3位置错误 v2.4.3:增加繁体支持,添加BCD修复区域设定,增强查看/管理BCD功能 v2.2.9:增加对Win8的WinRE修复;自动修复默认禁用Win8的Metro引导界面,恢复为经典的黑白引导界面 v2.2.2:去除了以前版本在使用实例中的大部分限制,更新较多,不详述 v2.0.0:NTBOOTautofix前身为BCDautofix,版本号顺延更新,但工具名因功能改变而更换,纯修复BCD的BCDautofix最新版本为v1.2.3,BCDautofix v1.1.x已经有nt5.x的boot.ini的自动生成,应属NTBOOTautofix系列。v2.0.0是更名后的第一个版本。 -------------------------------------------------------------------------------- 使用方法: * 非安装软件,直接双击运行,傻瓜式修复,可运行于32位和64位系统和WINPE系统* "自动修复"自动判断和系统引导有关的条件并自动修复程序支持的盘符上的NT系统引导,无需用户手工干预 * "高级"只供特殊需要的朋友,参看下面应用实例中的更改活动分区盘符后修复 * 由于不少PE使用各种手段调整了系统默认盘符,程序未必准确判定活动分区,所以在PE中修复时推荐使用"高级"再选定活动分区后进行修复,如在PE中进行过调整/重分区操作,推荐重启后再使用本工具 * 默认禁用windows8的Metro引导菜单(v2.2.9开始),如需恢复Metro引导菜单, v2.5.2的两种方法操作: 方法1. “高级”,“查看/管理BCD引导配置”,管理 Windows8,把bootmenupolicy 这一行值修改为Standard - Metro引导开启(如本来为Standard则修改两次),再点击“默认”。 方法2. 手动修复,只开启METRO引导并修复Windows8,其它系统跳过修复。 * Win8多系统时推荐在Win8中关闭快速启动或管理员身份运行命令提示符后执行Powercfg -h off关闭休眠以免出现引导菜单冲突 * 没关闭休眠功能时,在Win8中修复后会出现无法关机,重启一次即可

Oracle试题(含答案)

_C++_CSD/ESD1405 1. 把工资大于1000的first_name,salary 显示出来,按工资排序,工资相同按first_name降序的SQL语句是? A. select first_name,salary from s_emp order by salary,first_name B. select first_name,salary from s_emp order by salary,first_name asc C. select first_name,salary from s_emp order by salary desc,first_name D. select first_name,salary from s_emp order by salary,first_name desc 正确答案:D 2. 已知数据库中有员工表s_emp和部门表s_dept,具体字段如下: 员工表字段介绍: ID 员工编号 LAST_NAME 员工姓 FIRST_NAME 员工名 USERID 用户编号 START_DATE 入职日期 COMMENTS 员工备注信息 MANAGER_ID 员工的领导ID TITLE 员工的职位 DEPT_ID 部门的编号 SALARY 员工的月薪 COMMISSION_PCT 提成 部门表的字段介绍: ID 部门编号 NAME 部门名 REGION_ID 地区编号 注:以下所有数据库相关题目,均使用这两个表 把s_emp表中的每个人的全名和工资列出来的SQL语句是? A. select first_name|last_name ,salary from s_emp

oracle数据库基本操作

实战经验Oracle数据库基本操作步步详解来源:2007年06月12日15:34网友评论:0条点击: 274 一,约束操作 1:更改约束名称: ALTER TABLE TName RENAME CONSTRAINT oldname TO newname; 2:删除约束 ALTER TABLE TName DROP CONSTRAINT cname 3:停止约束 ALTER TABLE TName MODIFY CONSTRAINT cname DISABLE; 4:起用约束 ALTER TABLE TName MODIFY CONSTRAINT cname ENABLE VALIDATE; 5:新增约束 ALTER TABLE TName ADD CONSTRAINT cname FOREIGN KEY (ORG_ID) REFERENCES ref_table (ORGID); 二,字段操作 1:更改字段数据类型: ALTER TABLE TName MODIFY(ORG_ID VARCHAR2(50 BYTE)); 2:更改字段数据长度: ALTER TABLE TName MODIFY(ORG_ID VARCHAR2(80 BYTE)); 3:修改表的列名 alter table TName rename column xx to yy; 三,表操作 1:删除表数据: truncate table TName; 2:复制空表结构 create table new_table as select * from old_table where 1=2; 3:复制表(含记录) create table new_table as select * from old_table ; 四,存储过程 1:命令行编译存储过程 ALTER PROCEDURE procedure_name COMPILE;

双系统启动菜单修复方法

NTBOOTautofix v2.0.2 (091217) - NT系统启动菜单自动修复工具 (中英版) 中文帮助文档 最新版本请关注网盘:https://www.360docs.net/doc/337992082.html,/chzhlh --------------------------------------------------------------------------------------------------------- 更新概述: -------- v2.0.2: 发现v2.0.1中的画图指令在一些系统中无法运行,更换写屏方案 PS:v2.0.1写屏出错时按取消后不影响修复效果,v2.0.0没有这个问题 v2.0.1: 去除v2.0.0启动菜单中的in 0:1提示,直接以"Microsoft Windows Server 2003 x86"形式修复 PE中使用修改:改用自动修复优先,当多硬盘工具无法判断PE类型时才自动出现本地硬盘盘符选择 "高级"菜单盘符由v2.0.0的8个增至24个(C - Z) 修正v2.0.0特殊情况下的生成多余BCD备份的情况 v2.0.0: NTBOOTautofix前身为BCDautofix,版本号顺延更新,但工具名因为功能改变而更换,本来应该从BCDautofix v1.1.0 开始就更名的,纯修复BCD的BCDautofix最终版本应该算是v1.0.5,其v1.1.0已经解决了nt5.x的boot.ini自动生成。目前还没 有发现有其他自动正确生成boot.ini的win中运行的工具。v2.0.0是更名后的第一个版本,NTBOOTautofix相对于BCDautofix完 善的部分甚多,不止boot.ini部分,BCD部分完善部分也很多,所以更名后的首版本v2.0.0就不作详细的更新说明了 使用方法: -------- 非安装软件,直接双击运行,傻瓜式修复,可运行于32位和64位系统和WINPE系统 程序根据当前系统non-Unicode设置自动显示中/英界面 "自动修复"自动判断和系统启动有关的条件并自动修复程序支持的盘符上的NT系统启动,无需用户手工干预 "高级修复"只供特殊需要的朋友,参看下面应用实例中的高级修复部分 PE中自动判断PE环境,单硬盘可以直接"自动修复",如多硬盘在PE中修复时推荐使用"高级"修复选择你作为系统引导的盘符 适用范围: -------- 1. 启动菜单/启动文件丢失修复: 适用所有NT5.x(2000/XP/2003)和NT6.x(Vista/2008/Win7/2008r2) 2. 修复其他因BCD相关引起的故障 a. Win7/2008r2中 BCD 的修复计算机(Windows Recovery Environment)菜单丢失 b. Win7/2008r2中 BCD 引起的3D启动画面丢失(变成VISTA滚动条启动画面)

oracle考试试题及答案

试题一 一、填空题(每小题4分,共20分) 1、数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段 2、数据库三级数据结构是外模式、模式、内模式 3、Oracle数据库中,SGA由数据库缓冲区,重做日志缓冲区,共享池组成 4、在Oracle数据库中,完正性约束类型有Primay key约束。Foreign key约束,Unique约束,check约束,not need约束 5、PL/SQL中游标操作包括声明游标,打开游标,提取游标,关闭游标 二、正误判断题(每小题2分,共20分) 1、数据库中存储的基本对象是数据(T) 2、数据库系统的核心是DBMS(T) 3、关系操作的特点是集合操作(T) 4、关系代数中五种基本运算是并、差、选择、投影、连接(F) 5、Oracle进程就是服务器进程(F) 6、oraclet系统中SGA所有用户进程和服务器进程所共享(T) 7、oracle数据库系统中数据块的大小与操作系统有关(T) 8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T) 9、PL/SQL中游标的数据是可以改变的(F) 10、数据库概念模型主要用于数据库概念结构设计() 三、简答题(每小题7分,共35分) 1、何谓数据与程序的逻辑独立性和物理独立性? 2、试述关系代数中等值连接与自然连接的区别与联系? 3、何谓数据库,数据库设计一般分为哪些阶段? 4、简述Oracle逻辑数据库的组成?

5、试任举一例说明游标的使用方法? 五、设有雇员表emp(empno,ename,age,sal,tel,deptno), 其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话 deptno-----部门号。 请按下列要求分别晨SQL*PLUS下编程。(每小题3分,共15分)?1、查询家有电话的职工信息。 ?2、查询工资在500至800元之间的雇员信息 ?3、按年龄递增顺序显示雇员编号、姓名、年龄、工资 ?4、求部门号为D_01的平均工资 ?5、查找部门号为D_01的40岁以上而工资在400元以下的雇员名单。 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; ? 试题一答案 一、填空题 1、人工管理、文件系统、数据库系统 2、外模式、模式、内模式 3、数据库缓冲区,重做日志缓冲区,共享池 4、Primay key约束。Foreign key约束,Unique约束,check约束,not need 约束 5、声明游标,打开游标,提取游标,关闭游标 二、正误判断题 1、T 2、T 3、T 4、F 5、F 6、T 7、T 8、T 9、F 三、(略) 五、 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; 试题二

处理数据损坏

Oracle 实训张大鹍手打总结 Oracle 实训张大鹍手打总结 处理数据损坏

一、关于bbed bbed用于检测坏块和处理坏块。 BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较有用。该工具不受Oracle支持,所以默认是没有生成可执行文件的,在使用前需要重新连接。 二、编译bbed 1、进入lib目录 [oracle@zdk ~]$ cd $ORACLE_HOME [oracle@zdk db_1]$ cd rdbms/lib/ [oracle@zdk lib]$ pwd /u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib 2、激活bbed [oracle@zdk lib]$ make -f ins_rdbms.mk /u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/bbed Linking BBED utility (bbed) rm -f /u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/bbed gcc-o/u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/bbed -L/u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/ -L/u01/app/oracle/product/10.2.0.1/db_1/lib/ -L/u01/app/oracle/product/10.2.0.1/db_1/lib/stubs/ -L/usr/lib -lirc

Linux安装oracle11gR2官方步骤

Linux安装oracle11gR2官方步骤 原创2016年12月10日01:32:16 ?标签: ?oracle ?4121 ?Linux环境下安装Oracle11gR2 o下载安装介质 o检查Linux环境 o安装和配置JDK o检查Oracle安装必须包 o添加用户组和用户 o修改内核参数 o创建oracle11gR2安装目录 o修改oracle用户环境变量 o解压安装oracle11gR2 o运行脚本 Linux环境下安装Oracle11gR2 下载安装介质 ?Linux系统iso(本人使用centos7为例) https://www.360docs.net/doc/337992082.html,/CentosSoft/ ?oracle11gR2安装包 https://www.360docs.net/doc/337992082.html,/technetwork/database/enterprise-edition/download s/112010-win64soft-094461.html

?JDK 检查Linux环境 ?检查系统位数 uname -m ? 1 ?检查内存(两条命令都可以) grep MemTotal /proc/meminfo free ? 1 ? 2 ?查看交换空间大小 grep SwapTotal /proc/meminfo ? 1 ?查看tmp空间大小(不能小于1G) df -h /tmp ? 1 ?查看内核版本 (最好是oracle推荐的linux版本,如果不是建议修改/etc/redhat-release的内容来伪装一下)

cat /proc/version vim /etc/redhat-release 修改为:redhat-7 ? 1 ? 2 ? 3 ? 4 ?查看内核版本 uname -r 2.6.18-128.el5PAE ? 1 ? 2 安装和配置JDK ?卸载自带的openJDK: rpm -a q | grep java | xargs rpm -e --nodeps ? 1 ?建立JDK安装目录: mkdir /usr/java ? 1 ?用XFTP或SFTP把JDK拷贝到linux ?安装JDK: chmod 777 jdk-7u67-linux-x64.rpm rpm -ivh jdk-7u67-linux-x64.rpm ? 1 ? 2 ?配置JDK环境变量: vim /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_67 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA _HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin ? 1

相关文档
最新文档