oracle 11g ocp 笔记(3)-- 实例管理

1、设置初始化参数文件:

   查询参数可以从v$parameter  (从实例中取得数值) 和v$spparameter(从参数文件取值。)

  两个参数文件:

    1.pfile(parameter file,参数文件)

          pfile是文本格式的参数文件,实例启动时只加载一次,通常认为是静态的.

         新版本Oracle已逐步取消pfile文件了

        默认名称: initSID.ora

       默认位置: $ORACLE_HOME/dbs/

       /u01/app/oracle/product/12.1.0/db_1/dbs/pfileSID.ora

      新版本Oracle已逐步取消pfile用spfile代替了,在位置$ORACLE_HOME/dbs/已经找不到这个pfile文件了.

      创建数据库后会保存一份pfile到以下位置,当spfile有问题时可以使用这个pfile来启动.

       /u01/app/oracle/admin/sid/pfile/init.ora.xxxxxxxxxxx

     2.spfile(server parameter file,服务器参数文件)

      spfile是二进制的参数文件,在实例运行时能读取和更新spfile文件,通常认为是动态的

      默认名称: spfileSID.ora, spfile.ora

      默认位置: $ORACLE_HOME/dbs/

        /u01/app/oracle/product/12.1.0/db_1/dbs/spfileSID.ora

搜索顺序:

$ORACLE_HOME/dbs/spfileSID.ora

$ORACLE_HOME/dbs/spfile.ora    (通常只用于RAC环境,一个文件可以启动多个实例)

$ORACLE_HOME/dbs/initSID.ora

使用指定参数文件启动实例.

startup pfile=$ORACLE_HOME/dbs/initSID.ora

startup spfile=$ORACLE_HOME/dbs/spfileSID.ora

通过pfile创建spfile.

create spfile[=‘spfilename‘] from pfile[=‘pfilename‘];

create spfile=‘/u01/app/oracle/product/12.1.0/db_1/dbs/spfile‘ from pfile=‘/u01/app/oracle/product/12.1.0/db_1/dbs/pfile‘;

通过spfile创建pfile.

create pfile[=‘pfilename‘] from spfile[=‘spfilename‘];

create pfile=‘/u01/app/oracle/product/12.1.0/db_1/dbs/pfile‘ from
spfile=‘/u01/app/oracle/product/12.1.0/db_1/dbs/spfileSID.ora‘;

静态参数和动态参数:

静态参数: 有些参数在实例启动后就固定了.

动态参数: 有些参数可以在实例运行时更改.

查看当前运行的实例中生效的参数值

select name,value from v$parameter order by name;

查看spfile参数文件中的参数值

select name,value from v$spparameter order by name;

查看参数类型:

select name,value,issys_modifiable from v$parameter order by name;

select distinct issys_modifiable from v$parameter;

IMMEDIATE -- 动态参数,立即生效

FALSE     -- 静态参数

DEFERRED  -- 动态参数,延迟生效

查看静态参数:

select name,value from v$parameter where issys_modifiable=‘FALSE‘ order by name;

基本参数和高级参数

基本参数: 应该为每个数据库使用基本参数.

select name,value from v$parameter where isbasic=‘TRUE‘ order by name;

select s.name,s.value

from v$spparameter s join v$parameter p

on s.name=p.name

where p.isbasic=‘TRUE‘

order by name;

高级参数: 只要高级参数使用了默认值设置,大多数数据库实例都可以完美运行。

实际上还有一些隐式参数,通常不可见,只能在Oracle Support的指导下进行设置。

修改初始化参数

语法:

alter system set parameter=value [comment=‘text‘] [deferred] [scope={spfile|both|memory}] [sid=‘sid|*‘];

deferred延迟生效.

scope的三个可选值:

memory: 只改变当前运行的实例.

spfile: 只改变spfile文件的设置.

both:   (默认值)改变实例及spfile文件的设置.

如果修改的是静态参数,则必须指定scope=spfile,下次启动实例时参数才生效.

修改静态参数不指定scope=spfile,则会出现错误: ORA-02095: specified initialization parameter cannot be modified.

使用BOTH选项等同不带scope参数的alter system语句.

如果使用pfile启动实例,设置scope=spfile将失败.

