Oracle架构之物理存储中各种文件详解

文章目录

  • 1 物理存储
    • 1.1 简介
    • 1.2 数据文件(data files)
      • 1.2.1 定义
      • 1.2.2 分类
        • 1.2.2.1 系统数据文件
        • 1.2.2.2 撤销数据文件
        • 1.2.2.3 用户数据文件
        • 1.2.2.4 临时数据文件
    • 1.3 控制文件(Control files)
      • 1.3.1 定义
      • 1.3.2 查看控制文件
      • 1.3.3 查看控制文件内容
      • 1.3.4 控制文件多路复用
      • 1.3.5 控制文件丢失的解决办法
      • 1.3.6 控制文件的备份与恢复
        • 1.3.6.1 使用 alter database backup controlfile 备份
        • 1.3.6.2 使用 rman 备份(推荐)
        • 1.3.6.3 使用 rman 恢复控制文件
      • 1.3.7 asmcmd复制报错
        • 1.3.7.1 问题引入
        • 1.3.7.2 解决办法
    • 1.4 服务器参数文件(Parameter files)
      • 1.4.1 查看服务器参数
      • 1.4.2 修改服务器参数
      • 1.4.3 参数文件及具体作用
    • 1.5 其他文件
      • 1.5.1 密码文件(Password files)
      • 1.5.2 警告文件
      • 1.5.3 跟踪文件(tracle files)​

1 物理存储

1.1 简介

逻辑存储结构是为了便于管理 Oracle 数据而定义的具有逻辑层次关系的抽象概念,不容易理解;但物理存储结构比较具体和直观,它用来描述 Oracle 数据在磁盘上的物理组成情况。
从大的角度来讲,Oracle 的数据在逻辑上存储在表空间中,而在物理上存储在表空间所包含的物理文件(即数据文件)中。

Oracle 数据库的物理存储结构由多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件和警告日志文件等,其中数据文件、控制文件、重做日志文件和参数文件是必须的,其他文件是可选的。

  • 参数文件:用于配置数据库的初始化参数
  • 控制文件:记录数据库的结构和状态信息
  • 数据文件:存储了实际的数据
  • 日志文件:记录了数据库的变更操作

数据库启动过程中,Oracle首先加载参数文件,然后读取控制文件,接着加载数据文件和日志文件
参数文件中的配置信息会影响到数据库实例的初始化过程,决定了数据库的初始参数值。控制文件记录了数据库的结构和状态信息,包括数据文件和日志文件的列表。数据文件存储了数据库中的实际数据,而日志文件记录了数据库的变更操作。
在数据库运行时,如果需要修改参数值,可以通过修改参数文件(PFILESPFILE)或使用ALTER SYSTEM语句来实现。对于控制文件、数据文件和日志文件的管理,可以使用Oracle提供的工具和命令进行备份、恢复、重建等操作。

1.2 数据文件(data files)

1.2.1 定义

数据文件是用于保存用户应用程序数据和 Oracle 系统内部数据的文件,这些文件在操作系统中就是普通的操作系统文件, Oracle 在创建表空间的同时会创建数据文件。

Oracle 数据库在逻辑上由表空间组成,每个表空间可以包含一个或多个数据文件,一个数据文件只能隶属于一个表空间,在创建表空间的同时, Oracle 会创建该表空间的数据文件。从 Oracle10g 开始,一个数据库至少需要两个数据文件,一个用于 SYSTEM 表空间,用于存储数据字典;一个用于 SYSAUX 表空间,用于存储数据字典的辅助数据。数据文件由 Oracle块组成,这是 Oracle 的 IO 基础单元Oracle 块要比操作系统块大,每个数据块有固定的大小,由数据库参数db_block_size 定义。数据文件有下列特征:一个数据文件仅与一个数据库联系;一个表空间由一个或多个数据文件组成。

在表空间中创建数据对象(如表、索引、簇等)时,用户是无法指定使用哪一个数据文件来进行存储的,只能由 Oracle 系统负责为数据对象选择具体的数据文件,并在其中分配物理存储空间。

数据文件通常存储在操作系统的文件系统中,如$ORACLE_HOME/dbs目录下的system01.dbf文件。为了提高性能和可靠性,可以将数据文件分散在不同的物理磁盘上(一个数据对象的数据可以全部存储在一个数据文件中,也可以分布存储在同一个表空间的多个数据文件中)。在读取数据时, Oracle 系统首先从数据文件中读取数据,并将数据存储在内存的高速数据缓冲区中。
如果用户要读取数据库中的某些数据,而请求的数据又不在内存的高速数据缓冲区中,则需要从相应的数据文件中读取数据并存储在缓冲区中。
当修改和插入数据时, Oracle 不会立即将数据写入数据文件,而是把这些数据保存在数据缓冲区中,然后由 Oracle 的后台进程 DBWR 决定如何将其写入相应的数据文件。这样的存取方式减少了磁盘的 I/O 操作,提高了系统的响应性能。

