当前位置: 首页 > news >正文

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)

相关文章:

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

文章目录 1 物理存储1.1 简介1.2 数据文件&#xff08;data files&#xff09;1.2.1 定义1.2.2 分类1.2.2.1 系统数据文件1.2.2.2 撤销数据文件1.2.2.3 用户数据文件1.2.2.4 临时数据文件 1.3 控制文件&#xff08;Control files&#xff09;1.3.1 定义1.3.2 查看控制文件1.3.3…...

AR 领域的突破——微型化显示屏为主流 AR 眼镜铺平道路

概述 多年来&#xff0c;增强现实 (AR) 技术一直吸引着人们的想象力&#xff0c;有望将数字信息与我们的物理世界无缝融合。通过将计算机生成的图像叠加到现实世界的视图上&#xff0c;AR 有可能彻底改变我们与环境的互动方式。从增强游戏体验到协助手术室的外科医生&#xff…...

Web安全 - 构建全面的业务安全保护防御体系

文章目录 业务安全概述业务安全 vs. 基础安全业务安全的防护业务安全的防护策略1. 用户资源对抗的技术实现与优化2. IP资源对抗的技术实现与优化3. 设备资源对抗的技术实现与优化4. 操作资源对抗的技术实现与优化实际应用场景中的策略 典型场景业务场景 1&#xff1a;新用户注册…...

机器学习(2):机器学习的相关术语

场景示例&#xff1a; 你周日约了小李、老王打牌&#xff0c;小李先来了&#xff0c;老王没来。你想打电话叫老王过来。小李说&#xff1a;“你别打电话啦&#xff0c;昨天老王喜欢的球队皇马输球了&#xff0c;他的项目在上个礼拜也没成功上线&#xff0c;再加上他儿子期末考…...

Leecode热题100-75.颜色分类

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地 对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解…...

408算法题leetcode--第22天

200. 岛屿数量 200. 岛屿数量时间&#xff1a;O(mn)&#xff1b;空间&#xff1a;O(min(m, n))&#xff0c;队列最大入队个数&#xff0c;可以想象从左上到右下&#xff0c;第一次入队1个&#xff0c;第二次出队1&#xff0c;入队2&#xff0c;第三次出队2&#xff0c;入队3……...

dubbo微服务

一.启动nacos和redis 1.虚拟机查看是否开启nacos和redis docker ps2.查看是否安装nacos和redis docker ps -a3.启动nacos和redis docker start nacos docker start redis-6379 docker ps二.创建三个idea的maven项目 1.第一个项目dubboapidemo 2.1.1向pom.xml里添加依赖 …...

如何在 DAX 中计算多个周期的移动平均线

在 DAX 中计算移动聚合很容易。但是&#xff0c;计算一段时间内的移动平均值时会有一些陷阱。由于其中一些陷阱是定义问题&#xff0c;因此我们必须小心&#xff0c;不要选择错误的方法。让我们看看细节。欢迎来到雲闪世界。 添加图片注释&#xff0c;不超过 140 字&#xff08…...

微信小程序 图片的上传