有些参数可以在系统级别修改,也可以在会话级别修改.

alter system set optimizer_mode=all_rows;

alter session set optimizer_mode=first_rows;

有些参数只能在会话级别进行修改,如: NLS_DATE_FORMAT.

alter session set nls_date_format=‘dd-mm-yy hh24:mi:ss‘;

重设参数为默认参数(reset)

alter system reset log_archive_start scope=spfile;

常用参数

cluster_database              -- 数据库是RAC还是单实例

compatible                    -- 模仿的版本,一般是实际版本

control_files                 -- 控制文件副本的名称和位置

db_block_size                 -- 数据文件默认块大小

db_create_file_dest           -- 数据文件的默认位置

db_create_online_log_dest_1   -- 联机重做日志文件的默认位置

db_create_online_log_dest_2   -- 联机重做日志文件多重副本的默认位置

db_domain                     -- 网络域名

db_name                       -- 数据库名称(唯一不具有默认值的参数),和域名一起组成全局数据库名称. --alter database rename global_name

-- 更改全局数据库名称需要重启实例并重建控制文件

db_recovery_file_dest         -- 闪回区域的位置

db_recovery_file_dest_size    -- 闪回区域容量

db_unique_name                -- 唯一标识符,如果安装了两个相同名称的数据库,则需要使用唯一标识符

instance_number               -- 用于区分两个打开同一数据库的RAC实例.

job_queue_processes           -- 运行所调度作业可用的进程数

log_archive_dest_1            -- 归档重做日志文件的目标

log_archive_dest_2            -- 归档重做日志文件的多重副本的目标

log_archive_dest_state_1      -- 指示是否启用了目标

log_archive_dest_state_2      -- 指示是否启用了目标

nls_language                  -- 实例的语言

nls_territory                 -- 实例的地理位置

open_cursors                  -- 会话一次可以打开的SQL工作区数量

pga_aggregate_target          -- 实例可以分配给PGA的总内存量

processes                     -- 可以连接到实例的最大进程数量(包括会话服务器进程)

remote_listener               -- 此实例注册到远程计算机的侦听器的地址,与RAC有关的参数.

remote_login_passwordfile     -- 是否使用外部口令文件,以便允许口令文件身份验证.

rollback_segments             -- 差不多废弃,被后面的UNDO参数替代

sessions                      -- 允许连接到实例的最大会话数量

sga_target                    -- 系统全局区域SGA内存大小

shared_servers                -- 要启动的共享服务器进程数量.

star_transformation_enabled   -- 是否允许优化器重写将事实表的维度连接在一起的查询

undo_management               -- 在撤销表空间中自动管理撤销数据,还是在回滚段中手工管理

undo_tablespace               -- 在使用自动撤销管理的情况下,确定撤销数据的位置.

2、描述启动和关闭的多个状态。

1)database control的启动和关闭

emctl  start  dbconsole

emctl stop dbconsole

前提是这是 oracle_home  oracle_sid path 三个环境变量。

访问: https://hostname:端口号/em

需要监听

2)监听启动和关闭工具:

lsnrctl工具;

windows服务器

dbconsole

启动和停止侦听器语法:

lsnrctl status [listener]

lsnrctl start [listener]

lsnrctl stop [listener]

3)sqlplus启动

4)数据库的启动和关闭

2.启动和关闭数据库

(1)使用适当的权限进行连接

要启动和关闭数据库,需要先连接进行身份验证。身份验证类型:

·默认为数据字典身份验证

·口令文件身份验证

·操作系统身份验证

普通用户无权限启动或关闭数据库,原因在于普通用户依据数据字典进行身份验证。

从逻辑上讲,只有在打开数据库之后,才能读取到数据字典,因此无法启动实例并打开数据库。

要启动和关闭数据库必须使用一些外部身份验证方式来连接数据库: 操作系统身份验证或口令文件身份验证.

SYSOPER和SYSDBA是具有特殊功能的特殊权限,只有用户使用外部身份验证方式连接时才能启用这些权限.

口令文件位置: $ORACLE_HOME/dbs/orapwSID

使用sqlplus工具或使用Database Control工具来连接和操纵数据库.

sqlplus文件位置: $ORACLE_HOME/bin/

