详解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,启动实例的过程如下:
- 搜索服务器参数文件(SPFILE)
- 读取服务器参数文件以确定初始化参数的值
- 根据初始化参数设置分配SGA
- 启动 Oracle 后台进程
- 打开警报日志和跟踪文件,并以有效的参数语法将所有显式参数设置写入警报日志
相关命令为:
-- 数据库从关闭状态进入实例启动状态
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 Size
和Variable 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 数据库执行以下操作:
- 打开除撤销表空间以外的表空间中的在线数据文件
如果之前关闭数据库时表空间处于脱机状态,那么当数据库重新打开时,该表空间及其相应的数据文件将处于脱机状态。 - 获取一个撤销表空间
- 打开在线重做日志文件
相关命令为:
-- 数据库从关闭状态直接进入数据库打开状态
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
相关文章:

详解Oracle数据库的启动
Oracle数据库的启动,其概念可参考Overview of Instance and Database Startup。 其过程可参见下图: 当数据库从关闭状态进入打开数据库状态时,它会经历以下阶段。 阶段Mount状态描述1实例在没有挂载数据库的情况下启动实例已启动ÿ…...

2024年跨境电商上半年营销日历,建议收藏
2024年伊始,跨境电商开启新一轮的营销竞技,那么首先需要客户需求,节假日与用户需求息息相关,那么接下来小编为大家整理2024上半年海外都有哪些节日和假期?跨境卖家如何见针对营销日历选品,助力卖家把握2024…...

Go采集1688网站数据对比商品价格
最近看了下多多和1688的一些商品价格,发现好多店铺都是无货源拿货一件发货,这就导致层层叠加价格翻了不知道几倍,真所谓多花钱办的事还是一样,因此,今天我就通过一个爬虫程序监控对应商品价格,了解行业龙头…...

Java泛型:灵活多变的类型参数化工具
👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、泛型1、什么是泛型2、泛型的语法 二、泛型类的使用1、泛型类的语法2、泛型如何编译的2.1、擦除机制2.2、为什么不能实例化泛…...

java 体育明星管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java Web 体育明星管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq…...

蓝凌EIS智慧协同平台 ShowUserInfo.aspx sql注入漏洞
漏洞描述: 蓝凌EIS智慧协同平台是一个简单、高效的工作方式专为成长型企业打造的沟通、协同、社交的移动办公平台,覆盖OA、沟通、客户、人事、知识等管理需求,集合了非常丰富的模块,满足组织企业在知识、项目管理系统建设等需求的…...
React Hooks的useState、useRef使用
React Hooks 是 React 16.8 版本引入的新特性,它允许你在不编写 class 的情况下使用 state 和其他 React 特性。其中,useState 和 useRef 是两个常用的 Hooks。 1. useState useState 是一个允许你在函数组件中添加 state 的 Hook。 使用说明…...

Linux--防火墙,实验案例:基于区域、服务、端口的访问控制
实验环境 某公司的Web服务器,网关服务器均采用Linux CentOS 7.3操作系统,如图2.13所示。为了 加强网络访问的安全性,要求管理员熟悉firewalld防火墙规则的编写,以便制定有效、可行的主机防护策略。 需求描述 > 网关服务器ens3…...

C++学习笔记(二十八):c++ 静态库及动态库的使用
静态库的使用 库的使用会很大程度减少我们的工作,本节对c中静态库和动态库的使用进行简单的介绍。静态链接库意味着这个库会被放到可执行文件中,在生成的exe中。动态链接库是在程序运行时链接的,可以在程序运行时调用加载库函数的方法来实现&…...

uniapp最简单的底部兼容安全区域显示
效果图: 1.html写上动态padding-bottom <view class"button-wrap" :style"padding-bottom:bottomPaddingrpx"><view class"com-btn cencel-btn">取消</view><view class"com-btn confirm-btn " cl…...

图像去噪——CBDNet网络训练自己数据集及推理测试,模型转ONNX模型(详细图文教程)
CBDNet 主要由两个子网络组成:噪声估计子网络和去噪子网络。噪声估计子网络用于估计图像的噪声水平,而去噪子网络用于去除图像中的噪声。 CBDNet 的优势在于: 它采用了更真实的噪声模型,既考虑了泊松-高斯模型,还考虑…...
【Verilog】期末复习——解释下列名词(FPGA、ASIC、IP、RTL、EDA、HDL、FSM)
系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…...

计算机网络 综合(习题)
【计算机网络习题】系列文章目录 计算机网络 第一章 绪论(习题) 计算机网络 第二章 计算机网络体系结构(习题) 计算机网络 第三章 应用层(习题) 计算机网络 第四章 运输层(习题) 计算机网络 第五章 网络层(习题) 计算机网络 第六章 数据链路层(习题) 计算机网络 第七章 物…...
探索vue2框架的世界:简述常用的vue2选项式API (二)
组件实例 👉 $attrs 用于父组件隔代向孙组件传值 长设置在子组件中 v-bind"$attrs" (Vue2.4) parent.vue (父组件) <template><div class"outer"><h3>父组件</h3>名字:<input v-model"name"…...

云计算:OpenStack 分布式架构管理FLAT网络(单控制节点与多计算节点)
目录 一、实验 1.环境 2.控制节点创建网络 3.控制节点创建规格 4.控制节点新增安全组入口规则 5.控制节点创建实例 二、问题 1.FLAT网络底层如何实现 2.无法SSH 云主机实例 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部…...

【深度学习】cv领域中各种loss损失介绍
文章目录 前言一、均方误差二、交叉熵损失三、二元交叉熵损失四、Smooth L1 Loss五、IOU系列的loss 前言 损失函数是度量模型的预测输出与真实标签之间的差异或误差,在深度学习算法中起着重要作用。具体作用: 1、目标优化:损失函数是优化算法…...

2024年,为什么学网络安全找不到工作?这才是重要原因!
为什么网络安全人才缺口那么大,但很多人还是找不到工作?其实大家都忽略了1个重点,那就是不清楚企业在招什么样的人。 我花了2天的时间统计了主流招聘网站的岗位信息,发现了一个惊人的真相,那就是企业都喜欢招这3种人&a…...

很有用!小企业如何从零开始制作产品手册?
对于初创公司和小企业来说,创造一份高效、吸引人的产品手册可能不是特别简单,特别是当资源和预算有限的时候。然而,一份良好的产品手册可以帮助你传达你的品牌故事,展示你的产品,甚至可以帮助你提高销售额,…...

基于OpenCV的图像缩放
基础概念 缩放是将图像的尺寸变小或变大的过程,即减少或增加原图像数据的像素个数,或者说通过增加或删除像素点来改变图像的尺寸; 基本原理:将分辨率(图片尺寸)为(w,h)的图像,缩放后其图像分辨…...
基于长短期神经网络LSTM的测量误差预测
目录 背影 摘要 代码和数据下载:基于长短期神经网络LSTM的测量误差预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88714812 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的测量误差预测 结果分析 展望 参考论文 背影 …...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...