数据文件可以根据需要进行扩展和收缩,以适应数据库的存储需求。此外,还可以对数据文件进行备份和恢复,以保证数据的可靠性和完整性。

1.2.2 分类

常见的数据文件有:系统数据文件、撤销数据文件、用户数据文件、临时数据等类型

1.2.2.1 系统数据文件

用于存放特殊的用户数据和 Oracle 系统本身的数据,如用户建立的表名、列名及字段类型等,这些属于用户数据范畴,这些数据被存放在系统表空间所包含的数据文件中;
Oracle 系统内部的数据字典、系统表(如 dba_data_files、 dba_temp_files 等)中所存储的数据属于 Oracle 系统的内部数据,这些数据也存放在系统表空间所包含的数据文件中。
例如:SYSTEM01.DBF和SYSAUX01.DBF

1.2.2.2 撤销数据文件

撤销数据文件隶属于撤销表空间。如果修改 Oracle 数据库中的数据,那么就必须使用撤销段,撤销段用来临时存放修改前的旧数据,而撤销段通常存放在一个单独的撤销表空间中,这个撤销表空间所包含的数据文件就是撤销数据文件。
例如:UNDOTBS01.DBF

1.2.2.3 用户数据文件

用户数据文件用于存放用户应用系统的数据,这些数据包括与应用系统有关的所有相关信息,比如,上述TBSP 1.DBF和TBSP 2.DBF文件就是一个具体应用系统的两个数据文件。
例如:USERS01.DBFEXAMPLE01.DBFTBSP 1.DBFTBSP_ 2.DBF

1.2.2.4 临时数据文件

临时数据文件具有特殊性,但是从 Oracle 9i 以后,Oracle 将临时表空间所对应的临时数据文件与一般数据文件分开,要了解 Oracle 系统的临时数据文件信息,可以从 dba_temp_filesv$tempfile 数据字典中查询。

1.3 控制文件(Control files)

1.3.1 定义

控制文件是一个二进制文件,用于记录数据库的结构信息运行状态,控制文件用于实现数据恢复故障恢复

控制文件一般在 Oracle 系统安装时或创建数据库时自动创建,控制文件所存放的路径由服务器参数文件 spfileorcl.oracontrol_files 参数值来指定。由于控制文件存放有数据文件、日志文件等的相关信息,因此, Oracle 实例在启动时必须访问控制文件。只有控制文件正常,实例才能加载并打开数据库;但若控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,则实例无法正常启动。

Oracle 实例在正常启动时,系统首先要访问的是初始化参数文件 spfile,然后 Oracle 为系统全局区(SGA)分配内存。这时, Oracle 实例处于安装状态,并且控制文件处于打开状态;接下来 Oracle会自动读出控制文件 中的所有数据文件日志文件的信息,进而恢复数据库的一致性,并打开当前数据库中所有的数据文件和所有的日志文件以供用户访问。

1.3.2 查看控制文件

SQL> select * from v$controlfile;
SQL> show parameters control_files;

1.3.3 查看控制文件内容

控制文件的内容包括:

  • 数据库的名称、ID、创建的时间戳;
  • 表空间的名称;
  • 联机日志文件、数据文件的位置、名称;
  • 联机日志的 Sequence 号码;
  • 检查点的信息;
  • 撤销段的开始或结束;
  • 归档信息;
  • 备份信息

控制文件内容相关操作:

将控制文件转出为文本文件
alter database backup controlfile to trace as '/home/oracle/ctl001.txt';
Database altered.查看控制文件包含的记录片段
select type,record_size,records_total,records_used from v$controlfile_record_section;

1.3.4 控制文件多路复用

数据库的启动和正常运行都离不开控制文件,控制文件损坏将导致整个数据库损坏,数据库正常工作至少需要一个控制文件,一个数据库可以同时拥有多个控制文件,其中至少有一个是当前的控制文件,由于控制文件极其重要,生产库最少创建控制文件的两个以上副本,可以通过多路复用技术,将控制文件的副本创建到不同的磁盘上。这样,如果一个控制文件损坏了,可以自动使用另一个控制文件。
当数据库的物理结构发生改变时,Oracle会自动更新控制文件。
但控制文件并不是越多越好,因为当 Oracle 更新控制文件时,会将所有的控制文件全部进行更新,对数据库的性能会有一定的影响,读取时则仅读取第一个控制文件。
控制文件的位置和数量由初始化参数(control_files)决定。启动数据库时,Oracle 从初始化参数文件中获取控制文件的名字及位置,并打开控制文件,然后从控制文件中读取数据文件和重做日志文件的信息,最后打开数据库。数据库运行时,会更改控制文件。

