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

【数据库管理】②实例管理及数据库启动关闭

1. 实例和参数文件

1.1 instance

用于管理和访问 database.

instance 在启动阶段读取初始化参数文件(init parameter files).

1.2 init parameter files

[root@oracle-db-19c ~]# su - oracle
[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ cd $ORACLE_HOME/dbs
[oracle@oracle-db-19c dbs]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/dbs
[oracle@oracle-db-19c dbs]$ ll
total 10261428
-rw-rw----. 1 oracle oinstall     1544 Mar 30 11:17 hc_cdb1.dat
-rw-r--r--. 1 oracle oinstall     1188 Feb  2 19:19 initcdb1.ora
-rw-r--r--. 1 oracle oinstall     3079 May 14  2015 init.ora
-rw-r--r--. 1 oracle oinstall     3079 May 14  2015 init.ora.bkp
-rw-r-----. 1 oracle oinstall       24 Nov  2 15:03 lkCDB1
-rw-r-----. 1 oracle oinstall     3072 Feb  1 13:41 orapwcdb1
-rw-r-----. 1 oracle oinstall 18989056 Mar 30 11:23 snapcf_cdb1.f
-rw-r-----. 1 oracle oinstall     3584 Mar 30 11:17 spfilecdb1.ora
-rw-r-----. 1 oracle oinstall     3584 Nov 27 16:55 spfilecdb1.ora.bkp
[oracle@oracle-db-19c dbs]$ 

 1.3 pfile

(parameter file)文本初始化参数文件 -- 静态参数文件.

1)文本文件,必须通过编辑器修改参数.

2)修改参数下次重启实例才生效.

3)pfile参数文件可以不在database server上.

命名方式: init+SID.ora

1.4 spfile

(system parameter file)服务器参数文件 -- 动态参数文件.

1)二进制文件,不可以通过编辑器修改.

2)Linux下strings 可以查看 .

3)必须在database server段的指定路径下.
 

[oracle@oracle-db-19c dbs]$ string spfilecdb1.ora

1.5 静态参数和动态参数 (和动态静态参数文件两码事)

在spfile读到内存后,有一部分参数是可以直接在内存中修改,并对当前instance立即生效,这样的参数叫动态参数.除了动态参数都是静态参数.静态参数修改spfile文件.动态参数在instance关闭后失效,而静态参数是下次instance启动后才生效.

1.5.1 修改spfile文件的方法:

alter system set 参数=值 [scope=memory |spfile |both]
alter system reset 参数 [scope=memory |spfile |both] SID='*'  -- 恢复缺省值.

第一种scope=memory 参数修改立刻生效,但不修改spfile文件.

第二种scope=spfile 修改了spfile文件,重启后生效.

第三种scope=both 前两种都要满足.

如果不写scope,即缺省,那就是第三种.

*NOTE: 如果不修改spfile,将无法更改静态参数.

-- 通过查看v$parameter ,可以确定哪些参数可以在memory修改,制定scope.
SQL> desc v$parameter;Name                                                                                                              Null?    Type----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------NUM                                                                                                                        NUMBERNAME                                                                                                                       VARCHAR2(80)TYPE                                                                                                                       NUMBERVALUE                                                                                                                      VARCHAR2(4000)DISPLAY_VALUE                                                                                                              VARCHAR2(4000)DEFAULT_VALUE                                                                                                              VARCHAR2(255)ISDEFAULT                                                                                                                  VARCHAR2(9)ISSES_MODIFIABLE                                                                                                           VARCHAR2(5)ISSYS_MODIFIABLE                                                                                                           VARCHAR2(9)ISPDB_MODIFIABLE                                                                                                           VARCHAR2(5)ISINSTANCE_MODIFIABLE                                                                                                      VARCHAR2(5)ISMODIFIED                                                                                                                 VARCHAR2(10)ISADJUSTED                                                                                                                 VARCHAR2(5)ISDEPRECATED                                                                                                               VARCHAR2(5)ISBASIC                                                                                                                    VARCHAR2(5)DESCRIPTION                                                                                                                VARCHAR2(255)UPDATE_COMMENT                                                                                                             VARCHAR2(255)HASH                                                                                                                       NUMBERCON_ID                                                                                                                     NUMBERSQL> 

1.5.2 ISSYS_MODIFIABLE