连接语法:

sqlplus /nolog                                   -- 打开sqlplus程序

connect user/pass[@connect_alias]                -- 普通用户身份验证

connect user/pass[@connect_alias] as sysdba      -- 口令文件身份验证

connect user/pass[@connect_alias] as sysoper     -- 口令文件身份验证

connect / as sysdba                              -- 操作系统身份验证

connect / as sysoper                             -- 操作系统身份验证

启动并连接数据库的快捷语法: sqlplus / as sysdba

(2)启动(startup)

启动经历三个阶段: 未加载(nomount),加载(mount),打开(open)

·未加载(nomount) -- 启动实例

·读取数据库参数文件

·启动后台进程并按参数文件中的定义分配内存

·将进展情况写入警告日志文件中.

·加载(mount) -- 读取控制文件,

·确定数据文件和重做日志文件的名称和位置

·确定数据库名

·确定最新系统更改号.

·打开(open) -- 打开数据库

·所有联机数据文件的头与控制文件信息比较

·所有文件同步后,数据库打开.

shutdown -> nomount   -- 读取初始化参数文件,实例被构建在内存中,启动某些后台进程,将进展情况写入警告日志文件中,参数文件找不到则不能到nomount.

nomount -> mount      -- 定位并读取控制文件,控制文件损坏和丢失则不能到mount,可以在nomount状态修复控制文件.

mount -> open         -- 打开数据文件和重做日志文件,数据文件和重做日志文件存在问题或不同步则不能到open状态,可以在mount状态修复.

启动语法:

startup [nomount|mount|open]

startup                      -- 经历nomount、mount、open阶段

startup nomount

alter database mount

alter database open

执行startup命令时,Oracle会尝试定位参数文件:

$ORACLE_HOME/dbs/spfileSID.ora

$ORACLE_HOME/dbs/spfile.ora

$ORACLE_HOME/dbs/initSID.ora

初始化参数control_files指示控制文件的位置,控制文件指示数据文件和重做日志文件的位置.

(3)关闭(shutdown)

关闭的四个参数(normal,transactional,immediate,abort)

·normal: 默认选项,不许可新的用户连接,但允许继续当前的连接,所有用户退出时,数据库才能真正关闭.

·transactional: 不许可新的用户连接,不存在某个事务中的会话将被终止,处于事务中的会话完成事务后终止.所有会话终止,数据库将被关闭。

·immediate: 不许可新的用户连接,当前所有连接的会话都被终止,任何活动的事物都将回滚,随后数据库被关闭

·abort: 相当于断电,实例被立即终止.

关闭语法:

shutdown [normal|transactional|immediate|abort]

normal、immediate和transactional关闭模式通常称为干净的、一致的或有序的关闭。在所有会话终止后,PMON进程会回滚任何未结束的事务。接下来,CKPT进程发布一个检查点,从而促使DBWn进程将所有被更新的数据从数据库高速缓冲区写入数据文件,同时LGWR进程也将仍然存在于内存当中的所有变化矢量转储到日志文件,随后文件头被更新,文件句柄被关闭。这意味着数据库处于一致的状态:所有已提交的事务都位于数据文件中,不存在需要回滚的、被挂起的未提交事务,并且所有数据文件和日志文件同步。

abort模式通常被称为无序的关闭,并且会使数据库处于不一致的状态:
因为已提交的事务只存在于内存中,而DBWn进程还未将它们写入数据文件,所以这些事务极有可能丢失,同样,数据文件中的未提交事务也可能尚未回滚。也就是可能丢失了已提交的事务,也可能存储了未提交的事务。这些讹误必须通过实例恢复来修复。abort模式相当于服务器断电和重启。

startup force = shutdown abort + startup

4)使用警报日志和跟踪文件。

一.关于警报日志和跟踪文件

警报日志中记录关键操作包括:

·所有启动和关闭命令,包括中间命令,如alter database mount

·实例的所有内部错误(ORA-600错误,只能报告给Oracle Support解决)

·任何检测到的数据文件块损坏情况

·任何已经发生的记录锁定死锁.

·影响数据库物理结构的所有操作,如创建或重命名数据文件和联机重做日志。

·调整内部参数值的alter system命令

