详解Oracle数据库的启动

news/2024/6/18 23:47:30 标签: oracle, database, startup, explain

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.ora

SQL> show parameter control_files
NAME          TYPE   VALUE
------------- ------ ------------------------------------------------------------------------------------
control_files string /opt/oracle/oradata/ORCLCDB/control01.ctl, /opt/oracle/oradata/ORCLCDB/control02.ctl

SQL> 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.ora
  File: ‘/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 +0800
 Birth: -

$ stat /opt/oracle/oradata/ORCLCDB/control01.ctl
  File: ‘/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 +0800
 Birth: -

$ stat /opt/oracle/oradata/ORCLCDB/system01.dbf
  File: ‘/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 +0800
 Birth: -

在以上时间中,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.ora
  File: ‘/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 +0800
 Birth: -

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

$ stat /opt/oracle/oradata/ORCLCDB/control01.ctl
  File: ‘/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 +0800
 Birth: -

$ stat /opt/oracle/oradata/ORCLCDB/system01.dbf
  File: ‘/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 +0800
 Birth: -

尽管数据库没有启动,但内存确实分配了,这也说明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
--------------------
MOUNTED

SQL> 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.ora
  File: ‘/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 +0800
 Birth: -

$ stat /opt/oracle/oradata/ORCLCDB/control01.ctl
  File: ‘/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 +0800
 Birth: -

数据文件仍没有被读取:

$ stat /opt/oracle/oradata/ORCLCDB/system01.dbf
  File: ‘/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 +0800
 Birth: -

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

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 ORCLPDB1                       MOUNTED
         4 ORCLPDB2                       MOUNTED

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

$ stat /opt/oracle/oradata/ORCLCDB/redo01.log
  File: ‘/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 +0800
 Birth: -

数据库已打开(阶段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.dbf
  File: ‘/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 +0800
 Birth: -

$ stat /opt/oracle/oradata/ORCLCDB/redo01.log
  File: ‘/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 +0800
 Birth: -

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

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:00
 Per process system memlock (soft) limit = 128G
2024-01-08T22:26:51.422197+08:00
 Expected per process system memlock (soft) limit to lock
 instance 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                = 300
  nls_language             = "AMERICAN"
  nls_territory            = "AMERICA"
  filesystemio_options     = "setall"
  sga_target               = 1152M
  control_files            = "/opt/oracle/oradata/ORCLCDB/control01.ctl"
  control_files            = "/opt/oracle/oradata/ORCLCDB/control02.ctl"
  db_block_size            = 8192
  compatible               = "19.0.0"
  db_create_file_dest      = "/u02/oradata"
  undo_tablespace          = "UNDOTBS1"
  remote_login_passwordfile= "EXCLUSIVE"
  audit_sys_operations     = FALSE
  wallet_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             = 300
  pga_aggregate_target     = 384M
  max_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 threads
 parallel recovery started with 2 processes
2024-01-08T22:27:21.862998+08:00
 Thread 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 scan
 read 403 KB redo, 75 data blocks need recovery
2024-01-08T22:27:22.231830+08:00
Started redo application at
 Thread 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 0
  Mem# 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 at
 Thread 1: RBA 28.122247.16, nab 122247, scn 0x00000000004127ec
 75 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 29
  Current 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.niftyadmin.cn/n/5317535.html

相关文章

Android SDK环境搭建[图解]; 解决问题Done. Nothing was installed.

安装SDK Android SDK环境搭建 依赖java环境,需要自备Java环境 (100%实操成功) 目录 1. 解压:解压到非中文无特殊字符的目录 2. 双击:SDK Manager.exe,不要选全部!不要选全部!不要选全部!(会下很久) 3. 然后勾选组件​ 4. 设置环境变量 …

web左侧伸缩菜单栏/导航栏

效果展示&#xff1a; 百度网盘链接下载全部资源&#xff1a; http://链接&#xff1a;https://pan.baidu.com/s/1ZnKdWxTH49JhqZ7Xd-cJIA?pwd4332 提取码&#xff1a;4332 html/JQuery代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head&g…

【C++】STL 算法 ③ ( 函数对象中存储状态 | 函数对象作为参数传递时值传递问题 | for_each 算法的 函数对象 参数是值传递 )

文章目录 一、函数对象中存储状态1、函数对象中存储状态简介2、示例分析 二、函数对象作为参数传递时值传递问题1、for_each 算法的 函数对象 参数是值传递2、代码示例 - for_each 函数的 函数对象 参数在外部不保留状态3、代码示例 - for_each 函数的 函数对象 返回值 一、函数…

定时任务扫表缺点解决方案

通过定时任务扫表&#xff0c;是我们在业务中经常会做的事情&#xff0c;一般是直接用xxl-job等定时任务去分页查询数据库&#xff0c;然后进行业务操作&#xff0c;这个方案&#xff0c;一般是最简单的&#xff0c;也是最有效的。 但是&#xff0c;他还是有一些缺点的&#x…

jupyter快速实现单标签及多标签多分类的文本分类BERT模型

jupyter实现pytorch版BERT&#xff08;单标签分类版&#xff09; nlp-notebooks/Text classification with BERT in PyTorch.ipynb 通过改写上述代码&#xff0c;实现多标签分类 参考解决方案 &#xff0c;我选择的解决方案是继承BertForSequenceClassification并改写&#…

workspace.xml文件停止被git追踪

理论上我在.gitignore中添加了 .idea/*.xml git会忽略上传.idea目录下的文件 但是发现wordspace.xml文件还是会被git追踪 可能是由于workspace.xml文件已经被Git追踪的缘故。 .gitignore文件只能阻止Git追踪尚未被追踪的文件&#xff0c;对于已经被Git追踪的文件&#xff0c…

Open100: 开源系统杰出成果

了解更多&#xff1a;芝士AI吃鱼 背景 开源的根源可以追溯到计算机的早期&#xff0c;并在20世纪末发展迅猛。贝尔实验室在20世纪70年代开发的AT&T Unix是开源的关键里程碑&#xff0c;其共享源代码的概念为开源运动奠定了基础。开源已重溯软硬件产业生态&#xff0c;并正…

QWidget设置背景颜色为透明,结果背景为黑色的问题(仅适用无边框)

解决思路&#xff1a; 创建一个 QWidget&#xff0c;取名为 qMainWidget&#xff0c;设置 QWidget 为透明无边框&#xff0c;再创建一个 QWidget&#xff0c;取名为 qMainWidget2&#xff0c;令 qMainWidget2 的父节点为 qMainWidget&#xff0c;设置 qMainWidget2 的样式为半…