赞
踩
初始化参数文件是Oracle数据库启动时使用的配置文件,分显式和隐式两种,它包含了数据库实例的各种参数设置。初始化参数文件可以是PFILE(文本文件)或SPFILE(二进制文件),它们定义了数据库实例的行为、内存分配、并发处理、日志记录等方面的设置。
文本文件,使用操作系统编辑器修改,手动修改
更改将在下次启动时生效,只在实例启动时打开
默认位置为“$ORACLE_HOME/dbs”
从示例init.ora文件创建
由Oracle Universal Installer安装的示例
使用操作系统复制命令复制示例
由数据库SID唯一标识
cp init.ora $ORACLE_HOME/dbs/initdba01.ora
修改 “initsid.ora” 文件是更改 Oracle 数据库实例的初始化参数的方法之一。以下是修改过程的一般步骤:
找到 “initsid.ora” 文件:该文件通常位于 $ORACLE_HOME/dbs 目录中,其中 “sid” 是数据库实例的标识符。例如,如果实例名为 “ORCL”,则文件路径为 $ORACLE_HOME/dbs/initorcl.ora。
备份原始文件:在进行任何修改之前,强烈建议先备份原始的 “initsid.ora” 文件,以便在需要时进行恢复。
使用文本编辑器打开 “initsid.ora” 文件:可以使用任何文本编辑器(如记事本、Vi、Nano等)打开文件。
修改参数值:在打开的文件中,找到相应的参数行,并更改其值。参数行通常采用 “参数名=值” 的形式。
保存文件:在完成参数修改后,保存 “initsid.ora” 文件。
重启数据库实例:要使参数修改生效,需要重启对应的数据库实例。可以使用 SQL*Plus 或 Oracle Enterprise Manager 等工具,或者使用命令行执行 “shutdown” 和 “startup” 命令来重启实例。
注意,修改 “initsid.ora” 文件是一项敏感任务,错误的参数设置可能会导致数据库实例无法启动或运行异常。因此,在修改之前,请确保对各个参数的含义和取值范围有一定的了解,并仔细验证和测试修改的效果。
SPFILE是Oracle数据库系统中的一个服务器参数文件,
它类似于PFILE,但与PFILE不同的是SPFILE是一个二进制文件而非纯文本文件。
SPFILE中包含了数据库实例的配置和初始化参数。
- CREATE SPFILE = '$ORACLE_HOME/dbs/spfileDBA01.ora'
- FROM PFILE = '$ORACLE_HOME/dbs/initDBA01.ora';
位置
SPFILE- NAME:要创建的SPFILE
PFILE- NAME:创建SPFILE的PFILE
spfileSID.ora 文件无法直接编译,因为它是一个二进制文件。如果需要修改其中的参数值,应使用 ALTER SYSTEM 命令。
备份原始文件:在修改之前,请务必备份原始的 spfileSID.ora 文件,以便在需要时进行恢复。
使用 SQL*Plus 连接到数据库实例:打开命令行窗口,使用适当的凭据连接到目标数据库实例。
检查当前的 SPFILE 设置:使用以下命令检查当前正在使用的 SPFILE 设置:
SHOW PARAMETER spfile;
修改参数值:使用 ALTER SYSTEM 命令修改参数值。例如,要将 my_parameter 参数的值更改为 new_value,可以执行以下命令:
ALTER SYSTEM SET my_parameter='new_value' SCOPE=SPFILE;
保存修改:重新启动数据库实例,以便新的参数设置生效。
- SHUTDOWN IMMEDIATE;
- STARTUP;
Alter system set parameter=value <comment='text'> <deferred> <scope=memory|spfile|both> <sid='sid|*'>
注意,SPFILE 是一个二进制文件,直接编辑会导致文件损坏。因此,如果需要修改其中的参数值,请使用 ALTER SYSTEM 命令,并按照上述步骤进行操作。
1.SPFILE可以被RMAN备份(RMAN不能备份PFILEs);
2. 减少人为错误,SPFILE由服务器维护,在接受更改之前检查参数;
3.消除配置问题(如果您想从数据库启动Oracle,则无需使用本地PFILE远程机械);
4. 容易找到位置存储在一个集中位置。
SPFILE比PFILE好!
尽量用SPFILE
STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora
SPFILE = /database/stsrtup/spfileDBA.ora
数据库启动和关闭是功能强大的管理选项,仅限于具有管理员权限连接到Oracle数据库的用户。根据操作系统的不同,以下条件之一可以为用户建立管理员权限:
当您使用SYSDBA权限进行连接时,您处于SYS所拥有的模式中。当您以SYSOPER身份连接时,您处于公共模式中。SYSOPER权限区域是SYSDBA权限的子集(SYSDBA比SYSOPER牛*)。
startup
---------------------------------->
Control file opened for this instance
|
shutdown--------------------->nomount-------------->mount------------------------->open
| |
instance started All files opened as described by
the control file for this instance
<------------------------------------
shutdown
startup nomount
当Oracle数据库启动一个实例时,它会读取服务器参数文件(SPFILE)或初始化参数文件,以确定初始化参数的值。然后,它分配一个SGA,这是一个用于数据库信息的共享内存区域,并创建后台进程。此时,没有数据库与这些内存结构和进程相关联。
当实例启动时,数据库以有效的参数语法将所有显式参数设置写入日志日志。如果需要,您可以将日志文件调出来恢复,然后重新启动实例。
alter database mount;
实例挂载数据库以将数据库与该实例关联。要挂载数据库,实例找到数据库控制文件并打开它们。控制文件在用于启动实例的参数文件中的CONTROL_FILES初始化参数中指定。然后,Oracle数据库读取控制文件,以获得数据库的数据文件和重做日志文件的名称。
此时,数据库仍处于关闭状态,只有数据库管理员可以访问。数据库管理员可以在完成特定维护操作时保持数据库关闭状态。但是,该数据库还不能用于正常操作。
alter database open;
打开挂载的数据库使其可用于正常的数据库操作。任何有效的用户都可以连接到开放的数据库并访问其信息。通常,数据库管理员打开数据库以使其可供一般使用。
当您打开数据库时,Oracle数据库会打开在线数据文件(datafiles)和重做日志文件(redo log files)。如果在数据库之前关闭时表空间处于离线状态,那么在重新打开数据库时,表空间及其对应的数据文件仍将处于离线状态。
当您试图打开数据库时,如果其中任何一个数据文件或重做日志文件不存在,那么Oracle数据库将报错。在打开数据库之前,必须对任何损坏或丢失的文件的备份执行恢复。
启动实例并打开数据库
STARTUP
STARTUP PFILE=$ORACLE_HOME/dbs/initdb01.ora
STARTUP [FORCE] [RESTRICT] [NOMOUNT] [MIGRATE] [QUIET] [PFILE=<file_name>] [MOUNT [EXCLUSIVE] <database_name>x | OPEN <READ {ONLY | WRITE [RECOVER]} | RECOVER> <database_name>]
Oracle 数据库中 STARTUP 命令的各个选项进行解释:
STARTUP:启动数据库实例,默认情况下会尝试进行自动恢复和打开数据库。
FORCE(可选):强制启动数据库实例,忽略任何潜在的冲突或锁定。请谨慎使用该选项。
RESTRICT(可选):以受限模式启动数据库实例,只有具有 RESTRICTED SESSION 特权的用户可连接。这可以限制普通用户的访问权限,通常用于执行数据库维护任务。
NOMOUNT(可选):在不加载数据库实例的情况下启动实例。使用 NOMOUNT 选项,数据库实例只加载 SGA,并不打开或挂载数据库。
MIGRATE(可选):启动一个旧版本数据库实例,并自动将其升级到当前版本。该选项通常在升级数据库时使用。
QUIET(可选):以安静模式启动数据库实例,只输出最重要的消息。
PFILE=<file_name>(可选):指定使用指定的 pfile 参数文件来启动数据库实例。
MOUNT(可选):将数据库实例挂载到内存中,但不打开数据库。实例处于 “mounted” 状态,可以执行与数据文件和控制文件相关的操作。
EXCLUSIVE(可选):要求以独占模式挂载数据库实例。只有一个实例能够以独占模式挂载数据库。
<database_name>:要启动的数据库名称。
OPEN <READ {ONLY | WRITE [RECOVER]}>:打开数据库实例并指定访问权限。READ ONLY 以只读模式打开数据库,WRITE 以读写模式打开数据库,RECOVER 允许进行数据库恢复操作。
ALTER DATABASE db01 MOUNT;
ALTER DATABASE db01 OPEN READ OMLY;
使用STARTUP命令限制对数据库的访问(DB未启动):
STARTUP RESTRUCT
使用ALTER SYSTEM命令将实例置于受限模式(DB启动后):
ALTER SYSTEM ENABLE RESTRICTED SESSION
以只读的模式打开数据库
- STARTUP MOUNT
- ALTER DATABASE OPEN READ ONLY;
可用于:
执行查询
使用本地管理的表空间执行磁盘排序
将数据文件离线和在线,但不包括表空间
执行离线数据文件和表空间的恢复
关闭数据库时,Oracle将SGA中的所有数据库数据和恢复数据分别写入数据文件和重做日志文件中。接下来,Oracle数据库关闭所有在线数据文件和重做日志文件。(任何离线表空间的任何离线数据文件都已关闭。如果随后重新打开数据库,则脱机的表空间及其数据文件将分别保持脱机和关闭状态。)此时,数据库处于关闭状态,无法进行正常操作。关闭数据库后,控制文件保持打开状态,但仍然挂载。
关闭数据库后,Oracle数据库卸载数据库以解除与实例的关联。此时,实例保留在计算机的内存中。
卸载数据库后,Oracle数据库将关闭该数据库的控制文件。
数据库关闭的最后一步是关闭实例。当您关闭一个实例时,SGA将从内存中删除,后台进程将终止。
干净的关闭:
SHUTDOWN NORMAL
or
SHUTDOWN TRANSACTIONAL
or
SHUTDOWN IMMEDIATE(常用)
不干净的关闭:
SHUTDOWN ABORT(迫不得已)
or
Instance Failure
or
STARTUP FORCE
包含遇到的重要事件信息
用来解决问题
用于更好地管理数据库的日常基础
记录命令
记录重要事件的结果
用于日常操作信息
用于诊断数据库错误
记录任何后台进程检测到的错误
用于诊断和排除错误
由用户进程生成
可以由服务器进程生成吗
包含跟踪SQL语句的统计信息
包含用户错误消息
使用ALTER SESSION命令(建议):
ALTER SESSION SET SQL_TRACE = TRUE
执行DBMS程序:
dbms_system.SET_SQL_TRACE_IN_SESSION
设置初始化参数(不建议):
SQL_TRACE = TRUE
Background trace files------------->SID_processname_PID.trc
User trace files----------------------->SID_ora_PID.trc
列出创建数据库所需的先决条件。
使用Oracle database Configuration Assistant创建数据库
手动创建数据库
使用Oracle Managed Files创建数据库
1.规划数据库是管理数据库系统的第一步。
2.创建数据库。
3.使用Oracle数据迁移助手从较早版本的数据库迁移。
Oracle推荐的标准数据库架构布局
OFA包括三个主要规则:
建立一个目录结构,其中任何数据库文件都可以存储在任何磁盘资源上。
将具有不同行为的对象分离到不同的表空间中。
通过跨不同磁盘资源分离数据库组件来最大化数据库可靠性和性能。
Software
oracle_base
/product
/release_number
/bin
/dbs
/rdbms
/sqlplus
/admin
/inst_name
/pfile
Files
oradata/
db01/
system01.dbf
control01.ctl
redo0101.log
......
db02/
system01.dbf
control01.ctl
redo0101.log
......
要创建一个新数据库,必须具备以下条件
1.通过以下认证的特权帐户:
操作系统
密码文件
2.启动实例所需的足够内存
3.为规划的数据库提供足够的磁盘空间
身份验证方式
密码文件认证
使用password utility创建password file。
- $ orapwd file=$ORACLE_HOME/dbs/orapwU15
-
- password=admin entries=5
设置REMOTE LOGIN PASSWORDFILE=EXCLUSIVE in
初始化参数文件。
在密码文件中添加用户。
为每个用户分配适当的权限。
GRANT SYSDBA TO HR;
Oracle数据库可以通过以下方式创建:
图形用户界面
基于java的
由Oracle通用安装程序启动
可以作为独立应用程序使用
打开终端或命令提示符,并使用 dbca
命令启动 DBCA。
在 DBCA 的界面中,选择 “创建数据库” 选项并点击 “下一步”。
选择 “自定义数据库创建” 选项,并点击 “下一步”。
在 “数据库标识” 页面上,输入数据库的全局数据库名称和 SID (System Identifier)。选择合适的字符集和语种,并点击 “下一步”。
在 “系统类” 页面上,选择适合你的数据库类型和版本,并点击 “下一步”。
在 “数据库存储” 页面上,选择数据库的存储类型(例如文件系统或 ASM),并填写相关的存储选项。点击 “下一步”。
在 “管理选项” 页面上,选择是否启用自动管理,以及是否配置备份和恢复选项。点击 “下一步”。
在 “数据库信息” 页面上,输入管理员用户 (例如SYS) 的密码,并选择是否配置其他数据库的创建选项。点击 “下一步”。
在 “网络配置” 页面上,选择监听器的配置选项,并输入监听器的端口号。点击 “下一步”。
在 “创建选项” 页面上,确认你的数据库创建选项,并点击 “完成”。
DBCA 将开始创建数据库,并在完成后显示 “数据库创建完成” 的消息。
使用预定义的模板设置创建新模板
从现有数据库创建新模板删除数据库模板
为您的实例确定一个唯一的Oracle系统标识符(SID),打开命令窗口,设置ORACLE_SID环境变量。使用此命令窗口执行后续步骤。
ORACLE_SID用于将此实例与其他可能在同一主机上并发运行的Oracle数据库实例区分开来。ORACLE_SID的最大字符数为12,只允许输入字母和数字。在某些平台上,SID是区分大小写的。
注意:通常的做法是将SID设置为等于数据库名称。数据库名称的最大字符数为8个。要了解更多信息,请参见Oracle数据库参考中关于DB_NAME初始化参数的讨论。
例如,大多数平台必须设置“ORACLE_SID”和“ORACLE_HOME”。另外,建议将PATH变量设置为包含ORACLE_HOME/bin目录。在UNIX和Linux平台上,必须手动设置这些环境变量。在Windows平台上,OUI会自动在Windows注册表中为ORACLE_HOME和ORACLE_SID赋值。如果您没有在安装时创建数据库,那么OUI不会在注册表中设置ORACLE_SID,并且您必须在以后创建数据库时设置ORACLE_SID环境变量。
您必须通过身份验证并被授予适当的系统特权才能创建数据库。您可以通过以下方式验证管理员的权限:
在此步骤中,您将决定一种身份验证方法。
如果您选择使用密码文件进行认证,请参考“创建并维护密码文件”创建密码文件。如果您决定使用操作系统身份验证进行身份验证,请确保使用属于相应操作系统用户组的用户帐户登录到主机。例如,在UNIX和Linux平台上,这通常是dba用户组。在Windows操作系统下,安装Oracle软件的用户会被自动归入相应的用户组。
当Oracle实例启动时,它会读取一个初始化参数文件。该文件可以是一个文本文件(可以使用文本编辑器创建和修改),也可以是一个二进制文件(由数据库创建和动态修改)。首选的二进制文件称为服务器参数文件(spfile)。在这一步中,您将创建一个文本初始化参数文件。在后面的步骤中,将从文本文件创建服务器参数文件。
为方便起见,请使用默认文件名将初始化参数文件存储在Oracle数据库的默认位置。这样,在启动数据库时,就不需要指定STARTUP命令的PFILE子句,因为Oracle数据库会自动在默认位置查找初始化参数文件。
启动SQL*Plus并以SYSDBA系统权限连接到Oracle数据库实例。
使用密码文件进行认证,输入以下命令,并在提示时输入SYS密码:
- $ sqlplus /nolog
- SQL> CONNECT SYS AS SYSDBA
使用操作系统身份验证,输入如下命令:
- $ sqlplus /nolog
- SQL> CONNECT / AS SYSDBA
SQL*Plus输出以下消息:
Connected to an idle instance
服务器参数文件使您能够使用ALTER SYSTEM命令更改初始化参数,并在数据库关闭和启动期间持久化更改。从编辑过的文本初始化文件创建服务器参数文件。
下面的SQL*Plus命令从默认位置读取具有默认名称的文本初始化参数文件(PFILE),从文本初始化参数文件创建服务器参数文件(SPFILE),并将SPFILE写入具有默认SPFILE名称的默认位置。
CREATE SPFILE FROM PFILE;
如果不使用默认名称和位置,还可以为PFILE和SPFILE提供文件名和路径。
提示:服务器参数文件生效前,必须重启数据库。
注意:虽然此时创建服务器参数文件是可选的,但建议这样做。如果不创建服务器参数文件,则实例在启动时继续读取文本初始化参数文件。
重要提示:如果你使用的是oracle管理的文件,并且你的初始化参数文件不包含CONTROL_FILES参数,你必须创建一个服务器参数文件,这样数据库就可以保存它在create database语句中创建的控制文件的名称和位置。
在不挂载数据库的情况下启动实例。通常,您只能在创建数据库期间或在对数据库执行维护时执行此操作。使用带有NOMOUNT子句的sTARTUP命令。在本例中,由于初始化参数文件或服务器参数文件存储在默认位置,因此不需要指定PFILE子句:
STARTUP NOMOUNT
此时,分配实例内存并启动其进程。数据库本身还不存在。
要使数据库正常工作,需要为应用程序数据创建额外的表空间。下面的示例脚本创建了一些额外的表空间:
- CREATE TABLESPACE indx_dbs LOGGING
- DATAFILE '/u01/app/oracle/oradata/mynewdb/apps01.dbf'
- SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
- EXTENT MANAGEMENT LOCAL;
为索引创建一个表空间,独立于用户表空间(可选)
- CREATE TABLESPACE indx_tbs LOGGIN
- DATAFILE '/u01/app/oracle/oradata/mynewdb/indx01.dbf'
- SIZE 100M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
- EXTENT MANAGEMENT LOCAL;
程度管理本地;
运行构建数据字典视图、同义词和PL/SQL包所需的脚本,并支持SQL*Plus的正常功能:
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql
EXIT
@符号是运行SQL*Plus脚本的命令的简写。问号(?)是SQL*Plus变量,表示Oracle的主目录。下表包含脚本的描述:
步骤12:运行脚本安装附加选项(可选)
您可能需要运行其他脚本。运行的脚本由您选择使用或安装的功能和选项决定。Oracle数据库参考中描述了许多可用的脚本。
如果您计划安装其他Oracle产品来使用该数据库,请参阅这些产品的安装说明。有些产品要求您创建额外的数据字典表。通常,提供命令文件来创建这些表并将其加载到数据库数据字典中。
有关计划安装的特定产品的安装和管理说明,请参阅Oracle文档。
使用OMF简化了操作系统上的文件管理。
OMF是由Oracle服务器根据SQL命令创建和删除的。
OMF通过设置两个参数来建立:
最多五个位置。
在初始化参数文件中定义OMF参数。例子:
CREATEDATABASE 命令简化:
- @cddba01.sql
-
- > CREATE DATABASE dba01;
如果出现以下情况,创建数据库失败:
数据库包含:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。