实例管理

实例管理

1 参数文件

1.1 实例和参数文件

实例用来访问数据库,instance在启动的第一个阶段(nomount 阶段)会读取初始化参数文件init parameter files),该文件是管理实例相关启动参数

初始化参数类型:

基本初始化参数:大约20个左右(见联机文档)

初始化参数:300个左右

隐含参数:Oracle不推荐使用

select count(*) from v$parameter;

1.2 静态参数和动态参数

动态参数:可以直接在内存中修改,并对当前instance立即生效

静态参数:必须修改参数文件下次启动后生效

select count(*),issys_modifiable from v$parameter group by issys_modifiable;

IMMEDIATE   动态参数

FALSE       静态参数

DEFERRED   延迟参数,session下次连接有效

select count(*),isses_modifiable from v$parameter group by isses_modifiable;

TRUE:可以alter session修改不同会话参数值

1.3 两种参数文件(pfile、spfile)

1.3.1pfileinitializationParameter File

pfile特点:

  • 文本文件,可以通过文本编辑器修改参数,便于一次修改多个参数
  • 缺省的路径及命名方式:$ORACLE_HOME/dbs/initSID.ora

默认dbca创建数据库后,使用的是spfile,没有pfile文件,可以使用create pfile from spfile来创建对应的pfile文件

create pfile from spfile;

1.3.2 pfileSystem Parameter File

spfile特点:

  • 二进制文件,可以通过文本编辑器修改。通过 Linux 命令strings可以查看内容
  • 路径及命名方式:$ORACLE_HOME/dbs/spfileSID.ora
show parameter spfile;

如果value有值, 说明数据库实例启动时读的是spfile

1.3.3修改spfile文件的方法

alter system set 参数=[scope=memory|spfile|both]

  ①scope=memory参数修改立刻生效,但不修改 spfile 文件(动态参数)

  ②scope=spfile修改了spfile文件, 重启后生效

  ③scope=both前两种都要满足。要求spfile参数文件存在、动态参数

  ④不写scope限定词,缺省③。但不如③严格,即spfile如果不存在,仅仅修改内存中参数

如果不修改参数文件,将无法更改静态参数

1.3.4 读取参数文件的顺序及相互生成

优先使用spfile,没有spfile使用pfile。dbca建库后默认使用spfile

pfile和spfile可以互相生成:

create pfile from spfile;

注意:使用spfile启动后不能重写spfile,但可以指定其他路径名称创建

create spfile='spfilePROD.bak' from pfile;

ORACLE 11g以后的新特性,可以根据内存来生成spfile和pfile:

create pfile='pfilePROD.mem' from memory;
create spfile='spfilePROD.mem' from memory;

1.3.5 判断实例使用spfile启动还是pfile启动的

方式一:

show parameter spfile;

如果value有值,说明数据库实例启动时读的是spfile

方式二:

v$spparameterspfile参数视图)中的参数memory_targetisspecified字段值,如果是TRUE说明是spfile启动的

select name,isspecified from v$spparameter where name='memory_target';

尽可能使用spfilepfile一般留做备用,特殊情况也可以使用pfile启动

关闭实例,使用pfile启动

shutdown immediate
startup pfile=$ORACLE_HOME/dbs/initorcl.ora

show parameter spfile
select name,isspecified from v$spparameter where name='memory_target'

关闭实例

shutdown immediate

2 数据库实例启动与关闭

2.1 启动分为三个阶段

2.1.1 nomount阶段:started