SQL> select distinct issys_modifiable from v$parameter;ISSYS_MODIFIABLE
---------------------------
IMMEDIATE                        -- (动态参数)对应scope=memory
DEFERRED                         -- 其他session有效
FALSE                            -- (静态参数)只能scope=spfile,即修改spfile文件,下次启动才生效.SQL> 

1.5.3 ISSES_MODIFIABLE

SQL> 
SQL> -- 对应alter session命令,即session级修改
SQL> select distinct isses_modifiable from v$parameter;ISSES_MODIFIABL
---------------
TRUE
FALSESQL> select ISSES_MODIFIABLE, ISSYS_MODIFIABLE from v$parameter where name='sql_trace';ISSES_MODIFIABL ISSYS_MODIFIABLE
--------------- ---------------------------
TRUE            IMMEDIATESQL> -- 这个结果表示 sql_trace参数在session级别可以改,在system级也可以both修改(动态参数).
SQL> 

1.6 startup时读取参数文件

找到$ORACLE_HOME/dbs目录,顺序是优先spfile启动,没有 spfile 才从pfile启动.

1.6.1 查看启动的参数

SQL> 
SQL> show parameter spfile;NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
spfile                               string                            /u01/app/oracle/product/19.3.0/dbhome_1/dbs/spfilecdb1.ora
SQL> -- 如果Value有值 说明是spfile,否则pfile启动

1.6.2 pfile和spfile可以相互生成

SQL> create pfile from spfile;
SQL> create spfile from pfile;
create spfile from pfile
ERROR at line 1:
ORA-32002: cannot create SPFILE already being used by the instance

1.6.3 通过当前内存参数生成pfile和spfile

-- (11g新特性):
SQL> create pfile from memory;
SQL> create spfile from memory;

1.6.4 使用pfile启动

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 
SQL> startup pfile=$ORACLE_HOME/dbs/initcdb1.ora
ORACLE instance started.Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             406847488 bytes
Database Buffers          197132288 bytes
Redo Buffers               16027648 bytes
Database mounted.
Database opened.
SQL> 
SQL> show parameter spfileNAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
spfile                               stringSQL> -- *NOTE:
SQL> -- 如果使用pfile启动,设置scope=spfile将失败!(因为是pfile启动的)
SQL> -- 但可以设置scope=memory,要修改pfile 文件,使用文本编辑工具.
SQL> show parameter log_bufferNAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
log_buffer                           big integer
15000K
SQL> alter system set log_buffer=1 scope=spfile;
alter system set log_buffer=1 scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in useSQL> -- 设置scope=memory
SQL> show parameter db_16NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
db_16k_cache_size                    big integer
0
SQL> --- 如果db_16k_cache_size的值不为0的话,则需要执行alter system set db_16k_cache_size=0 scope=memory;
SQL> startup force
ORACLE instance started.Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             419430400 bytes
Database Buffers          184549376 bytes
Redo Buffers               16027648 bytes
Database mounted.
Database opened.
SQL> 

2. 数据库启动与关闭

2.1 启动分为三个阶段

 2.1.1 nomount阶段

实例启动,读取init parameter

SQL> 
SQL> startup nomount;
ORACLE instance started.Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             419430400 bytes
Database Buffers          184549376 bytes
Redo Buffers               16027648 bytes
SQL> -- (这条命令很实用,是看当前数据库启动的状态,有三个 started, mounted, open.)
SQL> select status from v$instance;STATUS
------------------------------------
STARTEDSQL> 

2.1.2 mount阶段:

读取控制文件

SQL> alter database mount;Database altered.SQL> -- 刻意将数据库状态改成mounted
SQL> select status from v$instance;STATUS
------------------------------------
MOUNTEDSQL> 

2.1.3 open阶段:

1、检查所有的datafile、redo log、 group 、password file.

2、检查数据库的一致性(controlfile、datafile、redo file的检查点是否一致)

