OCP认证考试指南全册Oracle Database 11g练习与知识点_第1页
OCP认证考试指南全册Oracle Database 11g练习与知识点_第2页
OCP认证考试指南全册Oracle Database 11g练习与知识点_第3页
OCP认证考试指南全册Oracle Database 11g练习与知识点_第4页
OCP认证考试指南全册Oracle Database 11g练习与知识点_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、OCP/OCA认证考试指南全册Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)练习与知识点Oracle Database 11g体系结构概述本章学习内容解释内存结构描述进程结构讲述存储结构练习1-1 研究所在环境的DRMS确定自己所在的环境使用的应用程序、应用服务器和数据库服务器。然后集中精力研究数据库,体验一下数据库的规模和忙碌程度。考虑用户数量、数据易失性以及数据量。最后考虑它们对组织的重要程度:就每个应用程序和数据库而言,允许多长的停机时间?允许损失多少数据?可以使用财务数字定量分析吗?利用研究的结果,可以了解DBA角色的重要性。应用程序:MDS计

2、量生产调度平台应用服务器:Oracle WebLogic Server 11g数据库服务器:Oracle Database 11g数据库规模:数据量大小、数据库对象多少、用户数、访问并发量、数据库节点格式(RAC环境)平均无故障时间 MTBF Mean Time Between Failure平均故障修复时间 MTTR Mean Time To Repair练习1-2 确定数据库是单实例还是分布式系统的一部分运行查询来确定数据库是独立系统,还是更大的分布式环境的一部分。作为用户SYSTEM连接到数据库。确定实例是否为RAC数据库的一部分:SELECT * FROM v$instance;SEL

3、ECT parallel FROM v$instance; - NO:单实例数据库 YES:RAC数据库确定数据库是否通过备用数据库的保护来防止数据丢失:SELECT * FROM v$database;SELECT protection_level FROM v$database; -UNPROTECTED数据库未受到保护确定是否数据库中配置了流:SELECT * FROM dba_streams_administrator; -如果尚未配置流,那么将不返回任何行Tips 1:Oracle StreamOracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前

4、的版本这个功能被称为Advance Replication。Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。练习1-3 了解实例的内存结构 运行查询来确定构成实例的不同内存结构的当前大小。作为用户SYSTEM连接到数据库。显示可以动态重设大小的SGA组件的当前、最大和最小的容量:SELECT component, current_size,

5、 min_size, max_sizeFROM v$sga_dynamic_components;查询结果如下:显示的实例不包括流,因此流池的大小为零。自从启动实例后,大池和Java池都未发生变化,但共享池和数据库缓冲区缓存的大小发生了变化。仅配置了数据库缓冲区缓存的默认池,除进行大量调整的数据库外,通常都是这样的配置。确定已经(以及当前为)程序全局区分配了多少内存:SELECT NAME, VALUE FROM V$PGASTAT WHERE NAME IN (maximum PGA allocated, total PGA allocated);练习1-4 了解在实例中运行的进程将运行查询

6、来查看在实例中运行的后台进程。作为用户SYSTEM了解到数据库。确定哪些进程正在运行,以及每个进程的数量有多少:SELECT program FROM v$session ORDER BY program; -有哪些进程SELECT program FROM v$process ORDER BY program; -每个进程的数量这些查询将得到相似结果:每个进程必须有会话(即使后台进程,也同样如此),而每个会话必须有进程。可多次出现的进程将有个数据后缀,但支持用户会话的进程除外:它们都使用同一个名称。查询结果如下:ORACLE.EXE (CJQ0) ORACLE.EXE (CKPT)ORACL

7、E.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.exeplsqldev.exeTips 2:Oracle进程简要说明CJQ:Job queue,oracle的JOB进程,停止后JOB会停止运行CKP

8、T:checkpoint,检查点进程,CKPT和LGWR这两个进程与DBWn进程互相合作, 提供了既安全又高效的写脏数据块的解决方案。DBW:DBWR,database writer,就是写数据文件的进程。J000:ora_jxxx是系统job进程,可以用select * FROM DBA_JOBS_RUNNING查询。LGWR:Log Writer,将日志缓冲区中的所有记录项写到日志文件中MMAN :Memory manager,内存管理进程,如果设定了SGA自动管理,MMAN用来协调SGA内各组件的大小设置和大小调整MMNL:Memory Monitor Light,用于填充自动工作负载存