读取初始化参数文件、分配内存、启动后台进程(生成instance

startup nomount;
select status from v$instance;

查看告警日志信息,查看后台进程

ps -ef | grep ora_

nomount状态可以查看参数信息

show parameter sga

2.1.2 mount阶段:mounted

读取控制文件,获取文件位置和数据库相关信息(控制文件是二进制文件,记录数据库的物理状态,维护数据库的一致性)

alter database mount;
select status from v$instance;

mounted状态可以查看v$视图信息

select name from v$datafile;

v$instance特殊,nomount状态也能查

2.1.3 open阶段:open

1、 检查所有的datafileredo loggroup password file正常
2、 检查数据库的一致性(controlfiledatafileredo file的检查点是否一致)

select file#,checkpoint_change#,last_change# from v$datafile;        --从控制文件读出
select file#,checkpoint_change# from v$datafile_header;              --从数据文件读出

注意:启动到mount状态时,last_change#不为空说明之前是干净的关闭数据库

alter database open;
select status from v$instance;

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

startup force;               相当于shutdown abort后再接startup

startup nomount;         (启动到nomount状态,alter database mount;alter database open;)

startup mount;     启动到mount状态,alter database open;

startup upgrade     只有sysdba能连接

startup restrict     restrict session权限才可登录,sys不受限制

alter system enable restricted session;    open后再限制

alter database open read only;      只读方式开库,scn不会增长

2.2.1 SCN system change number

SCN:system change number系统改变号

oracle内部时钟,不断增长,记录事务发生的先后顺序

controlfile、logfile、datafile_header、block

select current_scn,dbms_flashback.get_system_change_number from v$database;

2.3 实例关闭

shutdown normal   拒绝新的连接,等待当前会话结束,生成检查点

shutdown transactional   拒绝新的连接,等待当前事务结束,生成检查点

shutdown immediate   拒绝新的连接,未提交的事务回滚,生成检查点

shutdown abort   事务不回滚,不生成检查点,下次启动需要做instance recovery

 

3 自动诊断信息库ADR

ADRAutomatic Diagnostic Repository)是11g新特性,存储在操作系统下的一个目录(树)结构,包括:①告警日志文件 ②跟踪文件 ③健康记录 ④DUMP 转储文件等

show parameter diagnostic_dest

$ORACLE_BASE=/u01/app/oracle,是ADR的基目录

对应ADR-HOME=<diagnostic_dest>/diag/rdbms/<dbname>/<instname>

如果没有设置ORACLE_BASE环境变量,Oracle 你设置的ADR基目录是$ORALE_HOME/log

show parameter dump

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

3.1 跟踪文件

1后台进程的跟踪文件(Bdump

SID_processname_PID.trc 如: _lgwr_5616.trc

2服务器进程的跟踪文件(Udump

SID_ora_PID.trc 如: _ora_10744.trc

另外增加.trmtrace map)文件,记录trc文件的结构信息

col name for a25
col value for a70
select name,value from v$diag_info;

3.2 告警日志

以文本格式保存告警日志,命名是:alter_SID.log,它包含通知性的消息,如数据库启动或关闭, 以及有关数据库物理结构变化的信息也包括一些内部错误信息等。
告警日志会不断增长,定期清理是必要的

cat /dev/null > alert_orcl.log               --将文件清空

告警日志文件丢失,下次启动会自动创建

 tail -f /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_orcl.log

 

4 口令文件

4.1 登录认证方式

4.1.1 OS认证

特点:

  • Oracle用户以本地登录
  • Oracle用户必须属于DBA
  • Oraclesysdba身份不验证密码

如:sqlplua / as sysdba

4.1.2 口令文件认证

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

如:sqlplus sys/oracle@oracle as sysdba

4.1.3 口令密码认证方式

普通用户是指没有sysdba权限的用户,比如systemscott或者是damon等,不管是本地还是远程,普通用户登录时必须在数据库open下输入口令,它们的口令密码保管在数据字典

4.2 口令文件

sysdba用户的远程认证密码文件,主要用于sys用户(严格来说是具有 sysdba 系统权限的用户)的远程登录认证

  • 位置:$ORACLE_HOME/dbs/orapwSID
  • 可以通过remote_login_passwordfile参数控制是否生效
  • 使用orapwd命令创建新的sys口令文件

4.2.1 重命名密码文件,模拟文件丢失

mv orapworcl orapworcl.bak
sqlplus scott/tiger@orcl
sqlplus sys/oracle@orcl as sysdba

scott用户登陆正常,sys as sysdba登陆报错

4.2.2 重新生成密码文件

注意口令的复杂度及长度要求

orapwd file=orapworcl password=qaz#WSX1

sqlplus sys/qaz#WSX1@orcl as sysdba

file=orapw+sid的写法,不能拼错

sqlplus sys/qaz#WSX1@orcl as sysdba force=y

force=y:原密码文件存在时强制覆盖原文件

posted @ 2021-06-05 19:02  chchcharlie、  阅读(130)  评论(0编辑  收藏  举报