当前位置:文档之家› oracle遇到的问题及答案

oracle遇到的问题及答案

oracle遇到的问题及答案
oracle遇到的问题及答案

问题一:Oracle 11G用EXP时,空表不能导出解决方法

第一查询空表到底有多少张,也就是查询为分配分配segment的表有多少张

SQL> select table_name from user_tables where NUM_ROWS=0;

TABLE_NAME

------------------------------

DATA_BACKUP

EQUIPMENT

FEEDBACK_ACCESSORIES

SPECIALPIC

TASK_THIRD

TASK_THIRDBATCH

TASK_THIRD_DATA

TASK_THIRD_FEEDBACK

TESTDATA_THIRD

THIRD_ACCESSORIES

已选择10行。

第二查询在当前用户下有总的有多少张表

SQL> select count(*) FROM USER_TABLES;

COUNT(*)

----------

32

第三导出当前用户下的数据

C:\Users\Administrator>exp lcpt/lcpt file=E:\0702bj\lcpt.dmp wner=lcpt log=E 702bj\lcpt.log

Export: Release 11.2.0.1.0 - Production on 星期一 7月 2 10:42:07 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Productio With the Partitioning, OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户...

. 正在导出 pre-schema 过程对象和操作

. 正在导出用户 LCPT 的外部函数库名

. 导出 PUBLIC 类型同义词

. 正在导出专用类型同义词

. 正在导出用户 LCPT 的对象类型定义

即将导出 LCPT 的对象...

. 正在导出数据库链接

. 正在导出序号

. 正在导出簇定义

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

. . 正在导出表 ACCESSORIES导出了 18 行. . 正在导出表 AUTH导出了 240 行. . 正在导出表 DATA_TEMP导出了 1 行. . 正在导出表 FEEDBACK导出了 1 行. . 正在导出表 FUNCTION导出了 112 行. . 正在导出表 LIMIT导出了 1 行. . 正在导出表 MODULE导出了 37 行. . 正在导出表 READ_ACCESSORIES导出了 2 行. . 正在导出表 REGIONINFO导出了 19 行. . 正在导出表 REPORT_EVENT导出了 8 行. . 正在导出表 ROLE导出了 5 行. . 正在导出表 ROLEAUTH导出了 606 行. . 正在导出表 STAFFLOG导出了 512 行. . 正在导出表 STAFFROLE导出了 56 行. . 正在导出表 STAFFS导出了 7 行. . 正在导出表 TASKINFO导出了 51 行. . 正在导出表 TASK_FILIALE导出了 2 行. . 正在导出表 TASK_FILIALE_FEEDBACK导出了 2 行. . 正在导出表 TASK_SWARAJ_READ导出了 49 行. . 正在导出表 TESTDATA导出了 407 行. . 正在导出表 THIRDFACTURER导出了 3 行. . 正在导出表 USESSION导出了 1 行. 正在导出同义词

. 正在导出视图

. 正在导出存储过程

. 正在导出运算符

. 正在导出引用完整性约束条件

. 正在导出触发器

. 正在导出索引类型

. 正在导出位图, 功能性索引和可扩展索引

. 正在导出后期表活动

. 正在导出实体化视图

. 正在导出快照日志

. 正在导出作业队列

. 正在导出刷新组和子组

. 正在导出维

. 正在导出 post-schema 过程对象和操作

. 正在导出统计信息

成功终止导出, 没有出现警告。

结论:发现只导出了22张表,说明还有10张表没有导出出来。

第四再次查询没有导出的空表

SQL> select table_name from user_tables where NUM_ROWS=0;

TABLE_NAME

------------------------------

DATA_BACKUP

EQUIPMENT

FEEDBACK_ACCESSORIES

SPECIALPIC

TASK_THIRD

TASK_THIRDBATCH

TASK_THIRD_DATA

TASK_THIRD_FEEDBACK

TESTDATA_THIRD

THIRD_ACCESSORIES

已选择10行。

第五查询并构建对空表分配空间segment的SQL命令

SQL> select 'alter table ' ||table_name||' allocate extent;' from user_tables wh ere num_rows=0;

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'

-----------------------------------------------------------

alter table DATA_BACKUP allocate extent;

alter table EQUIPMENT allocate extent;

alter table FEEDBACK_ACCESSORIES allocate extent;

alter table SPECIALPIC allocate extent;

alter table TASK_THIRD allocate extent;

alter table TASK_THIRDBATCH allocate extent;

alter table TASK_THIRD_DATA allocate extent;

alter table TASK_THIRD_FEEDBACK allocate extent;

alter table TESTDATA_THIRD allocate extent;

alter table THIRD_ACCESSORIES allocate extent;

已选择10行。

SQL>

第六执行构建好的SQL语句(保存成脚本执行)

set heading off;

set echo off;

set feedback off;

set termout on;

spool E:\0702bj\allocate.sql;

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

spool off;

SQL> alter table WGSM_SC allocate extent;

alter table WGSM_SC allocate extent

*

第 1 行出现错误:

ORA-14254: 不能为 (组合) 范围分区表或列表分区表指定 ALLOCATE

SQL>alter table WGSM_SC modify partition T1 allocate extent;

第七再次执行导出操作,就可以把所有的表导出来了

第八设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。

第九在sqlplus中,执行如下命令:SQL>alter system set deferred_segment_creation=false;

该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出上面的空表,只能用上面的方法。

第十 11G中有个新特性,当表无数据时,不分配segment,以节省空间

问题二:ORA-01157,ORA-01110

ORA-01157: cannot identify/lock data file 5 - see DBWR trace file

ORA-01110: data file 5: '/oracle/app/oradata/orcl/hblg_db.dbf'

问题描述:

startup启动数据库提示

ORA-01157:无法标识/锁定数据文件 -请参阅 DBWR跟踪文件

ORA-01110:数据文件:'D:\ORACLEDATA\TEST.ORA'

解决方案:

1、shutdown immediate

ora-01109:数据库未打开

已经卸载数据库

ORACLE例程已关闭

2、startup mount;

