数据库程序员面试分类真题20_第1页
数据库程序员面试分类真题20_第2页
数据库程序员面试分类真题20_第3页
数据库程序员面试分类真题20_第4页
数据库程序员面试分类真题20_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库程序员面试分类真题20简答题1.

如果联机Redo日志文件损坏,那么如何恢复?正确答案:联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动(江南博哥),而且有丢失据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像。需要注意的是,RMAN不能备份联机Redo日志文件。所以,联机Redo日志一旦出现故障,则只能进行清除日志了。清除日志文件即表明可以重用该文件。如果日志文件已经归档,那么可以使用:

ALTERDATABASECLEARLOGFILEGROUPN;

如果该日志还没有归档,那么需要用:

ALTERDATABASECLEARUNARCHIVEDLOGFILEGROUPN;--不需要数据文件

ALTERDATABASECLEARUNARCHIVEDLOGFILE...UNRECOVERABLEDATAFILE;--需要数据文件[考点]RMAN

2.

如何在执行恢复的时候将数据文件恢复到别的路径?正确答案:主要采用命令“setnewnamefordatafile”和“switchdatafileall;”。[考点]RMAN

3.

如何清除V$ARCHIVED_LOG视图中的过期信息?正确答案:在使用RMAN命令(DELETEARCHIVELOGALL;)删除归档信息后,V$ARCHIVED_LOG视图中的NAME列为空,但是依然可以查询到这些删除了的归档信息。出现这样的现象是因为使用RMAN命令在删除归档日志的时候不会清除控制文件中的内容,导致V$ARCHIVED_LOG留下的过期的不完整信息。

使用如下的命令可以清除控制文件中关于V$ARCHIVED_LOG的信息:

EXECUTESYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION(11);[考点]RMAN

4.

Oracle如何删除归档日志文件?正确答案:在RMAN工具里删除归档日志文件:

1.rmantarget/

2.CROSSCHECKARCHIVELOGALL;

3.LISTEXPIREDARCHIVELOGALL;

4.DELETEEXPIREDARCHIVELOGALL;[考点]RMAN

5.

RMAN中有哪几种保留策略?正确答案:保留策略说明了要保留的备份冗余数量及保留的时间长度。有两类保留策略:恢复窗口保留策略和冗余保留策略,这两类保留策略互相排斥。可以通过使用RMAN的CONFIGURE命令或OEM(OracleEnterpriseManager)来设置保留策略的值。[考点]RMAN

6.

什么是闪回?闪回有哪些分类?正确答案:Oracle闪回技术从根本上改变了数据恢复策略,利用闪回技术,可以使更正错误的时间大大缩短,而且它简单易用,使用极少的命令便可恢复所需要的数据,而不必执行复杂的程序。闪回技术是Oracle数据库独有的特性,支持各级恢复,包括行、事务、表和数据库范围。采用闪回技术,可以针对行级和事务级发生过变化的数据进行恢复,减少了数据恢复的时间,而且操作简单,通过SQL语句就可以实现数据的恢复,大大提高了数据库恢复的效率。

Oracle中闪回技术分类图如下图所示。

[考点]闪回

7.

动态注册和静态注册有什么区别?正确答案:Oracle的注册就是将数据库作为一个服务注册到监听程序,而客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库。这个服务名可能与实例名一样,也有可能不一样。在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务,根据注册方式的不同,目前Oracle支持动态注册和静态注册这两种注册方式。

动态注册是实例启动的时候,PMON进程根据参数文件中的INSTANCE_NAME、SERVICE_NAMES两个参数将实例和服务动态注册到LISTENER中。动态注册默认只注册到默认的监听器上(名称为LISTENER、端口为1521),如果要向非默认监听注册,那么需要配置LOCAL_LISTENER参数。需要注意的是,动态注册默认端口在数据库启动大约1分钟之后才可以查询(lsnrctlstatus),但可以在数据库中使用SQL语句“ALTERSYSTEMREGISTER;”立即注册数据库。[考点]网络

