详解Oracle数据库的启动

Oracle数据库的启动,其概念可参考Overview of Instance and Database Startup。

其过程可参见下图:
在这里插入图片描述
当数据库从关闭状态进入打开数据库状态时,它会经历以下阶段。

阶段Mount状态描述
1实例在没有挂载数据库的情况下启动实例已启动,但尚未与数据库关联。
2数据库挂载实例启动并通过读取其控制文件与数据库相关联。 数据库对用户关闭。
3数据库打开实例已启动并与打开的数据库相关联。 数据文件中包含的数据可供授权用户访问。

下面我们将通过示例来详细了解数据库的启动过程。

基本概念

启动的第一步是寻找spfile,SPFILE 文件名为 spfileSID.ora,位于ORACLE_HOME/database 目录中。

我们知道spfile是包含了control file的位置的,因此启动的顺序也是先读spfile,然后会读control file。

spfile和control file都是二进制文件。

获取文本形式的spfile,可以:

create pfile='xxx' from spfile;

获取文本形式的control file,可以:

alter database backup controlfile to trace;

数据库启动涉及的文件

SQL> show parameter spfile
NAME   TYPE   VALUE
------ ------ ------------------------------------------------------
spfile string /opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.oraSQL> show parameter control_files
NAME          TYPE   VALUE
------------- ------ ------------------------------------------------------------------------------------
control_files string /opt/oracle/oradata/ORCLCDB/control01.ctl, /opt/oracle/oradata/ORCLCDB/control02.ctlSQL> select name from v$datafile;NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/ORCLCDB/system01.dbf
/opt/oracle/oradata/ORCLCDB/sysaux01.dbf
/opt/oracle/oradata/ORCLCDB/undotbs01.dbf
/opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
/opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
/opt/oracle/oradata/ORCLCDB/users01.dbf
...SQL> select member from v$logfile;MEMBER
--------------------------------------------------------------------------------
/opt/oracle/oradata/ORCLCDB/redo03.log
/opt/oracle/oradata/ORCLCDB/redo02.log
/opt/oracle/oradata/ORCLCDB/redo01.log

为了简单,我们只采用以下4个文件的状态:

  • spfile
  • control file:/opt/oracle/oradata/ORCLCDB/control01.ctl
  • data file:/opt/oracle/oradata/ORCLCDB/system01.dbf
  • redo log file:/opt/oracle/oradata/ORCLCDB/redo01.log

初始状态,数据库处于关闭状态

记录一下几个文件的时间戳。包括atime, mtime和ctime。

$ stat /opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.oraFile: ‘/opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.ora’Size: 3584            Blocks: 8          IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 147838129   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:39:40.758879960 +0800
Modify: 2024-01-08 22:27:21.718465002 +0800
Change: 2024-01-08 22:27:21.718465002 +0800Birth: -$ stat /opt/oracle/oradata/ORCLCDB/control01.ctlFile: ‘/opt/oracle/oradata/ORCLCDB/control01.ctl’Size: 18726912        Blocks: 36576      IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684770   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:41:25.153574355 +0800
Modify: 2024-01-08 22:41:25.179574414 +0800
Change: 2024-01-08 22:41:25.179574414 +0800Birth: -$ stat /opt/oracle/oradata/ORCLCDB/system01.dbfFile: ‘/opt/oracle/oradata/ORCLCDB/system01.dbf’Size: 954212352       Blocks: 1863704    IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684766   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:41:24.812573601 +0800
Modify: 2024-01-08 22:41:24.816573610 +0800
Change: 2024-01-08 22:41:24.816573610 +0800Birth: -

在以上时间中,atime是文件最后被访问的时间,如读取。mtime和ctime容易混淆,前者指文件内容被修改,后者指文件元数据被修改。
在ls命令中,-t显示mtime,-u显示atime,-c显示ctime,不过stat命令更清晰些。

然后目前并没有共享内存被分配。

$ ipcs -a------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status------ Semaphore Arrays --------
key        semid      owner      perms      nsems$ ps -ef|grep smon|grep -v grep

数据库实例已启动 (阶段1)