ORACLE 例程已经启动

3、alter database datafile 'D:\ORACLEDATA\TEST.ORA' offline drop;

数据库已更改

4、alter database open;

数据库已更改

ORA-01081: cannot start already-running ORACLE - shut it down first

机器启动后就是这个样子了,有时重启机器可以启动DB,有时也不行,需重起多次

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 10月 25 12:47:43 2010

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> connect / as sysdba

已连接到空闲例程。

SQL> startup

ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> shutdown immediate

ORA-24324: 未初始化服务句柄

ORA-24323: 不允许此值

ORA-00020: 超出最大进程数 (%s)

SQL> shutdown abort

ORA-01031: insufficient privileges

SQL> shutdown abort

ORA-01031: insufficient privileges

SQL> 已断开连接

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 10月 25 12:48:18 2010

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> connect / as sysdba

已连接到空闲例程。

SQL> shutdown abort

ORACLE 例程已经关闭。

SQL> startup

ORA-27102: out of memory

OSD-00025: 附加错误信息

O/S-Error: (OS 1453) 配额不足,无法完成请求的服务。

SQL>

IMP-00058: ORACLE error 1033 encountered

ORA-01033: ORACLE initialization or shutdown in progressUsername:

感谢这篇文章: https://www.doczj.com/doc/c315018140.html,/blog/static/1569667200911342117220/ 初始情况是用dbvis连接数据库时,提示数据库正在初始化或者停止过程中.后面再没去管,几天后再去连接,还是一样的提示信息.这回很明显是数据库出问题了.

用sysdba进入sqlplus,强制启动数据库,结果显示日志无法归档和超出了回复文件数的限

制.

SQL> startup force

ORACLE 例程已经启动。

Total System Global Area 612368384 bytes

Fixed Size 1250428 bytes

Variable Size 117443460 bytes

Database Buffers 486539264 bytes

Redo Buffers 7135232 bytes

数据库装载完毕。

ORA-16038: 日志 3 序列号 1807 无法归档

ORA-19809: 超出了恢复文件数的限制

ORA-00312: 联机日志 3 线程 1: 'E:\ORADATA\MDC\REDO03.LOG'

查看v$log

SQL> select group#,sequence#,archived,status from v$log;

GROUP# SEQUENCE# ARCHIV STATUS

---------- ---------- ------ --------------------------------

1 1808 NO INACTIVE

3 1807 NO INACTIVE

2 1809 NO CURRENT

看到组3是非当前状态,并且没有归档,使用参考文章中的处理非归档文件的方法.

SQL> alter database clear unarchived logfile group 3;

数据库已更改。

启动数据库,这个启动成功.

SQL> alter database open;

数据库已更改。

用dbvis连接数据库,连接成功.

问题三:oracle11g 数据库导出报“EXP-00003

oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义... [复制链接]

运维网监控oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义”错误的解决方案

导出oracle11.2.0.2的服务器的数据时,报“EXP-00003: 未找到段 (0,0) 的存储定义”错误。初步分析是由于数据表是空表导致该问题。

Oracle 11G在用EXPORT导出时,空表不能导出

11GR2中有个新特性,当表无数据时,不分配segment,以节省空间

解决方法:

一、 insert一行,再rollback就产生segment了。

该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

二、设置deferred_segment_creation 参数

该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。修改SQL语句:

alter system setdeferred_segment_creation=false scope=both;

需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

三、用以下这句查找空表

select'alter table '||table_name||' allocate extent;' from user_tables wherenum_rows=0;

把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表可以通过以下方式生成数据库更新的sql语句:

在pl/sql的命令窗口中执行

set heading off;

set echo off;

set feedback off;

set termout on;

spool C:\alterTableSql.sql;

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

spool off;

自动将空表更新sql生成到C盘根目录的alterTableSql.sql文件中。然后执行该sql文件更新数据库。

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

也可以换成:

Select 'alter table '||table_name||' allocate extent;' from user_tables where segment_created= 'NO' ;

问题四:ORA-00845: MEMORY_TARGET not supported on this system

今天晚上新装一台Oracle 11g的数据库,打算将SGA设大一点,知道 11g 中有一个新特新 MEMORY_TARGET,于是尝一下鲜,谁知报了个 ORA-00845,报错比较容易迷惑人,不借助Google真得想半天:

来自Oracle的官方解析是:

Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors. The size of the shared memory should be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer. If MEMORY_MAX_TARGET or MEMORY_TARGET is set to a non zero value, and an incorrect size is assigned to the shared memory, it will result in an ORA-00845 error at startup.

简单来说就是 MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小:

还真是撞到这个枪口上了:

马上把它加大:

现在可以通过重启使这个配置生效,也可以通过重新挂载来修改其大小:

再次启动数据库,没有报错了。

问题五:ORA-27046: file size is not a multiple of logical block size

修改了Oracle 10g里面的SPFILE***.ORA文件,数据库就起不来了,抱错ORA-27046: file size is not a multiple of logical block size 。原因是动态服务器参数文件(SPFILE)是一个二进制文件,是不可以手工修改的,如果手工改了,该文件就成为了无效文件。

此时可以通过以下方法解决:

1。将SPFILE中的参数拷贝到init***.ora文件中

2。删除DATABASE目录下的SPFILE***.ORA文件。

3。启动数据库(现在应该可以成功启动)

4。SQL> create spfile from pfile 生成SPFIEL

使用startup命令启动数据库,,Oralce将会按照以下顺序在缺省目录中(9i,10i在oracle_home/database目录下)搜索参数文件:(1)spfile***.ora文件(2)如果没有spfile***.ora文件就用spfile.ora文件(3)如果没有spfile.ora文件就用init***.ora (4)如果没有init***.ora文件就用 pfile.ora

所以上面我们采取的解决方法是将破坏的SPFILE中的参数复制到init***.ora中,然后删除SPFILE文件,这样启动时就会用init***.ora文件启动,然后用create spfile from pfile 命令生成SPFIEL

