oracle之二实例管理及数据库的启动/关闭
实例管理及数据库的启动/关闭
2.1 实例和参数文件
1、instance 功能:用于管理和访问database。instance在启动阶段读取初始化参数文件(init parameter files)。
2、init parameter files :管理实例相关启动参数 。位置:$ORACLE_HOME/dbs
3、pfile :(parameter file)静态参数文件。
1)文本文件,必须通过编辑器修改参数。 2)修改参数下次重启实例才生效。3)pfile参数文件可以不在database server上。
命名方式:init+SID.ora
4、spfile :(system parameter file) 动态参数文件。
1)二进制文件,不可以通过编辑器修改。2)Linux下strings可以查看 。3)必须在database server段的指定路径下。
命名方式: spfile+SID.ora
env |grep ORACLE_SID //查看环境变量
静态参数和动态参数
在spfile读到内存后,有一部分参数是可以直接在内存中修改,并对当前instance立即生效,这样的参数叫动态参数。除了动态参数都是静态参数。静态参数修改spfile文件。动态参数在instance关闭后失效,而静态参数是下次instance启动后才生效。
修改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,即缺省,那就是第三种。
*考点:如果不修改spfile,将无法更改静态参数。
通过查看v$parameter ,可以确定哪些参数可以在memory修改,制定scope。或者show parameter 参数名称;
10:38:35 SQL> desc v$parameter;
其中:
ISSYS_MODIFIABLE参数:对应alter system 命令,即系统级修改
10:38:35 SQL> select distinct issys_modifiable from v$parameter;
ISSYS_MODIFIABLE
----------------
IMMEDIATE //对应scope=memory
FALSE //只能scope=spfile,即修改spfile文件,下次启动才生效。
DEFERRED //其他session有效
ISSES_MODIFIABLE参数:对应alter session命令,即session级修改
10:38:35 SQL> select distinct isses_modifiable from v$parameter;
ISSES_MODIFIABLE
----------------
TRUE //表示可以修改
FALSE //表示不能修改
SQL> select name,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sql_trace';
NAME ISSES ISSYS_MOD
-------------------------------------------------------------------------------- ----- ---------
sql_trace TRUE IMMEDIATE
这个结果表示 sql_trace参数在session级别可以改,在system级也可以both修改(动态参数)。
5、startup时读取参数文件,找到$ORACLE_HOME/dbs目录,顺序是优先spfile启动,没有spfile 才从pfile启动。
pfile和spfile可以相互生成:
SQL>create pfile from spfile
SQL>create spfile from pfile(使用spfile启动后不能在线生成spfile,ORA-32002: 无法创建已由实例使用的 SPFILE)
*考点:
1)如果使用pfile启动,设置scope=spfile将失败!但可以设置scope=memory。
可以通过当前内存参数生成pfile和spfile(11g新特性):
SQL>create pfile from memory;
SQL>create spfile from memory;
有了spfile,pfile一般留做备用,特殊情况也可以使用pfile启动,命令如下:只能指定pfile的路径,不能指定spfile的路径
10:38:35 SQL> startup pfile=$ORACLE_HOME/dbs/inittimran.ora
怎样知道实例是spfile启动还是pfile启动的?
10:38:35 SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/oracle/dbs/spfiletimran11g.ora
//如果value有值,说明数据库启动时读的是spfile
另一个办法是看v$spparameter(spfile参数视图)中的参数memory_target的isspecified字段值,如果是TRUE 说明是spfile启动10:42:35 的(考点)
SQL> select name,value,isspecified from v$spparameter where name like 'memory_target';
NAME VALUE ISSPECIFIED
-------------------------------------------------------------------------------- -------------------------------------------
memory_target 423624704 TRUE
EM对初始参数有较好的可视化界面,可以看看,
2.2 数据库启动与关闭:
2.2.1启动分为三个阶段
shudown immediate
1)SQL> startup nomount //用到spfile,启动内存和进程
2)SQL> alter database mount;//启动controlfile
3)SQL> alter database open; //启动all file
1)nomount阶段:读取init parameter
10:38:35 SQL> select status from v$instance; (这条命令很实用,看当前数据库启动的状态,有三个 started,mounted,open)
STATUS
------------
STARTED
2)mount阶段: 读取控制文件
20:32:53 SQL> select status from v$instance;
STATUS
------------
MOUNTED
3)open阶段: 1、检查所有的datafile、redo log、 group 、password file。
2、检查数据库的一致性(controlfile、datafile、redo file的检查点是否一致)
SQL> SELECT checkpoint_change# FROM v$database; //从控制文件读出,数据库的SCN
10:38:35 SQL> select file#,checkpoint_change#,last_change# from v$datafile; //从控制文件读出,数据文件的SCN和结束SCN
FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
---------- ------------------ -------------
1 570836
2 570836
3 570836
4 570836
5 570836
6 570836
6 rows selected.
10:38:35 SQL> SELECT file#,checkpoint_change# FROM v$datafile_header; //从datafile header读出,LAST_CHANGE#为空则需要instance recover
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 570836
2 570836
3 570836
4 570836
5 570836
6 570836
6 rows selected.
数据库open之前要检查controlfile所记录SCN和datafile header 记录的SCN是否一致;一致就正常打开库,不一致需要做media recover[SMON]
2.2.2 启动数据库时的一些特殊选项
SQL> alter database open read only;
SQL> startup force //以abort关闭
SQL> startup upgrade (只有sysdba能连接)
SQL> startup restrict (有restrict session权限才可登录,sys不受限制)
SQL> alter system enable restricted session; (open后再限制)
SQL> alter system disable restricted session; (取消限制)
2.2.3 实例关闭:
shutdown normal: 拒绝新的连接,等待当前事务结束,等待当前会话结束,生成检查点
shutdown transactional :拒绝新的连接,等待当前事务结束,生成完全检查点
shutdown immediate: 拒绝新的连接,未提交的事务回滚,生成完全检查点
shutdown abort(startup force) :事务不回滚,不生成检查点,下次启动需要做instance recovery[SMON通过REDO文件回滚]
*考点:shutdown abort 不会损坏database。
2.3 自动诊断信息库ADR(Automatic Diagnostic Repository) 11g新特性
存储在操作系统下的一个目录(树)结构,包括:预警日志文件,跟踪文件,健康检查,DUMP转储文件等
11g用DIAGNOSTIC_DEST一个参数代替了许多老版本的参数,如BACKGROUND_DUMP_DEST,CORE_DUMP_DEST,USER_DUMP_DEST等。
SQL> show parameter diag
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /u01
考点:这是ADR的基目录,如果你设置了ORACLE_BASE环境变量,则diagnostic_dest默认值被设置为同样的目录,否则,oracle给你设置的目录是$ORACLE_HOME/log
10:38:35 SQL> show parameter dump //这是Oracle11g的。
SQL> show parameter dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string /u01/diag/rdbms/timran11g/timran11g/trace
core_dump_dest string /u01/diag/rdbms/timran11g/timran11g/cdump
max_dump_file_size string unlimited
shadow_core_dump string partial
user_dump_dest string /u01/diag/rdbms/timran11g/timran11g/trace
在oracle 11g中,故障诊断及跟踪的文件路径改变较大,告警文件分别以两种文件格式存在,xml的文件格式和普通文本格式。这两份文件的位置分别是V$DIAG_INFO中的Diag Alert 和Diag Trace 对应的目录。
如果熟悉9i的话,你会发现11g将bdump和udump合并到一个目录/u01/diag/rdbms/timran11g/timran11g/trace下了。
1)跟踪文件:
其命名方法依然是:
Background Trace Files(针对bg process) :SID_processname_PID.trc 如:timran11g_lgwr_5616.trc
User Trace Files(针对server process) :SID_ora_PID.trc 如:timran11g_ora_10744.trc
另外增加.trm(trace map)文件,记录trc文件的结构信息。
SQL> select * from v$diag_info;
INST_ID NAME VALUE
---------- ---------------------------------------- -----------------------------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /u01
1 ADR Home /u01/diag/rdbms/timran11g/timran11g
1 Diag Trace /u01/diag/rdbms/timran11g/timran11g/trace
1 Diag Alert /u01/diag/rdbms/timran11g/timran11g/alert
1 Diag Incident /u01/diag/rdbms/timran11g/timran11g/incident
1 Diag Cdump /u01/diag/rdbms/timran11g/timran11g/cdump
1 Health Monitor /u01/diag/rdbms/timran11g/timran11g/hm
1 Default Trace File
1 Active Problem Count 0
1 Active Incident Count 0
其中Diag Trace对应的目录里为文本格式的告警日志和跟踪文件,并沿用在10g中命名方法
2)告警日志:文本格式的告警日子命名是:alter_SID.log,它包含通知性的消息,如数据库启动或关闭,以及有关表空间创建和删除的信息,也包括一些内部错误信息等。
alter_SID.log不断增长,定期清理是必要的
$cat dev/null > alert_timran11g.log //将文件清空
或
$rm alter_timran11g.log //删掉也没有关系,下次启动会自动创建(考点)
检查告警日志和跟踪文件的有关错误信息的记录,如lwgr不能写日志组时,会创建一个跟踪文件,并将一条信息放入告警日志。
[oracle@timran trace]$ tail -f /u01/diag/rdbms/timran11g/timran11g/trace/alert_timran11g.log
space available in the underlying filesystem or ASM diskgroup.
Tue Sep 04 09:12:19 2012
Completed: ALTER DATABASE OPEN
Tue Sep 04 09:16:41 2012
Starting background process CJQ0
Tue Sep 04 09:16:41 2012
CJQ0 started with pid=29, OS id=2483
Tue Sep 04 10:19:11 2012
drop tablespace tb1
Completed: drop tablespace tb1
ADR的概念在053试题中较多,因为它涉及了11g在数据库自动管理方面的一些重要知识,如度量,阀值,预警系统,健康监测等等,我们在053课程里会继续介绍。
2.4 口令文件
oracle登录认证方式有多种
2.4.1 sys的两种常用的登录认证方式:OS认证和口令文件认证。
1)OS认证:本地认证方式。Oracle不验证用户密码,前提:用户必须属于DBA组,且使用本地登录。
如:sqlplua / as sysdba
2)口令文件认证:是一种网络远程认证方式,只有sysdba权限的用户可以使用口令文件,必须输入密码和网络连接符。
如:sqlplus sys/oracle@timran11g as sysdba
2.4.2 普通用户登录
1)普通用户是指没有sysdba权限的用户,比如system 、scott,或者是tim什么的,登录都必须输入口令,不管是本地还是远程,它们的口令密码不是以文件形式存放的,而是由oracle保管在其内部的数据字典里。
2)通过设置这个参数为TURE,可以让口令是大小写敏感的(11g新特性)
SQL> show parameter case
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean TRUE
本节讨论的口令文件是sysdba用户的远程登录认证密码文件,主要用于sys用户远程登录的认证。
位置:$ORACLE_HOME/dbs/orapwSID, 所谓口令文件,指的就是sys的口令文件,可以通过remote_login_passwordfile参数控制是否生效
参数remote_login_passwordfile的三种模式:
1) none 拒绝sys用户从远程连接
2)exclusive sys用户可以从远程连接
3)share 多个库可以共享口令文件
[oracle@timran ~]$ cd /u01/oracle/dbs
[oracle@timran dbs]$ ll
总计 52
-rw-rw---- 1 oracle oinstall 1544 08-17 07:19 hc_timran11g.dat
-rw-r--r-- 1 oracle oinstall 12920 2001-05-03 initdw.ora
-rw-r--r-- 1 oracle oinstall 8385 1998-09-11 init.ora
-rw-r--r-- 1 oracle oinstall 1024 08-17 13:23 inittimran11g.ora
-rw-r----- 1 oracle oinstall 24 08-17 07:21 lkTIMRAN11
-rw-r----- 1 oracle oinstall 24 08-17 10:36 lkTIMRAN11G
-rw-r----- 1 oracle oinstall 1536 08-31 10:47 orapwtimran11g
-rw-r----- 1 oracle oinstall 3584 09-04 17:49 spfiletimran11g.ora
这里是放参数文件和(sys)口令文件的地方,orapwtimran11g就是我的sys口令文件
使用orapwd命令创建新的sys口令文件:
你可以先删掉它,再创建它,在linux下做:
[oracle@timran dbs]$ rm orapwtimran11g //把sys口令文件删了
[oracle@timran dbs]$orapwd file=orapwurpdb password=sys123 entries=5 force=y //重新建立口令文件
注意:file=orapw+sid的写法
entries的含义是表示口令文件中可包含的SYSDBA/SYSOPER权限登录的最大用户数。
2.5 添加scott 案例
有时候,scott用户被误删掉了,不要紧,可以通过执行下列脚本重新建立。
10:38:35 SQL> @$ORACLE_HOME/rdbms/admin/utlsampl.sql
大家可以试一下:先删除scott用户,再执行一下脚本即可。
oracle之二实例管理及数据库的启动/关闭的更多相关文章
- Oracle日常运维操作总结-数据库的启动和关闭
下面是工作中对Oracle日常管理操作的一些总结,都是一些基本的oracle操作和SQL语句写法,在此梳理成手册,希望能帮助到初学者(如有梳理不准确之处,希望指出). 一.数据库的启动和关闭 1.1 ...
- Oracle误删表空间文件后数据库无法启动
[问题描述]Oracle误删表空间文件后数据库无法启动,报错表空间文件不存在 [解决办法]sqlplus / as sysdba #以dba身份登陆数据库shutdown immediat ...
- oracle之二ASM 管理
Oracle ASM 管理(PPT-II:602-636) 16.1 什么是ASM 自动存储管理即ASM(Automatic Storage Management),是Oracle提供的一项管理磁盘的 ...
- oracle之二实例与数据库
实例与数据库 1.Oracle 网络架构及应用环境 看PPT,Oracle结构的基本单元.术语 2.Oracle 体系结构 1)oracle server :database + instanc ...
- oracle系列(二)用户管理
SQL> conn /as sysdbaConnected to Oracle Database 11g Express Edition Release 11.2.0.2.0 Connected ...
- 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作
启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...
- Oracle数据库名、实例名、数据库域名、全局数据库名、服务名之间的区别
数据库名.实例名.数据库域名.全局数据库名.服务名 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数据库 ...
- oracle 实例名,数据库名概念
拷贝于https://www.cnblogs.com/ahudyan-forever/p/6016784.html 在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个I ...
- Oracle 数据库实例启动关闭过程
Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行装载.Oracle数据启动的过程被划分为 几个不同的步骤,在不同的启动过程中,我们可以对其实现不同的操作,系统修复等 ...
随机推荐
- 存储系列之 共享文件:链接link
一.link与unlink的定义 1.link link是Linux文件系统目录管理的一个系统调用,创建一个链接,该链接只是创建一个目录项,上文ext2的介绍中提到过目录项是<文件名,inode ...
- GRE 协议 - 和 ISP 用的协议不一样怎么办
GRE 出现的背景: 随着网络(公司)规模的增大,越来越多的公司需要在跨区域之间建设自己的分公司.但随之也就出现了这样的问题,考虑这样一个场景.公司 A 在北京和上海间开设了两家公司,由于业务的需要, ...
- 为 Eureka 添加 Http Basic 认证
简介 在网络世界中,任何网络中的服务都是不安全的,为了使我们的 Eureka 服务更加安全,我们可以添加各种各样的认证方式,以使客户端在提供相应的证明之后才能够注册到 Eureka 中.而这次我们就添 ...
- 一键打开 jupyter
一般打开jupyter notebook 是以下步骤: 打开cmd-----输入:jupyter notebook-----按Enter键 为了省事,写了一个.py文件实现上述步骤,代码如下: imp ...
- 微信DLL劫持反弹shell复现
(该文参考网络他人资料,仅为学习,不许用于非法用途) 一.操作环境 Windows7 : 微信 , Process Explorer(任务管理工具,本实验中用于查找微信程序调用的DLL文件) Ka ...
- RPC 框架通俗解释 转自知乎(洪春涛)
本地过程调用 RPC就是要像调用本地的函数一样去调远程函数.在研究RPC前,我们先看看本地调用是怎么调的.假设我们要调用函数Multiply来计算lvalue * rvalue的结果: 那么在第8行时 ...
- Arrays中toString 和 binarySearch 的原代码
只是记住方法是干什么的,但是对具体方法的理解还是不够 查找方法 当所查找的不存在的时候 返回值应该是 return -(low + 1); 一直知道toString 是转换成为字符串 但是具体的 ...
- CentOS下删除物理磁盘,删除LVM
1.删除 dmsetup remove LV_name 2.vgreduce VG_name --removemissing 3.vgremove VG_name 4.pvremove disk
- Eligibility Traces and Plasticity on Behavioral Time Scales: Experimental Support of neoHebbian Three-Factor Learning Rules
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 大多数基本行为,如移动手臂抓住物体或走进隔壁房间探索博物馆,都是在几秒钟的时间尺度上进化的:相反,神经元动作电位则是在几 ...
- [ASP.NET Core开发实战]基础篇04 主机
主机定义 主机是封闭应用资源的对象. 设置主机 主机通常由 Program 类中的代码配置.生成和运行. HTTP项目(ASP.NET Core项目)创建泛型主机: public class Prog ...