8.

如何查询某服务是静态注册还是动态注册?正确答案:可以使用命令lsnrctlstatus来查看某服务是静态注册还是动态注册。实例状态为UNKNOWN时表明此服务是静态注册。这时监听器用来表明它不知道关于该实例的任何信息,只有当客户发出连接请求时,它才检查该实例是否存在。动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(动态监听在NOMOUNT状态下为BLOCKED)来指明。不管何时关闭数据库,动态注册的数据库都会动态地从监听器注销,而与之相关的信息将从状态列表中消失。所以,不管数据库是在运行还是已经关闭,监听器总是知道它的状态。该信息将被用于连接请求的回退和负载平衡。[考点]网络

9.

什么是EZCONNECT方式连接数据库?正确答案:如果对tnsnames.ora文件没有做相应的配置,那么也可以使用Oracle的EZCONNECT(EasyConnectNamingMethod)方式来连接到数据库,其语法形式如下:

sqlplususername/password@host[:port][/service_name][/instance_name]

需要注意的是,如果想要使用EZCONNECT方式连接到数据库,那么需要在客户端的sqlnet.ora文件中增加“NAMES.DIRECTORY_PATH=(EZCONNECT)”信息,否则该功能将无法使用,默认是有该配置的。一般配置如下:

NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)[考点]网络

10.

如何跟踪tnsping过程?正确答案:sqlnet是Oracle提供的与网络层面交互的一个工具,比如如何解析客户端发起的连接,如何对客户端发起的连接进行辨别,如何对客户端连接进行阻隔限制,或者启用日志及跟踪(LogandTrace)功能等一系列的功能。所以,可以通过sqlnet工具对rasping进行跟踪分析,查找为何外部网络无法连接数据库的原因。

可以在客户端的sqlnet.ora中配置:

tnsping.trace_directory=D:\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN

tnsping.trace_level=support

其中,tnsping.trace_level指的是跟踪的级别,support为最高级别,该参数可选的级别包括off、user、admin和support。一般来说,既然是跟踪错误原因,作者建议还是设置为support较好。rasping.trace_directory指的是跟踪产生的trace文件存放的位置。

在执行“tnspingorcl”后,在目录“D:\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN”下会生成一个跟踪文件tnsping.trc,然后分析该文件即可。[考点]网络

11.

如何启动Oracle数据库的监听日志?正确答案:Oracle监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数据库服务。

以下是一些常用的设置。

1)设置监听器日志文件目录:lsnrctlSETLOG_DIRECTORYdirectory。

2)设置监听器日志文件名:lsnrctlSETLOG_FILEfile_name。

3)设置监听器日志的状态:lsnrctlSETLOG_STATUS{on|off}。[考点]网络

12.

解释GLOBAL_NAMES设为TRUE的用途。正确答案:GLOBAL_NAMES指明连接数据库的方式。如果这个参数设置为TRUE,那么在建立数据库连接时就必须用相同的名字连接远程数据库。[考点]网络

13.

tnsnames.ora文件的作用是什么?正确答案:这个文件类似于Linux系统的hosts文件,提供tnsname到主机名或者IP的对应关系。只有当sqlnet.ora中有类似“NAMES.DIRECTORY_PATH=(TNSNAMES)”的配置,客户端解析连接字符串时,数据库才会尝试使用这个文件。

下面给出一个配置的例子:

ORCL=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=TCP)(HOST=lhr)(PORT=1521))

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=orcl)

)

)

其中,每个部分的解释如下:

1)PROTOCOL:客户端与服务器端通信的协议,一般为TCP,该内容一般不用改。

2)HOST:数据库所在的机器的主机名或IP地址。不管用主机名还是IP地址,在客户端一定要用ping命令ping通数据库所在的机器,否则需要在hosts文件中加入数据库所在的机器的主机名和IP地址的对应关系。