9、储库(Automatic Workload Repository,AWR)MMNL进程会根据调度从SGA将统计结果刷新输出至数据库表。MMON:Manageability Monitor,MMON从SGA定期捕获统计数据(默认是每小时一次),并将它们写入到数据字典中,在数据字典中,可以无限期地存储它们(不过,默认方式是只存储8天)。PMON:Process Monitor,进程监控器,主要负责连接非正常中断后的清除工作,PMON负责释放相应的资源。PSP0:启动其它的Oracle进程(10g新增加的后台进程)。QMNC:监视高级队列,并警告从队列中删除等待消息的出队进程RECO :Distri

10、buted Database Recovery,负责在分布式数据库环境中自动恢复那些失败的分布式事务,保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;SMON:System Monitor,系统监控进程,负责在实例启动时执行实例恢复,并清理不再使用的临时段。通过计算服务器进程数量(Linux或Unix平台上)或Oracle线程数量(Windows上),演示会话生成后启动的服务器进程。在Linux上,从操作系统提示符可以运行以下命令:ps ef|grep oracle|wc -1该语句将计算出名称中包含“Oracle”字符串的运行进程的数量,将包括所有会话

11、服务器进程(或许还包括其它进程)。在Windows上,启动任务管理器。对其进行配置,以便显示每个进程中的线程数量。练习1-5 了解数据库的存储结构在本练习中,将创建一个表段,然后计算出它的物理位置。(1) 创建一个未确定表空间的表将在默认表空间中创建它,并包含一个区间:CREATE TABLE tab24 (c1 VARCHAR2(10);(2) 确定表所在的表空间、区间大小、区间所在的文件编号、以及作为区间开始位置的文件块:SELECT TABLESPACE_NAME, EXTENT_ID, BYTES, FILE_ID, BLOCK_ID FROM DBA_EXTENTS WHERE OW

12、NER = SYS AND SEGMENT_NAME = TAB24;查询结果如下:(3) 根据名称确定文件:在看到提示时,替代前面查询中的file_id:SELECT NAME FROM v$datafile WHERE file# = &file_id;查询结果如下:精确计算出区间在文件中的位置(按它在文件中的开始字节数)。这要求找到表空间的块大小。在看到提示时输入(2)中查询返回的block_id和tablespace_name.SELECT BLOCK_SIZE * &BLOCK_ID/1024/1024 FROM DBA_TABLESPACESWHERE TABLESPACE_NAM

13、E = &tablespace_name;查询结果如下:由此可见,表存放于一个64KB的区间中。此区间位于文件“D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF”中,从文件的大约478MB处开始。本章知识点回顾单实例体系结构Oracle服务器是连接到数据库的实例。实例包括共享存储块以及一组后台进程。数据库是磁盘上的一组文件。用户会话是连接到数据库服务器进程的用户进程。实例内存结构实例共享内存是系统全局区(SGA)会话的专用区域是程序全局区(PGA)SGA由一组子结构构成,其中一些是必须的(数据库缓冲区缓存、日志缓冲区和共享池),而另一些是可选的(大池、J

14、ava池和流池)。可以动态重调SGA结构的大小,也可对其进行自动化管理,但日志缓冲区除外。实例进程结构当用户连接时,将根据需要启动会话服务器进程。后台进程在启动实例时启动,在关闭实例前一直存在。服务器进程从数据库读取,后台进程对数据库执行写操作。某些后台进行始终存在(特别是SMON、PMON、DBWn、LGWR、CKPT和MMON),而其它进程则根据启动的选项进行。数据库存储结构数据库中有三类必须的文件:控制文件、联机重做日志文件和数据文件。控制文件存储完整性信息以及指向数据库其它部分的指针。联机重做日志存储应用于数据库的最新变更向量。数据文件存储数据。外部文件包括:参数文件、口令文件、归档重

15、做日志以及日志和跟踪文件。表空间将逻辑数据存储(段)从物理数据存储(数据文件)中抽象出来。表空间可有多个数据文件组成。一个段包含多个区间、一个区间包含多个Oracle块、一个Oracle块包含多个操作系统块。一个段可以包含位于多个数据文件的区间。安装和创建数据库本章学习内容了解Oracle数据库管理工具规划Oracle数据库的安装使用OUI安装Oracle软件使用DBCA创建数据库练习2-1 在Windows计算机上安装SQL Developer在本练习中,将在Windows计算机上安装SQL Developer。下载安装SQL Developer从命令行提示窗口运行sqldeveloper.

16、exe 可执行文件,确定完成安装。练习2-2 确认可用的硬件资源在本练习中,将先后针对Windows和Linux检查哪些可用的资源。Windows:右键My Computer图标,打开Properties对话框。查看RAM容量。RAM至少为512MB,首选容量是1GB。选择Advanced选项卡,此后,在Performance部分单击Settings按钮。在Performance Options对话框中,选择Advanced选型卡。查看虚拟内存设置。这至少应为步骤(1)中报告的内存量的1.5倍。打开命令窗口,使用以下命令找到临时数据目录的位置:C: echo %TEMP%这将返回与下面类似的位

17、置:C: Temp确认返回的文件系统(在本例中是驱动器C:)至少具有400MB的可用空间。确定文件系统具有用于Oracle主目录和数据库的5GB空间。这必须是本地磁盘,不能是文件服务器。如果要复杂媒介安装程序(你很可能这样做吧),还需要另外1.5GB(可以在文件服务器上)。Linux:在操作系统提示符下,运行free命令来显示主存和交换空间(理想情况下,至少为1GB)。这些都是total列的值。运行df h,显示每个已安装文件系统的可用空间。确认具有用于Oracle主目录和数据库的5GB可用空间的文件系统。确认/tmp中有400MB的可用空间(如果它作为独立文件系统存在)使用rmp来检查是否已

18、经安装了所有需要的包(正确版本和更新版本)。rpm qa|grep sysstat使用sysctl来检查是否已经安装了所有需要的内核设置,要执行此操作,必须拥有root用户权限。sysctl a|grep ip_loca_port_range练习2-3 安装Oracle主目录使用OUI在Linux上安装Oracle主目录。以dba成员组的身份登录到Linux。在下面的练习中,用户是db11g。使用id命令确认用户名和组成员,如图所示:使用su切换到root用户,并使用mkdir命令为Oracle Base创建一个符合OFA的目录。在本例中,这是/u02/app/db11g。使用chown和ch

19、mod命令。更改目录的所有权和访问模式,使Oracle用户对其拥有完全控制权利,然后退回到Oracle用户。如果使用的不是控制台计算机,请将DISPLAY变量设置为指向正在使用的计算机上的练习2-4 使用DBCA创建一个数据库在本练习中,将创建数据库监听器(如果还没有的话),然后在Windows或Linux上使用DBCA创建名为ocp11g的数据库。平台组件没有明显差别。Tips 3:Oracle几个默认的用户SYS用户,拥有数据字典SYSTEM,用于大多数DBA工作DBSNMP,用于外部监视SYSMAN,供Enterprise Manager使用本章知识点回顾了解Oracle数据库管理工具安

20、装:OUI数据库创建和升级:DBCA、DBUA发送即席SQL:SQL*Plus、SQL Developer备份:RMAN、Oracle Secure Backup网络管理:Oracle Net Manager、Oracle Net Configuration Assistant加载和卸载数据的实用程序: Data Pump、SQL*Loader管理:Oracle Enterprise Manager、Database Control、Grid Control规划Oracle数据库的安装硬件要求磁盘空间主存交换空间临时空间图形终端操作系统要求认证的版本必须的包内核设置OFA:适当的Oracle

21、Base目录使用OUI安装Oracle软件使用适当的操作系统用户设置必须的环境变量(Linux、Unix)提供对root用户账户的访问(Linux、Unix)执行交换式或无提示安装使用Database Configuration Assistant 创建数据库可用使用DBCA或SQL*Plus命令行创建数据库DBCA可以基于保存的模板创建数据库DBCA和SQL*Plus命令可以删除数据库在创建数据库之前,必须首先创建实例对于在创建时未选中的任何选项,可以再以后予以添加实例管理本章学习内容设置数据库初始化参数描述启动和关闭数据库时的多个阶段使用警报日志和跟踪文件使用数据字典和动态性能视图练习3-

22、1 查询和设置初始化参数本练习将使用SQL*Plus或SQL Developer来管理初始化参数。以用户SYS的身份(具有SYSDBA权限)连接到数据库(必须处于打开状态)。使用操作系统身份验证或口令文件身份验证。显示所有基础参数,检查它们已被设置了适当的值,还是使用默认值。SELECT name,value,isdefault FROM v$parameter WHERE isbasic=TRUE ORDER BY name;读者应该对具有默认值的基本参数研究一番,看默认值是否合适。实际上,应该考虑所有的基本参数。将PROCESSES参数更改为200。这是一个静态参数,意味着其值不能在内存中

23、更改并立即生效。必须在静态pfile中设置它,或者如果使用spfile,可以通过指定“scope=spfile”然后重启数据库进行设置。ALTER SYSTEM SET processes=200; -静态参数 执行报错ALTER SYSTEM SET processes=200 scope=SPFILE; -需要重启数据库使其生效重新运行步骤(3)的查询。注意PROCESSES和SESSIONS的新值。PROCESSES限制允许连接到实例的的操作系统进程数量,SESSION限制会话数量。这些数字是相关的,因为每个会话后需要进程。SESSION的默认值从PROCESSES派生出来,因此,如果S

24、ESSIONS采用默认值,那么此时将有一个新值。为会话更改NLS_LANGUAGE参数的值。选择需要的主流语言(Oracle支持多种语言:截止到目前,支持67种语言),当必须使用英文单词指定语言(例如,使用German,而非Deutsch)。ALTER SESSION SET nls_language=German;通过查询系统日期确认更改已经生效。SELECT to_char(SYSDATE,day) FROM dual;查询结果如下:用户可能需要使用另一个ALTER SESSION 命令,将会话语言改回以前的语言,否则在要准备处理的会话正使用的语言的错误信息。更改OPTIMIZER_MOD

25、E参数,当仅将作用域限制为运行中的实例,不要更新参数文件。本练习启用了被启用的基于规则的优化器(可用于测试一些旧代码)ALTER SYSTEM SET optimizer_mode = RULE SCOPE=MEMORY;确认更改已经生效,但没有写到参数文件中SELECT VALUE FROM V$PARAMETER WHERE NAME = optimizer_modeUNIONSELECT VALUE FROM V$SPPARAMETER WHERE NAME = optimizer_mode;查询结果如下:在运行的实例中,将OPTIMIZER_MODE恢复为标准值ALTER SYSTEM

26、 SET optimizer_mode = ALL_ROWS SCOPE = MEMORY;练习3-2 启动和关闭数据库这个练习使用SQL*Plus启动一个实例并打开一个数据库,然后使用Database Control将其关闭。如果数据库已经处于打开状态,则以其它顺序执行,注意,在windows系统中,需要确认运行了数据库对应的Windows服务。其名称的格式为OracleServiceSID,其中的SID为实例名称。以拥有ORACLE_HOME的操作系统组成员的身份登录计算机,并为ORACLE_HOME、PATH和ORACLE_SID合理设置环境变量。检查数据库侦听器的状态,如有必要,将其启

27、动。在操作系统命令指示窗口中输入如下命令:lsnrctl statuslsnrctl start检查Database Control控制台的状态。如有必要,将其启动。在操作系统命令提示窗口中输入如下命令:emctl status dbconsoleemctl start dbconsole使用/nolog 开关启动SQL*Plus,已阻止将立即出现的登录提示。sqlplus /nolog使用操作系统身份验证,以SYS的身份连接数据库。connect / as sysdba只启动实例。然后查询V$INSTANCE视图并检查其STATUS列。注意实例的状态是启动“STARTED”startup n

28、omount;select status from v$instance;加载数据库并查询实例状态。现在数据库已被实例进行了“加载 mount”。alter database mount;select status from v$instance;打开数据库alter database open;通过查询V$INSTANCE确认已经打开了数据库。数据库现在的状态应该为“OPEN”select status from v$instance;通过浏览器了解到Database Control控制台。主机名和端口将显示在步骤(3)中emctl status dbconsole命令的输出结果中。URL将

29、类似于https:/localhost:port/em,端口号一般为1158.以SYS身份,使用创建数据库时选择的口令登录,并从Connect AS下拉框中选择SYSDBA。在数据库主页中单击Shutdown按钮。练习3-3 使用警报日志在本练习中,将定位警报日志,并找到练习3-1中的参数更改条目和练习3-2中的启动和关闭条目。使用SQL*Plus或SQL Developer连接到数据库,找到BACKGROUND_DUMP_DEST参数的值。SELECT VALUE FROM v$parameter WHERE NAME = background_dump_dest;-告警日志存储路径查询结果

30、如下:注意,也可以在Database Control 中找到此值。定位到上面的目录打开警报日志。此文件称为alert_SID.log,其中SID是实例名。在文件结尾处,看到练习3-1中的ALTER SYSTEM命令以及启动和关闭结果。练习3-4 查询数据字典和动态性能视图 在本练习中,通过查询视图来了解数据库的物理结构。使用SQL*Plus或SQL Developer连接到数据库使用动态性能视图来确定哪些数据文件和表空间构成了数据库以及数据文件的大小。SELECT T.NAME, D.NAME, D.BYTES FROM V$TABLESPACE TJOIN V$DATAFILE D ON T

31、.TS# = D.TS#ORDER BY T.NAME;查询结果如下:从数据字典视图中获取同一信息。SELECT tablespace_name, file_name, BYTES FROM dba_data_files ORDER BY tablespace_name;查询结果如下:确定所有controlfile副本的位置。使用两种技术:SELECT * FROM v$controlfile;查询结果:SELECT VALUE FROM v$parameter WHERE NAME = control_files;查询结果:确定联机重做日志文件成员的位置及大小。由于大小是组的特性,并非成员的

32、特性,需要将两个视图连接在一起。SELECT m.group#, m.member, g.bytes/1024/1024 FROM v$log g JOIN v$logfile m ON m.group# = g.group# ORDER BY m.group#, m.member;查询结果:本章知识点回顾描述启动和关闭数据库时的多个阶段包括三个阶段:NOMOUNT、MOUNT和OPENNOMOUNT模式需要参数文件MOUNT模式需要控制文件OPEN模式需要数据文件和联机重做日志文件设置数据库初始化参数不结果关闭/启动过程,就不能更改静态参数文件可以针对实例或会话,以动态方式更改其它参数可以在

33、动态性能视图V$PARAMETER和V$SPPARAMETER中查看参数使用警报日志和跟踪文件警报日志是有关关键操作的连续消息流跟踪文件通常是由于在后台进程中遇到错误生成的使用数据字典和动态性能视图动态性能视图使用实例或控制文件的信息填充数据字典视图使用数据字典的信息填充动态性能视图汇聚实例整个生命周期的值,在启动时重新初始化数据字典视图显示关闭和启动期一直持久保存的信息数据字典视图和动态性能视图都通过同义词来发布配置Oracle网络环境本章学习内容配置和管理Oracle网络使用Oracle共享服务器体系结构练习4-1 配置Oracle Net 在本练习中,将使用图形化工具和命令行工具来创建一

34、个完整的Oracle Net环境。由此,读者可以看出在Windows和Linux系统中的区别。创建Oracle Net配置文件使用的目录,并设置指向此位置的TNS_ADMIN变量。目录的位置无关紧要,只要Oracle用户有权执行创建、读取和写入即可。在Linux系统中:mkdir /01/oracle/net -创建文件路径export TNS_ADMIN=/u01/oracle/net -设置环境变量 确保从现在开始,都从设置了变量的会话中执行所有工作。 在Windows系统中:mkdir d:oraclenet创建注册表项TNS_ADMIN,并将其设置为Oracle Home分支的注册表中

35、的字符串变量。这通常是: HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraDb11g_home1通过从操作系统提示符中运行TNSPING命令来检查是否读取了变量:tnsping orcl启动Net Manager。在Linux系统中,从操作系统提示符中运行netmgr。在Windows系统中,从“开始”菜单启动它。Net Manager 窗口最上面的行将显示Oracle Net 文件的位置。如果这不是新目录,则TNS_ADMIN变量设置的不正确。创建新侦听器:展开导航树的Local分支,突出显示Listeners项,然后点击“+”图标。输入侦听器名“NEWLIST

36、”,然后单击OK按钮。单击Add Address按钮。对于Address1,选择“TCP/IP”作为协议,并输入“”作为主机,“1521”作为端口。创建新服务名:突出显示导航树的Service Naming项,然后单击“+”图标。输入“NEW”作为新服务名,然后单击Next按钮。选择“TCP/IP”作为协议。然后单击Next按钮。输入“”作为主机名,“1521”作为端口,然后单击Next按钮输入“SERV1”作为服务名,然后单击Next按钮单击Finish按钮。如果尝试进行尝试,将显示失败通过单击File和Save Network Configuration菜单项保存配置。这将在TNS_ADM

37、IN目录中创建linstener.ora文件盒tnsname.ora文件。使用编辑器检查这两个文件。 LISTENER.ORA文件如下:# listener.ora Network Configuration File: D:oracleproduct10.2.0db_2NETWORKADMINlistener.ora# Generated by Oracle configuration tools.LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ChuPengfei-PC)(PORT = 1521) )TNSNAMES

38、.ora文件如下:ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ChuPengfei-PC)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )从操作系统提示符中使用lsnrctl start listener 启动监听器。在操作系统提示符中使用tnsping orcl尝试连接字符串。使用sqlplus / as sysdba,经操作系统省份验证连接到数据库,忽略任何监听器。为正在运行的实例设置service_names参数和l

