目录
初始化参数文件
文本初始化参数文件PFILE
文件示例参照之前的 数据库创建
在Windows操作系统中,默认的文本初始化参数文件名为init%ORACLE_SID%.ora,默认路径为%ORACLE_HOME%\database。%ORACLE_SID%表示当前的数据库实例名,%ORACLE_HOME表示Oracle数据库产品的安装目录。例如,如果数据库实例为orcl,Oracle数据库安装在D:盘,则文本初始化参数文件的绝对路径为D:\app\Administrator\product\11.2.0\dbhome_1\database\initorcl.ora
文本初始化参数文件中配置参数的格式为<参数名>/<参数值>对。如果一个参数名只接受一个参数值,则其定义格式如下:
<参数名> = <参数值>
如果一个参数名可以接受多个参数值,则其定义格式如下:
<参数名> = (<参数值> [, <参数值> …])
- 全局数据库名称
全局数据库名称包括用户自定义的本地数据库名称和数据库在网络结构中的位置信息。初始化参数DB_NAME定义了本地数据库名称,参数DB_DOMAIN定义了网络结构的域信息。它们结合在一起,可以在网络中唯一标识一个数据库:
DB_NAME = orcl
DB_DOMAIN = mydomain.com
//则全局数据库名称为orcl.mydomain.com
- 定义闪回恢复区
DB_RECOVERY_FILE_DEST:定义闪回恢复区的位置。可以是目录、文件系统或自动存储管理(ASM)磁盘组。
DB_RECOVERY_FILE_DEST_SIZE:指定闪回恢复区的最大字节数。只有DB_RECOVERY_FILE_DEST有效时才能指定此参数。 - 指定控制文件
使用初始化参数CONTROL_FILES可以为数据库指定控制文件名。当执行CREATE DATABASE创建数据库时,将创建CONTROL_FILES中指定的控制文件列表。
如果在初始化参数文件中没有CONTROL_FILES,则Oracle数据库使用默认的文件名来创建控制文件 - 指定数据块大小
使用初始化参数DB_BLOCK_SIZE可以指定数据库的标准数据块大小。数据块大小可以在SYSTEM表空间和其他表空间中被默认使用。通常,将DB_BLOCK_SIZE设置为4K或8K。 - 管理SGA
初始化参数SGA_MAX_SIZE可以指定SGA的最大内存数量。初始化参数SGA_TARGET用于指定SGA的实际大小,设置SGA_TARGET后,SGA的组件大小将被自动设置,包括SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、DB_CACHE_SIZE和STREAMS_POOL_SIZE等 - 设置最大进程数量
使用初始化参数PROCESSES决定了操作系统中可以连接到Oracle数据库的最大进程数量 - 指定还原空间(Undo Space)的管理方法
使用初始化参数UNDO_MANAGEMENT可以设置是否启动自动还原管理模式。在自动还原管理模式中,还原数据被保存在还原表空间中。默认情况下,UNDO_MANAGEMENT的值为MANUAL。
如果一个数据库实例启动了自动还原管理模式,则系统会选择一个还原表空间来存储还原数据。初始化参数UNDO_TABLESPACE用于指定当前实例的还原表空间
服务器参数文件SPFile
可以把SPFile看作是在Oracle数据库服务器上维护的初始化参数的容器,它是服务器端的初始化参数文件。在一个数据库实例运行过程中,如果SPFile中的初始化参数被修改,则需要关闭数据库实例再启动后才能生效
在数据库实例启动时,只能有一个初始化参数文件起作用。DBA可以在启动数据库实例时指定一个PFILE,否则数据库实例将在操作系统默认的位置上找到SPFile,并从中获取初始化参数设置
维护数据库实例
使用SHUTDOWN命令关闭数据库实例
正常关闭数据库实例
SHUTDOWN NORMAL
也可以不使用NORMAL参数,因为它是SHUTDOWN命令的默认参数
执行情况:
- 提交SHUTDOWN NORMAL命令后,Oracle数据库不再接受新的连接
- 数据库会一直等待当前连接到数据库的用户都断开连接后,再关闭数据库实例。因此,通常执行SHUTDOWN NORMAL命令都需要等待很长时间,一般不采用这种方式来关闭数据库实例
以事务处理方式关闭数据库实例
SHUTDOWN TRANSACTIONAL
在执行事务处理关闭时,数据库将不允许建立新的连接,也不允许开始新的事务。当所有事务都处理完成后,仍然连接到当前实例的客户端将被断开
事务(Transaction) :
包含一个或多个SQL语句的逻辑单元,事务中的SQL语句是一个完整的整体,它们要么被全部提交(Commit)执行,要么全部回滚(Roolback)撤销
立即关闭数据库实例
SHUTDOWN IMMEDIATE
在执行立即关闭过程中,数据库将不允许建立新的连接,也不允许开始新的事务。所有未提交的事务都会被执行回滚操作。对于比较复杂的事务,回滚操作可能持续很长时间,因此立即关闭操作的执行时间也许并不像名字中所描述的那么快。
系统不会等待所有在线用户断开连接,只要事务回滚完毕,就立即关闭数据库。
在下面的情况下,可以选择立即关闭数据库实例:
- 初始化自动备份。
- 如果电源将在比较长的时间内被切断。
- 如果数据库或者数据库应用程序发生异常,而管理员无法联系到用户退出登录或者用户无法退出登录。
中止关闭数据库实例
SHUTDOWN ABORT
如果数据库服务器的电源很快就要被切断,或者数据库实例启动时出现异常,则可以使用中止关闭方式关闭数据库
使用STARTUP命令启动数据库实例
启动数据库实例,装载并打开数据库
执行STARTUP命令,可以启动数据库实例,装载并打开数据库。使用此种方式启动数据库后,用户可以连接到数据库并执行数据访问操作
在执行STARTUP命令时,数据库将从默认位置读取服务器参数文件SPFILE。数据库首先查找spfile O R A C L E S I D . o r a , 然 后 是 s p f i l e . o r a , 如 果 都 没 有 找 到 , 则 查 找 文 本 初 始 化 参 数 文 件 i n i t ORACLE_SID.ora,然后是spfile.ora,如果都没有找到,则查找文本初始化参数文件init ORACLESID.ora,然后是spfile.ora,如果都没有找到,则查找文本初始化参数文件initORACLE_SID.ora。
以指定的初始化参数文件来启动实例
STARTUP PFILE =初始化参数文件
这里假定使用服务器初始化参数文件D:\app\Administrator\product\11.2.0\dbhome_1 \dbs\init.ora启动数据库实例。首先需要创建一个文本初始化参数文件,只包含SPFILE参数,用于指定非默认的服务器初始化参数文件
SPFILE =F:\app\Administrator\product\11.1.0\db_1\dbs\init.ora
将文件保存为D:\app\Administrator\product\11.2.0\dbhome_1\dbs\spf_init.ora,文件名和目录可以根据需要选择。
使用SYS用户以系统管理员(SYSDBA)身份连接到SQL Plus。如果数据库实例处于启动状态,可以使用SHUTDOWN命令将其关闭。然后执行下面的命令:
STARTUP PFILE = D:\app\Administrator\product\11.2.0\dbhome_1\dbs\spf_init.ora
启动数据库实例,但不装载数据库
STARTUP NOMOUNT
可以执行重建数据库或数据文件等操作。
启动数据库实例,装载数据库
STARTUP MOUNT
使用STARTUP MOUNT方式启动数据库实例可以执行数据库日志归档、数据库介质恢复、重定位数据文件和重做日志文件等操作
强制启动数据库实例
STARTUP FORCE
如果当前数据库实例无法正常关闭,而又要启动另外一个数据库实例,那么就需要使用强制关闭数据库实例的选项。STARTUP FORCE命令相当于先执行SHUTDOWN ABORT命令,然后再执行STARTUP命令
以限制模式启动数据库实例
STARTUP RESTRICT
在以下情形下需要以限制模式启动数据库实例:
- 执行数据导入或导出操作(此时不应该有其他普通用户访问数据库,以免导致数据不一致)。
- 使用SQL*Loader提取外部数据库中的数据。
- 需要暂时拒绝普通用户访问数据库。
- 进行数据库移植或者升级操作
在数据库启动时开始介质恢复
STARTUP RECOVER
如果需要执行介质恢复,则可以使用STARTUP RECOVER语句启动一个数据库实例,并自动启动恢复程序
使用ALTER DATABASE命令来改变启动模式
切换到MOUNT模式
ALTER DATABASE MOUNT
如果用户使用STARTUP NOMOUNT命令启动数据库实例,执行重建数据库和数据文件等任务。执行完成后,就需要装载数据库实例
切换到OPEN模式
ALTER DATABASE OPEN
如果用户使用STARTUP MOUNT命令启动数据库实例,执行数据库日志归档、数据库介质恢复、重定位数据文件和重做日志文件等操作。执行完成后,数据库实例仍处于关闭状态,就需要打开数据库实例
ALTER DATABASE OPEN READ ONLY
为了防止用户事务修改数据库中的数据,可以只读方式打开数据库