以后如果要修改SPFILE中的参数绝对不能在手工修改SPFILE文件了,用下面命令:alter system set parameter=Value scope=spfile|both|memory 例如:alter system set db_cache_size=24M scope=both;来修改

问题六:初始化参数之memory_target

一、引言:

Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整;

Oracle 10g引入sga_target,可以自动对SGA进行调整;

Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。

二、本文说明:

操作系统:rhel 5.4 x32

数据库:oracle 11g r2

三、memory_target的介绍:

3.1、下面通过示例了解一下memory_target的设置与PGA和SGA关系:

1 SQL> show parameter memory_target;

2

3 NAME TYPE VALUE

4------------------------------------ -----------

------------------------------

5 memory_target big integer 316M

6 SQL> show sga;

7

8 Total System Global Area 330600448 bytes

9 Fixed Size 1336344 bytes

10 Variable Size 247466984 bytes

11Database Buffers 75497472 bytes

12 Redo Buffers 6299648 bytes

13 SQL>alter system set memory_target=200m scope=spfile;

14

15 System altered.

16

17 SQL>alter system set sga_target=0 scope=spfile;

18

19 System altered.

20

21 SQL>alter system set pga_aggregate_target=0 scope=spfile;

22

23 System altered.

24

25 SQL>shutdown immediate;

26Database closed.

27Database dismounted.

28 ORACLE instance shut down.

29 SQL> startup

30 ORACLE instance started.

31

32 Total System Global Area 209235968 bytes

33 Fixed Size 1335528 bytes

34 Variable Size 201330456 bytes

35Database Buffers 4194304 bytes

36 Redo Buffers 2375680 bytes

37Database mounted.

38Database opened.

设置memory_target参数后,实际上Oracle会自动设置并调整一下两个参数来分配SGA和PGA的内存,这和Oracle 10g自动设置sga_target后分配db_cache_size和shared_pool_size的机制是一样的。

1 SQL> col ksppinm for a20;

2 SQL> col ksppstvl for a20;

3 SQL>select a.ksppinm name,b.ksppstvl value

42from x$ksppi a,x$ksppcv b

53where a.indx = b.indx

64and (a.ksppinm like'%sga_target%'

75or a.ksppinm like'%pga_aggregate_target%');

8

9 NAME VALUE

10----------------------- -------------------

11 sga_target 0

12 __sga_target 142606336

13 pga_aggregate_target 0

14 __pga_aggregate_target 67108864

3.2、讨论一下11g中memory_target设置和不设置对SGA/PGA的影响:

3.2.1、如果memory_target设置为非0值

(下面有四种情况来对SGA和PGA的大小进行分配)

3.2.1.1、sga_target和pga_aggregate_target已经设置大小

如果Oracle中已经设置了参数sga_target和pga_aggregate_target,则这两个参数将各自被分配为最小值为他们的目标值。

memory_target = sga_target + pga_aggregate_target,大小和

memory_max_size一致。

3.2.1.2、sga_target设置大小,pga_aggregate_target没有设置大小

那么pga_aggregate_target初始化值=memory_target-sga_target

3.2.1.3、sga_target没有设置大小,pga_aggregate_target设置大小

那么sga_target初始化值=memory_target-pga_aggregate_target

3.2.1.4、sga_target和pga_aggregate_target都没有设置大小

Oracle 11g中对这种sga_target和pag_aggregate_target都没有设定大小的情况下,Oracle将对这两个值没有最小值和默认值。Oracle将根据数据库运行状况进行分配大小。但在数据库启动是会有一个固定比例来分配:

sga_target = memory_target*60%

pga_aggregate_target = memory_target*40%

3.2.2、如果memory_target没有设置或= 0(在11g中默认为0)

11g中默认为0则初始状态下取消了memory_target的作用,完全和10g在内存管理上一致,完全向下兼容。(也有三种情况来对SGA和PGA的大小进行分配)

3.2.2.1、sga_target设置值,则自动调节SGA中的shared pool,buffer cache,redo log buffer,java pool,larger pool等内存空间的大小。PGA则依赖pga_aggregate_target的大小。sga和pga不能自动增长和自动缩小。

3.2.2.2、sga_target和pga_aggregate_target都没有设置

SGA中的各组件大小都要明确设定,不能自动调整各组件大小。PGA不能自动增长和收缩。

3.2.2.3、memory_max_target设置而memory_target = 0这种情况先和10g一样,不做说明。

三、ORA-00845

最后谈一下ORA-00845的由来和解决方案:

如果memory_max_target/memory_target设置过大,可能导致instance无法启动,报ORA-00845错误。

1[oracle@yft bin]$ oerr ora 00845

200845, 00000, "MEMORY_TARGET not supported on this system"

3//*Cause: The MEMORY_TARGET parameter was not supported on this operating system or/dev/shm was not sized

4//*Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at leacle instance running on the system. 5

6 SQL>alter system set memory_max_target=400m scope=spfile;

7

8 System altered.

9

10 SQL>shutdown immediate;

11Database closed.

12Database dismounted.

13 ORACLE instance shut down.

14 SQL> startup

15 ORA-00845: MEMORY_TARGET not supported on this system

这个错误有点误导,实际上这并不是说该平台版本上不支持AMM特性,只是设置的memory_max_target超过了系统中设置的share memory(/dev/shm)而已。[oracle@yft bin]$ df -h

Filesystem Size Used Avail Use% Mounted on

tmpfs 395M 0 395M 0%/dev/shm

在Oracle 11g for linux中似乎是用了一种新的机制来管理共享内存段,而不是传统的sys /dev/shm了。在alert.ora中可以找到更准确的错误描述:

1 Mon Feb 2512:13:212013

2 Starting ORACLE instance (normal)

3 WARNING: You are trying touse the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 419430400 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can workas expected. Current available is413466624and used is0 bytes. Ensure that the mount point is/dev/shm for this directory.

4 memory_target needs larger /dev/shm

解决的办法之一是增加tmpfs文件系统的容量:

修改/etc/fstab中tmpfs对应的行;将原来的tmpfs /dev/shm tmpfs defaults 0 0 改成tmpfs /dev/shm tmpfs default,size=1024M 0 0,这样tmpfs增大为1G,重新mount /dev/shm使之生效。