39、ocal_listener参数(仅限于内存,不在参数文件中设置),并向新侦听器注册新服务名:ALTER SYSTEM SET service_names=sercvl SCOPE=MEMORY;ALTER SYSTEM SET local_listener=NEW SCOPE=MEMORY;ALTER SYSTEM REGISTER;在操作系统提示符下,使用lsnrctl services newlist,确认已向新侦听器注册了新服务。通过使用以下代码登录,确认新网络环境已生效:sqlplus system/oraclenew练习4-2 设置共享的服务器环境 本练习是【练习4-1】中步骤(21

40、)的延续,用户需要配置共享服务器。并证实其可以运行。设置dispatchers参数和share_servers参数,并注册到侦听器,命令如下:ALTER SYSTEM SET dispatchers=(protocol=tcp)(dispatchers=2) SCOPE=MEMORY;ALTER SYSTEM SET shared_servers=4 SCOPE=MEMORY;ALTER SYSTEM REGISTER;通过查询视图V$PROCESS,确认调度程序和共享服务器已经启动、查找名为S000、S001、S003、D000、D001的进程SELECT program FROM v$pr

41、ocess ORDER BY program;在操作系统提示窗口,确认调度程序已经注册到侦听器。lsnrctl services listener 通过侦听器进行了解,并确认通过共享服务器机制执行了连接。SELECT , FROM v$dispatcher d, v$shared_server s, v$circuit c WHERE d.paddr = c.dispatcher AND s.paddr = c.server;还原到最初的配置以清理环境。ALTER SYSTEM SET local_listener= SCOPE=MEMORY;ALTER SYSTEM SET service_