错误示范 /*从相册中选择文件 微信小程序*/chooseImage(){wx.chooseMedia({count: 9,mediaType: [image],sourceType: [album],success(res) {wx.request({url:"发送的端口占位符",data:res.tempFiles[0].tempFilePath,method:POST,success(res){//请求成功后应该返…...

软件测试人员发现更多程序bug

软件测试人员发现更多程序bug 1. 理解需求和业务&#xff0c;需求评审时候发现bug 熟悉了产品的业务流程、才能迅速找出软件中存在的一些重要的缺陷&#xff0c;发现的软件缺陷才是有价值的。否则即使你能找到一些软件缺陷&#xff0c;那也是纯软件的缺陷&#xff0c;价值不大…...

Nagle 算法:优化 TCP 网络中小数据包的传输

1. 前言 在网络通信中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是最常用的协议之一&#xff0c;广泛应用于各种网络应用&#xff0c;如网页浏览、文件传输和在线游戏等。然而&#xff0c;随着互联网的普及&#xff0c;小数据包的频繁传输成为一个不容忽视的问题。…...

C#入门教程

目录 1.if分支语句 2.面向对象 3.static简单说明 1.if分支语句 我们的这个C#里面的if语句以及这个if-else语句和C语言里面没有区别&#xff0c;就是打这个输出上面的方式不一样&#xff0c;c#里面使用的是这个console.writeline这个指令&#xff0c;其他的这个判断逻辑都是一…...

【MySQL报错】---Data truncated for column ‘age‘ at row...

目录 一、前言二、问题分析三、解决办法 一、前言 欢迎大家来到权权的博客~欢迎大家对我的博客进行指导&#xff0c;有什么不对的地方&#xff0c;我会及时改进哦~ 博客主页链接点这里–>&#xff1a;权权的博客主页链接 二、问题分析 问题一修改表结构 XXX 为 not n…...

Go基础学习08-并发安全型类型-通道(chan)深入研究

文章目录 chan基础使用和理解通道模型&#xff1a;单通道、双通道双向通道单向通道单向通道的作用 缓冲通道和非缓冲通道数据发送和接收过程缓冲通道非缓冲通道 通道基本特性通道何时触发panicChannel和Select结合使用Select语句和通道的关系Select语句的分支选择规则有那些Sel…...

some 蓝桥杯题

12.反异或01串 - 蓝桥云课 (lanqiao.cn) #include "bits/stdc.h" #define int long long using namespace std; char c[10000000]; char s[10000000]; int cnt,Ans,mr,mid; int maxi; int p[10000000],pre[10000000]; signed main() {ios::sync_with_stdio(0);cin.t…...

[linux 驱动]input输入子系统详解与实战

目录 1 描述 2 结构体 2.1 input_class 2.2 input_dev 2.4 input_event 2.4 input_dev_type 3 input接口 3.1 input_allocate_device 3.2 input_free_device 3.3 input_register_device 3.4 input_unregister_device 3.5 input_event 3.6 input_sync 3.7 input_se…...

2023_Spark_实验十:Centos_Spark Local模式部署

参考这篇博客&#xff1a;【Centos8_配置单节点伪分布式Spark环境】_centos8伪分布式环境搭建-CSDN博客...

pyecharts-快速入门

pyecharts文档&#xff1a;渲染图表 - pyecharts - A Python Echarts Plotting Library built with love. pyecharts-gallery文档&#xff1a;中文简介 - Document (pyecharts.org) 一、快速入门案例 from pyecharts.charts import Barbar Bar() bar.add_xaxis(["衬衫…...

vue3打包疯狂报错

打包的时候报错很多Cannot find name ‘xxx‘ 。 但是npm run dev 是运行正常的。 解决方法&#xff1a;package.json中的vue-tsc --noEmit 删掉就可以了。 例如&#xff1a; 这是原来的 {"scripts": {"dev": "vite","build": &quo…...

STM32 软件触发ADC采集

0.91寸OLED屏幕大小的音频频谱&#xff0c;炫酷&#xff01; STM32另一个很少人知道的的功能——时钟监测 晶振与软件的关系&#xff08;深度理解&#xff09; STM32单片机一种另类的IO初始化方法 ADC是一个十分重要的功能&#xff0c;几乎任何一款单片机都会包含这个功能&a…...

Android SystemUI组件(08)睡眠灭屏 锁屏处理流程

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节的思维导图&#xff0c;主要关注左侧上方锁屏分析部分 睡眠灭屏 即可。 Power按键的处理逻辑最终是由PhoneWindowManager来完…...

C# 表达式与运算符

本课要点&#xff1a; 1、表达式的基本概念 2、常用的几种运算符 3、运算符的优先级 4、常见问题 一 表达式 表达式是由运算符和操作数组成的。、-、*和/等都是运算符&#xff0c;操作数包括文本、常量、变量和表达式等。 二 算术运算符 2.1 算术运算符的使用 三 常见错误 …...

SpringBoot--最大连接数和最大并发数

原文网址&#xff1a;SpringBoot--最大连接数和最大并发数-CSDN博客 简介 本文介绍SpringBoot的最大连接数和最大并发数。 配置 SpringBoot默认使用tomcat处理请求。tomcat可以指定连接数、线程数等配置。 server:tomcat:# 请求处理线程都在使用中时&#xff0c;新连接请求…...

CF687D Dividing Kingdom II 题解

Description 给定一个 n n n 个点、 m m m 条边的图&#xff0c;有 q q q 次询问&#xff0c;每次询问一个 [ l , r ] [l,r] [l,r] 的区间&#xff0c;求将 n n n 个点分为两个部分后&#xff0c;编号在 [ l , r ] [l,r] [l,r] 内的边中&#xff0c;两端点属于同一部分的…...

高空抛物AI检测算法:精准防控,技术革新守护城市安全

近年来&#xff0c;随着城市化进程的加速&#xff0c;高楼大厦如雨后春笋般涌现&#xff0c;但随之而来的高空抛物问题却成为城市管理的一大难题。高空抛物不仅严重威胁行人的安全&#xff0c;还可能引发法律纠纷和社会问题。为了有效预防和减少高空抛物事件的发生&#xff0c;…...

html+css+js实现Collapse 折叠面板

实现效果&#xff1a; HTML部分 <div class"collapse"><ul><li><div class"header"><h4>一致性 Consistency</h4><span class"iconfont icon-jiantou"></span></div><div class"…...

RM服务器研究(一)

客户端默认端口是10100&#xff1a; MultiPort.dll BOOL sub_10001070() { UINT v0; // esi BOOL result; // eax CHAR KeyName; // [espCh] [ebp-10Ch] DWORD flOldProtect; // [esp10h] [ebp-108h] CHAR Buffer; // [esp14h] [ebp-104h] char v5; // [esp15h] [e…...

云岚到家xxl job 配置

调度中心&#xff1a; 负责管理调度信息&#xff0c;按照调度配置发出调度请求&#xff0c;自身不承担业务代码&#xff1b; 主要职责为执行器管理、任务管理、监控运维、日志管理等 任务执行器&#xff1a; 负责接收调度请求并执行任务逻辑&#xff1b; 主要职责是执行任…...

国内动态短效sk5

HTTP爬虫代理,软件测试&#xff0c; 动态转发IP方案&#xff0c;全高匿名&#xff0c;私密IP&#xff0c;固定网关将您每次请求的HTTP重定向到不同的后端IP&#xff0c;支持API;指路小熊IP https://www.xiaoxiongip.com?fromqkJWgD可测...

【路径规划】路径平滑算法,A星算法拐点的圆弧化处理

摘要 A算法广泛应用于路径规划中&#xff0c;但其生成的路径通常在拐点处呈现不平滑的折线。为了提升路径的平滑性&#xff0c;本文提出了一种基于圆弧的平滑处理方法&#xff0c;用于对A算法产生的路径拐点进行优化。通过在MATLAB中进行仿真验证&#xff0c;该方法能够有效减…...

外贸网站推广平台排名前十名/搜索引擎搜索器

着色器程序简介使用简介 着色器程序对象(Shader Program Object)是多个着色器合并之后并最终链接完成的版本。使用着色器前&#xff0c;必须先把它们链接(Link)为一个着色器程序对象&#xff0c;然后在渲染对象的时候激活这个着色器程序&#xff0c;已激活着色器程序的着色器将…...

南昌大型网站制作/seo具体优化流程

1、项目管理PMP将成为21世纪首选职业 从薪资水平上说&#xff0c;持PMP薪金水平可谓一路飙升。平均年薪8.8655万元在国内已属于高薪阶层。借鉴于国内的数据&#xff0c;在美国从事项目管理工作的高级人员年薪可达11万-30万美金。 2、PMP认证被全球项目管理界人士认可 项目管…...

如何做网站编辑/永久免费wap自助建站

array的添加&#xff0c;使用 arry[i]赋值时会出现段错误&#xff0c;需要使用array.push_back添加到数据中&#xff0c;在ros中array数组是以vector方式存储的。 例如&#xff1a; 包含数组的msg定义为&#xff1a; hbgArray.msg std_msgs/Header headerhbg_std_msgs/KeyPose[…...

下载别人的wordpress模板/创建网站步骤

为什么线程不安全 在多线程环境下&#xff0c;当多个线程同时使用相同的SimpleDateFormat对象&#xff08;如static修饰&#xff09;的话&#xff0c;如调用format方法时&#xff0c;多个线程会同时调用calender.setTime方法&#xff0c;导致time被别的线程修改&#xff0c;因…...

自己做网站必须要学哪些/网络营销课程思政

华中科技大学标C语言程序设计上机试题、答案及报告格式《C语言程序设计》实验七 指针及函数结构体初步程序设计专业&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a;1实验目的进一步理解指针的概念&#xff0c;掌握指针变量间接地址访问的本质&#xff1b;掌握利…...

wordpress windows/seo搜索优化排名

如果要跟一个摄影迷安利一部拍摄神器&#xff0c;那么就请用样片毒他&#xff01;种草&#xff0c;往往就是这么开始的...从去年注册了自己的ins账号开始&#xff0c;狂刷到很多自己喜欢的摄影师的作品&#xff0c;心底就对胶片摄影的那股热情又重新燃烧了起来。胶片的那迷人的…...