增加控制文件的步骤如下:

  • 查看当前使用的控制文件:show parameter control_files
  • 修改参数文件
alter system set control_files = '+DATA/orcl/controlfile/current.260.1070471991',
'+BAK/orcl/controlfile/current.256.1070471991',
'+bak/ctl_files/control_bak.ctl'
scope = spfile sid = '*';
  • 重启数据库到 nomount 状态,复制所需的控制文件
    重启数据库到 nomount,利用已有的控制文件通过复制的方式生成第三个控制文件

1.3.5 控制文件丢失的解决办法

  • 控制文件部分丢失
    一个或多个控制文件丢失,至少有一个控制文件存在。比如,原来有 3 个控制文件,丢失一个导致数据库无法启动。解决方法如下:
    • 将已经存在的控制文件复制到目的路径并更改为正确的控制文件名称;
    • 修改 control_files 参数将丢失的控制文件去掉。
  • 控制文件版本不一致
    利用最新版本的控制文件替换旧的控制文件
    修改 control_files 参数
SQL> alter system set control_files = '+DATA/orcl/controlfile/current.260.1070471991', 
'+BAK/orcl/controlfile/control_file02.ctl', 
'+BAK/ctl_files/control_bak.ctl'
scope = spfile sid = '*';System altered.
  • 使用控制文件 +DATA/orcl/controlfile/current.260.1070471991 通过复制的方法生成另外两个控制文件
ASMCMD> cp +DATA/orcl/controlfile/current.260.1070471991 +BAK/orcl/controlfile/control_file02.ctl
copying +DATA/orcl/controlfile/current.260.1070471991 -> +BAK/orcl/controlfile/control_file02.ctl
ASMCMD> cp +DATA/orcl/controlfile/current.260.1070471991 +BAK/ctl_files/control_bak.ctl
copying +DATA/orcl/controlfile/current.260.1070471991 -> +BAK/ctl_files/control_bak.ctl

1.3.6 控制文件的备份与恢复

1.3.6.1 使用 alter database backup controlfile 备份

备份控制文件,命令:alter database backup controlfile to '<dir>';
生成创建控制文件的脚本:alter database backup controlfile to trace as '<dir>' ;

1.3.6.2 使用 rman 备份(推荐)
查看数据库的归档状态
archive log list;登录到rman命令
rman target username/password@orcl备份控制文件
RMAN> backup current controlfile format '+bak/control_2021_08_06.bak';查看控制文件的备份信息
RMAN> list backup of controlfile;备份数据库与控制文件
RMAN> backup database include current controlfile;
1.3.6.3 使用 rman 恢复控制文件

由于误操作、磁盘故障等导致控制文件全部丢失时,可以使用备份的控制文件进行恢复操作。下面模拟控制文件全部丢失时,恢复数据库的操作:

查看控制文件
SQL> show parameter control_files;先关机后删除全部的控制文件
SQL> shutdown immediate
ASMCMD> rm +DATA/orcl/controlfile/control_file01.ctl
ASMCMD> rm +BAK/orcl/controlfile/control_file02.ctl
ASMCMD> rm +BAK/ctl_files/control_file03.ctl启动数据库,出现错误
SQL> startup
ORACLE instance started.Total System Global Area  835104768 bytes
Fixed Size		    2257840 bytes
Variable Size		  603982928 bytes
Database Buffers	  226492416 bytes
Redo Buffers		    2371584 bytes
ORA-00205: error in identifying control file, check alert log for more info数据库启动到 nomount 状态
SQL> select status from v$instance;

使用 RMAN 还原控制文件

RMAN> restore controlfile from '+BAK/control_2021_08_06.bak';启动数据库到 mount 状态
RMAN> alter database mount;恢复数据库
RMAN> recover database;打开数据库<以resetlogs 模式才能打开数据库。
RMAN> alter database open resetlogs;

1.3.7 asmcmd复制报错

1.3.7.1 问题引入

需要增加一个控制文件,进行了如下操作:
修改参数

alter system set control_files = '+DATA/orcl/controlfile/current.260.1070471991',
'+BAK/orcl/controlfile/current.256.1070471991',
'+bak/ctl_files/controlfile.256.1070471991'
scope = spfile sid = '*';

