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 静态参数和动态参数 在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。 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启动,命令如下: 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启动分为三个阶段 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的检查点是否一致) 10:38:35
sql> select file#,checkpoint_change# from v$datafile; //从控制
文件读出 FILE# CHECKPOINT_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 读出 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 10:38:35
sql> select status from v$instance; STATUS ------------ OPEN 2.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.2.3 实例
关闭: shutdown normal: 拒绝新的连接,等待当前事务结束,等待当前会话结束,
生成检查点(写脏块) shutdown transactional :拒绝新的连接,等待当前事务结束,
生成检查点 shutdown immediate: 拒绝新的连接,未提交的事务回滚,
生成检查点 shutdown abort(startup force) :事务不回滚,
不生成检查点,下次启动需要做instance recovery (实例恢复) *注意点: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给你设置的目录是$ORALE_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 2.4 口令
文件 oracle
登录认证方式有多种 2.4.1 sys的两种常用的
登录认证方式:OS认证和口令
文件认证。 1)OS认证:本地认证方式。Oracle不验证
用户密码,前提:
用户必须属于DBA组,且使用本地
登录。 如:
sqlplus / 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 多个库可以共享口令
文件 sqlplus sys/sys@192.168.4.3:1521/hrian.dnn as sysdba 登陆盈佳
数据库 [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=orapwtimran11g password=system 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
用户,再执行一下脚本即可。