1[root@yft ~]# vi /etc/fstab

2 tmpfs /dev/shm tmpfs

defaults,size=420m 00

3

4[root@yft ~]# mount -o remount /dev/shm

5[root@yft ~]# df -h

6 Filesystem Size Used Avail Use% Mounted on

7 tmpfs 420M 0 420M 0%/dev/shm

8

9 SQL> startup

10 ORACLE instance started.

11

12 Total System Global Area 418484224 bytes

13 Fixed Size 1336932 bytes

14 Variable Size 406849948 bytes

15Database Buffers 4194304 bytes

16 Redo Buffers 6103040 bytes

17Database mounted.

18Database opened.

问题七:Windows 32bit OS上物理内存限制以及ORACLE 10G 在32bit OS的SGA内存分配限制解决

今天有个朋友问起32位数据库的SGA 限制的问题,

现在整理如下,仅供参考学习之用。。

重要提示,操作有风险,建议先测试再实施,

[@more@]

原来由于32位操作系统本身的问题,内存只能认到不到4GB,好在微软加了一个什么参数PAE,解决了这个内存限制

在微软网站上看到的各个版本内存的最大扩展情况如下:

Physical Memory Limits: Windows Vista

The following table specifies the limits on physical memory for Windows Vista.

Version Limit in 32-bit Windows/Limit in 64-bit Windows

Windows Vista Ultimate 4 GB/ 128 GB

Windows Vista Enterprise 4 GB/128 GB

Windows Vista Business 4 GB/128 GB

Windows Vista Home Premium 4 GB/16 GB

Windows Vista Home Basic 4 GB/ 8 GB

Windows Vista Starter 1 GB / Not applicable

Physical Memory Limits: Windows Home Server

Windows Home Server is available only in a 32-bit edition. The physical memory limit is 4 GB.

------------------------------------------------------------------------------- Physical Memory Limits: Windows Server 2003

The following table specifies the limits on physical memory for Windows Server 2003. Limits over 4 GB for 32-bit Windows assume that PAE is enabled.

Version Limit in 32-bit Windows /Limit in 64-bit Windows

Windows Server 2003 with Service Pack 2 (SP2), Datacenter Edition 128 GB/2TB Windows Server 2003 with Service Pack 2 (SP2), Enterprise Edition 64 GB/2 TB Windows Storage Server 2003, Enterprise Edition 8 GB/ Not applicable

Windows Storage Server 2003 4 GB/ Not applicable

Windows Server 2003 R2 Datacenter Edition

Windows Server 2003 with Service Pack 1 (SP1), Datacenter Edition 128 GB /16 GB with 4GT/ 1 TB

Windows Server 2003 with Service Pack 1 (SP1), Enterprise Edition 64 GB/16 GB with 4GT/1TB

Windows Server 2003 R2 Standard Edition

Windows Server 2003, Standard Edition SP1

Windows Server 2003, Standard Edition SP2 4GB/32GB

Windows Server 2003, Datacenter Edition 128 GB/16 GB with 4GT/512GB

Windows Server 2003, Enterprise Edition 32 GB/16 GB with 4GT/64GB

Windows Small Business Server 2003 4 GB

Not applicable

Windows Compute Cluster Server 2003 Not applicable

32 GB

-------------------------------------------------------------------------------

Physical Memory Limits: Windows XP

The following table specifies the limits on physical memory for Windows XP. Version Limit in 32-bit Windows Limit in 64-bit Windows

Windows XP 4 GB

128 GB

Windows XP Starter Edition 512 MB

Not applicable

Physical Memory Limits: Windows 2000

The following table specifies the limits on physical memory for Windows 2000.

Version Limit in 32-bit Windows

Windows 2000 Professional 4 GB

Windows 2000 Server 4 GB

Windows 2000 Advanced Server 8 GB

Windows 2000 Datacenter Server 32 GB

-------------------------------------------------------------------------------

OS 是32bit 的,Oracle 数据库也只能安装32bit 的,这样了就SGA也受到限制,最大不能超过1.7G

看着那大把的内存,但数据库用不上,怪可惜的。。通过下面的方法可以解开内存的限制/ - 在操作系统配置AWE,修改boot.ini文件

右击"我的电脑",选择"属性"-->高级选项卡,找到“启动与故障恢复”,单击“设置”,然后单击“编辑”,

加/PAE选项,修改后的文件如下:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /pae

- 通过修改注册表,变成oracle可以使用的内存,

“开始”- “运行” -“regedit"

HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_oracle_home1,

添加新的strings:AWE_WINDOW_MEMORY ,这个值是准备分配给数据库用的最大内存数(以BYTE为单位),例如你想分配3G,那这个值就是

3*1024*1024*1024

- 通过下面方法,修改参数让ORACLE DB能使用上刚分配出来的MEM

Sqlplus "/ as sysdba" R

SQLPLUS>create pfile from spfile;

SQLPLUS>Shutdown immediate

SQLPLUS>exit

- 修改ORACLE pfile

注释掉如下的参数:

sga_max_size

sga_target

DB_CACHE_SIZE

增加如下参数

修改或者添加以下参数

*.db_block_buffers=20000 #2G为例

*.SHARED_POOL_SIZE=400000000 # 400M 为例

*.log_buffer=73000000 # 70M

*.use_indirect_data_buffers=true

sqlplus "/as sysdba"

sql>create spfile from pfile

sql>startup

- 通过以上的方法就可以让内存大大超过1.7GB了

但通过以上的方法修改后,可能在某些平台上会出现BUG,建议到METALINK查看相关NOTE

参考Notes:

Oracle Database and the Windows NT memory architecture, Technical Bulletin Doc ID: 46001.1

Oracle Database Server and the Operating System Memory Limitations

Doc ID: 269495.1

问题八:ORA-01078: 和LRM-00109:解决方法

SQL> startup mount;

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file

'/u01/app/oracle/product/11.2.0/db_1/dbs/initORCL.ora'

解决方法