SQL> alter database open;Database altered.SQL> -- 刻意将数据库状态改成open
SQL> select file#, checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#
---------- ------------------1           238547253           238547254           238547255            21607896            21607897           238547258            21607899           2385486710           2385486711           2385486712           23854867FILE# CHECKPOINT_CHANGE#
---------- ------------------13           2385486114           2385486115           2385486116           2385486185           23854867126           23854867127           23854867154           23854867155           23854725162           21742070163           23854867FILE# CHECKPOINT_CHANGE#
---------- ------------------164           21742070165           21742070166           21742070169           23854867181           2385486727 rows selected.SQL> -- 从控制文件读出
SQL> select checkpoint_change# from v$database;CHECKPOINT_CHANGE#
------------------23854725SQL> -- 从控制文件读出
SQL> select file#, checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#
---------- ------------------1           238547253           238547254           238547255            21607896            21607897           238547258            21607899           2385486710           2385486711           2385486712           23854867FILE# CHECKPOINT_CHANGE#
---------- ------------------13           2385486114           2385486115           2385486116           2385486185           23854867126           23854867127           23854867154           23854867155           23854725162           21742070163           23854867FILE# CHECKPOINT_CHANGE#
---------- ------------------164           21742070165           21742070166           21742070169           23854867181           2385486727 rows selected.SQL> -- 从 datafile header 读出
SQL> -- 数据库open之前要检查controlfile所记录SCN和datafile header 记录的SCN是否一致;一致就正常打开库,不一致需要做media recover
SQL> select status from v$instance;STATUS
------------------------------------
OPENSQL> 

2.2 启动数据库时的特殊选项

SQL> alter database open read only;
SQL> startup force
SQL> startup upgrade						-- (只有sysdba能连接)
SQL> startup restrict						-- (有restrict session权限才可登录,sys不受限制)
SQL> alter system enable restricted session;-- (open后再限制)

2.3 实例关闭shutdown:

SQL> shutdown normal:					-- 拒绝新的连接,等待当前事务结束,等待当前会话结束,生成检查点
SQL> shutdown transactional:			-- 拒绝新的连接,等待当前事务结束,生成检查点
SQL> shutdown immediate:				-- 拒绝新的连接,未提交的事务回滚,生成检查点
SQL> shutdown abort(startup force):		-- 事务不回滚,不生成检查点,下次启动需要做 instance  recovery

 *NOTE: shutdown abort 不会损坏database. -- 实例保护

 如下是关闭选项

2.3.1 SHUTDOWN NORMAL

如果不指定模式,则默认关闭模式为NORMAL.正常关闭数据库时会发生以下情况:

• 不可以建立新连接.

• Oracle 服务器在完成关闭之前先等待所有用户断开连接.

• 数据库和重做缓冲区被写入磁盘.

• 后台进程终止,从内存中删除SGA.

• Oracle 服务器在关闭实例之前关闭并卸装数据库.

• 下一次启动不需要进行实例恢复.

2.3.2 SHUTDOWN TRANSACTIONAL

采用TRANSACTIONAL 关闭方式可防止客户机丢失数据,其中包括客户端当前活动的结果.执行事务处理数据库关闭时会发生以下情况:

 

• 任何客户机都不能在这个特定实例上启动新事务处理.

• 会在客户机结束正在进行的事务处理后断开客户机.

• 完成所有事务处理后立即执行关闭.

• 下一次启动不需要进行实例恢复.

 2.3.3 SHUTDOWN IMMEDIATE

采用IMMEDIATE 关闭模式会出现以下情况:

• Oracle DB 正在处理的当前SQL 语句不会完成执行.

• Oracle 服务器不会等待当前连接到数据库的用户断开连接.

• Oracle 服务器会回退活动的事务处理,并会断开所有连接用户.

• Oracle 服务器在关闭实例之前关闭并卸装数据库.

• 下一次启动不需要进行实例恢复.

注:IMMEDIATE 是使用Enterprise Manager 时的默认关闭模式.

2.3.4 SHUTDOWN ABORT

如果NORMAL、TRANSACTIONAL 和IMMEDIATE 关闭模式都不起作用,则可以选择中止当前的数据库实例.中止实例时会发生以下情况:

• Oracle DB 正在处理的当前SQL 语句会立即终止.

• Oracle 服务器不等待当前连接到数据库的用户断开连接.

• 数据库和重做缓冲区未写入磁盘.

-- Dirty buffers in the buffer cache and unwritten redo are not written to the data files and redo log files respectively

• 不回退未提交的事务处理.

• 实例终止,但不关闭文件.

• 数据库未关闭或未卸装.

• 下一次启动时需要进行实例恢复,实例恢复是自动进行的.

 注:不建议备份处于不一致状态的数据库.

3. 自动诊断信息库ADR

11g新特性:Automatic Diagnostic Repository

存储在操作系统下的一个目录(树)结构,包括: 预警日志文件,跟踪文件,健康检查,DUMP 转储文件等