42、names= SCOPE=MEMORY;ALTER SYSTEM SET dispatchers= SCOPE=MEMORY;ALTER SYSTEM SET shared_servers=0 SCOPE=MEMORY;ALTER SYSTEM REGISTER;在操作系统提示窗口,使用命令停止侦听器lsnrctl stop listener取消设置TNS_ADMIN变量。在linux系统中,采用export TNS_ADMIN=;在Windows系统中,删除TNS_ADMIN注册表项。本章知识点回顾配置和管理Oracle网络服务器段文件是listener.ora和sqlnet.ora(可选)

43、客户端文件是tnsnames.ora和sqlnet.ora(可选)Oracle Net文件位于ORACLE_HOME/network/admin,或位于TNS_ADMIN变量指向的目录。名称解析可以本地执行(使用tnsnames.ora文件),也可以在中心位置执行(使用LDAP目录)Easy Connect不需要任何名称解析一个侦听器可以侦听多个数据库多个侦听器可以连接一个数据库可以使用静态(通过在listener.ora文件详细编写代码)或动态(由PMON进程更新侦听器)方法,向侦听器注册实例每个用户进程都存在到专用服务器进程的持久连接使用Oracle共享服务器体系结构用户进程连接到调度程序

44、,这些连接是持久的所有调度程序在一个公共队列上放入请求共享服务器进程从公共队列中取走请求每个调度程序都有自己的响应队列共享服务器进程将结果放在适当调度程序的响应队列上调度程序取出结果,将结果返回给适当的用户进程共享服务器至少配置两个实例参数:dispatchers和shared_servers。 Oracle存储结构本章学习内容了解表空间和数据文件创建和管理表空间管理表空间中的空间练习5-1 了解数据库的数据存储结构 在本练习中,将运行查询来了解数据库的物理结构。可以从SQL*Plus或Database Control,交互方式运行这些命令。但最好将它们保存为一个脚本(针对显示格式做适当的完善

45、,并执行特定站点的自定义),可针对任何数据库运行此脚本,这将作为普通空间使用报告的一部分。以用户SYSTEM的身份连接到数据库确定控制文件的名称和大小:SELECT NAME, block_size*file_size_blks bytes FROM v$controlfile;确定联机重做日志文件成员的名称和大小:SELECT MEMBER,bytes FROM v$log JOIN v$logfile USING(group#);确定数据文件和临时文件的名称和大小:SELECT v$datafile, NAME, BYTES FROM V$DATAFILEUNION ALLSELECT v

46、$tempfile, NAME, BYTES FROM V$TEMPFILE;练习5-2 创建、更改和删除表空间 在本练习中,将创建表空间并更改其特性。此后将启用和使用OMF。可以通过Database Control完成本练习,若如此,请在所有阶段单击Show SQL按钮以观察生成的SQL语句。以用户SYSTEM的身份连接到数据库在适当目录(Oracle所有者拥有写权限的任何目录)中创建表空间CREATE TABLESPACE mpac_lc DATAFILE D:oracleproduct10.2.0oradataorclmpac_lc.dbf SIZE 10mEXTENT MANAGEME

47、NT LOCAL AUTOALLOCATESEGMENT SPACE MANAGEMENT AUTO;此命令指定默认选项。这是一项良好的实践,使语句可以自我记录。在新的表空间创建表,并确定第一个区间的大小:CREATE TABLE lc_test(c1 DATE) TABLESPACE mpac_lc;SELECT owner, extent_id, bytes FROM dba_extents WHERE segment_name = LC_TEST; -创建表初始为1个段大小64k,8个块手动添加区间,并通过重复执行以下命令来观察每个新区间的大小,并重复执行区间大小的查询。注意区间大小的增

48、长点。(手动添加区间,每次增加一个区间)ALTER TABLE lc_test ALLOCATE EXTENT;SELECT owner, extent_id, bytes FROM dba_extents WHERE segment_name = LC_TEST;使表空间脱机,观察效果,再使其重新联机。ALTER TABLESPACE mpac_lc OFFLINE;SELECT * FROM lc_test;ORA-00376: file 7 cannot be read at this timeORA-01110: data file 7: D:ORACLEPRODUCT10.2.0OR

49、ADATAORCLMPAC_LC.DBFALTER TABLESPACE mpac_lc ONLINE;SELECT * FROM lc_test;将表空间设置为只读表空间,观察效果,再将其设置为读写。ALTER TABLESPACE mpac_lc READ ONLY;SELECT * FROM lc_test;INSERT INTO lc_test VALUES(SYSDATE);ORA-00372: file 7 cannot be modified at this timeORA-01110: data file 7: D:ORACLEPRODUCT10.2.0ORADATAORCLM

50、PAC_LC.DBFDROP TABLE lc_test;ALTER TABLESPACE mpac_lc READ WRITE;CREATE TABLE lc_test (c1 DATE) TABLESPACE mpac_lc;INSERT INTO lc_test VALUES(SYSDATE);启动OMF来创建数据库文件:ALTER SYSTEM SET db_create_file_dest=D:oracleproduct10.2.0oradata;使用最少的语法创建表空间CREATE TABLESPACE mpac_lc_idx;确定OMF文件的特性SELECT FILE_NAME,

51、 BYTES / 1024 / 1024, AUTOEXTENSIBLE, MAXBYTES / 1024 / 1024, INCREMENT_BY / 1024 / 1024 FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = MPAC_LC_IDX;文件名:D:ORACLEPRODUCT10.2.0ORADATAORCLDATAFILEO1_MF_MPAC_LC_9V83O8D0_.DBF数据文件默认的初始化大小为100MB、文件大小自动扩展、没有扩展上限(这里最大为32GB,与32位操作系统有关)、空间大小增长的步长为12.5KB调整OMF条件,使特性

52、更趋于合理。使用步骤(9)返回的系统生成的任何文件名:ALTER DATABASE DATAFILE D:ORACLEPRODUCT10.2.0ORADATAORCLDATAFILEO1_MF_MPAC_LC_9V83O8D0_.DBF RESIZE 200m;ALTER DATABASE DATAFILE D:ORACLEPRODUCT10.2.0ORADATAORCLDATAFILEO1_MF_MPAC_LC_9V83O8D0_.DBF AUTOEXTEND ON NEXT 100m MAXSIZE 2g;删除表空间,并使用操作系统命令予以确认:DROP TABLESPACE mpac_l

53、c_idx INCLUDING CONTENTS AND DATAFILES;DROP TABLESPACE mpac_lc_idx ; 在表空间中没有对象时,两者效果相同,否则第二条执行将报错。练习5-3 更改表空间特性 本练习将使用非默认的手动空间管理来创建表空间,以便在升级后模拟到自动段空间管理的转换:以用户SYSTEM的身份连接到数据库。使用手动段空间管理创建表空间。由于【练习5-2】中启用了OMF,所以不需要任何数据文件子句:CREATE TABLESPACE manualsegs SEGMENT SPACE MANAGEMENT MANUAL;使用手动技术确认新表空间的存在:SEL

54、ECT segment_space_management FROM dba_tablespaces WHERE tablespace_name = MANUALSEGS在表空间中创建表和索引:CREATE TABLE mantab (c1 NUMBER) TABLESPACE manualsegs ;CREATE INDEX mantabidx ON mantab(c1) TABLESPACE manualsegs ;将使用空闲列表(而非位图)来创建这些段。新建将使用自动段空间管理(默认方式)的表空间:CREATE TABLESPACE autosegs;将对象移入新表空间:ALTER TAB

55、LE mantab MOVE TABLESPACE autosegs;ALTER INDEX mantabidx REBUILD ONLINE TABLESPACE autosegs;确认对象位于正确的表空间中:SELECT segment_name,tablespace_name FROM dba_segments WHERE segment_name LIKE MANTAB%删除原先的表空:DROP TABLESPACE manualsegs INCLUDING CONTENTS AND DATAFILES;将新的表空间重命名为原来的名称。通常这是必需的,因为某些应用程序软件将检查表空间名

56、称:ALTER TABLESPACE autosegs RENAME TO manualsegs;通过删除表空间进行清理,首先使用以下命令:DROP TABLESPACE manualsegs;ORA-01549: tablespace not empty, use INCLUDING CONTENTS option由于表空间非空,将引发错误,应对此进行修正:DROP TABLESPACE manualsegs INCLUDING CONTENTS AND DATAFILES;TIPS 自动段管理和手动段管理的区别TIPS 本地区间管理和xxx 的区别本章知识点回顾了解表空间和数据文件一个表空

57、间可能是多个数据文件一个表空间可包含多个段一个段是一个或多个区间一个区间是位于一个数据文件的多个连续的块Oracle块是数据库的基本I/O单元创建和管理表空间SMALLFILE表空间可以有多个数据文件,但BIGFILE表空间只能有一个数据文件默认方式下,表空间采用本地区间管理和自动段空间管理的方式。但统一区间大小并非默认设置。OMF数据文件自动命名,开始为100MB,可以自动拓展,没有上限除非指定了INCLUDING CONTENTS 子句,否则包含段的表空间无法删除可将表空间设置为联机或脱机,设置为读写或只读表空间可以存储三类对象:永久对象、临时对象或撤销段管理表空间中的空间本地区间管理使用

58、每个数据文件中的位图来跟踪区间分配创建表空间时,UNIFORM SIZE子句强制所有的区间采用相同的大小AUTOALLOCATE 子句让Oracle确定下一区间的大小,Oracle将根据分配给段的区间数进行确定。自动段空间管理使用位图跟踪区间每个块中的可用空间可将表空间从字典区间管理转换为本地区间管理,但不能讲空闲段管理转换为自动管理。Oracle安全性本章学习内容创建和管理数据库用户账户授予和撤销权限创建和管理角色创建和管理配置文件实现数据库安全和最小权限原则使用标准数据库审核练习6-1 创建用户 在本练习中,将创建一些用户,本章其余练习将使用这些用户。假设有一个名为STOREDATA的永久

59、表空间和一个名为TEMP的临时表空间。如果这些都不存在,请予以创建,或使用其它任何适当的表空间。使用SQL*Plus,以具有充足权限(如SYSTEM或SYS)的用户身份连接到数据库。创建三个用户:CREATE USER sales IDENTIFIED BY sales DEFAULT TABLESPACE storedata PASSWORD EXPIRE; -首次登录需要从新设置密码CREATE USER webapp IDENTIFIED BY oracle DEFAULT TABLESPACE storedata QUOTA UNLIMITED ON storedata; -限制表空间

60、使用大小CREATE USER accounts IDENTIFIED BY oracle;练习6-2 授予直接权限 在本练习中,将为【练习6-1】中创建的用户赋予一些权限,并证明这些权限已经生效。使用SQL*Plus,以用户SYSTEM的身份连接到数据库。为用户SALES授予CREATE SESSION权限。GRANT CREATE SESSION TO sales;打开另一个SQL*Plus会话,以SALES的身份连接。此次登陆将会成功SQL connect sales/oracle以SALES的身份,尝试创建表:CREATE TABLE t1(c1 DATE);ORA-01031: in

温馨提示

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

评论

0/150

提交评论