[oracle@dbserver dbs]$ cd /u01/app/oracle/admin/orcl/pfile/ [oracle@dbserver pfile]$ ls

init.ora.6242012174552

[oracle@dbserver pfile]$ cp init.ora.6242012174552

/u01/app/oracle/product/11.2.0/db_1/dbs/

更改名字格式为:initORACLE_SID.ora

[oracle@dbserver dbs]$ mv init.ora.6242012174552 initORCL.ora 重启数据库

SQL> conn /as sysdba

Connected to an idle instance.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 609624064 bytes

Fixed Size 2215784 bytes

Variable Size 364904600 bytes

Database Buffers 234881024 bytes

Redo Buffers 7622656 bytes

Database mounted.

问题九: ORACLE安装LINUX内核中内存参数设置

在LINUX系统上部署ORACLE时,为了能够使最大限度地发挥ORACLE数据库性能,我们需要在/etc/sysctl.conf文件中增加以下关于内存的内核参数:(1)kernel.shmall设置系统中最大内存页面数量,ORACLE建议的为2097152,(2)kernel.shmmax设置单个共享内存段的最大尺寸,单位为BYTE,ORACLE建议大于或等于SGA大小,(3)kernel.shmmni参数设置系统中共享段的数量,ORACLE建议值为4096.

LINUX的标准内存页面尺寸大小为4KB,所以当我们在SGA大于8GB的系统上,需要相应增加kernel.shmall的值,这个值一般应该大于或等于SGA大小除以4KB。

在linux 2.6的kernel增加了称之为hugepage的支持,HUGEPAGE是一个地址连续的内存块区域。在linux下可以通过/proc/meminfo来看hugepage的大小,单个HUGEPAGE大小与平台紧密相关.通过使用hugepage,而不使用标准的page,会带来性能上增加。由于hugepage 使用了更大且连续的地址尺寸,减少了地址转换的性能开销,同时也使在CPU级别能同时存储更宽的地址范围。通过设置vm.nr_hugepages参数来设定hugepage的数量,这个值default为0,也就是不使用hugepage,另外还需要设置的参数,vm.disable_cap_mlock参数设为true,允许非根用户拥有对hugepage有写的权限。同时为了保证安全需设定vm.hugetlb_shm_group设定为ORACLE用户组,一般为DBA组

当ORACLE实例在启动时,调用shmget()函数来请求内存分配时,根据SHM_HUGETLB 标志来决定是否使用HUGEPAGE,如果请求的SGA大小设定比可用的HUGEPAGE还要大的时候,ORACLE则续继使用标准的内存页面尺寸,而不使用hugepage。但是分配出去的hugepage 继续保持在bugepage pool中,所以这样会导致减少可用的内存数量。可查看/proc/meminfo 来得来内存中关于hugepage的相关信息

问题十:linux下oracle对参数要求的解释

cat >>/etc/sysctl.conf <

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=262144

net.core.rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144

EOF

/sbin/sysctl -p

----------------------------

kernel.shmmax =2147483648

//该参数定义了共享内存段的最大尺寸(以字节为单位)。

kernel.shmmax ----SHMMAXAvailable physical memory Defines the maximum allowable sizeof one sharedmemory segment. The SHMMAX setting should be largeenoughto hold the entire SGA in one shared memory segment. A low settingcancause creation of multiple shared memory segments which may leadtoperformance degradation.

Shmmax是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,

shmmax设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。SHMMAX仅仅是在共享内存段被创建的时候用来比较的一个数字,当共享内存段被一个进程(Process)创建,操作系统检查是否被要求的共享内存段的值大于shmmax 的值,如果是,那么将会抛出一个错误。这个时候系统会创建另外的一个或多个共享内存段满足进程的需求。一般来说,共享内存段个数和系统性能没有太直接的关系,也不会对性能产生太大的影响。

Steve Adams 在他的小册子中说过,在实例启动以及Server Process 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。这意味着如果你的程序不是经常CreateProcesses(以及Destroy Them),性能方面就不是考虑的问题。

ORACLE数据库期末考试题目及答案