根据文档How an Instance Is Started,启动实例的过程如下:

  1. 搜索服务器参数文件(SPFILE)
  2. 读取服务器参数文件以确定初始化参数的值
  3. 根据初始化参数设置分配SGA
  4. 启动 Oracle 后台进程
  5. 打开警报日志和跟踪文件,并以有效的参数语法将所有显式参数设置写入警报日志

相关命令为:

-- 数据库从关闭状态进入实例启动状态
SQL> STARTUP NOMOUNT
ORACLE instance started.Total System Global Area 1207955552 bytes
Fixed Size                  9134176 bytes
Variable Size             603979776 bytes
Database Buffers          587202560 bytes
Redo Buffers                7639040 bytes

来看一下相关变化。

首先spfile被读取了,虽然其没有被改动。

$ stat /opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.oraFile: ‘/opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.ora’Size: 3584            Blocks: 8          IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 147838129   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:39:40.758879960 +0800
Modify: 2024-01-08 22:27:21.718465002 +0800
Change: 2024-01-08 22:27:21.718465002 +0800Birth: -

控制文件和数据文件都没有被读取,毕竟数据库还没有被mount。

$ stat /opt/oracle/oradata/ORCLCDB/control01.ctlFile: ‘/opt/oracle/oradata/ORCLCDB/control01.ctl’Size: 18726912        Blocks: 36576      IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684770   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:41:25.153574355 +0800
Modify: 2024-01-08 22:41:25.179574414 +0800
Change: 2024-01-08 22:41:25.179574414 +0800Birth: -$ stat /opt/oracle/oradata/ORCLCDB/system01.dbfFile: ‘/opt/oracle/oradata/ORCLCDB/system01.dbf’Size: 954212352       Blocks: 1863704    IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684766   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:41:24.812573601 +0800
Modify: 2024-01-08 22:41:24.816573610 +0800
Change: 2024-01-08 22:41:24.816573610 +0800Birth: -

尽管数据库没有启动,但内存确实分配了,这也说明SGA等内存组件实际是实例的特性:

$ ipcs -a------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x00000000 4          oracle     600        9138176    64
0x00000000 5          oracle     600        1191182336 32
0x00000000 6          oracle     600        7639040    32
0x43b375cc 7          oracle     600        12288      32------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x8d2a3534 10         oracle     600        250
0x8d2a3535 11         oracle     600        250

对照以下SGA的信息:

SQL> select * from v$sga;NAME                      VALUE     CON_ID
-------------------- ---------- ----------
Fixed Size              9134176          0
Variable Size         603979776          0
Database Buffers      587202560          0
Redo Buffers            7639040          0

Fixed Size对应ipcs输出中的shmid 4;Variable Size+Database Buffers等于1191182336,对应ipcs输出中的shmid 5;Redo Buffers对应ipcs输出中的shmid 6。

关于Fixed SizeVariable Size,参见What are Fixed Size and Variable Size of SGA indicative of and how do we calculate them?

后台进程启动了:

$ ps -ef|grep smon|grep -v grep
oracle   20677     1  0 22:51 ?        00:00:00 ora_smon_ORCLCDB

这个阶段,管理员还不能对数据库进行操作:

SQL> select open_mode from v$database;
select open_mode from v$database*
ERROR at line 1:
ORA-01507: database not mounted

数据库已挂载(阶段2)

根据文档How a Database Is Mounted,在这一阶段,Oracle挂载一个数据库并与数据库实例关联。如果是RAC配置,一个数据库可以与多个数据库实例关联。

实例通过CONTROL_FILES初始化参数获取控制文件的位置并将其打开。在控制文件中,可以获取数据文件和在线重做日志文件的位置。

在这一阶段,数据库仍然是关闭的,管理员可以做一些特定的数据库维护操作。

相关命令为:

-- 数据库从关闭状态直接进入数据库挂载状态
SQL> STARTUP MOUNT
-- 数据库从NOMOUNT状态进入数据库挂载状态
SQL> ALTER DATABASE MOUNT;
Database altered.

来看一下和上一阶段想比,发生了什么变化。

首先,管理员已经可以访问数据库进行管理操作,但访问用户数据还是不行的:

SQL> select open_mode from v$database;OPEN_MODE
--------------------
MOUNTEDSQL> select * from hr.employees;
select * from hr.employees*
ERROR at line 1:
ORA-01219: database or pluggable database not open: queries allowed on fixed
tables or views only

spfile被修改了,而在上一阶段仅仅被读取。control file被修改了,而在上一阶段没有被访问。

$ stat /opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.oraFile: ‘/opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.ora’Size: 3584            Blocks: 8          IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 147838129   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 23:04:55.733604697 +0800
Modify: 2024-01-08 23:04:55.744604708 +0800
Change: 2024-01-08 23:04:55.744604708 +0800Birth: -$ stat /opt/oracle/oradata/ORCLCDB/control01.ctlFile: ‘/opt/oracle/oradata/ORCLCDB/control01.ctl’Size: 18726912        Blocks: 36576      IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684770   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 23:14:05.202142083 +0800
Modify: 2024-01-08 23:14:05.189142070 +0800
Change: 2024-01-08 23:14:05.189142070 +0800Birth: -

数据文件仍没有被读取:

$ stat /opt/oracle/oradata/ORCLCDB/system01.dbfFile: ‘/opt/oracle/oradata/ORCLCDB/system01.dbf’Size: 954212352       Blocks: 1863704    IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684766   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:41:24.812573601 +0800
Modify: 2024-01-08 22:41:24.816573610 +0800
Change: 2024-01-08 22:41:24.816573610 +0800Birth: -

数据库仍然是关闭的,但可以做一些维护工作:

SQL> show con_nameCON_NAME
------------------------------
CDB$ROOT
SQL> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       MOUNTED3 ORCLPDB1                       MOUNTED4 ORCLPDB2                       MOUNTED

目前为止,redo log也没有被读取:

$ stat /opt/oracle/oradata/ORCLCDB/redo01.logFile: ‘/opt/oracle/oradata/ORCLCDB/redo01.log’Size: 209715712       Blocks: 409616     IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684773   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 22:27:23.244467670 +0800
Modify: 2024-01-08 22:27:23.252467684 +0800
Change: 2024-01-08 22:27:23.252467684 +0800Birth: -

数据库已打开(阶段3)

根据文档How a Database Is Opened,在这一阶段,普通的用户就可以访问数据库进行增删改查了。

打开数据库时,Oracle 数据库执行以下操作:

  1. 打开除撤销表空间以外的表空间中的在线数据文件
    如果之前关闭数据库时表空间处于脱机状态,那么当数据库重新打开时,该表空间及其相应的数据文件将处于脱机状态。
  2. 获取一个撤销表空间
  3. 打开在线重做日志文件

相关命令为:

-- 数据库从关闭状态直接进入数据库打开状态
SQL> STARTUP OPEN
-- 数据库从NOMOUNT状态进入数据库挂载状态
SQL> ALTER DATABASE OPEN;Database altered.

这一阶段,数据文件和redo log都被读取和修改了:

$ stat /opt/oracle/oradata/ORCLCDB/system01.dbfFile: ‘/opt/oracle/oradata/ORCLCDB/system01.dbf’Size: 954212352       Blocks: 1863704    IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684766   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 23:24:32.182755204 +0800
Modify: 2024-01-08 23:24:32.077755101 +0800
Change: 2024-01-08 23:24:32.077755101 +0800Birth: -$ stat /opt/oracle/oradata/ORCLCDB/redo01.logFile: ‘/opt/oracle/oradata/ORCLCDB/redo01.log’Size: 209715712       Blocks: 409616     IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 139684773   Links: 1
Access: (0640/-rw-r-----)  Uid: (54321/  oracle)   Gid: (54321/oinstall)
Context: unconfined_u:object_r:usr_t:s0
Access: 2024-01-08 23:24:32.020755046 +0800
Modify: 2024-01-08 23:24:32.026755051 +0800
Change: 2024-01-08 23:24:32.026755051 +0800Birth: -

此时数据库处于可读写状态,业务用户可以访问数据库了:

SQL> select open_mode from v$database;OPEN_MODE
--------------------
READ WRITE