·所有日志开关和日志归档文件.

跟踪文件由各个后台进程生成,一般在遇到错误时发生,在诊断问题时,生成的跟踪文件非常有用

二.旧版本中的警报日志和跟踪文件

在Oracle10g及以前版本中,警报日志和跟踪文件的位置由参数background_dump_dest确定

select value from v$parameter where name=‘background_dump_dest‘;

默认位置: /u01/app/oracle/product/12.1.0/db_1/rdbms/log

警报日志: alert_sid.log  (文本格式)

跟踪文件: sid_***.trc

三.新版本中的警报日志和跟踪文件

在Oracle11g以后版本中,警报日志和跟踪文件的位置有改变.

select * from v$diag_info;

1.查看警报日志

select value from v$diag_info where name =‘Diag Alert‘;

默认位置: /u01/app/oracle/diag/rdbms/sid/sid/alert

警报日志: log.xml  (xml格式)

2.查看跟踪文件

select value from v$diag_info where name =‘Diag Trace‘;

默认位置: /u01/app/oracle/diag/rdbms/sid/sid/trace

跟踪文件: sid_***.trc

警报日志: alert_sid.log  (文本格式)

参数background_dump_dest位置也有一部分跟踪文件

select value from v$parameter where name=‘background_dump_dest‘;

默认位置: /u01/app/oracle/product/12.1.0/db_1/rdbms/log

跟踪文件: sid_***.trc

四.SQL語句跟踪

1.用户级自我跟踪

alter session set sql_trace=true;

在同一个session中执行SQL语句,将会产生跟踪文件sid_ora_spid.trc(spid为系统进程id):

/u01/app/oracle/diag/rdbms/sid/sid/trace/sid_ora_spid.trc

spid:系统进程id,可以通过语句查看:

select s.username,s.sid,s.serial#,p.spid,s.program

from v$session s,v$process p

where s.paddr = p.addr

and s.username is not null

and p.background is null;

alter session set sql_trace=false;

2.系统级跟踪

alter system set sql_trace=true scope=memory;

在任何session中执行SQL语句,产生跟踪文件sid_ora_spid.trc(spid为系统进程id):

/u01/app/oracle/diag/rdbms/sid/sid/trace/sid_ora_spid.trc

alter system set sql_trace=false scope=memory;

3.用户级的DBA跟踪

使用Oracle的PL/SQL包DBMS_SYSTEM

(1)从v$session中查出用户的sid和serial#.

select s.username,s.sid,s.serial#,p.spid,s.program

from v$session s,v$process p

where s.paddr = p.addr

and s.username is not null

and p.background is null;

USERNAME                              SID    SERIAL# SPID                     PROGRAM

------------------------------ ---------- ---------- ------------------------ -----------------------------

SYSTEM                                 13      35114 9172                     plsqldev.exe

SYSTEM                                248      32295 9225                     plsqldev.exe

SYS                                    14      36202 9111                     [email protected] (TNS V1-V3)

(2)跟踪用户会话

execute sys.dbms_system.set_sql_trace_in_session(248,32295,true);

在任何id为248的session中执行SQL语句,产生跟踪文件sid_ora_spid.trc(spid为系统进程id):

/u01/app/oracle/diag/rdbms/sid/sid/trace/sid_ora_9225.trc

(3)停止跟踪

execute sys.dbms_system.set_sql_trace_in_session(248,32295,true);

4.SQL_TRACE跟踪SQL语句执行情况的内容

·解析、执行、取数据的计数

·CPU时间和占用时间

·物理读和逻辑读

·处理行数目

·所解析的用户名

·每次提交和回滚的情况.

五.格式化跟踪文件(tkprof)

使用tkprof程序可以将跟踪文件转化成可以阅读的文本文件,tkprof语法:

tkprof tracefile outputfile [explain=user/password] [table=schema.tablename]

[print=integer] [insert= ] [sys= ] [sort= ] ...

$ tkprof tracefile outputfile

------------------------------

4)数据字典和动态性能视图

一.数据字典视图

一般为前缀dba_ all_ user_

dba_objects

dba_data_files

dba_users

dba_tables

dba_tablespaces

dba_alert_history

数据字典视图只允许在打开数据库及数据字典后查询。