期末考试卷(卷) 课程名称:数据库考试方式:开卷()闭卷(√) 、本试卷共4 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸带出考场。 1、以下(a )内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、d )模式存储数据库中数据字典的表和视图。 (A.DBA B.SCOTT C.SYSTEM D.SYS 3、Oracle 中创建用户时,在若未提及DEFAULT TABLESPACE 关键字,Oracle 就将 c )则(表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS

4、a )服务监听并按受来自客户端应用程序的连接请求。(A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、b )函数通常用来计算累计排名、移动平均数和报表聚合等。(A.汇总B.分析C.分组D.单行 6、b)SQL 语句将为计算列SAL*12 生成别名Annual Salary (A.SELECT ename,sal*12 …Annual Salary? FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供(b )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( c )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 9、带有( b )子句的SELECT 语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH

Oracle笔试题B

《Oracle数据应用》期末(考试)试卷(B) 班级:姓名:学号: 一、选择题(具体要求,本大题共20道小题,每小题2分,共40分) 1.在Oracle中,有一个教师表teacher的结构如下: ID NUMBER(5) NAME V ARCHAR2(25) EMAIL VARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。 A.SELECT name FROM teacher WHERE email != NULL; B.S ELECT name FROM teacher WHERE email <> NULL; C.S ELECT name FROM teacher WHERE email IS NULL; D.SELECT name FROM teacher WHERE email IS NOT NULL; 2.在Oracle数据库的逻辑结构中有以下组件: A 表空间 B 数据块 C 区 D 段 这些组件从大到小依次是()。 A.A→B→C→D B.A→D→C→B C.A→C→B→D D.D→A→C→B 3.在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求( ) A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 4.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将( b )表空间分配给用户作为默认表空间SHL AX,2

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; 试题二

2019-2020学年第一学期《Oracle数据库》期末考试

2019-2020学年第一学期《Oracle数据库》期末考试适用班级:1801,1802,1803,1804 1、手动创建数据库的第一步是() A.启动实例 B.启动SQL*Plus 以SYSDBA身份连接Oracle C.查看系统的实例名 D.创建参数文件 2、创建一个数据库至少需要几个控制文件?() A.一个B.二个C.三个D.无 3、执行CREATE DATABASE命令之前,应该发出的命令是() A.STARTUP INSTANCE B.STARTUP NOMOUNT C.STARTUP MOUNT D.以上都不是 4、DBA使用哪个命令显示当前归档状态?() A.ARCHIVE LOG LIST B.FROM ARCHIVE LOGS C.SELECT * FROM V$THREAD D.SELECT * FROM ARCHIVE_LOG_LIST 5、把多路镜像控制文件存于不同磁盘最大的好处是() A.数据库性能提高 B.防止失败 C.提高归档速度 D.能并发访问提高控制文件的写入速度6、段的集合称为() A.区B.段C.表空间D.数据库 7、数据字典表和视图存储在() A.USERS表空间B.SYSTEM表空间 C.TEMPORARY表空间D.以上三个中任意 8、数据块的哪三个部分合称为块头部?() A.表目录、行目录和行数据 B.标题、表目录、空闲区 C.表目录、行目录、标题 D.块头部、行数据、行头部 9、临时表空间中用于排序的段是何时创建的() A.排序操作开始的时候 B.临时表空间创建的时候 C.当排序操作需要内存操过1KB的时候。 D.上述所有选项。 10、如果未定义临时表空间,哪一个会作为默认的临时表空间?() A.ROLLBACK B.USERS C.INDEX D.SYSTEM 11、Oracle实例是() A.Oracle 内存结构B.Oracle I/O 结构 C.Oracle 后台进程D.以上都是 12、最近使用过的SQL语句存储在() A.共享池B.数据高速缓冲区C.私有全局区D.用户全局区13、Oracle事务提交即() A.数据由DBWR进程写入磁盘文件 B.LGWR进程成功写入日志 C.PMON 进程提交 D.SMON 进程写数据 14、实例启动时数据库所处的状态是() A.MOUNT B.OPEN C.NOMOUNT D.None 15、用于删除约束的命令是哪一个?() 一、单选题(20*2分=40分)

2019年oracle期末考试试题及答案

A.PGA B.日志缓冲区C.数据缓冲区D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将() 表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总B.分析C.分组D.单行 6、()SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供( )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除 行。 A.行共享B.行排他C.共享D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区B.截断分区 C.拆分分区D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列B.范围C.列表D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW

Oracle数据库试题及答案word版本

O r a c l e数据库试题及 答案

Oracle数据库试题 一、选择题 1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。 (A)索引段(B)临时段(C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。(A)系统文件(B)日志文件(C)数据文件(D)控制文件 3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C ) (A)select*from scott.wz where wunit is null and rownum<5; (B)select*from myuser.wz where wunit = null and rownum<5; (C) select*from myuser.wz where wunit is null and rownum<6; (D)select*form scott.wz where wunit is null and rownum<6; 4、若当前日期为’25-5月-06’,以下( D )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5))

Oracle测试题

1) PL/SQL块中可以使用下列()命令。(选择两项) a) TRUNCATE b) DELETE c) SA VEPOINT d) ALTER TABLE 2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是()〔选择一项〕 a) GRANT CHANGE ON SCOTT.EMP TO SA b) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SA c) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SA d) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA 3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是() 〔选择一项〕 a) Aptech b) 无输出 c) 14行Aptech d) 编译出错 4) PL/SQL块中哪几部分是可选的()〔选择二项〕 a) Declare b) Begin c) Exception d) Constant 5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头 开始生成值。(选择一项) a) Cycle b) Nocycle c) Cache d) Nocache 6) 同义词有以下()用途。(选择三项) a) 简化SQL 语句 b) 隐藏对象的名称和所有者 c) 提供对对象的公共访问 d) 显示对象的名称和所有者 7) Oracle中用来释放锁的语句有()〔选择二项〕 a) commit b) Drop lock c) rollback d) unlock 8) 关于类型定义Number(9,2)说法正确的有()〔选择一项〕 a) 整数部分9位,小数部分2位,共11位 b) 整数部分7位,小数部分2位,共9位 c) 整数部分6位,小数点一位,小数部分2位,共9位

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列进行列表分区

Oracle数据库试题及答案

Oracle数据库试题 一、选择题 1、段就是表空间中一种逻辑存储结构,以下( D )不就是ORACLE数据库使用的段类型。 (A) 索引段 (B)临时段 (C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的就是( A )。 (A) 系统文件 (B)日志文件(C)数据文件 (D)控制文件 3、数据库中有两个用户scott与muuser,物资表wz就是属于myuser用户的,但当前用户就是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句就是( C ) (A)select*from scott、wz where wunit is null and rownum<5; (B)select*from myuser、wz where wunit = null and rownum<5; (C) select*from myuser、wz where wunit is null and rownum<6; (D)select*form scott、wz where wunit is null and rownum<6; 4、若当前日期为’25-5月-06’,以下( D )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5)) 5、下列叙述中正确的就是_C_。 A、数据库就是一个独立的系统,不需要操作系统的支持 B、数据库设计就是指设计数据库管理系统 C、数据库技术的根本目标就是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 6、SQL语句中修改表结构的命令就是 C 。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 7、数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系就是__ A___。 A、DBS包括DB与DBMS B、DBMS包括DB与DBS C、DB包括DBS与DBMS D、DBS就就是DB,也就就是DBMS 8、要控制两个表中数据的完整性与一致性可以设置"参照完整性",要求这两个表_A___。 A、就是同一个数据库中的两个表 B、不同数据库中的两个表 C、两个自由表 D、一个就是数据库表另一个就是自由表 9、在关系模型中,实现"关系中不允许出现相同的元组"的约束就是通过__B_ __。 A、候选键 B、主键 C、外键 D、超键 10、索引字段值不唯一,应该选择的索引类型为___ B__。 A、主索引 B、普通索引 C、候选索引 D、唯一索引 11、从数据库中删除表的命令就是___C __。 A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE 12、DELETE FROM S WHERE 年龄>60语句的功能就是___B___。 A、从S表中彻底删除年龄大于60岁的记录