查询实例启动时间

当前启动时间:

SQL> alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss";Session altered.SQL> select startup_time from v$instance;STARTUP_TIME
-------------------
2024-01-09 11:34:52

历史启动时间,1月8日晚上那几个是做本次实验的时间:

SQL> SELECT STARTUP_TIME FROM dba_hist_database_instance ORDER BY startup_time DESC;STARTUP_TIME
---------------------------------------------------------------------------
09-JAN-24 11.35.06.000 AM
08-JAN-24 11.24.32.000 PM
08-JAN-24 10.27.23.000 PM
15-DEC-23 09.50.18.000 AM
22-NOV-23 09.27.57.000 AM

详细的启动日志可以从alert log中找到。

来看一下从close到nomount 数据库的这一段日志,也就是启动实例的日志:

2024-01-08T22:26:51.216756+08:00
Starting ORACLE instance (normal) (OS id: 18596)
2024-01-08T22:26:51.415274+08:00
****************************************************Sys-V shared memory will be used for creating SGA****************************************************
2024-01-08T22:26:51.421581+08:00
**********************************************************************
2024-01-08T22:26:51.421777+08:00
Dump of system resources acquired for SHARED GLOBAL AREA (SGA)2024-01-08T22:26:51.422091+08:00Per process system memlock (soft) limit = 128G
2024-01-08T22:26:51.422197+08:00Expected per process system memlock (soft) limit to lockinstance MAX SHARED GLOBAL AREA (SGA) into memory: 1154M
...
2024-01-08T22:26:54.321786+08:00
Initial number of CPU is 2
Number of processor cores in the system is 2
Number of processor sockets in the system is 1
...
2024-01-08T22:26:56.201230+08:00
NOTE: remote asm mode is local (mode 0x1; from cluster type)
2024-01-08T22:26:57.060942+08:00
NOTE: Using default ASM root directory ASM
NOTE: remote asm mode is local (mode 0x1; from cluster type)
NOTE: Cluster configuration type = NONE [2]
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0.
ORACLE_HOME:    /opt/oracle/product/19c/dbhome_1
System name:    Linux
Node name:      oracle-19c-vagrant
Release:        5.4.17-2136.323.8.2.el7uek.x86_64
Version:        #2 SMP Wed Sep 20 00:06:39 PDT 2023
Machine:        x86_64
Using parameter settings in server-side spfile /opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.ora
System parameters with non-default values:processes                = 300nls_language             = "AMERICAN"nls_territory            = "AMERICA"filesystemio_options     = "setall"sga_target               = 1152Mcontrol_files            = "/opt/oracle/oradata/ORCLCDB/control01.ctl"control_files            = "/opt/oracle/oradata/ORCLCDB/control02.ctl"db_block_size            = 8192compatible               = "19.0.0"db_create_file_dest      = "/u02/oradata"undo_tablespace          = "UNDOTBS1"remote_login_passwordfile= "EXCLUSIVE"audit_sys_operations     = FALSEwallet_root              = "/opt/oracle/wallet"tde_configuration        = "keystore_configuration=file"dispatchers              = "(PROTOCOL=TCP) (SERVICE=ORCLCDBXDB)"local_listener           = "(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))"audit_file_dest          = "/opt/oracle/admin/ORCLCDB/adump"commit_wait              = "nowait"commit_logging           = "batch"audit_trail              = "NONE"db_name                  = "ORCLCDB"open_cursors             = 300pga_aggregate_target     = 384Mmax_string_size          = "EXTENDED"diagnostic_dest          = "/opt/oracle"enable_pluggable_database= TRUE
2024-01-08T22:26:57.272471+08:00
============================================================
NOTE: PatchLevel of this instance 0
============================================================
2024-01-08T22:27:00.845366+08:00
Starting background process PMON
2024-01-08T22:27:00.921901+08:00
PMON started with pid=2, OS id=18611
Starting background process CLMN
...

mount 数据库的这一段日志:

2024-01-08T22:27:15.577994+08:00
ALTER DATABASE   MOUNT
2024-01-08T22:27:19.960506+08:00
.... (PID:18684): Redo network throttle feature is disabled at mount time
2024-01-08T22:27:20.151186+08:00
Successful mount of redo thread 1, with mount id 2928771267
2024-01-08T22:27:20.170803+08:00
Database mounted in Exclusive Mode
Lost write protection disabled
.... (PID:18684): Using STANDBY_ARCHIVE_DEST parameter default value as /opt/oracle/product/19c/dbhome_1/dbs/arch [krsd.c:18141]
Completed: ALTER DATABASE   MOUNT
2024-01-08T22:27:20.604215+08:00

open 数据库的这一段日志:

2024-01-08T22:27:20.604215+08:00
ALTER DATABASE OPEN
Ping without log force is disabled:instance mounted in exclusive mode.
2024-01-08T22:27:20.970579+08:00
Crash Recovery excluding pdb 2 which was cleanly closed.
2024-01-08T22:27:21.009403+08:00
Crash Recovery excluding pdb 4 which was cleanly closed.
2024-01-08T22:27:21.044930+08:00
Beginning crash recovery of 1 threadsparallel recovery started with 2 processes
2024-01-08T22:27:21.862998+08:00Thread 1: Recovery starting at checkpoint rba (logseq 28 block 121441), scn 0
2024-01-08T22:27:21.904360+08:00
Started redo scan
2024-01-08T22:27:22.131319+08:00
Completed redo scanread 403 KB redo, 75 data blocks need recovery
2024-01-08T22:27:22.231830+08:00
Started redo application atThread 1: logseq 28, block 121441, offset 0
2024-01-08T22:27:22.250156+08:00
Recovery of Online Redo Log: Thread 1 Group 1 Seq 28 Reading mem 0Mem# 0: /opt/oracle/oradata/ORCLCDB/redo01.log
2024-01-08T22:27:22.267918+08:00
Completed redo application of 0.24MB
2024-01-08T22:27:22.500676+08:00
Completed crash recovery atThread 1: RBA 28.122247.16, nab 122247, scn 0x00000000004127ec75 data blocks read, 75 data blocks written, 403 redo k-bytes read
2024-01-08T22:27:23.079959+08:00
Endian type of dictionary set to little
2024-01-08T22:27:23.298785+08:00
Thread 1 advanced to log sequence 29 (thread open)
Redo log for group 2, sequence 29 is not located on DAX storage
2024-01-08T22:27:23.359758+08:00
TT00 (PID:18716): Gap Manager starting
2024-01-08T22:27:23.553486+08:00
Thread 1 opened at log sequence 29Current log# 2 seq# 29 mem# 0: /opt/oracle/oradata/ORCLCDB/redo02.log
Successful open of redo thread 1
2024-01-08T22:27:23.554324+08:00
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
stopping change tracking
2024-01-08T22:27:24.346943+08:00
Undo initialization recovery: err:0 start: 34362829 end: 34362990 diff: 161 ms (0.2 seconds)
2024-01-08T22:27:24.656931+08:00
[18698] Successfully onlined Undo Tablespace 2.
Undo initialization online undo segments: err:0 start: 34362990 end: 34363300 diff: 310 ms (0.3 seconds)
Undo initialization finished serial:0 start:34362829 end:34363317 diff:488 ms (0.5 seconds)
Verifying minimum file header compatibility for tablespace encryption for pdb 1..
Verifying file header compatibility for tablespace encryption completed for pdb 1
Database Characterset is AL32UTF8
No Resource Manager plan active
2024-01-08T22:27:26.737750+08:00
joxcsys_required_dirobj_exists: directory object exists with required path /opt/oracle/product/19c/dbhome_1/javavm/admin/, pid 18698 cid 1
replication_dependency_tracking turned off (no async multimaster replication found)
2024-01-08T22:27:28.530215+08:00
Starting background process AQPC
2024-01-08T22:27:28.651850+08:00
AQPC started with pid=43, OS id=18728
2024-01-08T22:27:29.867380+08:00
PDB$SEED(2):Autotune of undo retention is turned on.
2024-01-08T22:27:30.272563+08:00
PDB$SEED(2):Endian type of dictionary set to little
PDB$SEED(2):Undo initialization finished serial:0 start:34369350 end:34369350 diff:0 ms (0.0 seconds)
PDB$SEED(2):Database Characterset for PDB$SEED is AL32UTF8
2024-01-08T22:27:32.582739+08:00
PDB$SEED(2):Opening pdb with no Resource Manager plan active
2024-01-08T22:27:33.849456+08:00
ORCLPDB1(3):Autotune of undo retention is turned on.
2024-01-08T22:27:34.037019+08:00
ORCLPDB1(3):Endian type of dictionary set to little
ORCLPDB1(3):Undo initialization recovery: err:0 start: 34373141 end: 34373314 diff: 173 ms (0.2 seconds)
2024-01-08T22:27:34.923730+08:00
QPI: opatch file present, opatch
QPI: qopiprep.bat file present
2024-01-08T22:27:35.231303+08:00
ORCLPDB1(3):[18698] Successfully onlined Undo Tablespace 2.
ORCLPDB1(3):Undo initialization online undo segments: err:0 start: 34373314 end: 34373875 diff: 561 ms (0.6 seconds)
ORCLPDB1(3):Undo initialization finished serial:0 start:34373141 end:34373908 diff:767 ms (0.8 seconds)
ORCLPDB1(3):Database Characterset for ORCLPDB1 is AL32UTF8
2024-01-08T22:27:39.604926+08:00
ORCLPDB1(3):Opening pdb with no Resource Manager plan active
ORCLPDB1(3):joxcsys_required_dirobj_exists: directory object exists with required path /opt/oracle/product/19c/dbhome_1/javavm/admin/, pid 18698 cid 3
2024-01-08T22:27:41.057725+08:00
Pluggable database ORCLPDB1 opened read write
2024-01-08T22:27:42.744511+08:00
Starting background process CJQ0
2024-01-08T22:27:43.150317+08:00
CJQ0 started with pid=56, OS id=18916
Completed: ALTER DATABASE OPEN