复制控制文件到 control_files 参数指定的位置
使用asmcmd 在执行 cp 命令时出现如下错误:

ASMCMD> cp +bak/orcl/controlfile/Current.256.1070471991 +bak/ctl_files/controlfile.256.1070471991
copying +bak/orcl/controlfile/Current.256.1070471991 -> +bak/ctl_files/controlfile.256.1070471991
ASMCMD-8016: copy source '+bak/orcl/controlfile/Current.256.1070471991' and target '+bak/ctl_files/controlfile.256.1070471991' failed
ORA-15056: additional error message
ORA-15046: ASM file name '+bak/ctl_files/controlfile.256.1070471991' is not in single-file creation form
ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 415
ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)
1.3.7.2 解决办法

asmcmd 中复制文件时不能指定文件后面的数值。命令修改为如下格式:

ASMCMD> cp '+BAK/orcl/controlfile/current.256.1070471991' '+bak/ctl_files/control_bak.ctl'
copying +BAK/orcl/controlfile/current.256.1070471991 -> +bak/ctl_files/control_bak.ctl

复制成功,查看文件:

ASMCMD> ls +bak/ctl_files
control_bak.ctl# 用 ls -l 查看文件
# 发现在 ASM 中复制文件其实只是在目标目录下存储了一个 alias(别名),真正的文件被 ASM 放到了其他位置
ASMCMD> ls -l +bak/ctl_files
Type   Redund  Striped  Time   Sys  NameN  control_bak.ctl => +BAK/ASM/CONTROLFILE/control_bak.ctl.265.1079800929

把数据库启动到 nomount,修改参数文件如下:

alter system set control_files = '+DATA/orcl/controlfile/current.260.1070471991',
'+BAK/orcl/controlfile/current.256.1070471991',
'+bak/ctl_files/control_bak.ctl'
scope = spfile sid = '*';

1.4 服务器参数文件(Parameter files)

参数文件是Oracle数据库实例的配置文件,它包含了一系列的参数和对应的取值,用于 控制数据库系统的行为

数据库实例在启动之前, Oracle 系统首先会读取 参数文件中设置的这些参数,并根据这些初始化参数来配置和启动实例。比如,设置标准数据块的大小(即参数 db_block_size 的值)、设置日志缓冲区的大小(即参数 log_buffer 的值)等,所以 参数文件非常重要。
根据其使用方式和位置,Oracle参数文件分为两种类型:SPFILE(Server Parameter File)PFILE(Parameter File)

  • SPFILE 以二进制格式存储,可以在数据库运行时动态修改参数值,用来记录了 Oracle 数据库的基本参数信息(如数据库名、控制文件所在路径、日志缓冲大小等)。它通常存储在服务器的文件系统中,如$ORACLE_HOME/dbs目录下的spfileSID.ora文件, sid 为所创建的数据库实例名。
    SPFILE虽不能使用文本编辑器修改,但可以使用ALTER SYSTEM语句在运行时修改参数值,无需重新启动数据库。同时,SPFILE 还提供了参数值的持久化功能,可以保证数据库在下次启动时使用最新的参数值。
  • PFILE 是传统的文本格式参数文件,以ASCII格式存储。它需要手动编辑或使用工具进行修改。PFILE通常存储在服务器的文件系统中,如$ORACLE_HOME/dbs目录下的initSID.ora文件。与SPFILE相比,PFILE的主要不足之处是不能在数据库运行时动态修改参数值,需要重新启动数据库才能生效。

Oracle 实例启动时查找参数文件的顺序:

  • Oracle 首先在默认目录中查找名为 spfile<OracleSID >.ora 的 文 件
  • 如 果 没 有 则 查 找 spfile.ora 文 件
  • 如 果 还 没 有 , 继续 找 init<ORACLE_SID>.ora的文件

pfile 和 spfile 的互相创建

-- 根据 spfile 创建 pfile
create pfile[='xxxxx'] from spfile[='xxxx'];
-- 根据内存中的参数值创建 pfile
create pfile[='xxxxx'] from memory;
-- 根据 pfile 创建 spfile
create spfile[='xxxxx'] from pfile[='xxxx'];

1.4.1 查看服务器参数