oracle期末考试试题及答案打印

Oracle期末考试试题及答案 1、以下()内存区不属于SGA。 A.PGAB.日志缓冲区C.数据缓冲区D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBAB.SCOTTC.SYSTEMD.SYS 3、在Oracle中创建用户时,若未提及DEFAULTTABLESPACE关键字,则Oracle就将()表空间分配给用户作为默认表空间。 A.HRB.SCOTTC.SYSTEMD.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListenerB.OracleServiceSID C.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总B.分析C.分组D.单行 6、()SQL语句将为计算列SAL*12生成别名AnnualSalary A.SELECTename,sal*12‘AnnualSalary’FROMemp; B.SELECTename,sal*12“AnnualSalary”FROMemp; C.SELECTename,sal*12ASAnnualSalaryFROMemp; D.SELECTename,sal*12ASINITCAP(“AnnualSalary”)FROMemp; 7、锁用于提供()。 A.改进的性能B.数据的完整性和一致性 C.可用性和易于维护D.用户安全 8、()锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 9、带有()子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FORINSERTB.FORUPDATE C.FORDELETED.FORREFRESH

Oracle考试题

Oracle 考试题 一:单选题(每题1.5分,共60分) 1.学生信息表StudentInfo如下所示:学号姓名所在省市0001 李辉北京0002 张明上海0003 王小玉北京0004 李淑华湖南0005 赵静上海┆┆┆查询所有学生来自于哪几个省市使用的语句为()。(选择一项)A) Select unique 所在省市from StudentInfo B) Select 所在省市from StudentInfo C) Select only 所在省市from StudentInfo D) Select distinct 所在省市 from StudentInfo 2. 公司需要管理员工档案,你创建了2个表:员工表employees和部门表departments。以下是两表的部分内容。employees编号姓名年龄部门编号1 王涛25 12 张力24 13 李明30 24 高嘉24 3Departments编号部门名称 1 人力资源部2 技术部 3 销售部下列那列适合作为外键()。(选择一项)A) Employees中的编号 B) Employees中的部门编号 C) departments中的编号 D) 以上都适合 3. 你使用以下T-SQL语句创建了一个视图v_emp和一个表students,create view v_emp as select * from emp where deptno=10;create table students(id number(5),stuname varchar2(10))请问这两个语句是:()。(选择一项) A) DDL(数据定义语言) B) DML (数据操纵语言) C) DCL(数据控制语言) D) DQL (数据查询语言) 4.当SQL登录帐户被授权为数据库用户后,要查询数据库中的表,还需要对其赋予select 权限,实现赋权的T-SQL语言属于()。(选择一项) A) DDL(数据定义语言) B) DML(数据操纵语言) C) DCL(数据控制语言) D) DQL (数据查询语言) 5. 你是公司的数据库管理员,数据库benet中有个员工表employees,该表中有职务列。你想检查哪些员工的信息中没有填写职务一栏,应该使用子句()。(选择一项)A) Select * from employees where 职务=NULL B) Select * from employees where 职务=’NULL’C) Select * from employees where 职务IS NULL D) Select * from employees where 职务 IS ‘NULL’ 6. 职工信息表如下表所示:编号姓名年龄性别0001 李明辉35 男0002 张明华45 男0003 李淑琴34 女 .... .... .... ....如果表中的年龄是整数,性别为字符型,查询表中年龄在40岁以上的男性的语句为()。(选择一项) A) SELECT 姓名,年龄 FROM 职工信息表 WHERE 年龄>40 AND 性别=’男’ B) SELECT 姓名,年龄 FROM 职工信息表 WHERE 年龄>40

几个Oracle的笔试题

Oracle笔试试题 1. SQL必备 <选择题每空 1 分共 14题> 1. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接 ( ) A.OR B.NOT C.AND D.NONE 2. 外连接的条件可以放在以下的那一个子句中( ) A.FROM B.WEHRE C.SELECT D.HAVING E.GROUP BY F.ORDER BY 3. 在从两个表中查询数据时,连接条件要放在哪个子句中( ) A.FROM B.WHERE C.SELECT D.HAVING E.GROUP BY 4. 用以下哪个子句来限制分组统计结果信息的显示( ) A.FROM B.WEHRE C.SELECT D.HAVING E.GROUP BY F.ORDER BY 5. 以下需求中哪个需要用分组函数来实现( ) A.把ORDER表中的定单时间显示成 'DD MON YYYY' 格式 B.把字符串 'JANUARY 28, 2000' 转换成日期格式 C.显示PRODUCT 表中的COST 列值总量 D.把PRODUCT表中的DESCRIPTION列用小写形式显示 6. 以下那些命令可以暗含提交操作( )

A.GRANT B.UPDATE C.SELECT D.ROLLBACK 7.RDBMS是下列哪一项的缩写( ) A. Relational DataBase Management System(关系数据库管理系统) B. Relational DataBase Migration System(关系数据库移植系统) C. Relational Data Migration System(关系数据移植系统) D. Relational DataBase Manage System(关系数据库管理系统) 8.INSERT 是( ) A. DML语句 B. DDL语句 C. DCL语句 D. DTL语句 9.SELECT CHR(66) FROM DUAL的结果是( ) A. Z B. S C. B D. 都不是 10.函数返回一个值除以另一个值后的余数( ) A. MOD B. ABS C. CEIL D. 以上都不是 11. 什么锁用于锁定表,仅允许其他用户查询表中的行,行不允许插入,更新, 或删除行( ) A. 共享 B. 排他 C. 共享更新 D. 以上都不是 12.什么是oracle提供的一个对象,可以生成唯一的连续的整数( ) A. 同义词 B. 序列 C. 视图 D. 没有 13. 那种类型的约束可以自动创建索引( ) A.CHECK B.UNIQUE

Oracle面试题及答案整理

Oracle面试题及答案整理