参考

  • Database Concepts: Overview of Database Instance Startup and Shutdown
  • User’s Guide and Reference: STARTUP
  • Database Administrator’s Guide: 3.1 Starting Up a Database

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

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

相关文章

共融共生:智慧城市与智慧乡村的协调发展之路

随着科技的飞速发展和全球化的不断深入,智慧城市和智慧乡村作为现代社会发展的重要组成部分,正逐渐成为人们关注的焦点。然而,在追求经济发展的过程中,城乡发展不平衡的问题也日益凸显。因此,如何实现智慧城市与智慧乡…

完整的模型验证套路

读取图片 from PIL import Imageimg_path "../Yennefer_of_Vengerberg.jpg" image Image.open(img_path) print(image)转换成灰度图(可选) image image.convert(L) image.show()转换成RGB格式 image image.convert(RGB)因为png格式是四…

STM32F103RCT6开发板M3单片机教程07-TIMER1CH1输出 PWM做LED呼吸灯

概述 本教程使用是(光明谷SUN_STM32mini开发板) 免费开发板 在谷动谷力社区注册用户,打卡,发帖求助都可以获取积分,当然最主要是发原创应用文档奖励更多积分. (可用积分换取,真的不用钱&…

Goby 漏洞发布|用友 NC registerServlet 反序列化远程代码执行漏洞

漏洞名称:用友 NC registerServlet 反序列化远程代码执行漏洞 English Name:Yonyou NC registerServlet Deserialize Remote Code Execute Vulnerability CVSS core: 9.8 影响资产数: 21320 漏洞描述: 用友 NC Cloud 是一种商…

熟悉HBase常用操作

1. 用Hadoop提供的HBase Shell命令完成以下任务 (1)列出HBase所有表的相关信息,如表名、创建时间等。 启动HBase: cd /usr/local/hbase bin/start-hbase.sh bin/hbase shell列出HBase所有表的信息: hbase(main):001:0> list(2)在终端输出指定表的所有记录数据。 …

k8s-存储 11

一、configmapu存储 首先,确保集群正常,节点都处于就绪状态 Configmap用于保存配置数据,以键值对形式存储。configMap资源提供了向 Pod 注入配置数据的方法,旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用…

kylin集群反向代理(健康检查)

前面一篇文章提到了使用nginx来对kylin集群进行反向代理, kylin集群使用nginx反向代理-CSDN博客文章浏览阅读349次,点赞8次,收藏9次。由于是同一个集群的,元数据没有变化,所以,直接将原本的kylin使用scp的…

RabbitMQ(六)消息的持久化

目录 一、简介1.1 定义1.2 消息丢失的场景 二、交换机的持久化方式一:直接 new方式二:channel.exchangeDeclare()方式三:ExchangeBuilder【推荐】 三、队列的持久化方式一:直接 new方式二:channel.queueDeclare()方式三…

C++核心编程——类和对象(二)

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…

AI绘画软件Stable Diffusion模型/Lora/VAE文件存放位置

型下载说明(下载模型后输入对应参数即可生成) 建议直接去civitai.com找模型,如果无法找到可以在幕后模型区找也可以去, 下载好后放入对应的文件夹。进入127.0.0.1:7680 左上角刷新即可看到新的模型。 模型种类 大模型 大模型特…

基于springboot+vue药店管理系统

摘要 药店管理系统的设计和应用在当前社会背景下具有巨大的实际意义和社会价值。随着医药行业的不断发展和社会健康水平的提高,药店作为医疗服务的一部分,其管理方式也需要不断创新与优化。该系统的研究不仅关系到单一药店的运营效率,更涉及到…

植物大战僵尸小游戏抖音快手直播搭建弹幕插件教程

植物大战弹幕插件功能介绍 该插件由梦歌技术部团队支持开发,本插件软件通过监测抖音弹幕信息,获取礼物数据触发脚本插件对应的功能; 功能目前基本上已经完善,后期功能会陆续上线支持更新,全新的脚本监测稳定方便实用…

逆向分析爬取网页动态

本例子以爬取人民邮电出版社网页新书的信息为例 由于页面是动态的,信息会不停地更新,所以不同时间的爬取结果会不同。

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-2(1) 质量刚体的在坐标系下运动

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…

ORB SLAM2 编译

文章目录 软件版本编译编译自动编译手动编译 运行结果运行截图轨迹分析 软件版本 Pangolin0.6opencv3.4.0 ORB SLAM2 编译 # 更改Opencv依赖版本与添加Pangolin依赖 # CMakelist.txt更改 LIST(APPEND CMAKE_PREFIX_PATH /usr/local/opencv-3.4) # 添加 LIST(APPEND CMAKE_PR…

day15 层序遍历 翻转二叉树 对称二叉树

题目1:102 二叉树的层序遍历 题目链接:102 二叉树的层序遍历 题意 根据二叉树的根节点root,返回其节点值的层序遍历 借助队列实现,因为队列是先进先出的逻辑,符合层序遍历一层一层遍历的思想 代码 /*** Definitio…

Linux tail命令详解和高级用法举例

目 录 一、概述 二、tail命令解释 1.命令格式; 2.功能 3.选项 4.选项的基本用法 (1) 显示行号 (2)忽略指定字符数 (3) 不显示文件名 三…

C语言实现简易n子棋小游戏(代码含注解)

利用C语言简单实现一个n子棋小游戏,棋盘大小由自己定义 将源文件分为 执行游戏的测试文件(test.c)和保存游戏运行逻辑的相关函数的文件(game.c) 头文件中声明符号和函数的定义(game.h) 游戏执行主要依靠二维数组实现,电脑走棋采用随机值的方法简易地…

【AI视野·今日Robot 机器人论文速览 第六十九期】Wed, 3 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 3 Jan 2024 Totally 5 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers NID-SLAM: Neural Implicit Representation-based RGB-D SLAM in dynamic environments Authors Ziheng Xu, Jianwei Niu, Qingf…

ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验

ChatGLM3 是由智谱AI训练的第三代大型语言模型,它不仅能理解和生成人类语言,还能执行代码、调用工具,并以 markdown 格式进行响应。为了提高用户体验,同时避免用户输入的注入攻击,ChatGLM3 采用了全新的对话格式。下载…