11g 用 DIAGNOSTIC_DEST 一个参数代替了许多老版本的参数,如 BACKGROUND_DUMP_DEST,CORE_DUMP_DEST,USER_DUMP_DEST等.

3.1 ADR的基目录

[oracle@oracle-db-19c ~]$ 
[oracle@oracle-db-19c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 30 14:43:44 2023
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> show user;
USER is "SYS"
SQL> 
SQL> set pagesize 200 linesize 200
SQL> 
SQL> show parameter diagNAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
diagnostic_dest                      string                            /u01/app/oracle-- NOTE:  这是ADR的基目录
-- 如果你设置了ORACLE_BASE环境变量,则diagnostic_dest默认值被设置为同样的目录,否则oracle设置的目录是$ORALE_HOME/logSQL> show parameter dumpNAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
background_core_dump                 string                            partial
background_dump_dest                 string                            /u01/app/oracle/product/19.3.0/dbhome_1/rdbms/log
core_dump_dest                       string                            /u01/app/oracle/diag/rdbms/cdb1/cdb1/cdump
max_dump_file_size                   string                            unlimited
shadow_core_dump                     string                            partial
user_dump_dest                       string                            /u01/app/oracle/product/19.3.0/dbhome_1/rdbms/log
SQL> 

 在 oracle 11g 中,故障诊断及跟踪的文件路径改变较大,告警文件分别以两种文件格式存在,xml的文件格式和普通文本格式.这两份文件的位置分别是V$DIAG_INFO中的Diag Alert 和Diag Trace 对应的目录.

熟悉9i的话,会发现11g将bdump和udump合并到一个目录/u01/diag/rdbms/XXXX/trace下了.

-- 其命名方法依然是
Background Trace Files	(针对background process) : 	SID_processname_PID.trc	如: orcl_m001_5616.trc 
User Trace Files		(针对server process) : 		SID_ora_PID.trc  		如: orcl_ora_6278.trc
-- 另外增加.trm(trace map)文件,记录trc文件的结构信息.SQL> col NAME format a20
SQL> col VALUE format a30
SQL> col INST_ID default
SQL> select * from V$DIAG_INFO;INST_ID NAME                 VALUE                              CON_ID
---------- -------------------- ------------------------------ ----------1 Diag Enabled         TRUE                                    01 ADR Base             /u01/app/oracle                         01 ADR Home             /u01/app/oracle/diag/rdbms/cdb          01/cdb11 Diag Trace           /u01/app/oracle/diag/rdbms/cdb          01/cdb1/trace1 Diag Alert           /u01/app/oracle/diag/rdbms/cdb          01/cdb1/alert1 Diag Incident        /u01/app/oracle/diag/rdbms/cdb          01/cdb1/incident1 Diag Cdump           /u01/app/oracle/diag/rdbms/cdb          01/cdb1/cdump1 Health Monitor       /u01/app/oracle/diag/rdbms/cdb          01/cdb1/hm1 Default Trace File   /u01/app/oracle/diag/rdbms/cdb          01/cdb1/trace/cdb1_ora_60719.trc1 Active Problem Count 0                                       01 Active Incident Coun 0                                       0t1 ORACLE_HOME          /u01/app/oracle/product/19.3.0          0/dbhome_112 rows selected.SQL> 

 3.2 Diag Trace

其中Diag Trace对应的目录里为文本格式的告警日志和跟踪文件,并沿用在10g中命名方法

告警日志:alter_SID.log 包含通知性的消息,如数据库启动或关闭,以及有关 TBS创建和删除的信息,也包括一些内部错误信息等.

alter_SID.log不断增长,定期清理是必要的

$cat dev/null > alert_orcl.log	# 将文件清空或
$rm alter_orcl.log              # 删掉也没有关系,下次启动会自动创建(NOTE)

检查告警日志和跟踪文件的有关错误信息的记录,如LGWR不能写日志组时,会创建一个跟踪文件,并将一条信息放入告警日志.

 

[oracle@oracle-db-19c log]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/rdbms/log
[oracle@oracle-db-19c log]$ tail -f alert_cdb1.log 
Wed Nov 30 10:26:15 2022
Process termination requested for pid 2613 [source = rdbms], [info = 2] [request issued by pid: 2607, uid: 1501]^C
[oracle@oracle-db-19c log]$

 3.3 查看预警日志

 每个数据库都有一个alert_sid.log文件.此文件位于数据库所在的服务器中,如果设置了ORACLE_BASE,则此文件默认存储在相同的目录$ORACLE_BASE/diag/rdbms/db_name/SID/trace中.

使用以下命令可以查询警告日志位置

SQL> SHOW PARAMETER BACKGROUND_DUMP_DEST;NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
background_dump_dest                 string                            /u01/app/oracle/product/19.3.0/dbhome_1/rdbms/log
SQL> 

 数据库预警文件是按时间顺序列出消息的日志文件,例如:

l 启动时使用的任何非默认初始化参数

l 已发生的所有Internal Error内部错误(ORA-600)、data block corrupted块损坏错误(ORA-1578)和deadlock errors死锁错误(ORA-60)

l 管理操作,如SQL 语句CREATE、ALTER、DROP DATABASE 和TABLESPACE,以及Enterprise Manager 或SQL*Plus 语句STARTUP、SHUTDOWN 、ARCHIVE LOG和RECOVER

l 与共享服务器和分派程序进程的功能相关的多个消息和错误

l 自动刷新实体化视图时发生的错误

Oracle DB 使用预警日志来保留这些事件的记录,以此作为在操作员控制台上显示这些信息的替代方法.(许多系统会同时在控制台中显示这些信息).例如管理操作成功完成,系统会将”completed(已完成)”消息和一个时间戳写入预警日志中.

Enterprise Manager 可监视预警日志文件,并向你通知严重的错误.你还可以查看日志,以检查不严重的错误和参考性消息.由于预警文件会增长到无法管理的大小,因此可以定期备份该文件,并删除当前的预警文件.当数据库尝试再次写入预警文件时,会重新创建一个新预警文件.

注:$ORACLE_BASE/diag/rdbms/db_name/SID/alert 目录中有一个XML 版本的预警日志.

 

3.4 DDL Log(12c新特性)

 

在之前的版本中没有可选方法来对DDL操作进行日志记录.而在12c R1中,可以将DDL操作写入xml和日志文件中.这对于了解谁在什么时间执行了create或drop命令是十分有用的.要开启这一功能必须对ENABLE_DDL_LOGGING 初始参数加以配置.这一参数可以在数据库或会话级别设置.当此参数为启用状态,一些DDL命令会记录在$ORACLE_BASE/diag/rdbms/DBNAME/log/ddl 路径下(非alert log里)的xml和日志文件中.一个xml中包含DDL命令,IP地址,时间戳等信息.这可以帮助确定在什么时候对用户或表进行了删除或是一条DDL语句在何时触发.

The DDL log is a file that has the same format and basic behavior as the alert log, but it only contains the DDL statements issued by the database. The DDL log is created only for the RDBMS component and only if the ENABLE_DDL_LOGGING initialization parameter is set to true. When this parameter is set to false, DDL statements are not included in any log.

The DDL log contains one log record for each DDL statement issued by the database. The DDL log is included in IPS incident packages.

There are two DDL logs that contain the same information. One is an XML file, and the other is a text file. The DDL log is stored in the log/ddl subdirectory of the ADR home.

When ENABLE_DDL_LOGGING is set to true, the following DDL statements are written to the log:
 

l ALTER/CREATE/DROP/TRUNCATE CLUSTER

l ALTER/CREATE/DROP FUNCTION

l ALTER/CREATE/DROP INDEX

l ALTER/CREATE/DROP OUTLINE

l ALTER/CREATE/DROP PACKAGE

l ALTER/CREATE/DROP PACKAGE BODY

l ALTER/CREATE/DROP PROCEDURE

l ALTER/CREATE/DROP PROFILE

l ALTER/CREATE/DROP SEQUENCE

l CREATE/DROP SYNONYM

l ALTER/CREATE/DROP/RENAME/TRUNCATE TABLE

l ALTER/CREATE/DROP TRIGGER

l ALTER/CREATE/DROP TYPE

l ALTER/CREATE/DROP TYPE BODY

l DROP USER

l ALTER/CREATE/DROP VIEW

SQL> ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;
-- 以下的DDL语句可能会记录在xml或日志文件中:
CREATE|ALTER|DROP|TRUNCATE TABLE
DROP USER
CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE
-- ADR的概述在053试题中较多,因为它涉及了11g在数据库自动管理方面的一些重要知识,如度量、阀值、预警系统、健康监测等等

 4. 口令文件

PASSWORD FILE

oracle登录认证方式有多种

4.1 sys的两种常用的登录认证方式

OS认证(本地认证、操作系统认证)和口令文件认证.

1).OS认证