Oracle面试题及答案整理 1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。 类如: 101a1001 101a1001 102a1002 102a1003 103a1004 104a1005 104a1006 105a1007 105a1007 105a1007 结果: 102a1002

102a1003 104a1005 104a1006 select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno; 3、有员工表empinfo ( Fempno varchar2(10) not null pk, Fempname varchar2(20) not null, Fage number not null, Fsalary number not null ); 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: fsalary>9999 and fage > 35 fsalary>9999 and fage < 35 fsalary <9999 and fage > 35 fsalary <9999 and fage < 35 每种员工的数量; select sum(case when fsalary > 9999 and fage > 35 then 1 else 0end) as "fsalary>9999_fage>35",

oracle期末考试题与答案

1、以下()存区不属于SGA。A A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、()模式存储数据库中数据字典的表和视图。B A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字, 则Oracle就将()表空间分配给用户作为默认表空间。C A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。A A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。B A.汇总 B.分析 C.分组 D.单行 6、()SQL语句将为计算列SAL*12生成别名Annual Salary D A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供( )。D

A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不 允许插入、更新和删除行。 C A.行共享 B.行排他 C.共享 D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。B A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区 B.截断分区 C.拆分分区 D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列 B.围 C.列表 D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION

oracle模拟试题答案汇总

备注:题号相同的题目或者增加的一些题目是11级网络的模拟试题 第 1 题,选择题(2分): ORACLE中,游标可以分为三类,下面不是Oracle游标的是( 1 )。 (1) 系统游标 (2) 显式游标 (3)隐式游标 (4) REF游标 第 2 题,选择题(2分):PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) IS SELECT sal,comm FROM emp WHERE deptno=dnum; 那么正确打开此游标的语句是(1) (1) OPEN emp_cursor(20); (2) OPEN emp_cursor FOR 20; (3) OPEN emp_cursor USING 20; (4) FOR rmp_rec IN emp_cursor[20] LOOP ... END LOOP; 第 3 题,选择题(2分): 有关ORACLE索引说法正确的是(A ) (1) 索引的数据和表的数据分开存储,但索引组织表除外 (2) 所有索引中的数据是顺序排序 (3) 分区表的索引必须统一存储 (4) 只能对分区表的索引进行分区 第 4 题,选择题(2分): 下列有关包的使用说法错误的是( A) (1) 必须先创建包头,然后创建包体 (2) 在不同的包内模块可以重名 (3) 包的私有过程不能被外部程序调用 (4) 包体中的全局过程和函数必须在包 第 5 题,选择题(2分): 以下定义的哪个变量是非法的?( A) (1) var_ab number default:=1; var_ab number default 1; (2) var_ab number not null :='0'; (3) var_ab number; (4) var_ab number:=3; 第 6 题,选择题(2分): PL/SQL块中不能直接使用的SQL命令是(A) (1) drop (2) insert (3) update

oracle期末考试题及答案

1、以下()内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字, 则Oracle就将()表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总 B.分析 C.分组 D.单行 6、()SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供( )。

A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不 允许插入、更新和删除行。 A.行共享 B.行排他 C.共享 D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区 B.截断分区 C.拆分分区 D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列 B.范围 C.列表 D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION

Oracle期末考试试题及答案

Oracle期末考试试题及答案

考 生 信 息 栏 装 订 线 一、选择题:(本题共20个小题,每小题2分,共40分) 1当Oracle 服务器启动时,下列哪种文件不是必须的 ( ) 。 A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2. 在Oracle 中,一个用户拥有的所有数据库对象统称为 ( )。 A. 数据库 B. 模式 C. 表空间 D. 实例 3.在 Oracle 数据库的逻辑结构中有以下组件: 1. 表空间 2. 数据块 3. 区 4. 段 这些组件从大到小依次是( )。 A. 1→2→3→4 B.1→4→3→2 C.1→3→2→4 D. 4→1→3→2 4.下列哪个子句实现对一个结果集进行分组和汇总( )。 A.HAVING B.ORDER BY C.WHERE D.GROUP BY 5. 在Oracle 数据库中,( )用户模式存储数据字典表和视图对象。 A. SYS B. SYSTEM C. SCOTT D. SYSDBA 6.以下不属于命名的PL/SQL 块的是( )。 A .程序包 B .过程 C .游标 D .函数 7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将( )表空间分配给用户作为默认表空间。 A .HR B .SCOTT C .SYSTEM D .SYS

8.在Windows操作系统中,Oracle的( )服务是使用iSQL*Plus必须的。 A.OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer 9.下列哪个语句可以在SQL*Plus 中直接调用一个过程( )。 A. RETURN B. CALL C. SET D. EXEC 10.如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会启动如下哪一个进程( ) A.CKPT B. DBWR C.LGWR D. SMON 11.下列哪一个锁模式不属于Oracle( )。 A.死锁 B.排他锁 C.行级共享锁 D.共享锁 12.有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( ) A. 10 4 B. 4 4 C. 10 10 D. 4 10 13.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句( )。 A. FETCH B. CLOSE C. OPEN D. CURSOR 14. ORACLE中,用来判断列值是否为空的操作符是( )。 A. ==NULL B. NULLIS C. AS NULL D. IS NULL 15.查询一个表的总记录数,可以采用( )统计函数。 A. AVG(*) B. SUM(*) C. COUNT(*) D. MAX(*) 16.以下的哪个命令可以将SQL 命令的运行结果保存到文件中( )。 A.SAVE B.SPOOL C.GET D.INPUT 17.为了去除结果集中重复的行,可在SELECT 语句中使用下列哪个关键字( ) 。 A.ALL B.DISTINCT C.SPOOL D.HAVING 18.关于模式的描述下列哪一项不正确( )。 A.表或索引等模式对象一定属于某一个模式 B.在Oracle 数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式 D.一个模式可以拥有多个表 19.下列SELECT 语句中,哪些子句可以包含子查询( )。 A.SELECT B.GROUP BY C.WHERE D.ORDER BY 20.在下列模式对象中,哪个对象不会占用实际的存储空间( )。

相关主题
文本预览
相关文档 最新文档