OCP认证考试指南全册Oracle Database 11g练习与知识点.docx
《OCP认证考试指南全册Oracle Database 11g练习与知识点.docx》由会员分享,可在线阅读,更多相关《OCP认证考试指南全册Oracle Database 11g练习与知识点.docx(98页珍藏版)》请在冰豆网上搜索。
OCP认证考试指南全册OracleDatabase11g练习与知识点
OCP/OCA
认证考试指南全册
OracleDatabase11g(1Z0-051,1Z0-052,1Z0-053)
练习与知识点
Author:
Deerfer@20140630
第一章
OracleDatabase11g体系结构概述
本章学习内容
●解释内存结构
●描述进程结构
●讲述存储结构
练习1-1研究所在环境的DRMS
确定自己所在的环境使用的应用程序、应用服务器和数据库服务器。
然后集中精力研究数据库,体验一下数据库的规模和忙碌程度。
考虑用户数量、数据易失性以及数据量。
最后考虑它们对组织的重要程度:
就每个应用程序和数据库而言,允许多长的停机时间?
允许损失多少数据?
可以使用财务数字定量分析吗?
利用研究的结果,可以了解DBA角色的重要性。
应用程序:
MDS计量生产调度平台
应用服务器:
OracleWebLogicServer11g
数据库服务器:
OracleDatabase11g
数据库规模:
数据量大小、数据库对象多少、用户数、访问并发量、数据库节点格式(RAC环境)
平均无故障时间MTBFMeanTimeBetweenFailure
平均故障修复时间MTTRMeanTimeToRepair
练习1-2确定数据库是单实例还是分布式系统的一部分
运行查询来确定数据库是独立系统,还是更大的分布式环境的一部分。
(1)作为用户SYSTEM连接到数据库。
(2)确定实例是否为RAC数据库的一部分:
SELECT*FROMv$instance;
SELECTparallelFROMv$instance;--NO:
单实例数据库YES:
RAC数据库
(3)确定数据库是否通过备用数据库的保护来防止数据丢失:
SELECT*FROMv$database;
SELECTprotection_levelFROMv$database;--UNPROTECTED数据库未受到保护
(4)确定是否数据库中配置了流:
SELECT*FROMdba_streams_administrator;--如果尚未配置流,那么将不返回任何行
Tips1:
OracleStream
OracleStream功能是为提高数据库的高可用性而设计的,在Oracle9i及之前的版本这个功能被称为AdvanceReplication。
OracleStream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。
这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。
练习1-3了解实例的内存结构
运行查询来确定构成实例的不同内存结构的当前大小。
(1)作为用户SYSTEM连接到数据库。
(2)显示可以动态重设大小的SGA组件的当前、最大和最小的容量:
SELECTcomponent,current_size,min_size,max_size
FROMv$sga_dynamic_components;
查询结果如下:
显示的实例不包括流,因此流池的大小为零。
自从启动实例后,大池和Java池都未发生变化,但共享池和数据库缓冲区缓存的大小发生了变化。
仅配置了数据库缓冲区缓存的默认池,除进行大量调整的数据库外,通常都是这样的配置。
(3)确定已经(以及当前为)程序全局区分配了多少内存:
SELECTNAME,VALUEFROMV$PGASTAT
WHERENAMEIN('maximumPGAallocated','totalPGAallocated');
练习1-4了解在实例中运行的进程
将运行查询来查看在实例中运行的后台进程。
(1)作为用户SYSTEM了解到数据库。
(2)确定哪些进程正在运行,以及每个进程的数量有多少:
SELECTprogramFROMv$sessionORDERBYprogram;--有哪些进程
SELECTprogramFROMv$processORDERBYprogram;--每个进程的数量
这些查询将得到相似结果:
每个进程必须有会话(即使后台进程,也同样如此),而每个会话必须有进程。
可多次出现的进程将有个数据后缀,但支持用户会话的进程除外:
它们都使用同一个名称。
查询结果如下:
ORACLE.EXE(CJQ0)
ORACLE.EXE(CKPT)
ORACLE.EXE(DBW0)
ORACLE.EXE(J000)
ORACLE.EXE(LGWR)
ORACLE.EXE(MMAN)
ORACLE.EXE(MMNL)
ORACLE.EXE(MMON)
ORACLE.EXE(PMON)
ORACLE.EXE(PSP0)
ORACLE.EXE(QMNC)
ORACLE.EXE(RECO)
ORACLE.EXE(SMON)
ORACLE.EXE(q000)
ORACLE.EXE(q001)
plsqldev.exe
plsqldev.exe
Tips2:
Oracle进程简要说明
(1)CJQ:
Jobqueue,oracle的JOB进程,停止后JOB会停止运行
(2)CKPT:
checkpoint,检查点进程,CKPT和LGWR这两个进程与DBWn进程互相合作,提供了既安全又高效的写脏数据块的解决方案。
(3)DBW:
DBWR,databasewriter,就是写数据文件的进程。
(4)J000:
ora_jxxx是系统job进程,可以用select*FROMDBA_JOBS_RUNNING查询。
(5)LGWR:
LogWriter,将日志缓冲区中的所有记录项写到日志文件中
(6)MMAN:
Memorymanager,内存管理进程,如果设定了SGA自动管理,MMAN用来协调SGA内各组件的大小设置和大小调整
(7)MMNL:
MemoryMonitorLight,用于填充自动工作负载存储库(AutomaticWorkloadRepository,AWR)MMNL进程会根据调度从SGA将统计结果刷新输出至数据库表。
(8)MMON:
ManageabilityMonitor,MMON从SGA定期捕获统计数据(默认是每小时一次),并将它们写入到数据字典中,在数据字典中,可以无限期地存储它们(不过,默认方式是只存储8天)。
(9)PMON:
ProcessMonitor,进程监控器,主要负责连接非正常中断后的清除工作,PMON负责释放相应的资源。
(10)PSP0:
启动其它的Oracle进程(10g新增加的后台进程)。
(11)QMNC:
监视高级队列,并警告从队列中删除等待消息的出队进程
(12)RECO:
DistributedDatabaseRecovery,负责在分布式数据库环境中自动恢复那些失败的分布式事务,保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;
(13)SMON:
SystemMonitor,系统监控进程,负责在实例启动时执行实例恢复,并清理不再使用的临时段。
(3)通过计算服务器进程数量(Linux或Unix平台上)或Oracle线程数量(Windows上),演示会话生成后启动的服务器进程。
(a)在Linux上,从操作系统提示符可以运行以下命令:
ps–ef|greporacle|wc-1
该语句将计算出名称中包含“Oracle”字符串的运行进程的数量,将包括所有会话服务器进程(或许还包括其它进程)。
(b)在Windows上,启动任务管理器。
对其进行配置,以便显示每个进程中的线程数量。
练习1-5了解数据库的存储结构
在本练习中,将创建一个表段,然后计算出它的物理位置。
(1)创建一个未确定表空间的表—将在默认表空间中创建它,并包含一个区间:
CREATETABLEtab24(c1VARCHAR2(10));
(2)确定表所在的表空间、区间大小、区间所在的文件编号、以及作为区间开始位置的文件块:
SELECTTABLESPACE_NAME,EXTENT_ID,BYTES,FILE_ID,BLOCK_ID
FROMDBA_EXTENTS
WHEREOWNER='SYS'
ANDSEGMENT_NAME='TAB24';
查询结果如下:
(3)根据名称确定文件:
在看到提示时,替代前面查询中的file_id:
SELECTNAMEFROMv$datafileWHEREfile#=&file_id;
查询结果如下:
(4)精确计算出区间在文件中的位置(按它在文件中的开始字节数)。
这要求找到表空间的块大小。
在看到提示时输入
(2)中查询返回的block_id和tablespace_name.
SELECTBLOCK_SIZE*&BLOCK_ID/1024/1024
FROMDBA_TABLESPACES
WHERETABLESPACE_NAME='&tablespace_name';
查询结果如下:
由此可见,表存放于一个64KB的区间中。
此区间位于文件“D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF”中,从文件的大约478MB处开始。
本章知识点回顾
单实例体系结构
●Oracle服务器是连接到数据库的实例。
●实例包括共享存储块以及一组后台进程。
●数据库是磁盘上的一组文件。
●用户会话是连接到数据库服务器进程的用户进程。
实例内存结构
●实例共享内存是系统全局区(SGA)
●会话的专用区域是程序全局区(PGA)
●SGA由一组子结构构成,其中一些是必须的(数据库缓冲区缓存、日志缓冲区和共享池),而另一些是可选的(大池、Java池和流池)。
●可以动态重调SGA结构的大小,也可对其进行自动化管理,但日志缓冲区除外。
实例进程结构
●当用户连接时,将根据需要启动会话服务器进程。
●后台进程在启动实例时启动,在关闭实例前一直存在。
●服务器进程从数据库读取,后台进程对数据库执行写操作。
●某些后台进行始终存在(特别是SMON、PMON、DBWn、LGWR、CKPT和MMON),而其它进程则根据启动的选项进行。
数据库存储结构
●数据库中有三类必须的文件:
控制文件、联机重做日志文件和数据文件。
●控制文件存储完整性信息以及指向数据库其它部分的指针。
●联机重做日志存储应用于数据库的最新变更向量。
●数据文件存储数据。
●外部文件包括:
参数文件、口令文件、归档重做日志以及日志和跟踪文件。
●表空间将逻辑数据存储(段)从物理数据存储(数据文件)中抽象出来。
●表空间可有多个数据文件组成。
●一个段包含多个区间、一个区间包含多个Oracle块、一个Oracle块包含多个操作系统块。
●一个段可以包含位于多个数据文件的区间。
第二章
安装和创建数据库
本章学习内容
●了解Oracle数据库管理工具
●规划Oracle数据库的安装
●使用OUI安装Oracle软件
●使用DBCA创建数据库
练习2-1在Windows计算机上安装SQLDeveloper
在本练习中,将在Windows计算机上安装SQLDeveloper。
(1)下载安装SQLDeveloper
(2)从命令行提示窗口运行sqldeveloper.exe可执行文件,确定完成安装。
练习2-2确认可用的硬件资源
在本练习中,将先后针对Windows和Linux检查哪些可用的资源。
Windows:
(1)右键MyComputer图标,打开Properties对话框。
查看RAM容量。
RAM至少为512MB,首选容量是1GB。
(2)选择Advanced选项卡,此后,在Performance部分单击Settings按钮。
(3)在PerformanceOptions对话框中,选择Advanced选型卡。
查看虚拟内存设置。
这至少应为步骤
(1)中报告的内存量的1.5倍。
(4)打开命令窗口,使用以下命令找到临时数据目录的位置:
C:
\>echo%TEMP%
这将返回与下面类似的位置:
C:
\Temp
确认返回的文件系统(在本例中是驱动器C:
)至少具有400MB的可用空间。
(5)确定文件系统具有用于Oracle主目录和数据库的5GB空间。
这必须是本地磁盘,不能是文件服务器。
如果要复杂媒介安装程序(你很可能这样做吧),还需要另外1.5GB(可以在文件服务器上)。
Linux:
(1)在操作系统提示符下,运行free命令来显示主存和交换空间(理想情况下,至少为1GB)。
这些都是total列的值。
(2)运行df–h,显示每个已安装文件系统的可用空间。
确认具有用于Oracle主目录和数据库的5GB可用空间的文件系统。
确认/tmp中有400MB的可用空间(如果它作为独立文件系统存在)
(3)使用rmp来检查是否已经安装了所有需要的包(正确版本和更新版本)。
rpm–qa|grepsysstat
(4)使用sysctl来检查是否已经安装了所有需要的内核设置,要执行此操作,必须拥有root用户权限。
sysctl–a|grepip_loca_port_range
练习2-3安装Oracle主目录
使用OUI在Linux上安装Oracle主目录。
(1)以dba成员组的身份登录到Linux。
在下面的练习中,用户是db11g。
使用id命令确认用户名和组成员,如图所示:
(2)使用su切换到root用户,并使用mkdir命令为OracleBase创建一个符合OFA的目录。
在本例中,这是/u02/app/db11g。
使用chown和chmod命令。
更改目录的所有权和访问模式,使Oracle用户对其拥有完全控制权利,然后退回到Oracle用户。
(3)如果使用的不是控制台计算机,请将DISPLAY变量设置为指向正在使用的计算机上的
(4)…
练习2-4使用DBCA创建一个数据库
在本练习中,将创建数据库监听器(如果还没有的话),然后在Windows或Linux上使用DBCA创建名为ocp11g的数据库。
平台组件没有明显差别。
Tips3:
Oracle几个默认的用户
(1)SYS用户,拥有数据字典
(2)SYSTEM,用于大多数DBA工作
(3)DBSNMP,用于外部监视
(4)SYSMAN,供EnterpriseManager使用
本章知识点回顾
了解Oracle数据库管理工具
●安装:
OUI
●数据库创建和升级:
DBCA、DBUA
●发送即席SQL:
SQL*Plus、SQLDeveloper
●备份:
RMAN、OracleSecureBackup
●网络管理:
OracleNetManager、OracleNetConfigurationAssistant
●加载和卸载数据的实用程序:
DataPump、SQL*Loader
●管理:
OracleEnterpriseManager、DatabaseControl、GridControl
规划Oracle数据库的安装
硬件要求
●磁盘空间
●主存
✓交换空间
✓临时空间
✓图形终端
操作系统要求
●认证的版本
●必须的包
●内核设置
OFA:
适当的OracleBase目录
使用OUI安装Oracle软件
●使用适当的操作系统用户
●设置必须的环境变量(Linux、Unix)
●提供对root用户账户的访问(Linux、Unix)
●执行交换式或无提示安装
使用DatabaseConfigurationAssistant创建数据库
●可用使用DBCA或SQL*Plus命令行创建数据库
●DBCA可以基于保存的模板创建数据库
●DBCA和SQL*Plus命令可以删除数据库
●在创建数据库之前,必须首先创建实例
●对于在创建时未选中的任何选项,可以再以后予以添加
第三章
实例管理
本章学习内容
●设置数据库初始化参数
●描述启动和关闭数据库时的多个阶段
●使用警报日志和跟踪文件
●使用数据字典和动态性能视图
练习3-1查询和设置初始化参数
本练习将使用SQL*Plus或SQLDeveloper来管理初始化参数。
(1)以用户SYS的身份(具有SYSDBA权限)连接到数据库(必须处于打开状态)。
使用操作系统身份验证或口令文件身份验证。
(2)显示所有基础参数,检查它们已被设置了适当的值,还是使用默认值。
SELECTname,value,isdefaultFROMv$parameterWHEREisbasic='TRUE'ORDERBYname;
(3)读者应该对具有默认值的基本参数研究一番,看默认值是否合适。
实际上,应该考虑所有的基本参数。
(4)将PROCESSES参数更改为200。
这是一个静态参数,意味着其值不能在内存中更改并立即生效。
必须在静态pfile中设置它,或者如果使用spfile,可以通过指定“scope=spfile”然后重启数据库进行设置。
ALTERSYSTEMSETprocesses=200;--静态参数执行报错
ALTERSYSTEMSETprocesses=200scope=SPFILE;--需要重启数据库使其生效
(5)重新运行步骤(3)的查询。
注意PROCESSES和SESSIONS的新值。
PROCESSES限制允许连接到实例的的操作系统进程数量,SESSION限制会话数量。
这些数字是相关的,因为每个会话后需要进程。
SESSION的默认值从PROCESSES派生出来,因此,如果SESSIONS采用默认值,那么此时将有一个新值。
(6)为会话更改NLS_LANGUAGE参数的值。
选择需要的主流语言(Oracle支持多种语言:
截止到目前,支持67种语言),当必须使用英文单词指定语言(例如,使用German,而非Deutsch)。
ALTERSESSIONSETnls_language=German;
(7)通过查询系统日期确认更改已经生效。
SELECTto_char(SYSDATE,'day')FROMdual;
查询结果如下:
用户可能需要使用另一个ALTERSESSION命令,将会话语言改回以前的语言,否则在要准备处理的会话正使用的语言的错误信息。
(8)更改OPTIMIZER_MODE参数,当仅将作用域限制为运行中的实例,不要更新参数文件。
本练习启用了被启用的基于规则的优化器(可用于测试一些旧代码)
ALTERSYSTEMSEToptimizer_mode=RULESCOPE=MEMORY;
(9)确认更改已经生效,但没有写到参数文件中
SELECTVALUEFROMV$PARAMETERWHERENAME='optimizer_mode'
UNION
SELECTVALUEFROMV$SPPARAMETERWHERENAME='optimizer_mode';
查询结果如下:
(10)在运行的实例中,将OPTIMIZER_MODE恢复为标准值
ALTERSYSTEMSEToptimizer_mode=ALL_ROWSSCOPE=MEMORY;
练习3-2启动和关闭数据库
这个练习使用SQL*Plus启动一个实例并打开一个数据库,然后使用DatabaseControl将其关闭。
如果数据库已经处于打开状态,则以其它顺序执行,注意,在windows系统中,需要确认运行了数据库对应的Windows服务。
其名称的格式为OracleServiceSID,其中的SID为实例名称。
(1)以拥有ORACLE_HOME的操作系统组成员的身份登录计算机,并为ORACLE_HOME、PATH和ORACLE_SID合理设置环境变量。
(2)检查数据库侦听器的状态,如有必要,将其启动。
在操作系统命令指示窗口中输入如下命令:
lsnrctlstatus
lsnrctlstart
(3)检查DatabaseControl控制台的状态。
如有必要,将其启动。
在操作系统命令提示窗口中输入如下命令:
emctlstatusdbconsole
emctlstartdbconsole
(4)使用/nolog开关启动SQL*Plus,已阻止将立即出现的登录提示。
sqlplus/nolog
(5)使用操作系统身份验证,以SYS的身份连接数据库。
connect/assysdba
(6)只启动实例。
然后查询V$INSTANCE视图并检查其STATUS列。
注意实例的状态是启动“STARTED”
startupnomount;
selectstatusfromv$instance;
(7)加载数据库并查询实例状态。
现在数据库已被实例进行了“加载mount”。
alterdatabasemount;
selectstatusfromv$instance;
(8)打开数据库
alterdatabaseopen;
(9)通过查询V$INSTANCE确认已经打开了数据库。
数据库现在的状态应该为“OPEN”
selectstatusfromv$instance;
(10)通过浏览器了解到DatabaseControl控制台。
主机名和端口将显示在步骤(3)中emctlstatusdbconsole命令的输出结果中。
URL将类似于https:
//localhost:
port/em,端口号一般为1158.
(11)以SYS身份,使用创建数据库时选择的口令登录,并从ConnectAS下拉框中选择SYSDBA。
(12)在数据库主页中单击Shutdown按钮。
练习3-3使用警报日志
在本练习中,将定位警报日志,并找到练习3-1中的参数更改条目和练习3-2中的启动和关闭条目。
(1)使用SQL*Plus或SQLDeveloper连接到数据库,找到BACKGROUND_DUMP_DEST参数的值。
SELECTVALUEFROMv$parameterWHERENAME='background_dump_dest';--告警日志存储路径
查询结果如下:
注意,也可以在DatabaseControl中找到此值。
(2)定位到上面的目录
(3)打开警报日志。
此文件称为alert_SID.log,其中SID是实例名。
(4)在文件结尾处,看到练习3-1中的ALTERSYSTEM命令以及启动和关闭结果。
练习3-4查询数据字典和动态性能视图
在本练习中,通过查询视图来了解数据库的物理结构。
(1)使用SQL*Plus或SQLDeveloper连接到数据库
(2)使用动态性能视图来确定哪些数据文件和表空间构成了数据库以及数据文件的大小。
SELECTT.NAME,D.NAME,D.BYTE