:本地认证方式.Oracle不验证用户密码,前提:用户必须属于DBA组,且使用本地登录.

如: sqlplus a / as sysdba

2).口令文件认证

:是一种网络远程认证方式,只有sysdba权限的用户可以使用口令文件,必须输入密码和网络连接符.

如: sqlplus sys/PWD@orcl as sysdba

4.2 普通用户登录

普通用户是指没有sysdba权限的用户,比如system、scott,登录都必须输入口令,不管是本地或者远程,它们的口令密码不是以文件形式存放的,而是由 oracle保管在其内部的数据字典里.

本节讨论的口令文件是 sysdba 用户的远程登录认证密码文件,主要用于 sys 用户远程登录的认证.

位置: $ORACLE_HOME/dbs/orapwSID, 所谓口令文件,指的就是sys的口令文件,可以通过 remote_login_passwordfile参数控制是否生效

4.3 remote_login_passwordfile

none		-- 拒绝sys用户从远程连接
exclusive	-- sys用户可以从远程连接
share		-- 多个库可以共享口令文件
SQL> show parameter rem
NAME							TYPE			VALUE
------------------------------	------------	-----------------------------------
remote_dependencies_mode		string			TIMESTAMP
remote_listener					string
remote_login_passwordfile		string			EXCLUSIVE
remote_os_authent				boolean	FALSE
remote_os_roles					boolean	FALSE
result_cache_remote_expiration	integer	0

