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.rhkb.cn/news/440853.html

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

相关文章

定时器定时中断定时器外部中断

基础背景&#xff1a;TIM定时中断-CSDN博客 TIM的函数 // 恢复缺省设置 void TIM_DeInit(TIM_TypeDef* TIMx); // 时基单元初始化&#xff0c;第一个参数TIMx选择某个定时器&#xff0c;第二个参数是结构体&#xff0c;包含了配置时基单元的一些参数。 void TIM_TimeBaseInit…

【时间盒子】-【9.任务设置项】自定义任务名称、任务时长等设置项组件

Tips: Stage、Link装饰器的使用&#xff1b; 参考我的帖子&#xff1a;https://developer.huawei.com/consumer/cn/forum/topic/0208152234389094513?fid0101587866109860105 一、预览 红色框&#xff1a;任务设置项列表&#xff0c;把它定义为一个组件对象SettingList。绿…

linux基础 超级笔记

1.Linux系统的组成 Linux系统内核&#xff1a;提供系统最核心的功能&#xff0c;如软硬件和资源调度。 系统及应用程序&#xff1a;文件、任务管理器。 2.Linux发行版 通过修改内核代码自行集成系统程序&#xff0c;即封装。比如Ubuntu和centos这种。不过基础命令是完全相…

【C++ Primer Plus】4

2 字符串 字符串是存储在内存的连续字节中的一系列字符&#xff1b;C处理字符串的方式有两种&#xff0c; c-风格字符串&#xff08;C-Style string&#xff09;string 类 2.1 c-风格字符串&#xff08;C-Style string&#xff09; 2.1.1 char数组存储字符串&#xff08;c-…

『网络游戏』自适应制作登录UI【01】

首先创建项目 修改场景名字为SceneLogin 创建一个Plane面板 - 将摄像机照射Plane 新建游戏启动场景GameRoot 新建空节点重命名为GameRoot 在子级下创建Canvas 拖拽EventSystem至子级 在Canvas子级下创建空节点重命名为LoginWnd - 即登录窗口 创建公告按钮 创建字体文本 创建输入…

Java:数据结构-初始结合框架 时间复杂度和空间复杂度 初识泛型

一 初始结合框架 1.什么是Java的集合框架 Java 的集合框架&#xff08;Java Collection Framework&#xff0c;JCF&#xff09;是 Java 标准库中的一部分&#xff0c;用于存储和操作一组数据。它提供了一些常用的数据结构和接口&#xff0c;用来高效管理和操作数据。Java 的…

TOP-K问题

目录 TOP-K问题 1.对TOP-K问题的理解 1.1.TOP-K问题定义 1.2.TOP-K问题的解决思路 1.3.以求N个数据中的前K个最大元素为例&#xff0c;阐述建堆来解决TOP-K的原理 1.4.TOP-K问题的类型 2.类型1&#xff1a;数据量N较小&#xff0c;可以全部加载到内存中。求数据量N的前K…

2024 ciscn WP

一、MISC 1.火锅链观光打卡 打开后连接自己的钱包&#xff0c;然后点击开始游戏&#xff0c;答题八次后点击获取NFT&#xff0c;得到有flag的图片 没什么多说的&#xff0c;知识问答题 兑换 NFT Flag{y0u_ar3_hotpot_K1ng} 2.Power Trajectory Diagram 方法1&#xff1a; 使用p…

集合论基础 - 离散数学系列(一)

目录 1. 集合的基本概念 什么是集合&#xff1f; 集合的表示方法 常见的特殊集合 2. 子集与幂集 子集 幂集 3. 集合的运算 交集、并集与补集 集合运算规则 4. 笛卡尔积 5. 实际应用 6. 例题与练习 例题1 练习题 总结 引言 集合论是离散数学的基础之一&#xff…

Linux 外设驱动 应用 1 IO口输出

从这里开始外设驱动介绍&#xff0c;这里使用的IMX8的芯片作为驱动介绍 开发流程&#xff1a; 修改设备树&#xff0c;配置 GPIO1_IO07 为 GPIO 输出。使用 sysfs 接口或编写驱动程序控制 GPIO 引脚。编译并测试。 这里假设设备树&#xff0c;已经配置好了。不在论述这个问题…

金融教育宣传月 | 平安养老险百色中心支公司开展金融知识“消保县域行”宣传活动

9月22日&#xff0c;平安养老险百色中心支公司积极落实国家金融监督管理总局关于开展金融教育宣传月活动的相关要求&#xff0c;联合平安人寿百色中心支公司共同组成了平安志愿者小队&#xff0c;走进百色市四塘镇百兰村开展了一场别开生面的金融消费者权益保护宣传活动。此次活…

通用mybatis-plus查询封装(QueryGenerator)

结果如下图所示 java类代码分别如下 1 package com.hdx.contractor.util.mybatis;import com.hdx.contractor.common.user.SecurityUser; import com.hdx.contractor.common.user.UserDetail; import com.hdx.contractor.util.query.oConvertUtils; import lombok.extern.slf…

YOLO11改进|卷积篇|引入线性可变形卷积LDConv

目录 一、【LDConv】卷积1.1【LDConv】卷积介绍1.2【LDConv】核心代码 二、添加【LDConv】卷积2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【LDConv】卷积 1.1【LDConv】卷积介绍 下图是【LDCNV】的结构图&#xff0c;让我们简单分析…

Ajax面试题:(第一天)

目录 1.说一下网络模型 2.在浏览器地址栏键入URL&#xff0c;按下回车之后会经历以下流程&#xff1a; 3.什么是三次握手和四次挥手&#xff1f; 4.http协议和https协议的区别 1.说一下网络模型 注&#xff1a;各层含义按自己理解即可 2.在浏览器地址栏键入URL&#xff0c;…

盲拍合约:让竞拍更公平与神秘的创新解决方案

目录 前言 一、盲拍合约是什么&#xff1f; 二、盲拍合约工作原理 1、合约创建与初始化 2、用户出价&#xff08;Bid&#xff09; 3、出价结束 4、披露出价&#xff08;Reveal&#xff09; 5、处理最高出价 6、结束拍卖 7、退款与提款 三、解析盲拍合约代码…

阿里云域名解析和备案

文章目录 1、域名解析2、新手引导3、ICP备案 1、域名解析 2、新手引导 3、ICP备案

类的特殊成员函数——三之法则、五之法则、零之法则

系统中的动态资源、文件句柄&#xff08;socket描述符、文件描述符&#xff09;是有限的&#xff0c;在类中若涉及对此类资源的操作&#xff0c;但是未做到妥善的管理&#xff0c;常会造成资源泄露问题&#xff0c;严重的可能造成资源不可用&#xff0c;如申请内存失败、文件句…

【redis-05】redis保证和mysql数据一致性

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

57.对称二叉树

迭代 class Solution {public boolean isSymmetric(TreeNode root) {if(rootnull){return true;}Deque<TreeNode> denew LinkedList<>();TreeNode l,r;int le;de.offer(root.left);de.offer(root.right);while(!de.isEmpty()){lde.pollFirst();rde.pollLast();if(…

BMC pam认证的使用

1.说明 1.1 文档参考资料 https://www.chiark.greenend.org.uk/doc/libpam-doc/html/Linux-PAM_ADG.htmlhttp://www.fifi.org/doc/libpam-doc/html/pam_appl-3.htmlpdf文档: https://fossies.org/linux/Linux-PAM-docs/doc/adg/Linux-PAM_ADG.pdflinux-pam 中文文档pam 旧文p…