3)PORT:数据库监听器的端口,可以查看服务器端的listener.ora文件或在数据库服务器中通过lsnrctlstatus[listenername]命令来查看。一般为1521端口。

4)SERVICE_NAME:在数据库中使用“SHOWPARAMETERSERVICE_NAME”命令查看,一般情况下和DBNAME相同。[考点]网络

14.

sqlnet.ora文件的作用是什么?正确答案:sqlnet.ora文件的作用类似于Linux系统的nsswitch.conf文件,通过该文件来决定如何查找一个连接中出现的连接字符串。例如,在客户端输入命令:sqlplussys/oracle@orcl,而sqlnet.ora的配置如下:

SQLNET.AUTHENTICATION_SERVICES=(NTS)

NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME)

那么,客户端就会首先在tnsnames.ora文件中查找orcl的记录。若没有相应的记录,则尝试把orcl当作一个主机名,通过网络的途径去解析它的IP地址,然后去连接这个IP上GLOBAL_DBNAME为orcl的实例。

如果sqlnet.ora文件的配置如下:

NAMES.DIRECTORY_PATH=(TNSNAMES)

那么客户端就只会从tnsnames.ora查找orcl的记录。[考点]网络

15.

TWO_TASK环境变量的作用是什么?正确答案:在Linux环境下,可以设置TWO_TASK环境变量,当用户连接数据库且没有指定服务名时,会自动利用TWO_TASK的设置作为环境变量连接数据库。其中,TWO_TASK的值为tnsnames.ora文件中配置的值。

需要注意的是,当配置了TWO_TASK环境变量后,就无法使用操作系统验证来登录数据库了,会报ORA-01031:insufficientprivileges的错误。

类似地,在Windows环境下的变量是LOCAL,其设置方法和Linux下的TWO_TASK一致。[考点]网络

16.

在Windows环境下,错误“ORA-12560:TNS:协议适配器错误”的常见原因有哪些?正确答案:常见原因有如下几个:

1)监听服务没有启动起来。Windows环境操作步骤:开始→程序→管理工具→服务,打开服务面板,启动oracleXXXlistener服务。

2)数据库实例没有启动。启动命令为netstartOracleServiceORCL。

3)环境变量问题。请仔细检查ORACLE_HOME和PATH的路径。若是在同一台机器上同时安装了Oracle的服务器端和客户端,则要确保执行“sqlplus/assysdba”命令的sqlplus在服务器路径下。另外,需要设置ORACLE_SID,设置方法为setORACLE_SID=XXX。[考点]网络

17.

Oracle的SYS用户登录报权限不足(InsufficientPrivileges)的常见原因有哪些?正确答案:常见原因有如下几个:

1)检查服务器端sqlnet.ora文件。在Windows环境下,需要加上一句:“SQLNET.AUTHENTICATION_SERVICES=(NTS)”;在Linux环境下,可以没有这个文件或者加上:“SQLNET.AUTHENTICATION_SERVICES=(ALL)”,或者删除该句。

2)检查登录Windows的用户。当前登录用户必须包含在ORA_DBA组中,域用户若没有连上域服务器时则可能出现这种现象。

3)要保证参数REMOTE_LOGIN_PASSWORDFILE的值为EXCLUSIVE。

4)检查服务器端密码文件。在服务器端密码文件必须存在,可以查询视图V$PWFILE_USERS,该视图必须包含SYS用户。此外,执行命令“GRANTSYSDBATOSYS;”也不能报错。创建密码文件的命令为

Windows:orapwdfile="E:\oracle\lhrdb\DATABASE\PWDortest.ORA"password=lhr

Linux:orapwdfile=$ORACLE_HOME/dbs/orapworclpassword=lhrforce=y[考点]网络

18.

Oracle删除数据库的方式有哪几种?正确答案:有如下几种方式可以用来删除Oracle数据库:

1)直接在OS级别调用dbca命令以静默的方式删除数据库,如下所示,其中,mydb为数据库名:

dbca-silent-deleteDatabase-sourceDBmydb

2)SQL窗口:

ALTERDATABASECLOSE;

ALTERSYSTEMENABLERESTRICTEDSESSION;

DROPDATABASE;

STARTUPFORCEMOUNTRESTRICT;

DROPDATABASE;

注意:强烈推荐第1种方式,对于第2种方式,若是在RAC环境中,数据库需要设置参数CLUSTER_DATABASE为FALSE后才可以执行DROPDATABASE,设置的命令为ALTERSYSTEMSETCLUSTER_DATABASE=FALSESID='*'SCOPE=SPFILE;。[考点]建库与删库

19.

Oracle如何判定实例是否运行?正确答案:在启动Oracle实例之前,必须定义ORACLE_SID,Oracle根据SID的HASH值来唯一确定一个实例的地址。当打开SQL*Plus工具,输入“sqlplus/assysdba”以后,系统根据SID进行HASH,查找在共享内存中是否有相应的共享内存段(SHMID)存在,如果有,那么返回connected,否则返回connecttoanidleinstance,这个实例名是存放在SGA的variablesize中。

通过ORADEBUGIPC来得到variable所存放的SHM的SHMID号,在OS下使用ipcrm-mSHMID可以删掉这一段共享内存。另外,在OS级别也可以使用sysresv命令来获取SHMID号。

ORADEBUGIPC命令如下:

SQL>ORADEBUGSETMYPID

SQL>ORADEBUGIPC

SQL>ORADEBUGTRACFILE_NAME

sysresv命令如下:

[ZFLHRDB2:oracle]:/oracle>ORACLESID=raclhr2

[ZFLHRDB2:oracle]:/oracle>sysresv

IPCResourcesforORACLESID"raclhr2";

SharedMemory:

ID

KEY

5242886

0xffffffff

5242883

0xffffffff

1048583

0xd92489e0

OracleInstancealiveforsid"raclhr2"[考点]建库与删库

20.

如何判断Oracle是32位还是64位?正确答案:由于Oracle分为客户端和服务器端,所以,查看Oracle是32位还是64位也分为服务器端和客户端2个部分。

1.数据库服务器端

2.数据库Client端

客户端可以从Linux和Windows平台分别去分析。

[考点]建库与删库

21.

$ORACLE_HOME和$ORACLE_BASE的区别是什么?正确答案:ORACLE_BASE是Oracle软件的根目录,下面一般包括admin、cfgtoollogs、diag、fast_recovery_area和product等目录。ORACLE_HOME下则是Oracle的命令、连接库、安装助手、LISTENER等一系列的内容。ORACLE_HOME是Oracle产品的目录。

ORACLE_HOME比ORACLE_BASE目录要更深一些。也就是说,ORACLE_HOME=$ORACLE_BASE/product/version。如果装了2个版本的Oracle,那么ORACLE_BASE可以是一个,但ORACLE_HOME是2个。需要注意的是,ORACLE_HOME变量的最后是没有反斜杠“/”的。[考点]建库与删库

22.

Oracle11g安装完后需要禁用哪些参数?正确答案:这个问题得根据业务的需求来确定哪些参数需要被禁用,例如,是否需要关闭审计、密码大小写验证是否关闭、并行数、进程数、SGA等的参数,没有统一的答案,下面给出一些可能需要修改的参数:

ALTERSYSTEMSETAUDIT_TRAIL=NONESCOPE=SPFILE;--关闭审计

ALTERSYSTEMSETSEC_CASE_SENSITIVE_LOGON=FALSESCOPE=SPEILE;--关闭密码大小写验证

ALTERPROFILEDEFAULTLIMITFAILED_LOGIN_ATIEMPTSUNLIMITED;--设置登录次数为无限

ALTERSYSTEMSETCONTROL_FILE_RECORD_KEEP_TIME=31;--控制文件内容保存时间

ALTERSYSTEMSETMAX_DUMP_FILE_SIZE='2018M';--DU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论