4.4 sec_case_sensitive_logon

通过设置参数为TURE,可以让口令是大小写敏感的(11g新特性)

SQL> 
SQL> show parameter caseNAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
sec_case_sensitive_logon             boolean                           TRUE
SQL> 

4.5 重建口令文件

[oracle@oracle-db-19c ~] $ cd $ORACLE_HOME/dbs
[oracle@oracle-db-19c dbs] $ ll
total 32
-rw-rw---1 oracle oinstall 1544 Sep 13 22:36 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall 2992 Feb 3 2012 init.ora
-rw-r--r-- 1 oracle oinstall 1026 Sep 12 22:14 initorcl.ora
-rw-r----- 1 oracle oinstall   24 Aug 18 22:02 lkORCL
-rw-r----- 1 oracle oinstall 7680 Aug 18 22:08 orapworcl
-rw-r----- 1 oracle oinstall 2165 Aug 18 22:02 orcl.ora
-rw-r----- 1 oracle oinstall 3584 Sep 13 22:38 spfileorcl.ora
-- $ORACLE_HOME/dbs放参数文件和(sys)口令文件的地方, orapworcl就是sys口令文件
-- 你可以先删掉它,再创建它: 使用orapwd命令创建新的sys口令文件:
[oracle@oracle-db-19c dbs]$ rm orapworcl	-- 删除sys口令文件
-- 远程无法登陆sql
-- 重新建立口令文件
-- 注意:  file=orapw+sid的写法
[oracle@oracle-db-19c dbs]$ orapwd file=orapworcl password=Oracle#2020 entries=5 force=y		
-- entries的含义是表示口令文件中可包含的SYSDBA/SYSOPER权限登录的最大用户数5.

5. 恢复scott 案例

-- 如果scott用户被误删,可以通过执行下列脚本重新建立.
SQL> drop user scott cascade;
SQL> @$ORACLE_HOME/rdbms/admin/utlsampl.sql
-- (不是所有案例都有恢复脚本,HR就没有)

相关文章:

【数据库管理】②实例管理及数据库启动关闭

1. 实例和参数文件 1.1 instance 用于管理和访问 database. instance 在启动阶段读取初始化参数文件(init parameter files). 1.2 init parameter files [rootoracle-db-19c ~]# su - oracle [oracleoracle-db-19c ~]$ [oracleoracle-db-19c ~]$ cd $ORACLE_HOME/dbs [oracl…...

【2023】Kubernetes之Pod与容器状态关系

目录简单创建一个podPod运行阶段:容器运行阶段简单创建一个pod apiVersion: v1 kind: pod metadata: name: nginx-pod spec:containers:- name: nginximages: nginx:1.20以上代码表示创建一个名为nginx-pod的pod资源对象。 Pod运行阶段: Pod创建后&am…...

LabVIEW阿尔泰PCIE 5654 例程与相关资料