二.动态性能视图

v_$前缀: 视图

v$前缀:  同义词

有些动态性能视图根据实例填充,在实例处于NOMOUNT模式就已可用,例如:

v$instance

v$sysstat

由控制文件填充的动态性能视图(只有在已经加载数据库的情况下可用),例如:

v$database

v$datafile

v$logfile

v$tablespace

v$视图与数据字典视图之间存在一些重叠,如:v$tablespace,dba_tablespaces

三.查询视图了解数据库物理结构

1.表空间和数据文件

select t.name,d.name,d.bytes

from v$tablespace t join v$datafile d

on t.ts#=d.ts#

order by t.name

select t.tablespace_name,d.file_name,d.bytes

from dba_tablespaces t join dba_data_files d

on t.tablespace_name=d.tablespace_name

order by tablespace_name;

2.所有控制文件副本

select * from v$controlfile;

select value from v$parameter where name=‘control_files‘;

3.联机重做日志文件成员的位置和大小

select m.group#,m.member,g.bytes

from v$log g join v$logfile m

on m.group#=g.group#

order by m.group#,m.member;

四.常用动态性能视图

v$parameter            -- 初始化参数

v$spparameter          -- spfile文件初始化参数

v$pwfile_users         -- 通过口令文件验证用户列表(sysdba,sysoper)

v$instance             -- 实例

v$database             -- 数据库

v$controlfile          -- 控制文件

v$tablespace           -- 表空间

v$datafile             -- 数据文件

v$tempfile             -- 临时文件

v$log                  -- 联机日志组

v$logfile              -- 联机日志组成员文件

v$archive_dest         -- 归档位置

v$archived_log         -- 归档日志文件

v$session              -- 会话

v$process              -- 进程

v$locked_object        -- 锁对象

v$sqltext              -- SQL语句(显示在多行)

v$sqlarea              -- SQL语句(显示在一行)

v$sysstat              -- 系统状态

v$sgastat              -- SGA状态

v$pgastat              -- PGA状态

v$undostat             -- 撤消状态

v$sesstat              -- Session状态

v$transaction          -- 事务

v$shared_pool_advice   -- 共享池顾问

v$java_pool_advice     -- Java池顾问

v$streams_pool_advice  -- 流池顾问

v$db_cache_advice      -- 数据库缓冲区顾问

v$sga_target_advice    -- SGA自动管理顾问

v$pga_target_advice    -- PGA自动管理顾问

v$memory_target_advice -- 内存自动管理顾问(SGA+PGA)

v$diag_info            -- 警报和跟踪文件位置

五.常用数据字典

dba_tablespaces    -- 表空间

dba_data_files     -- 数据文件

dba_segments       -- 段

dba_extents        -- 区间

dba_users          -- 用户

dba_roles          -- 角色

dba_objects        -- 对象

dba_tables         -- 表

dba_tab_columns    -- 列

dba_tab_cols       -- 列

dba_indexes        -- 索引

dba_views          -- 视图

dba_sys_privs      -- 系统权限

dba_tab_privs      -- 对象权限

dba_role_privs     -- 角色权限

dba_waiters        -- 等待锁的会话

dba_source         -- PL/SQL程序代码

dba_db_links       -- 数据库链接

参考网址:

https://blog.csdn.net/gyming/article/details/42387911

https://blog.csdn.net/gyming/article/details/43086461

https://blog.csdn.net/gyming/article/details/42045199

https://blog.csdn.net/gyming/article/details/42046117

原文地址:https://www.cnblogs.com/hezt1114/p/8972614.html

时间: 2024-11-07 09:11:07

oracle 11g ocp 笔记(3)-- 实例管理的相关文章

oracle 11g ocp 笔记(6)-- oracle安全

1.创建和管理账号 用户.用户帐户.模式术语 用户.用户帐户.模式常替换使用,但这些术语并不完全相同. 用户通过建立到实例的会话连接到用户帐户,并基于用户帐户名登录. 模式(schema)是用户帐户拥有的一组对象. 用户账户的属性:   用户名 身份认证方式 默认表空间 表空间配额 临时表空间 用户配置文件 状态 1)用户名: 字母开头.只能包含字母.数字.美元符$.下划线_,不能是保留字,字母自动转化成大写,不按规则则需要双引号指定,不能超过30个字符.一旦创建不能修改. ·身份验证方法: 2

