版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle11g数据库管理与开发基础教程
授课教师:职务:第1章建立Oracle数据库环境
课程描述本章介绍Oracle数据库产品版本、体系结构、Oracle数据库服务器和客户端软件的安装、数据库的创建以及OracleNet的配置方法,初步建立起Oracle数据库环境。
本章知识点Oracle数据库体系结构创建Oracle数据库OracleNet配置1.1OracleDatabase11g数据库产品
Oracle数据库是市面上最为流行的关系型数据库产品之一,它支持面向对象和XML功能,广泛支持目前流行的操作系统平台,如各种Unix、Linux操作系统,以及MicrosoftWindows(32位和64位版本),并且在各种操作系统下的操作和界面基本一致。OracleDatabase11g安装类型OracleDatabase11g提供以下四种安装类型:
企业版:提供Oracle数据库产品的全部功能,适用于联机事务处理和数据仓库中高性能、高可用性和高安全性要求环境,能够满足关键任务应用程序需求;标准版:适用于工作组和部门级,以及中小规模企业应用。它提供关系数据库管理核心服务和选项,以及构造关键业务应用所需的功能,如RAC等,它自身提供了完整的集群和存储管理功能;标准版1:适用于工作组、部门或Web应用,以单服务器环境提供关系数据库管理核心服务;个人版:仅用于Windows操作系统,它安装的软件与企业版相同,但只支持单用户开发和部署环境。1.2Oracle数据库体系结构
Oracle数据库服务器主要包含以下元素:
安装在计算机上的Oracle数据库系统管理软件:Oracle数据库软件的安装路径被称作Oracle主目录;Oracle实例:由安装在计算机上的Oracle数据库软件创建。实例由内存结构(SGA)和后台进程组成;数据库:Oracle实例创建的磁盘上一系列物理文件的集合,它们存储用户数据、元数据和控制结构;服务器进程:数据库服务器上为连接用户创建的进程,用于实现用户进程和Oracle数据库实例之间的通信,解释和执行调用的SQL语句,检索和返回结果;OracleNet:通信组件,它使客户端应用程序与Oracle数据库通过网络进行通信。Oracle数据库中的其它文件除以上三种Oracle数据库文件之外,Oracle数据库管理系统在管理数据库时还使用其它一些辅助文件,其中包括:
参数文件:记录Oracle数据库的初始化参数设置,如实例使用的内存量、控制文件的数量及其存储路径等。它相当于实例的属性文件,实例启动时首先打开并读取它;口令文件:用于存储被授予SYSDBA、SYSOPER和SYSASM权限的数据库用户及口令,以便在数据库还未打开时用于验证具有这些特殊权限的数据库管理员的身份;警告日志文件:这是一个文本文件,其名称是alertdb_name.log(db_name是数据库名),它相当于一个数据库的“编年体”日志,按照时间的先后顺序完整记录从数据库创建开始,直到删除之前发生的重大事项,如可能出现的内部错误或警告,数据库的启动与关闭操作,表空间的创建、联机和脱机操作等信息;1.2.1Oracle数据库物理存储结构从物理存储来看,Oracle数据库的存储结构由以下三种文件组成:
数据文件:存储表和索引数据,以及排序和散列等操作的中间结果。一个数据文件只能属于一个数据库,而一个数据库可以包含一个或多个数据文件;控制文件:Oracle为管理数据库的状态而维护的一个文件,它记录数据库的物理存储结构和其他控制信息,如数据库名称、创建数据库的时间戳、组成数据库的各个数据文件和重做日志文件的存储路径及名称、系统的检查点信息等;重做日志文件:存储数据库的重做日志信息,记录数据库所产生的所有变化信息,以便在实例或者介质失败时,可以用重做日志恢复数据库。Oracle数据库中的其它文件跟踪文件:提供调试数据,其中包含大量的诊断信息。跟踪文件分为两种:一种是通过DBMS_MONITOR(Oracle预定义包)启用跟踪产生的用户请求跟踪文件,DBA用它可以诊断系统性能;另一种是发生内部错误时自动产生的。我们在通过OracleSupport请求解决遇到的严重错误时,需要上传这种跟踪文件。跟踪文件的存储路径由user_dump_dest、background_dump_dest和core_dump_dest三个初始化参数指定,它们分别存储专用服务器进程产生的跟踪文件、共享服务器进程和后台进程产生的跟踪文件、以及发生严重错误时产生的跟踪文件。1.2.2Oracle数据库逻辑存储结构Oracle数据库使用一组逻辑存储结构管理数据文件所组成的物理存储空间,其逻辑结构包括:
表空间:它位于逻辑存储结构的顶层,用于存储数据库中的所有数据,表空间内的数据被物理存放在数据文件中,一个表空间可以包含一个或多个数据文件;段:用于存储和隔离不同数据库对象的数据。Oracle数据库中的段分为表段、索引段、回滚段和临时段四种;区:Oracle数据库内存储空间的最小分配单位。每个区必须是一段连续的存储空间,它可以小到只有一个数据块,也可以大到2GB的空间;数据块:是Oracle数据库的I/O单位,也就是说,在读写Oracle数据库中的数据时,每次读写的数据量至少为一个数据块大小。Oracle数据库支持的数据块大小包括2KB、4KB、8KB、16KB和32KB等。物理存储结构与逻辑存储结构间的关系Oracle数据库物理存储结构和逻辑存储结构间的关系如右图所示:
一个Oracle数据库可以包含多个表空间,一个表空间可以包含一个或多个数据文件,在一个表空间内可以存储一个或多个段;每个段中包含一个或多个区,每个区由一个或多个数据块组成;向段分配数据文件内的空闲空间时是以区为单位;Oracle数据块是操作系统I/O块的整数倍。一个表空间内的所有数据文件只能使用同样的块尺寸。。1.2.3Oracle数据库实例Oracle数据库实例实现数据库管理系统(DBMS)的功能,每个实例只能管理一个Oracle数据库,但一个Oracle数据库可以由一个实例或多个实例(集群环境下)管理。Oracle实例由内存结构(SGA,系统全局区)和后台进程组成。实例启动时会向操作系统申请内存,并启动其后台进程。每个Oracle实例都用一个很大的内存区域SGA来缓存数据,这样可以减少磁盘物理I/O次数,提高系统性能。而Oracle数据库实例的后台进程则是操作系统进程或线程,它们共同实现对Oracle数据库的管理功能。
实例内存结构Oracle数据库实例内存结构(SGA)主要由以下区域构成:
固定SGA:相当于SGA的“自启”区域,Oracle用这个区域来查找SGA中的其他区域;数据缓冲区缓存:用于缓存读自或写入磁盘的数据。由于Oracle数据库除标准块(如8KB)之外,还允许使用其他四种非标准块(2KB、4KB、16KB和32KB),所以数据缓冲区缓存也分为标准块缓冲区和非标准块缓冲区;重做日志缓冲区:服务器进程把执行数据修改过程中产生的重做日志写入重做日志缓冲区,然后由日志写入进程把日志缓冲区内的重做日志写入磁盘上的联机重做日志文件,以记录Oracle数据库上所做到所有修改;实例内存结构共享池:共享池对SQL语句的执行性能有很大影响,它又分为字典缓存、库缓存和服务器结果缓存等几个主要子区域;大型池:大型池是一个可选内存区域,用于分配不适用于在共享池内分配的大块内存,如RMAN备份所需的缓冲区、语句并行执行所使用的缓冲区等;Java池:用于存储与所有会话相关的Java代码和Java虚拟机(JVM)内的数据;流池:OracleStreams是Oracle提供的一个组件,它允许在不同数据库和应用程序之间共享数据。流池专门为OracleStreams组件所使用,用于缓存流进程在数据库间共享数据所使用的队列消息。影响实例内存分配的初始化参数初始化参数作用memory_target设置Oracle系统可用的最大内存量。其值不为零时,Oracle在运行过程中将根据需要增大或减小SGA和PGA的值,实现内存的自动管理memory_max_target可指定给memory_target的最大值。如果该参数未设置,实例启动时将把它设置为与memory_target相同的值sga_target其值不为零时,Oracle将实行SGA内存的自动管理,实现对以下内存区域的自动分配:标准块的默认池(DB_CACHE_SIZE);共享池(SHARED_POOL_SIZE);大型池(LARGE_POOL_SIZE);Java池(JAVA_POOL_SIZE);流池(STREAMS_POOL_SIZE)。sga_max_size指出实例中SGA可用的最大内存量。如果该参数未设置,而memory_target或memory_max_target参数已设置,实例将把sga_max_size设置为二者中值较大的一个实例后台进程实例的后台进程共同实现对Oracle数据库的管理功能,每个后台进程只完成一项单一的任务,主要后台进程包括:数据库写入进程(DBWR):负责将SGA数据库缓冲区缓存中的脏数据块写入数据文件。DBWR在下面条件下执行写入操作:服务器进程找不到足够数量的可用干净缓冲区,或者数据库系统执行检查点时。一个实例可启动的DBWR数量由初始化参数DB_WRITER_PROCESSES指定;日志写入进程(LGWR):负责把日志缓冲区内的重做日志写入联机重做日志文件;归档进程(ARCH):发生日志文件切换时,如果数据库运行在归档模式下,归档进程将把填写过的联机重做日志文件复制到指定位置进行归档;实例后台进程检查点进程(CKPT):Oracle实例会会定期启动检查点进程,它把检查点信息写入控制文件和数据文件头部,并通知DBWn进程把脏数据块写入数据文件。DBWn进程的运行又会启动LGWR进程将重做日志缓冲区内的内容写入重做日志文件,这样就完全同步了数据文件、日志文件和控制文件的内容;进程监视进程(PMON):其主要作用包括:(1)监视其他后台进程、服务器进程和调度进程的运行情况。当它们异常中断时,重启这些进程或者终止实例的运行。(2)在用户进程异常中断后,负责清理数据库缓冲区缓存,释放用户进程锁定的资源。(3)向正在运行的监听注册数据库实例。如果监听没有运行,PMON则定期查询监听是否启动以注册实例;实例后台进程系统监视进程(SMON):SMON负责大量系统级的清理工作,其中包括:(1)实例启动时,如果需要,则执行实例恢复。(2)清理不再使用的临时段。(3)合并字典管理表空间内相邻的空闲区。1.2.4连接模式与服务器进程服务器进程负责解释和运行客户端应用程序调用的SQL语句、PL/SQL块,必要时将数据从数据文件读入到SGA的数据库缓冲区缓存。Oracle数据库中的服务器进程可以为以下两种:
专用服务器进程:Oracle服务器上为每个用户连接启动一个专用服务器进程,在该连接持续期间专门为其提供服务。当用户进程结束后,该服务器进程也随之退出;共享服务器进程:在共享服务器模式下,实例启动时会根据初始化参数shared_servers和dispatchers的设置启动一定数量的共享服务器进程和调度进程。调度进程指定空闲的共享服务器进程处理用户请求。每个共享服务器进程在不同时间可以服务于不同的用户进程,所以共享模式适合于事务短而频繁的联机事务处理(OLTP)系统。1.3安装Oracle数据库服务器软件建立和配置Oracle数据库服务器包括以下三步:安装Oracle数据库服务器软件——使用OUI安装软件;创建Oracle数据库——使用DBCA或者手工创建;配置OracleNet——使用NetCA或NetManager。在调用通用安装程序(OUI)安装Oracle数据库软件时,也可以选择让其创建数据库,这时在软件安装后它会自动调用DBCA创建数据库,并调用NetCA配置网络。1.4创建Oracle数据库创建Oracle数据库可以调用DBCA创建,也可以执行Oracle实用程序和SQL语句,以手工方式创建。DBCA创建数据库时,实际上它首先以向导方式让用户进行选择和输入创建数据库所需的信息,之后与手工创建数据库一样,再执行Oracle实用程序和SQL语句创建数据库。DBCA具有以下功能:创建数据库;配置数据库;删除数据库;生成创建数据库的脚本代码;管理数据库模板。DBCA生成的创建数据库脚本程序按照教材操作后,DBCA生成的创建数据库脚本文件如下:文件名作用init.ora初始化参数文件orcl.bat总控程序。它创建所需目录、设置环境变量、创建Oracle实例,并启动SQL*Plus,执行orcl.sql脚本文件orcl.sql创建口令文件,并依次执行下面各个SQL脚本文件。它相当于SQL脚本文件总控程序CreateDB.sql启动实例,创建数据库CreateDBFiles.sql为数据库创建USERS表空间,并将它设置为数据库的默认表空间CreateDBCatalog.sql创建数据字典等lockAccount.sql锁定sys和system之外的其他所有数据库帐户postDBCreation.sql重新编译数据库中的所有无效对象,创建spfile,并重新启动数据库1.初始化参数文件初始化参数文件相当于实例的属性文件,实例启动时需要打开它。DBCA运行时,让用户输入或者选择的一些初始化参数值,并以此建立文本格式初始化参数文件init.ora。该文件以“名=值”对的形式列出初始化参数及其取值。如:db_domain=db_name=orcl
############################################FileConfiguration###########################################control_files=("d:\oracle\oradata\orcl\control01.ctl","d:\oracle\oradata\orcl\control02.ctl")初始化参数文件内,以#开头的行为注释行。2.数据库创建总控文件orcl.batDBCA生成的这个批处理文件是创建Oracle的总控程序,其作用为:执行操作系统命令mkdir.exe,创建所需的文件目录;执行set命令设置ORACLE_SID和PATH环境变量;执行Oracle实用程序oradim.exe创建实例,设置实例的启动方式;启动SQL*Plus,执行orcl.sql脚本文件。3.数据库创建SQL脚本文件orcl.sqlDBCA生成的这个sql脚本文件是创建Oracle数据库的SQL脚本文件,其作用为:执行SQL*Plus命令ACCEPT、PROMPT,让用户输入sys和system用户的口令,并把它们保存在SQL*Plus环境变量中;执行Oracle实用程序orapwd.exe为数据库创建口令文件,用于保存具有SYSDBA、SYSOPER和SYSASM三种特殊权限的用户帐户名及口令;执行DBCA创建的其他SQL脚本文件(后面将逐个介绍其功能)。4.创建数据库脚本文件createDB.sqlDBCA生成的这个sql脚本文件的主要作用包括:以SYSDBA身份连接Oracle实例;执行SQL*Plus命令startup,把已经创建的Oracle实例启动到NOMOUNT状态;执行SQL语句CREATEDATABASE创建Oracle数据库。5.创建表空间脚本CreateDBFiles.sqlDBCA生成的这个sql脚本文件的主要作用包括:以SYSDBA身份连接Oracle实例;执行SQL语句CREATETABLESPACE,为已经创建的数据库添加一个表空间USERS;执行SQL语句ALTERDATABASEDEFAULTTABLESPACE,将users表空间设置为数据库的默认表空间。6.创建数据字典脚本文件CreateDBCatalog.sqlDBCA生成的这个sql脚本文件的主要作用包括:以SYSDBA身份连接Oracle实例;执行OUI安装Oracle数据库软件时复制的SQL脚本文件为数据库创建数据字典;以SYSTEM用户连接Oracle实例;执行OUI安装Oracle数据库软件时复制的SQL脚本文件pupbld.sql和hlpbld.sql,以创建生成用户概要文件的表和相关过程,并构建SQL*Plus的帮助系统。。7.锁定帐户脚本文件lockAccount.sql
DBCA生成的这个sql脚本文件的主要作用是:执行一个PL/SQL语句块,锁定sys和system之外的所有其他用户帐户。8.数据库创建后处理脚本文件postDBCreation.sqlDBCA生成的这个sql脚本文件的主要作用是:以sysdba身份连接数据库;重新编译数据库内的无效对象;再次以sysdba身份连接数据库;执行SQL语句CREATESPFILE,从文本格式初始化参数文件init.ora创建二进制格式服务器参数文件spfile;关闭数据库;以sysdba身份连接数据库,再次启动数据库(它将默认使用刚创建的spfile)。启动数据库打开和关闭数据库需要具有SYSDBA或SYSOPER管理权限。Oracle数据库从关闭到打开要经历如下几个状态:关闭(Close):数据库实例和所有数据库文件均已关闭;已启动(Started,也就是未装载,Nomount):进入这个状态后,实例已启动,并且打开了数据库的初始化参数文件;装载(Mount):打开数据库的控制文件;打开(Open):打开数据库的数据文件和日志文件。启动数据库打开数据库可使用的工具包括SQL*Plus、RecoveryManager、OracleEnterpriseManager等。在SQL*Plus下,使用SQL*Plus的startup命令可以把数据库从close状态启动到其他三种状态,如:SQL>startupnomountSQL>startupmountSQL>startupopen而当实例已启动之后,就不能再使用STARTUP命令改变数据库的状态,而只能使用SQL语句ALTERDATABASE把数据库改变到下一个状态。如:SQL>ALTERDATABASEMOUNT;SQL>ALTERDATABASEOPEN;关闭数据库在SQL*Plus中使用SHUTDOWN命令关闭数据库,该命令有以下四个选项,它们分别对应于四种关闭方式:NORMAL:正常关闭;TRANSACTIONAL:事务关闭;IMMEDIATE:立即关闭;ABORT:异常关闭。关闭数据库——正常关闭执行SHUTDOWNNORMAL命令后,Oracle实例将:禁止新建连接;等待当前所有已连接用户主动断开之后再关闭数据库。如果当前用户不主动断开连接,他们仍可继续执行数据库操作,但这会导致shutdown命令因超时而执行失败。关闭数据库——事务关闭执行SHUTDOWNTRANSACTIONAL命令后,Oracle实例将:禁止新建连接;禁止已连接用户启动新的事务,但会等待已启动事务执行完成,然后断开用户连接,关闭数据库。所以,只要所有连接用户结束他们的当前事务,该命令即可成功关闭数据库。关闭数据库——立即关闭执行SHUTDOWNIMMEDIATE命令后,Oracle实例将:禁止新建连接;禁止已连接用户启动新的事务,当前未完成的事务被立即回滚,然后断开用户连接,关闭数据库。所以,该命令关闭数据库的速度比前两种更快。以上三种关闭方式中,用户事务都能完成(要么提交,要么回滚),在关闭数据库之前还会执行检查点,所以可以确保所关闭的数据库处于一致状态,下次启动时不需要做实例恢复。因此,这三种关闭方式也被称作一致性关闭。关闭数据库——异常关闭执行SHUTDOWNABORT命令后,将立即中止数据库实例的运行来关闭数据库,所以它将:禁止新建连接;禁止已连接用户启动新的事务,当前已连接用户正在执行的SQL语句被立即中止,不回滚也不提交用户尚未提交的事务,也不执行检查点。以这种方式关闭数据库就像系统停电一样,立即中止Oracle数据库的运行。因此,这种方式关闭的数据库处于不一致状态,下次启动时需要做实例恢复。1.5Oracle
Net配置OracleNet负责建立客户端应用程序与Oracle数据库服务器之间的连接,实现二者之间的信息交换。
配置内容:服务器端需要配置监听,客户端需要选择命名方法,以及配置本地命名服务;配置工具:无论是客户端还是服务器端,OracleNet的配置工具均为NetManager或NetCA;配置文件:无论是客户端还是服务器端,OracleNet的配置信息均存储在文本格式的配置文件中,它们的存储路径是%Oracle_Home%\Network\Admin,服务器端的配置文件是listener.ora,客户端命名方法配置文件是sqlnet.ora,本地命名配置文件是tnsnames.ora。Oracle
Net——服务器端监听配置监听的作用就像是在数据库实例处理程序和客户端之间建立桥梁,桥梁建立起来之后,其作用就完成了,再去等待其他新的客户端连接请求。监听配置主要包含两方面内容:监听位置:指出监听程序在指定的网络地址上监听数据库服务的传入连接请求。此配置为必配项;数据库服务:指出监听程序为其接收连接请求的数据库服务,也就是在监听上注册Oracle数据库服务。做此配置后,监听启动时直接注册指定的数据库服务,这种注册称作静态服务注册。该配置为选项,如未做此配置,实例在启动或运行过程中,由后台进程PMON自动查找监听进程进行服务注册。如果未查找到,PMON还会定期(每隔1分钟)查询,进行注册。这称作动态服务注册。Oracle
Net——监听控制监听配置后,可以使用监听控制(ListenerControl)程序lsnrctl.exe管理监听。它可以启动、停止、重载监听,也能够查询监听状态,以及当前注册的数据库服务。执行监听控制程序的方法有两种,第一种是:lsnrctl命令[监听名称]另一种是先启动lsnrctl,然后在其命令行下输入各种命令。如:LSNRCTL>startlistenerlsnrctl支持的命令包括:start、stop、reload、status、services、exit或quit。Oracle
Net——客户端命名方法选择客户端应用程序连接Oracle数据库时,需要把相关信息(如监听地址、连接的数据库服务、连接用户名和密码等)传递给服务器。客户端命名方法决定传递这些信息所使用的连接字符串的格式。OracleNet支持的客户端命名方法包括:EZCONNECT:简易连接命名。选择该方法后,不需再做其他配置即可连接Oracle数据库。其连接字符串格式为:CONNECT用户名/口令@主机名或IP:端口/数据库服务名TNSNAMES:本地命名;HOSTNAME:主机命名;LDAP:目录命名;NIS:网络信息服务等。Oracle
Net——本地命名配置选择TNSNAMES命名方法后,客户端需要建立网络服务名,把其对应的数据库监听地址信息、数据库服务名等写入本名命名配置文件中(TNSNAMES.ORA)。客户端在连接时指出网络服务名即可通过本地命名配置文件解析出所要连接数据库的相关信息(如监听地址、连接的数据库服务等)。采用本地命名方法时,其连接字符串的格式为:CONNECT用户名/口令@网络服务名建立网络服务名之后,执行tnsping.exe可以测试客户端与数据库服务器之间网络的连通性:tnsping网络服务名第2章常用Oracle管理工具课程描述本章介绍Oracle提供的常用数据库工具软件的配置和使用方法:SQL*Plus、SQLDeveloper、OracleEnterpriseManager。
本章知识点SQL*Plus工具的使用方法;SQLDeveloper配置与使用;OracleEnterpriseManager的配置与使用。2.1SQL*Plus
SQL*Plus是最常用的Oracle数据库管理和操作工具之一。这一命令行界面的查询工具有其自己的命令和环境,用它可执行:SQL*Plus命令;SQL语句;PL/SQL语句块。2.1.1SQL*Plus的启动和关闭SQL*Plus命令的语法格式为:sqlplus[[<option>][logon][<start>]]
其中,option指出其启动方式,其有效选项包括:-Help:显示SQL*Plus程序的使用帮助信息;-Version:列出当前所用SQL*Plus的版本信息;-Silent:以哑模式启动和运行SQL*Plus。这种模式下,SQL*Plus不显示提示信息和说明性内容,只显示用户输入及其执行结果。所以哑模式适合在其他应用程序中调用SQL*Plus。
2.1.1SQL*Plus的启动和关闭Logon部分指出登录相关的信息,其格式为:{{用户名[/口令]|/}[@连接标识符]}[AS{SYSOPER|SYSDBA}]|/NOLOG这部分说明启动SQL*Plus时是否连接数据库,/nolog指出只启动SQL*Plus,不连接数据库。如果需要连接,身份认证可以采用数据库认证(提供用户名和口令)或操作系统认证(/,不需要提供用户名和口令)两种方法。AS子句指出是以普通用户身份连接,还是特殊管理权限身份连接。2.1.1SQL*Plus的启动和关闭start参数指出SQL*Plus启动后执行的脚本文件名及其参数,其语法格式为:@{url地址|脚本文件名[.扩展名]}[参数...]所执行的脚本文件可以是本地主机上的文件,也可以是远程Web服务器上的脚本文件,脚本文件扩展名可以任意指定,默认时是.SQL。2.1.1SQL*Plus的启动和关闭关闭SQL*Plus可以采用以下两种方法:异常关闭:直接关闭SQL*Plus窗口,或者由于其他原因导致SQL*Plus与Oracle数据库服务器之间的连接异常中断。异常关闭时,未完成的事务默认会被Oracle实例回滚;正常关闭:执行SQL*Plus命令exit关闭。正常关闭时,未完成事务的结束方式(被提交还是回滚)由SQL*Plus环境参数EXITCOMMIT的值决定,其值为ON时,事务被提交,这是默认设置;其值为OFF时,则未提交的事务则被回滚。SQL*Plus环境参数由SET命令设置。2.1.2SQL*Plus变量与参数配置
在SQL*Plus下可以定义变量、设置参数,参数改变当前会话的环境设置等,而变量则分为SQL*Plus预定义变量(记录SQL*Plus所调用的编辑器、当前连接用户、连接标识符等)和用户变量,用它们保存一个数值。
执行define命令即可查看SQL*Plus变量的当前设置。用“define变量名=值”的形式可以定义用户变量。在用户变量使用之后。用“undefine变量名”可以释放该变量。SQL*Plus参数由set命令设置,它们能够改变SQL*Plus当前会话的环境设置,影响SQL*Plus的输出格式。
SQL*Plus变量和参数设置只影响当前会话,这些设置在SQL*Plus重新启动后失效。为了避免每次重新设置,可以使用站点配置文件或用户配置文件保存这些设置,SQL*Plus连接后自动运行这些文件。2.1.3编辑执行命令在SQL*Plus中可以编辑执行的内容分为以下三类:
SQL语句:在输入行结尾输入分号或者在新行上输入/即可结束编辑并执行。在新行上输入句点或者直接回车可以结束编辑,但不执行已输入的SQL语句;PL/SQL块:编辑PL/SQL块时,在新行上输入/即可结束编辑并执行。而在新行上输入句点则只结束编辑,但不执行已输入的PL/SQL语句块;SQL*Plus命令:输入之后直接回车,即可执行。用SQL*Plus的host命令可以在SQL*Plus环境下执行操作系统命令。在输入执行以上三类中,SQL*Plus将把前两类保留在其开辟的SQL缓冲区内,直到输入新的SQL语句或PL/SQL语句块,SQL缓冲区才得到刷新。2.2SQLDeveloperSQLDeveloper的运行需要Java工具包的支持。如果您的计算机没有安装JDK,则可以从Oracle网站免费下载包含JDK的SQLDeveloper。使用它可以执行以下操作:
浏览、创建、编辑和删除数据库对象;运行SQL语句和脚本文件;编辑和调试PL/SQL代码;处理和导出数据。2.2SQLDeveloper使用SQLDeveloper时,首先必须建立与数据库的连接。与SQL*Plus不同,SQLDeveloper不但可以连接Oracle数据库,而且还可以连接MySQL、MicrosoftSQLServer、SybaseAdaptiveServer和MicrosoftAccess等数据库。建立连接后即可管理数据库对象,或者使用SQL工作表执行SQL语句、PL/SQL块和SQL*Plus命令,生成语句的跟踪信息、解释计划、以及优化指导等。
2.3Oracle企业管理器OEM(OracleEnterpriseManager,Oracle企业管理器)是Oracle数据库的主要管理工具,它以一个HTTP服务器方式为用户提供基于Web界面的管理工具。使用OEM不必编写任何语句和脚本即可执行管理任务,如创建模式对象、管理用户安全、管理数据库内存和存储、备份和恢复数据库、导入和导出数据等,还可以查看数据库的性能和状态。OEM有两个版本:管理单实例数据库的DatabaseControl版本,以及可以管理整个企业范围内多个数据库、应用服务器的GridControl版本。2.3.1配置DatabaseControlOEMDatabaseControl的配置有两种方法:自动配置和手工配置。用DBCA创建数据库时,可选择“配置EnterpriseManager”自动配置OEMDatabaseControl。也可以在创建数据库,并配置OracleNet后,用emca(EnterpriseManagerConfigurationAssistant,企业管理器配置助手)配置DatabaseControl。emca配置DatabaseControl分为两个步骤:创建EM资料档案库;配置DatabaseControl。2.3.1配置DatabaseControl1.创建EM资料档案库执行下面命令创建EM资料档案库:emca-reposcreate2.配置DatabaseControl创建EM资料档案库之后,需配置DatabaseControl:emca-configdbcontroldbemca执行时,会要求输入数据库SID、监听端口、SYS和SYSMAN及DBSNMP用户的口令。sysman用于登录GridControl,DBSNMP用户则主要为DatabaseControl的管理代理用于监视和管理数据库。DatabaseControl配置之后,会在操作系统控制面板的服务下添加一项服务:OracleDBConsoleSID。2.3.2启动和停止DatabaseControl使用控制面板可以启动和停止DatabaseControl。除此之外,还可以用Oracle实用程序emctl控制DatabaseControl的运行,或检查其当前状态。emctl的命令行语法格式是:
emctl命令
dbconsole其命令可为:status:查询DatabaseControl当前的运行状态;start:启动DatabaseControl;stop:停止DatabaseControl的运行。OEM启动后,即可在浏览器内输入以下URL地址访问它:https://主机名:端口/em/2.3.3DatabaseControl功能概述DatabaseControl的功能主要功能包括:
启动和关闭数据库;显示资源使用情况,生成性能诊断报告,已经进行性能分析;管理备份和恢复操作;管理数据库存储,管理用户、权限和角色等;查看和管理数据库模式对象;数据导入/导出操作,传输表空间、克隆数据库、管理复制和高级队列等;管理软件补丁,克隆Oracle主目录,管理主机配置。第3章静态数据字典与动态性能视图课程描述数据字典存储Oracle数据库的元数据,掌握它们能更好地了解和管理Oracle数据库。动态性能视图记录数据库的运行状况,了解它们有助于查找性能瓶颈,从而为改善数据库系统的性能提供依据。
本章知识点静态数据字典的作用;常用数据字典;动态性能视图的作用;常用动态性能视图。3.1静态数据字典数据字典是Oracle数据库管理系统的核心,它存储整个Oracle数据库的所有数据定义信息,如数据库的物理存储结构和逻辑存储结构,存储空间的分配使用情况,数据库内的对象及其约束,以及用户、角色和权限设置等。数据字典分为以下两种对象类型:基表:大多以加密形式存储,用户不应直接访问;用户访问视图:它们汇总数据字典基表内的信息,以更可读的方式提供给用户使用。
SYS用户拥有所有数据字典基表和用户访问视图,为了便于访问,Oracle为大部分视图创建了同名的public同义词。数据字典存储在system表空间内。3.1.1三组常用数据字典视图大多数数据字典视图被分为名称前缀不同的以下三组,每组视图所检索到的信息类似
:USER_:用户视图。只能检索当前用户所拥有的对象;ALL_:扩展用户视图,可检索用户所拥有以及其有权访问的对象信息;DBA_:系统管理员视图,整个数据库的全局视图,它包含所有用户的所有模式对象信息。3.1.1三组常用数据字典视图这三组试图所提供的信息量可用下图表达:3.1.2其他常用特殊数据字典视图dictionary和dict_columns:前者列出所有数据字典视图的名称及其描述,后者列出每个数据字典视图中各列的名称及其描述;global_name:列出数据库的全局名;product_component_version:列出当前数据库各组件产品的版本和状态信息;Dual:一个特殊表,它只有一列DUMMY和一行数据,该行的列值是X。dual表常用在没有目标表的SELECT语句,用于计算表达式的值,并返回单个计算结果。3.2动态性能视图
Oracle数据库运行过程中维护了一套动态性能视图,用于记录数据库的当前活动,管理员在进行会话管理、备份操作和性能调优时必须要使用它们。这些视图之所以被称之为动态性能视图,是因为在实例运行和数据库使用过程中,它们的内容不断地更新,而且其内容也主要与性能有关。3.2动态性能视图与动态性能视图相关的对象分为以下三种:基表:名称前缀为X$。它们不存储在数据库中,而是构建在Oracle实例的内存结构内,所以又被称作虚拟表。普通用户不能直接访问X$表;视图:基于X$表创建的动态性能视图,它们的名称前缀是V_$,又被称作V$视图。只有sys用户才能访问该视图。动态性能视图的结构定义及其基表中的数据都不能由用户修改,因此动态性能视图又被称作固定表;同义词:Oracle为V$视图创建了public同义词,这些同义词的名称前缀为V$。数据库管理员和其他用户应该通过这些同义词访问V$视图,而不是直接访问V_$对象。3.2.1动态性能视图的创建和填充创建数据字典脚本文件catalog.sql中包含创建动态性能视图的相关SQL语句。动态性能视图中填充的数据依赖于实例和数据库的运行状态。当实例启动(而不一定等到数据库打开)后,那些从内存读取信息的V$视图即得到填充和更新,如V$INSTANCE、V$SGA和V$BGPROCESS等。而需要从磁盘读取信息的V$视图则需要等待数据库装载甚至打开之后才能访问,如V$DATAFILE、V$TEMPFILE等。填充到动态性能视图的数据,在实例关闭时被清空。3.2.2常用动态性能视图从动态性能视图v$fixed_table中可以查询到Oracle所有的动态性能视图以及X$基表的名称。OracleDatabase11g所提供的常用动态性能视图见教材中的表3-4。静态数据字典与动态性能视图比较第4章初始化参数文件与控制文件课程描述本章介绍Oracle数据库初始化参数文件及控制文件的作用和管理。
本章知识点初始化参数文件的作用及分类;初始化参数文件的创建;初始化参数的设置;控制文件的作用、结构和多路存储;控制文件的备份、恢复与重新创建。4.1初始化参数文件打开Oracle数据库要经过以下三个阶段:一、启动实例。这个阶段需要打开初始化参数文件;二、装载数据库。这一阶段要打开控制文件。如果任一个控制文件损坏或不存在,都将导致装载失败;三、打开数据库:打开数据库的所有联机数据文件和重做日志文件。只有这些文件均能正常打开,数据库才能进入打开状态,之后方可接收普通用户的访问请求。本章介绍前两阶段所打开的初始化参数文件和控制文件。4.1.1初始化参数初始化参数首先以“键=值”对的形式保存在初始化参数文件中。如:db_domain=''db_name='orcl'参数有多个取值时,各值之间用逗号分隔。如:control_files='D:\oracle\oradata\orcl\control01.ctl','D:\oracle\oradata\orcl\control02.ctl‘实例打开时,它读取这些参数值,组成实例的初始化参数。4.1.2初始化参数文件Oracle数据库初始化参数文件有两种:文本初始化参数文件(InitializationParameterFile),常被简称为pfile。文件名通常是init.ora或者initORACLE_SID.ora;服务器参数文件(ServerParameterFile),常被称作spfile。文件名是spfileORACLE_SID.ora。1.文本初始化参数文件文本初始化参数文件的具有以下特点:内容是纯文本格式,可以使用文本编辑器编辑修改;位于客户端,因此不同的管理员可能维护着不同的参数文件;Oracle实例只能读取而不能修改文本初始化参数文件的内容。使用文本初始化参数文件启动实例后,执行ALTERSYSTEM语句时只能修改当前实例的初始化参数,而不能修改文本初始化参数文件中的内容。2.服务器参数文件服务器参数文件具有以下特点:内容是二进制格式,所以无法用文本编辑器直接编辑,但DBA可以执行ALTERSYSTEM语句,让Oracle实例修改spfile中的参数值;一个实例只有一个服务器参数文件,该文件位于Oracle数据库服务器上。3.创建参数文件创建文本初始化参数文件:使用文本编辑器直接创建和编辑;调用SQL语句CREATEPFILE基于spfile或者实例的当前初始化参数设置创建。CREATEPFILE[=’pfile_name’]FROM{SPFILE[=’spfile_name’]|MEMORY};3.创建参数文件由于服务器参数文件是二进制格式,所以无法直接创建,而只能调用SQL语句CREATESPFILE创建。该语句可以从指定的pfile或实例的当前初始化参数设置创建spfile:CREATESPFILE[=’spfile_name’]FROM{PFILE[=’pfile_name’]|MEMORY};4.初始化参数文件搜索顺序实例启动时,如果未显式指定参数文件,它将优先查找和使用spfile,即先在初始化参数文件的默认路径内查找spfileORACLE_SID.ora,如果未找到,再在该路径内查找spfile.ora,如果这个文件也不存在,则接着在同样的默认路径内查找文本初始化参数文件initORACLE_SID.ora。4.1.3初始化参数设置根据在实例运行期间是否能修改当前实例的初始化参数值,可以将初始化参数分为以下两类:静态参数:这类参数在实例运行期间无法修改。它又可分为两小类:一是只读参数,它们的值在数据库创建之后就不能再修改,如DB_BLOCK_SIZE等。另一类是虽然无法修改当前实例的参数值,但可以修改初始化参数文件中的参数值,这些修改在实例重新启动后生效,如CONTROL_FILES等;动态参数两类:参数值在实例运行期间可以修改。动态参数也分为两类:会话级动态参数,如NLS_DATE_FORMAT,对它们的修改需调用ALTERSESSION语句。另一类是系统级动态参数,它们影响数据库和所有会话,这类参数的值只能调用ALTERSYSTEM语句修改,如SGA_TARGET。4.1.3初始化参数设置初始化参数的修改方法如下表所示:4.1.3初始化参数设置调用ALTERSYSTEM语句修改初始化参数时,其语法格式如下:ALTERSYSTEMSET参数名=参数值[,参数值…][SCOPE={SPFILE|MEMORY|BOTH}][DEFERRED];SCOPE选项说明是修改spfile还是当前实例的初始化参数,或者对二者同时修改。DEFERRED选项指出所做修改只影响此后所建立的用户会话,修改之前已建立的会话则不受其影响。4.1.3初始化参数设置ALTERSESSION语句设置会话级动态参数,其设置结果只影响当前用户会话,该语句的语法格式为:ALTERSESSIONSET参数名=参数值;SCOPE选项说明是修改spfile还是当前实例的初始化参数,或者对二者同时修改。DEFERRED选项指出所做修改只影响此后所建立的用户会话,修改之前已建立的会话则不受其影响。清除spfile中的初始化参数值调用ALTERSYSTEMRESET语句可以删除当前实例所用spfile中的参数设置。在数据库实例下次启动时,未设置的初始化参数将使用它们的默认值。该语句的语法格式是:ALTERSESSIONRESET参数[SCOPE=SPFILE];4.1.4查看初始化参数可以用以下方法查看初始化参数设置:打开初始化参数文件;查询动态性能视图。v$parameter显示当前用户会话中生效的初始化参数信息,v$spparameter显示spfile中的初始化参数信息,v$system_parameter显示实例中当前生效的初始化参数信息;SQL*Plus命令showparameter。4.2控制文件控制文件记录Oracle数据库的当前状态以及物理结构信息。如:数据库名称;数据库的表空间和数据文件信息;联机重做日志文件信息;当前日志序列号;检查点信息等。控制文件跟踪Oracle数据库物理结构的改变。每当管理员添加、删除或重命名数据文件或联机重做日志文件时,Oracle就会相应修改控制文件。4.2控制文件控制文件记录着如此众多的重要信息,但它是一个二进制文件,我们无法直接查看其内容,要了解这些信息,需要查看相应的动态性能视图。如:v$database:显示数据库的相关信息;v$tablespace:显示数据库的表空间信息;v$datafile、v$tempfile:显示数据库的数据文件和临时文件信息;v$log:显示数据库的重做日志文件组信息;v$logfile:显示数据库的重做日志文件信息;v$archived_log:显示归档日志文件信息。4.2.1控制文件结构控制文件在不同部分存储与数据库某个方面相关的一套记录,这些记录可以从动态性能视图V$CONTROLFILE_RECORD_SECTION中查询。控制文件中的这些记录分为以下两类:不可循环使用记录:这些记录存储有关数据库的关键信息,它们不可被覆盖。例如,有关表空间(tablespace)、数据文件(datafile)、联机重做日志文件(redolog)等方面的记录;可循环使用记录:这些记录在需要时可以被覆盖,如数据库的归档日志文件记录和RMAN备份记录等。当这部分记录槽填满之后,在插入新记录时可覆盖早期的记录。Oracle数据库中的初始化参数CONTROL_FILE_RECORD_KEEP_TIME指出可循环使用记录被覆盖之前必须保存的最少天数。如果插入新记录时,而现有记录又没有到期,Oracle将扩展控制文件,为其提供存储空间。4.2.2查询控制文件采用以下几种方式可以检索Oracle数据库的控制文件配置:用SQL*Plus命令显示control_files初始化参数;检索动态性能视图v$controlfile;检索动态性能视图v$parameter。4.2.3控制文件的多路存储鉴于控制文件的重要性,Oracle文档建议每个数据库至少应该有两个控制文件,并且应该将每个控制文件存储在不同的物理硬盘上。这样可以预防硬盘介质损坏而失去控制文件。控制文件多路存储后,在需要写入控制文件时,Oracle会同时写入CONTROL_FILES参数指定的所有控制文件,而在读取控制文件内容时则只读取CONTROL_FILES参数列出的第一个控制文件。数据库运行过程中,如果任何一个控制文件损坏,将导致实例异常中止。4.2.3控制文件的多路存储要增加Oracle数据库的控制文件,请按以下步骤添加:查看数据库当前控制文件设置;修改初始化参数control_files,增添新的控制文件;关闭数据库,之后用文件系统命令复制现有控制文件;启动数据库,让修改的初始化参数生效。因为CONTROL_FILES是静态参数,所以无法在实例运行期间直接修改。4.2.4控制文件的备份、恢复与重建执行ALTERDATABASEBACKUPCONTROLFILE语句备份控制文件。该语句有以下两种格式:ALTERDATABASEBACKUPCONTROLFILETO‘…';ALTERDATABASEBACKUPCONTROLFILETOTRACE;第一条语句实际上是复制现有控制文件,所以其产生的备份文件是二进制格式。第二条语句把控制文件备份到一个跟踪文件,它不是控制文件的副本,而是用于创建控制文件的SQL语句,它是文本格式。所产生的跟踪文件的具体存储路径和名称记录在数据库的日志警告文件内。4.2.4控制文件的备份、恢复与重建当Oracle数据库的一个或所有控制文件不可访问时,实例会立即关闭。要恢复控制文件,可分为以下两种情况:如果只是多路存储控制文件中的部分丢失或损坏,这时只需复制其他好的控制文件,或者修改初始化参数CONTROL_FILES,使其不再指向损坏的控制文件,就可以重新启动实例;如果所有控制文件均丢失或损坏,则必须使用控制文件备份恢复,或者重新创建新的控制文件。4.2.4控制文件的备份、恢复与重建如果数据库现有的控制文件全部损坏,或者是需要修改数据库名称时,可按以下步骤执行CREATECONTROLFILE命令重新创建控制文件:把实例启动到NOMOUNT状态,准备创建控制文件;调用CREATECONTROLFILE语句创建控制文件,并装载数据库;如果数据库处于不一致状态,执行RECOVERDATABASE命令恢复数据库;打开数据库;如果需要,再添加只读表空间的数据文件和临时文件。第5章重做日志管理课程描述不一致状态下的数据库需要做实例恢复或介质恢复,使数据库达到一致状态后才能打开。无论是做实例恢复,还是介质恢复,均需要用到Oracle数据库的重做日志。本章介绍Oracle数据库中重做日志的作用及管理。
本章知识点操作日志的作用;重做日志的写入过程;联机重做日志文件管理;归档重做日志文件管理。5.1重做日志的基本概念重做日志记录对数据库所做的所有修改,同时还保护还原数据。所以,如果重做日志得到完整保存,无论在数据库出现实例故障还是介质失败时,只要重新读取重做日志,把它们再次应用到相关的数据块中,即可重构对数据库所做的所有修改(包括还原段),将数据库恢复到故障前的状态。5.1.1重做日志的内容重做日志由重做记录(也被称作重做项)组成,重做记录又由一组修改矢量组成,每个修改矢量描述数据库中单个数据块上所发生的改变,它记录的信息包括:修改对应的SCN和时间戳;产生这些修改的事务标识号;事务提交时的SCN和时间戳(如果事务已提交);产生这些修改的操作类型;被修改数据段的名称和类型。5.1.2重做日志的相关概念1.重做日志缓冲区用户执行数据库操作时,服务器进程把重做记录写入SGA的重做日志缓冲区内进行缓存,之后再由Oracle数据库的后台进程日志写入进程(LGWR)把它们写入联机重做日志文件。这样做可以减少重做日志文件写入的物理I/O次数,提高系统的性能。当LGWR把重做记录从日志缓冲区写入联机重做日志文件后,服务器进程即可重复使用这部分日志缓冲区缓存重做记录。Oracle把重做日志缓冲区看作一个圆形可循环写入的区域。5.1.2重做日志的相关概念2.日志写入进程与联机重做日志文件LGWR在下面情况下把重做日志缓冲区内缓存的重做记录写入联机重做日志文件:用户提交事务时;联机重做日志切换时;LGWR上次写入3秒之后;重做日志缓冲区达到三分之一满,或者缓存的重做日志达到1MB时;DBWn把脏数据块写入数据文件之前。5.1.2重做日志的相关概念2.日志写入进程与联机重做日志文件每个数据库实例至少要有两组联机重做日志文件,以保证在一组文件处于归档操作时,有另一组文件可用于LGWR写入。鉴于联机重做日志文件的重要性,Oracle数据库也支持联机重做日志文件的多路存储。写入时,LGWR将同步写入联机重做日志文件组内的各个成员。只要一组重做日志内有一个成员可以正常写入,就不会影响Oracle数据库的运行。但当一组内所有成员文件全部损坏时,则会导致数据库实例关闭。。5.1.2重做日志的相关概念3.日志切换与日志序列号日志切换指LGWR停止写入一组联机重做日志文件,而开始写入下一组重做日志文件这一操作。Oracle数据库以循环方式依次使用各组重做日志文件。通常情况下,LGWR写满一组日志文件后发生日志切换。但管理员也可在需要时执行下面命令强制进行日志切换,或者设置ARCHIVE_LAG_TARGET参数要求实例定期进行日志切换:ALTERSYSTEMSWITCHLOGFILE;当日志切换到一组重做日志时,如果Oracle实例还没有完成对这组重做日志的归档操作,这将导致Oracle数据库挂起,等待该组重做日志归档完成后才能继续运行。5.1.2重做日志的相关概念3.日志切换与日志序列号发生日志切换时,Oracle实例赋给准备写入的重做日志组一新的日志序列号。归档进程在归档重做日志时会保留日志序列号。日志序列号惟一地标识联机和归档重做日志文件。Oracle在执行实例或介质恢复时,将按照日志序列号而不是日志文件名称判断需要使用哪个联机重做日志文件或归档重做日志文件恢复数据库。下面命令和SQL语句均可查看各组联机重做日志文件的日志序列号:archiveloglistSELECTgroup#,sequence#FROMv$log;
5.1.2重做日志的相关概念4.重做日志文件组的状态重做日志文件组的状态分为以下几种:ACTIVE:有效状态,指实例恢复时要用这组重做日志文件;CURRENT:当前状态,指LGWR当前正在写入这组日志文件;INACTIVRE:无效状态,实例恢复不再需要这组日志文件;CLEARING:说明执行ALTERDATABASECLEARLOGFILE语句后,系统正在清除重做日志文件中的内容;UNUSED:未使用过。新添加的重做日志文件组,或者被清空之后的重做日志文件组处于该状态。5.1.2重做日志的相关概念5.归档进程与归档重做日志文件Oracle数据库可以运行在ARCHIVELOG(归档)或NOARCHIVELOG(非归档)模式。二者的差别是日志切换后,原来填充的重做日志是否归档保存。非归档模式下没有完整保存Oracle数据库的所有重做日志,所以当出现介质故障时,数据库无法恢复到故障发生时的状态。要查看Oracle数据库的运行模式,可以使用SQL*Plus命令ARCHIVELOGLIST,也可以查询动态性能视图v$database的log_mode列。5.1.2重做日志的相关概念5.归档进程与归档重做日志文件Oracle数据库运行在归档模式时,发生日志切换后,归档进程将把填充过的联机重做日志文件复制到指定的一个或多个位置存储,为它们创建脱机副本,这一过程被称作归档,重做日志文件的这些脱机副本被称作归档重做日志文件。归档分为自动归档和手工归档两种。启用自动归档后,后台进程ARCn在日志切换后自动完成归档操作。采用手工归档时,需调用下面SQL语句完成归档:ALTERSYSTEMARCHIVELOGALL;ALTERSYSTEMARCHIVELOGNEXT;5.1.2重做日志的相关概念6.重做日志的从产生到归档的过程5.2管理联机重做日志文件组及成员查询Oracle数据库的动态性能视图可以了解重做日志文件的相关信息,与此相关的动态性能视图包括:v$log:记录与重做日志文件组相关的信息,如日志组的编号、成员数量、状态等;v$logfile:记录有关重做日志文件成员的信息,如日志成员的路径和名称、状态,以及所属日志组编号。1.规划重做日志需要考虑的因素在规划Oracle数据库重做日志时,需要考虑以下几个因素:联机日志文件多路存储;重做日志文件组数量;重做日志文件的大小;重做日志文件的块大小.2.添加重做日志文件组在创建数据库时LOGFILEGROUP子句至少已经创建了两组重做日志,在日后数据库运行过程中,如果需要可以使用ALTERDATABASE语句添加或删除重做日志文件组。ALTERDATABASEADDLOGFILE[GROUP4]('D:\oracle\oradata\orcl\redo04-1.log','E:\oracle\orcl\redo04-2.log')SIZE50MBLOCKSIZE512REUSE;3.添加重做日志文件成员添加重做日志文件成员时,也需调用ALTERDATABASE语句。例如,下面语句向第一组重做日志添加两个日志成员文件:ALTERDATABASEADDLOGFILEMEMBER'E:\oracle\orcl\redo01-2.log','E:\oracle\orcl\redo01-3.log'TOGROUP1;因为每组重做日志内的所有成员文件的大小必须保持一致,所以添加的重做日志成员要与组内现有的重做日志文件大小相同,因此不需要指定日志文件的大小。4.移动、重命名重做日志文件成员移动和重命名重做日志文件的操作步骤基本相同,它们是:关闭现有数据库;用操作系统命令移动或重命名日志文件;把数据库启动到mount状态,但不打开它;调用ALTERDATABASE语句,完成重命名操作;
ALTERDATABASERENAMEFILE‘原文件'TO‘目标文件';
打开数据库,以便执行正常操作.5.删除重做日志文件成员删除重做日志文件成员时,要保证它所在日志组的状态既不是CURRENT,也不是ACTIVE,并且所删除的这个日志文件不是其所在组中的最后一个日志文件。下面语句删除第1组中的一个重做日志成员,但它只是从数据库中删除,对应的操作系统文件仍然存在:ALTERDATABASEDROPLOGFILEMEMBER‘E:\Oracle\orcl\redo01-3.log';6.删除重做日志文件组删除重做日志文件组时,要考虑以下限制:一个实例至少需要两组重做日志文件;只有当重做日志文件组处于INACTIVE状态时才能删除;数据库启用归档模式后,在删除之前,要保证该组日志已归档。日志组是否归档完成,可以从v$log中查询其归档情况。下面语句删除前面创建的第4组重做日志:ALTERDATABASEDROPLOGFILEGROUP4;7.清空重做日志文件内容数据库打开期间,重做日志文件可能出现损坏,这样就无法归档而最终会导致数据库操作停止。在这种情况下,不用关闭数据库,执行下面语句即可重新初始化该文件,恢复数据库的操作:ALTERDATABASECLEARLOGFILEGROUP3;如果损坏的重做日志文件还没有归档,则可以在该语句中使用UNARCHIVED关键字,指出不需要归档,否则会导致语句执行失败:ALTERDATABASECLEARUNARCHIVEDLOGFILEGROUP4;5.3管理归档重做日志归档重做日志管理所涉及到的操作包括:设置Oracle数据库的归档日志位置;归档日志文件的命名方法;设置归档进程数量等。5.3.1设置归档位置Oracle可以将重做日志归档到一个或多个位置,归档位置既可是本地文件系统,数据库的快速恢复区,也可以是ASM磁盘组,或者甚至是远程Oracle数据库(备用数据库)。归档位置由以下两组初始化参数指定,但每次只能使用一组,而不能混合使用:LOG_ARCHIVE_DEST、LOG_ARCHIVE_DUPLEX_DEST:指定的归档位置只能是本地文件系统中的两个存储位置。例如;ALTERSYSTEMSETLOG_ARCHIVE_DEST='d:\oracle\oradata\archive';ALTERSYSTEMSETLOG_ARCHIVE_DUPLEX_DEST='F:\oracle\archive';5.3.1设置归档位置LOG_ARCHIVE_DEST_n:n的取值是1到31之间的整数。其中n取1~10之间的整数时,用于指定本地或远程归档位置,n取11~31之间的整数时,只能用于指定远程归档位置。使用LOG_ARCHIVE_DEST_n参数时,需要使用LOCATION或SERVICE关键字指定归档位置。例如:ALTERSYSTEMSETLOG_ARCHIVE_DEST_1='LOCATION=F:\oracle\archive';5.3.2设置归档日志文件命名格式设置归档日志文件命名格式的目的是为了保证ARCn在归档时能给每个文件一个唯一的名称,这是通过设置初始化参数log_archive_format来实现的。该参数的默认值是:ARC%S_%R.%T,这样可以保证各个归档日志文件名称的唯一性:%S:日志序列号;%R:重置日志编号(RESETLOGS);%T:线程编号。其中大写的S、R、T表示这三部分的数据长度是固定的,如果各部分对应的数据长度达不到指定长度,则在其前面填充0。如果使用小写,则不会把这三部分数据填充到固定长度。5.3.3调整归档进程数量初始化参数LOG_ARCHIVE_MAX_PROCESSES决定Oracle实例中启动的归档进程(ARCn)数量。在OracleDatabase11.2版本中,该参数的默认值是4,所以实例启动时会启动4个归档进程。该参数的有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年河南濮阳市范县度人教版第一册一年级数学阶段学情自测卷【附答案】
- 2025~2026学年安徽滁州市天长市苏教版三年级下册期末数学试卷【附答案】
- 2025-2026学年江苏省宜兴市初中历史七年级期末下册自测经典测试题(附答案)
- PHP架构师面试题及详细答案(企业真实版)
- Photoshop操作基础试题及详细答案
- 2025-2026学年湖北省十堰市初中历史七年级期末上册通关高频题(附答案)
- 钢结构高强螺栓终拧及扭矩检测方案
- 2026年初级井下采煤工《理论知识》考试真题及答案
- 木工理论知识考试试题(含答案)
- 骨筋膜室综合征术后创面渗血监测规范共识
- 2024年10月 财务管理学(00067)自考真题
- 2026全国广播电视播音员主持人资格考试(综合知识)历年参考题库含答案详解
- 2026 年冬季取暖防一氧化碳中毒课件
- 第7课《培养德智体美劳全面发展的社会主义建设者和接班人》课件
- 变电站舞动灾害应急演练脚本
- 2026年辅警考试时事政治练习题附答案
- 2025四川成都兴城投资集团有限公司招聘11人笔试历年典型考点题库附带答案详解
- 2026年中级注册安全工程师《建筑施工安全》押题宝典题库附答案详解AB卷
- 2025年股份制银行审计人员招聘考试真题(含答案)
- 汽车救援人员培训及考核规范
- 低钾血症诊治管理专家共识摘要2026
评论
0/150
提交评论