LabVIEW阿尔泰PCIE 5654 例程与相关资料 阿尔泰PCIE 5654多功能采集卡,具有500/250Ksps、32/16路模拟量输入;100Ksps,16位,4/2/0路同步电压模拟量输出;8路DIO ;8路PFI;1路32位多功能计数器。PC…...

spark2.4.4有哪些主要的bug

Issue Navigator - ASF JIRA -...

信息学奥赛一本通 1347:【例4-8】格子游戏

【题目链接】 ybt 1347:【例4-8】格子游戏 【题目考点】 1. 并查集:判断无向图是否有环 【解题思路】 该题为判断无向图是否有环。可以使用并查集来完成。 学习并查集时,每个元素都由一个整数来表示。而该问题中每个元素是一个坐标点&a…...

acwing3417. 砝码称重

acwing3417. 砝码称重算法 1: DFS算法2 : DP算法 1: DFS /*** 数据范围 对于 50%的评测用例,1≤N≤15. 对于所有评测用例,1≤N≤100,N 个砝码总重不超过 1e5. */ /* 算法 1: DFS 思路 : 对于每个砝码,有放在左边,放在右边,和不放三种选择,使…...

生成式 AI:百度“文心一言”对标 ChatGPT?什么技术趋势促使 ChatGPT 火爆全网?

文章目录前言一、生成式 AI 的发展和现状1.1、什么是生成式 AI?1.2、生成式 AI 的发展趋势1.3、AI 生成内容的业务场景和分类二、生成式 AI 从分析领域到创作领域2.1、 降低内容创作门槛,增加 UGC 用户群体2.2、提升创作及反馈效率,铺垫线上实…...

PCL 非线性最小二乘法拟合圆柱

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里通过非线性最小二乘的方法来实现圆柱体的拟合,具体的计算过程如下所述: 图中, p p p为输入数据的点位置,求解的参数为柱体的轴向向量 a...

【设计模式】迪米特法则

文章目录一、迪米特法则定义二、迪米特法则分析三、迪米特法则实例一、迪米特法则定义 迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。 二、迪米特法则分析 如果一个系统符合迪米特法则,那么当其中某一个模块发…...

CSS3笔试题精讲1

Q1 BFC专题 防止父元素高度坍塌 4种方案 父元素的高度都是由内部未浮动子元素的高度撑起的。 如果子元素浮动起来,就不占用普通文档流的位置。父元素高度就会失去支撑,也称为高度坍塌。 即使有部分元素留在普通文档流布局中支撑着父元素,如果浮动 起来的元素高度高于留下的…...

交叉编译用于移植的Qt库

前言 如果在Ubuntu上使用qt开发可移植到周立功开发板的应用程序,需要在Ubuntu上交叉编译用于移植的Qt库,具体做法如下: 1、下载源码 源码qt-everywhere-opensource-src-5.9.6.tar.xz拷贝到ubuntu自建的software文件下 2、解压 点击提取到此处 3、安装配置 运行脚本文…...

泰凌微TLSR8258 zigbee开发环境搭建

目录必备软件工具抓包分析辅助工具软件开发包PC 辅助控制软件 (ZGC)必备软件工具 下载地址:http://wiki.telink-semi.cn/ • 集成开发环境: TLSR8 Chips: Telink IDE for TC32 TLSR9 Chips: Telink RDS IDE for RISC-V • 下载调试工具: Telink Burning and Debugg…...

C#实现商品信息的显示异常处理

实验四:C#实现商品信息的显示异常处理 任务要求: 在进销存管理系统中,商品的库存信息有很多种类,比如商品型号、商品名称、商品库存量等。在面向对象编程中,这些商品的信息可以存储到属性中,然后当需要使…...

细数N个获取天气信息的免费 API ,附超多免费可用API 推荐(三)

前言 市面上有 N 多个查询天气信息的软件、小程序以及网页入口,基本都是通过调用天气查询 API 去实现的。 今天整理了一下多种场景的天气预报API 接口分享给大家,有需要赶紧收藏起来。 天气预报查询 天气预报查询支持全国以及全球多个城市的天气查询…...

20230404英语学习

今日单词 decade n.十年 allocate vt.分配,分派,把…拨给 compress v.压缩;缩短;浓缩 regenerate v.(使)复兴,(使)振兴;(使)再生 …...

冒泡排序 快排(hoare递归)

今天要讲一个是冒泡排序,进一个是快排,首先是冒泡排序,我相信大家接触的第一个排序并且比较有用的算法就是冒泡排序了,冒泡排序是算法里面比较简单的一种,所以我们先看看一下冒泡排序 还是个前面一样,我们…...

49天精通Java,第24天,Java链表、散列表、HashSet、TreeSet

目录一、链表二、散列表三、HashSet四、TreeSet五、TreeSet常用方法大家好,我是哪吒。 一、链表 从数组中间删除一个元素开销很大,其原因是向数组中插入元素时,此元素之后的所有元素都要向后端移动,删除时也是,数组中…...

HashMap源码分析小结

HashMap相关问题 HashMap实现原理 HashMap是以键值对的形式存储数据,内部是通过数组链表结构实现,在1.7之后的版本,链表结构可以升级为红黑树,提高查询效率 key和value都支持为null;key为null时hash值是0&#xff0…...

太奇怪了!小公司面试全挂,大厂面试全过,为什么小公司要求比大厂还高?...

大厂的人才去小公司面试,一定是降维打击吗?还真未必。一位网友很困惑:真的奇怪,小公司面试全挂,大厂面试10个过了9个,感觉小公司要求比大厂还高,这是怎么了?来看看网友们的看法。有人…...

Java开发环境配置

Java开发环境配置 Java是目前世界上最流行的编程语言之一,它的使用范围广泛,从Web应用程序到桌面应用程序再到移动应用程序,Java都是一种非常有用的语言。想要进行Java开发,首先需要在计算机上配置Java开发环境。 在本文中&…...

大学英语视听说教程(陈向京版本)

词汇题(55道) 1. You should carefully think over_____ the manager said at the meeting. A. that B. which C. what D. whose 1.选C,考察宾语从句连接词,主句谓语动词think over后面缺宾语,后面的宾语从句谓语动…...

nginx--开源免费

nginx开源免费,支持高性能,高并发的web服务和代理服务软件。 apache,nodejs nginx可以提供的服务: 1、web服务 2、负载均衡(反向代理)(动静分离) 3、web cache(web缓存) nginx…...

阿里云OSS对象存储

目录 1:OSS 1.1:开通OSS服务 1.2:搭建OSS环境 1.2.1:创建Bucket存储空间 1.2.2:创建文件夹上传图片 1.2.3:RAM访问控制 1.3:快速入门 1.3.1:下载SDK 1.3.2:搭建环…...

基于VHDL语言的汽车测速系统设计_kaic

摘 要 汽车是现代交通工具。车速是一项至关重要的指标。既影响着汽车运输的生产率,又关乎着汽车行驶有没有超速违章,还影响着汽车行驶时人们的人身安全。而伴随着我国国民的安全防范意识的逐步增强,人们也开始越来越关心因为汽车的超速而带来的极其严重…...

【数据结构】单链表(笔记总结)

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&…...

Git操作之 git add 撤销、git commit 撤销

1、git add 添加多余文件 撤销操作 git reset HEAD 后面什么都不跟的,就是上一次add 里面的内容全部撤销 git reset HEAD XXX 后面跟文件名,就是对某个文件进行撤销 2、git commit 撤销操作 git reset --soft HEAD^ 这样就成功的撤销了commit操作 注…...

用PyTorch实现MNIST数据集手写数字识别

资源下载:用Pytorch实现MNIST数据集的手写数字识别介绍资源-CSDN文库 手写数字识别是一项相当普遍的应用,因为在现实生活中,我们经常需要对手写数字进行识别,例如在邮政服务中,我们需要对邮件上的邮政编码进行识别&am…...

leetcode3:无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “…...

ChatGPT让现在的软件都土掉渣了

我们家有两个娃,每次我们想要出去时订个酒店时都好麻烦。我在某程上找,我先看有没有家庭房,但家庭房很少,而且有些家庭房实际上只能睡得下两大一小。普通房间能不能睡得下四个人,那可是得查看很多信息,如床…...

IU5708D低静态电流同步升压DC-DC 控制器

IU5708D是高性能宽输入范围 (4.5V~40V) 同步升压控制器,支持高达52V的输出电压。输出电压采用恒定频率电流模式脉宽调制(PWM) 控制来实现调节。 芯片通过外部定时电阻器或通过与外部时钟信号同步来设置开关频率。在电阻编程模式下,开关频率可从50KHz编程…...