oracle 11g ocp 笔记(2)-- 安装和创建数据库

1.了解 数据库管理工具 1.2  OUI(Oracle Universal Installer) ·OUI产品清单(inventory)位置 Windows: %SystemRoot\Program files\Oracle\Inventory HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\inst_loc Liunx:   /etc/oraInst.loc Solaris  /var/opt/oracle/oraInst.loc AIX:????? ·在Linux或U

oracle 11g ocp 笔记(15)--使用rman进行备份

一.备份的术语 关闭与打开(冷备和热备 一致性备份和非一致性备份) 打开的备份只能是归档模式下 全部与局部  局部备份只能是归档模式下. 完整备份和增量备份   增量备份分为 累计增量备份和差异增量备份. rman 能备份的文件有:数据文件.归档文件.控制文件.spfile,备份集片 不能备份的文件有:redo log 临时文件.口令文件.pfile,oracle net文件. rman可以分三类 备份集.压缩备份集和影像副本.    备份集是增量或者是完整的,镜像只能是完整的, 备份集 存储库

Oracle 11g RAC到单实例ASM的物理Standby搭建

一.DG环境配置 此次搭建Standby的主库为:" RedHat 6.5+11G+RAC+ASM安装与配置(三节点)",11g单实例ASM安装使用ASMLib的方式,不在使用UDEV方式,磁盘为本机磁盘,非远程挂载的磁盘.本次搭建包含了11g单实例ASM的详细安装过程. 1. 基本环境 主库: 实例名:racdb1,racdb2,racdb3        DB_NAME:racdb              DB_UNIQUE_NAME:racdb 备库: 实例名:racdg  

oracle 11g rac 笔记(VMware 和esxi主机都可以使用)

这个只是笔记,防止丢失,没事见整理 在vmware安装目录 创建磁盘: vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 D:\VMWARE\racsharedisk\ocr.vmdk vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 D:\VMWARE\racsharedisk\ocr2.vmdk vmware-vdiskmanager.exe -c -s 1000Mb -a l

ORACLE 11G DataGuard的一些高级管理案例研究

搭建完了ORACLE 11G dataguard后,也做了角色切换的实验,有switchover已经failover,感觉受益颇多,而后继续研究了下dataguard的一些高级管理功能,所谓冰山一角,ORACLE果然博大精深,总结记录如下:1,ORACLE 11G dataguard的高级管理1.1.READ ONLY/WRITE模式打开物理STANDBY一般standby都是可以设置为mount状态的,于物理standby 可以有效分担primary 数据库压力,提升资源利用,实际上说的就是这

Oracle 11g 安装笔记

安装前注意事项: 1. 关闭网络 2. 关闭防火墙(控制面板-windows防火墙-左侧列表"打开或关闭防火墙",把两个网络位置的防火墙都关掉,这样就可以侧底关掉了) 3. 退出安全保护软件:eg.360安全卫士,腾讯电脑管家之类的软件.... 双击"setup.exe" 等待 忽略,点击下一步 管理口令:orcl 确认口令: 管理口令(P):[INS-30011] 输入的 ADMIN 口令不符合 Oracle 建议的标准. 原因 - Oracle 建议输入的口令应

关于oracle 11g 安装笔记记录

安装ORACLE 11G 64位报错 报错信息: 准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2012-07-25_03-10-02PM. 请稍候...[[email protected] database]$ ## An unexpected error has been detected by HotSpot Virtual Machine:# # SIGSEGV (0xb) at pc=0x00000034c9c14d70, pi

Oracle 11g学习笔记1

一.Oracle服务管理 在Windows操作系统环境下,Oracle数据库服务器以系统服务的方式运行.所有的Oracle服务名称都以Oracle开头.其中主要的Oracle服务有一下3种: Oracle<ORACLE_HOME_NAME>TNSListener: 监听程序服务. OracleDBConsoleorcl:本地OEM控制. OracleService<SID>:Oracle数据库实例服务,是Oracle数据库的主要服务. 二.Oracle默认用户 在安装Oracle时