用户可以通过如下两种方式查看数据库的服务器参数。

  • 查询视图 v$parameter,提供了当前会话可见的初始化参数的取值 ,可利用该动态性能视图来确定参数的默认值是否被修改过,以及是否可以用 ALTER SYSTEMALTER SESSION 命令修改。
  • show parameter name :查询当前会话生效的参数
  • show spparameters:查询当前会话生效的 spfile 参数,参数的取值来源于 spfile 参数文件
  • create pfile:可以将 spfile 或当前内存中设置的参数保存到 pfile 文件中,这种方法列出的参数都是用户设置的参数,不包括默认值参数。
  • 查询视图 v$system_parameter ,视图提供了当前实例生效的初始化参数的取值
  • 查看视图 v$spparameter,视图提供了来自 spfile 文件中初始化参数的取值 ,如果参数在spfile 文件中没有设置 ,字 段 isspecified 对应的值为 false
  • 查看视图 v$spparameter2,视图会返回多条记录

参数分为静态参数(修改之后需要重启数据库才能生效)和动态参数(修改之后无需重启,立即生效):

  • 动态参数:可以在数据库运行时修改参数值并且立即生效的参数。
  • 静态参数:内存中的当前值不能被修改,只能在参数文件中修改,且数据库必须要重启才能生效的参数。

Oracle 在视图 V$PARAMETER 中提供了一个列 ISSYS_MODIFIABLE,如果该列的值为 IMMEDIATE 代表该参数为动态参数,且修改后立即生效;如果该列的值为 DEFERRED 代表该参数为动态参数,但参数值修改后不会立即生效,只有在新连接的会话中生效;如果该列的值为 FALSE 代表该参数为静态参数

1.4.2 修改服务器参数

修改数据库的服务器参数,主要通过企业管理器(OEM)或 ALTER SYSTEM 命令来实现。

  • 通过企业管理器(OEM)修改,首先使用 SYSTEM 用户登录 OEM,然后选择服务器”页面中的初始化参数项,将打开如下图所示的初始化参数页面,在该页面的“值”列中就可以修改参数值,然后保存就可以
    ​​​​​​​​​​​​​​​​在这里插入图片描述
  • 使用 ALTER SYSTEM 命令修改服务器参数
    例如:通过 ALTER SYSTEM 命令修改标准数据块的大小为 4096 字节,代码及运行结果如下。
alter system set db_block_size=4096
系统已更改-- 值修改内存中的值
ALTER SYSTEM/SESSION SET 参数名=参数值 SCOPE = MEMORY SID='*';-- 只修改 SPFILE 中的值
ALTER SYSTEM SET 参数名=参数值 SCOPE = SPFILE SID='*';-- 同时修改 SPFILE 和 MEMORY 中的值(也可以省略 BOTH 关键词)
ALTER SYSTEM/SESSION SET 参数名=参数值 SCOPE = BOTH SID='*';-- 设置延迟生效,修改只对以后连接到数据库的会话生效,而对当前会话以及其它已经连接到 Oracle 的会话不会生效。
ALTER SYSTEM SET 参数名=参数值 DEFERRED SCOPE = SPFILE  SID='*';说明:
(1)在 RAC 环境中,要修改所有实例,可以在 ALTER SYSTEM 的最后加上 SID='*',要更改某一个实例, 在命令的结尾加上 SID='实例名'2ALTER SESSION:修改的参数只限于本次会话,退出会话再进入时修改失效
(3ALTER SYSTEM:修改的参数适用于数据库实例的所有会话,数据库关闭则修改失效
(4ALTER SYSTEM DEFERRED:修改是延迟修改,退出会话,下次进入会话时生效
(5)scope = spfile:修改只对 spfile 参数文件有效,对于动态参数和静态参数都是数据库重启时有效。
(6)scope = memory:修改只对内存有效,对于动态参数修改后立即生效,数据库重启后失效。静态参数不允许使用该选项。
(7)scope = both:修改对 spfile 参数文件和内存都生效。对于动态参数修改后立即生效,数据库重启后失效。静态参数不允许使用该选项。

1.4.3 参数文件及具体作用

参数文件由一系列的参数和对应的取值组成,每个参数占据一行,以参数名和参数值的形式表示。

# This is a comment
processes = 200
db_block_size = 8192
sga_target = 4G

Oracle 数据库有大量的参数,每个参数都有不同的作用和取值范围。以下是一些常见的Oracle参数及其作用:

  • processes:控制数据库实例能够同时处理的并发连接数。
  • db_block_size:定义数据块的大小,影响数据库存储和I/O性能。
  • sga_target:指定SGA(System Global Area)的目标大小,包括缓冲区高速缓存和共享池。
  • undo_tablespace:指定回滚段表空间的名称,用于管理事务的回滚和并发控制。
  • log_archive_dest:定义归档日志文件的位置和传输方式,用于实现数据备份和恢复。
  • optimizer_mode:确定SQL查询优化器的工作模式,影响SQL查询的执行计划和性能。

1.5 其他文件

Oracle 系统运行时,除了必需的数据文件、控制文件、日志文件及服务器参数文件外,还需要一些辅助文件,如密码文件、警告文件和跟踪文件,下面将对这些辅助文件进行简单的介绍。

1.5.1 密码文件(Password files)

密码文件是 Oracle 系统用于验证 sysdba 权限的二进制文件,当远程用户以 sysdbasysoper (默认情况下 sysdba 角色中存在 sys 用户,sysoper 角色中存在 system 用户)连接到数据库时,一般要用密码文件验证。
Oracle 用户登录数据库时有三种验证方式,分别为:

  • 操作系统验证:即,Oracle 用户只要能够登录操作系统,在登录数据库时不需要验证用户名和密码。此种登录方式只有在服务器本机登录有效,不适用于远程登录。
    如果需要屏蔽操作系统验证,可以采用两种方式:
    • 修改 $ORACLE_HOME/network/admin/sqlnet.ora 文件,如果该文件不存在,表示开启操作系统验证,则新建一个文件,设置 SQLNET.AUTHENTICATION_SERVICES 参数为 none
      其他参数:
      • none : 关闭操作系统验证,只能使用密码验证
      • all : 用于 linux 或 unix 平台,启用操作系统验证
      • nts : 用于 windows 平台,启用操作系统验证
    • 修改 remote_login_passwordfile 参数的取值为 EXCLUSIVESHARED
      其他参数:
      • NONE: 不使用密码文件,使用操作系统验证
      • EXCLUSIVE: 密码文件验证,但只有一个数据库实例可以使用此文件
      • SHARED: 密码文件验证,多个数据库实例可以使用此文件,但此设置下只有 SYS 帐号能被识别
  • 密码文件验证:使用密码文件中保存的用户和密码登录数据库
  • 数据字典验证:使用数据字典中的用户和密码登录数据库,一般用于普通用户的登录验证

Oracle 11g 密码文件的默认存放位置以及命名: $ORACLE_HOME/dbs/orapw<ORACLE_SID> ,其中 ORACLE_SID 表示数据库实例名。创建密码文件既可以在创建数据库实例时自动创建,也可以使用 ORAPWD.EXE 工具手动创建,创建密码文件的命令格式如下:

ORAPWD FILE=<filename> PASSWORD=<password> ENTRIES=<max_users>

参数说明:

  • filename:表示密码文件名称。
  • password:表示设置 internal/sys 账户口令。
  • max_users:表示密码文件中可以存放的最大用户数,对应允许以 sysdba/sysoper 权限登录数据库的最大用户数。

创建了密码文件后,需要设置初始化参数 remote_login_passwordfile 来控制密码文件的使用状态,通常有 3 种状态值:

  • NONE:表示只要通过操作系统验证,就不用通过 Oracle 密码文件验证;
  • SHARED:表示多个数据库实例都可以采用此密码文件验证;
  • EXCLUSIVE:表示只有一个数据库实例可以使用此密码文件验证。

创建一个密码文件,其 SYS 口令为 012345,代码如下。

C:\>ORAPWD FILE=E:\app\Admin\product\11.2.0\dbhome_1\database\PWDorcl.ora password=012345 entries=40

1.5.2 警告文件

警告文件(即警告日志文件)是一个存储在 Oracle 系统目录下的文本文件(名称通常为 alert_orcl.log),它用来记录 Oracle 系统的运行信息和错误信息。运行信息一般包括 Oracle 实例的启动与关闭、建立表空间、增加数据文件等;错误信息包括空间扩展失败、启动实例失败等。
Oracle 系统安装完毕后,其实例日常运行的基本信息都会记录在警告文件中。警告文件的路径可通过 Oracle 系统的 background_dump_dest 参数值来查看,并且该参数值由服务器进程和后台进程写入。
注意:随着时间的推移,警告文件会越来越大,数据库管理员应该定期删除警告文件

1.5.3 跟踪文件(tracle files)​

跟踪文件包含了大量且详细的诊断和调试信息。通过对跟踪文件的分析,可以定位问题、分析问题和解决问题。跟踪文件的位置由 BACKGROUND_DUMP_DEST 参数决定。跟踪文件分为以下三类:

  • 警报日志文件(alert files)
    警报日志文件记录数据库在启动、关闭和运行期间后台进程的活动情况。如表空间创建、回滚段创建、某些 alter 命令、日志切换、错误消息等。
    警报日志的名称:alert_<ORACLE_SID>.log
    查看警报日志文件的位置:show parameter BACKGROUND_DUMP_DEST
    查看警报日志文件: ll alert_orcl1.log
    报警日志主要保存以下信息:
    • 数据库的启动、停止;
    • 记录所有的非默认值的初始化参数;
    • 记录日志的切换情况;
    • 记录检查点的完成情况;
    • 记录数据库工作时遭遇的错误信息
  • 后台进程跟踪文件 用于记录后台进程的警告或错误消息
    DBWR、LGWR、SMON 等后台进程创建的后台跟踪文件
    后台进程跟踪文件的磁盘位置由初始化参数 BACKGROUND_DUMP_DEST 确定,后台进程跟踪文件的命名格式为<ORACLE_SID>_进程名_进程号.trc,例如: orcl_cjq0_5172.trc。
    查看后台进程 pmon 对应的跟踪文件:ll *pmon*
  • 用户进程跟踪文件 用于记录与用户进程相关的信息,它主要用于跟踪 SQL 语句,这些文件仅在用户会话期间遇到错误时产生。
    通过用户进程跟踪文件,可以判断 SQL 语句的执行性能。用户进程跟跟踪文件的位置由初始化参数 user_dump_dest 确定,用户进程跟踪文件的命名格式为 <ORACLE_SID>_ora_服务进程的spid.trc,例如: orcl_ora_4888.trc
    查看用户进程跟踪文件:ll *ora*
    v$parameter 视图中查看当前实例的用户跟踪文件的路径: select value from v$parameter where name = 'user_dump_dest';
    打开 sql 跟踪:exec dbms_system.set_sql_trace_in_session(sid, serial#, true)
    关闭 sql 跟踪:exec dbms_system.set_sql_trace_in_session(sid, serial#, false)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据与人工智能:基础与应用的多维思考

大数据与人工智能&#xff1a;基础与应用的多维思考 前言一、时代定位与发展方向二、人工智能的本质与学科融合三、大数据和人工智能的构成要素与大众需求四、计算机系统结构与基础软件的重要性五、研究途径与领域知识的作用六、发展的态度与责任 前言 当下&#xff0c;大数据…

分布式学习02-CAP理论

文章目录 CAP三指标一致性可用性分区容错性 CAP不可能三角P存在的必要性CP理论AP理论 CAP理论对分布式系统的特性做了高度抽象&#xff0c;将其抽象为一致性、可用性、分区容错性。 并对特征间的冲突做了总结&#xff1a;CAP不可能三角。 CAP三指标 一致性&#xff08;Consis…

Windows环境Apache httpd 2.4 web服务器加载PHP8:Hello,world!

Windows环境Apache httpd 2.4 web服务器加载PHP8&#xff1a;Hello&#xff0c;world&#xff01; &#xff08;1&#xff09;首先需要安装apache httpd 2.4 web服务器&#xff1a; Windows安装启动apache httpd 2.4 web服务器-CSDN博客文章浏览阅读222次&#xff0c;点赞5次&…

Git 下载及安装超详教程(2024)

操作环境&#xff1a;Win 10、全程联网 一、什么是Git&#xff1f; Git 是一个开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 创立&#xff0c;用于有效、高速地处理从小到大的项目版本管理。Git 是目前世界上最流行的版本控制系统&#xff0c;被广泛用于软件开发中…

ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!

计算机视觉领域顶级会议 European Conference on Computer Vision&#xff08;ECCV 2024&#xff09;将于9月29日至10月4日在意大利米兰召开&#xff0c;快手音视频技术部联合清华大学所发表的题为《XPSR: Cross-modal Priors for Diffusion-based Image Super-Resolution》——…

安防监控/视频系统EasyCVR视频汇聚平台如何过滤134段的告警通道?

视频汇聚/集中存储EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。平台支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为…

基于Zynq SDIO WiFi移植三(支持2.4/5G)

应用问题-WIFI作为AP-hostapd多次连接 设备作为WIFI热点时&#xff0c;连接出现了下述问题&#xff1a; 1 手机连接需要三次&#xff0c;三次都需要输入密码&#xff1b; 2 平板连接需要三次&#xff0c;三次都需要输入密码&#xff1b; 3 电脑连接需要一次&#xff0c;无感…

计算机视觉——图像修复综述篇

目录 1. Deterministic Image Inpainting 判别器图像修复 1.1. sigle-shot framework (1) Generators (2) training objects / Loss Functions 1.2. two-stage framework 2. Stochastic Image Inpainting 随机图像修复 2.1. VAE-based methods 2.2. GAN-based methods …

YOLOv11改进 | Conv篇 | YOLOv11引入SKConv

1. SKConv介绍 1.1 摘要:在标准卷积神经网络(CNN)中,每层中阿尔蒂神经元的感受野被设计为共享相同的大小。在神经科学界众所周知,视觉皮层神经元的感受野大小受到刺激的调制,这在构建CNN时很少考虑。我们在CNN中提出了一种动态选择机制,允许每个神经元根据输入信息的多…

[深度学习][python]yolov11+deepsort+pyqt5实现目标追踪

【算法介绍】 YOLOv11、DeepSORT和PyQt5的组合为实现高效目标追踪提供了一个强大的解决方案。 YOLOv11是YOLO系列的最新版本&#xff0c;它在保持高检测速度的同时&#xff0c;通过改进网络结构、优化损失函数等方式&#xff0c;提高了检测精度&#xff0c;能够同时处理多个尺…

【嵌入式软件-数据结构与算法】01-数据结构

摘录于老师的教学课程~~(*๓╰╯๓)~~内含链表、队列、栈、循环队列等详细介绍~~ 基础知识系列 有空再继续更~~~ 目录 【链表】 一、单链表 1、存储结构&#xff1a;带头结点的单链表 2、单链表结点类型的定义 3、创建单链表 1&#xff09;头插法 2&#xff09;尾插法 …

Python办公自动化之Word

在现代办公环境中&#xff0c;自动化无疑是提升工作效率的关键。特别是处理文档的工作&#xff0c;很多人可能花费大量时间在重复性任务上。那么&#xff0c;有没有一种方法可以让我们用 Python 来自动化 Word 文档的操作呢&#xff1f;今天&#xff0c;我们来聊聊如何用 Pytho…

k8s-集群部署1

k8s-集群部署1 一、基础环境准备二、docker环境准备三、k8s集群部署1.kubeadm创建集群2.使用kubeadm引导集群 总结 一、基础环境准备 首先&#xff0c;需要准备三个服务器实例&#xff0c;这里我使用了阿里云创建了三个实例&#xff0c;如果不想花钱&#xff0c;也可以在VM上创…

windows配置C++编译环境和VScode C++配置(保姆级教程)

1.安装MinGW-w64 MinGW-w64是一个开源的编译器套件&#xff0c;适用于Windows平台&#xff0c;支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具&#xff0c;是C开发者在Windows环境下进行开发的重要工具。 我找到了一个下载比较快的链接&#…

初识Linux · 自主Shell编写

目录 前言&#xff1a; 1 命令行解释器部分 2 获取用户命令行参数 3 命令行参数进行分割 4 执行命令 5 判断命令是否为内建命令 前言&#xff1a; 本文介绍是自主Shell编写&#xff0c;对于shell&#xff0c;即外壳解释程序&#xff0c;我们目前接触到的命令行解释器&am…

技术成神之路:设计模式(十八)适配器模式

介绍 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许接口不兼容的类可以协同工作&#xff0c;通过将一个类的接口转换成客户端所期望的另一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的类可以一起工作。 1.定义 适配…

基础算法--枚举

枚举算法是一种简单而有效的算法&#xff0c;它通过枚举所有可能的情况来解决问题。它通常用于解决问题规模比较小的问题&#xff0c;因为它的时间复杂度很高&#xff0c;随着问题的规模增加&#xff0c;算法的效率会急剧下降。 枚举算法的基本思路是通过循环遍历所有可能的情…

CSS实现服务卡片

CSS实现服务卡片 效果展示 CSS 知识点 回顾整体CSS知识点灵活运用CSS知识点 页面整体布局 <div class"container"><div class"card"><div class"box"><div class"icon"><ion-icon name"color-pal…

记录一次病毒启动脚本

在第一次下载软件时&#xff0c;目录中配了一个使用说明&#xff0c;说是需要通过start.bat 这个文件来启动程序&#xff0c;而这个 start.bat 就是始作俑者&#xff1a; 病毒作者比较狡猾&#xff0c;其中start.bat 用记事本打开是乱码&#xff0c;但是可以通过将这个批处理…

OpenMV与STM32通信全面指南

目录 引言 一、OpenMV和STM32简介 1.1 OpenMV简介 1.2 STM32简介 二、通信协议概述 三、硬件连接 3.1 硬件准备 3.2 引脚连接 四、软件环境搭建 4.1 OpenMV IDE安装 4.2 STM32开发环境 五、UART通信实现 5.1 OpenMV端编程 5.2 STM32端编程 六、SPI通信实现 6.1 …