03 Files

本章提要
-----------------------------------------------
组成 oracle 的 8 种主要文件(包括 instance 和 database)
instance: parameter file, trace file, alert file
database: data file, temp file, control file, redo log file, password file
简单概述:
parameter file: instance 参数初始化, 哪里可以找到control file.
trace file: diagnostic files created by a server process
alert file: dba 检查问题的中心
data file: 存储例如 table, index 等
temp file: 临时存储 和 disk-based sort
control file: 哪里可以找到 datafile, redolog file, temp file, 一些其他的元数据, backup info.
redo log file: transaction logs
password file: are used to authenticate users performing administrative activities over the network.

-- 10g 以后新增加的两个文件, 为了更好的backup 和 recovery
change-tracking file: 更好的 incremental backup or oracle data
flashback log file: store "before images" of database blocks

-- 其他类型文件 --
dump files: Export 产生的文件
Data Pump files: Data Pump Export process 产生的文件
Flat files: 可以用text editor 打开的文件, 一般用作 loading data

-- 最重要的文件是 data file, redo log file.
-----------------------------------------------

1. parameter file
    很多种类, 例如 tnsnames.ora, listener.ora 等, 不过这里重点讨论的是, init<sid>.ora 和 spfile

SID : 概念再补充: the sid is a site identifier, it and ORACLE_HOME(where the oracle software is
    installed) are hashed together in UNIX to create a unique key name for creating or attaching
    a Shared Global Area(SGA) memory region. If your ORACLE_SID or ORACLE_HOME is not set correctly,
    you’ll get the ORACLE NOT AVAILABLE error.

    select value from v$parameter where name = 'db_block_size' -- 查询 parameter 方法
    show parameter db_block_s        -- 查询 parameter 方法, 可以使用模糊查询, 所以比较好
    还有一些非正式声明的参数, 它们是以下划线开头, 例如 _trace_file_public, 一般我们不用关心这些非正式
    声明的参数, 大师一般只是设置一个 _trace_file_public=true, 作用是设置 trace_file read only by all.
    因为有很多常用工具需要读取tracefile, 比如 SQL_TRACE, TIMED_STATISTICS, TKPROF
    但是在生产库, 不需要设置这个参数.(生产库不设置任何 undocumented
    spfile 修改参数方法:
    Alter system set parameter=value <comment='text'> <deferred>
                    <scope=memory|spfile|both> <sid='sid|*'>
    如果我们想删除我们之前设置的参数, 而是用系统默认的参数, 那么, 我们需要使用如下命令:(reset)
    alter system reset sort_area_size scope=spfile;
    可以通过使用 startup pfile=filename, 这样, instance启动时会参考Pfile, 而不是spfile.
    之前说过parameter file的优先级.

    如果spfile损坏了怎么办, 你有很多办法, 首先如果你在unix系统下, 因为spfile很小, 可以使用strings命令
    查看spfile中的内容, 进而生成pfile(可以使用editor text编辑), 然后再create spfile from pfile 就可以.
    在windows系统, 可以使用 write.exe(WordPad)打开这个文件, 进而生成pfile, 然后同样命令创建spfile.

    如果spfile丢了, 那么你可以借助 log file来恢复spifle, 在log file中有instance启动的信息, 里边有参数
    设置的情况, copy出来, 制作pfile, 进而生成spfile.
    
2. Trace files
    Trace files are a source of debugging information.(是数据库自己debug的information)
    数据库编写人员, 会将数据库出现的问题, 写日志到trace file中.
    oracle 对于 debug 而提供的工具有:
    (我们不需要直接读tracefile, 我们读不懂, tracefile是为oracle support 人员准备的, 那么我们可以借助下面工具
     来进行一些查看.)
    1) v$ views: Most V$ views contain “debug” information.v$waitstat, v$session_event 等.
    2) audit: This command allows you to specify what events the database should record for later analysis
    3) resource manager: (DBMS_RESOURCE_MANAGER)(CPU, I/O)
    4) oracle events: ask Oracle to produce trace or diagnostic information as needed
    5) dbms_trace: within the PL/SQL engine exhaustively records the call tree of stored procedures 等.
    6) database event trigger: These triggers, such as ON SERVERERROR.
    7) SQL_TRACE/DBMS_MONITOR: This is used to view the exact SQL, wait events and other performance.
    
    Trace files 包含两种:
    1) 我们比较关心的, contain diagnostic information about your session and will help you tune your
        application to optimize its performance and diagnose any bottlenecks it is experiencing.
    2) 我们一般不关心, 一般是数据库原厂支持人员才能看懂的诊断内容, 比如 ORA-00600 "Internal Error"

    Requested Trace Files (请求相关的 trace file)
    DBMS_MONITOR( alter session set sql_trace=true)
    or using the extended trace facility via the 10046 event, might be as follows:
    alter session set events '10046 trace name context forever, level 12'
    These trace files contain diagnostic and performance related information(这种trace file最有用, 会经常使用)
    Location: user_dump_dest(dedicated server), background_dump_dest(shared server)
    show parameter dump_dest, 会显示 3 个 location, 其中:
    background_dump_dest: "server" process, oracle background process
    core_dump_dest: 进程的更加详尽的诊断文件
    user_dump_dest: (dedicated server)
   

with home
as
(select value homefrom v$diag_infowhere name = 'ADR Home'
)
select name,case when value <> home.homethen replace(value, home.home, '$home$')else valueend valuefrom v$diag_info, home
/
View Code


    01 trace_file_location.sql
    在查询出来的结果中, 两个参数比较重要: ( 11g 之后使用 )
    Diag Trace: trace地址, 包括background_trace file 和 user dump trace file.
    Default Trace File: your current session's trace file.
    
    trace name : oraclesid_ora_pid.trc
    v$PROCESS: 可以查看到pid
    V$SESSION: 可以查看到session信息
    V$INSTANCE: 可以查看到 oracle sid.
    所以, 可以通过另外的方法, 查看到当前的 trace file
   

column trace new_val T
select c.value || '/' || d.instance_name || '_ora_' ||a.spid || '.trc' ||case when e.value is not null then'_' || e.value end tracefrom v$process a, v$session b, v$parameter c, v$instance d, v$parameter ewhere a.addr = b.paddrand b.audsid = userenv('sessionid')and c.name = 'user_dump_dest'and e.name = 'tracefile_identifier'
/
View Code


    02 trace_file_now.sql
     开通当前 trace file 的方法: exec dbms_monitor.session_trace_enable
    你可以为 trace file 加上标签, 这样你就更容易找到当前是哪个 tracefile, 办法是:
    alter session set tracefile_identifier = 'LooK_LEON'; -- 在当前的 session 下
    exec dbms_monitor.session_trace_enable;
    这样就会在相应目录下看到带 'Look_LEON'名称的trace file, 那么很显然这就是当前的tracefile.
    这样的话, 文件名是 <ORACLE_SID>_ora_<PROCESS_ID>_Look_LEON.trc

    Trace Files Generated in Reponse to Internal Errors
    例如: ORA-00600: internal error code, 类似这种错误, 是 oracle的bug, 我们只能请求oracle的服务.
    所以, 找到对应的 tracefile 文件是十分重要的, 因为可以将它上传, 让 oracle support人员查看.

3. Alert File
    alert log file 很重要, 是数据库日志文件.
    alert log file 是文本文档文件, 可以看懂.

4. Data file    
    一般创建数据库时最少包括3个datafile:
    system tablespace 对应 datafile.
    user tablespace 对应 datafile.
    sysaux tablespace 对应 datafile (10g 以后版本)
    
    4种datafile 结构 (物理结构)
    1) operating system(os)file system: 一般操作系统文件, 我用的就是这种
    2) 未安装任何os的磁盘, 这个磁盘对Oracle来说是个大文件 (这种很少使用)
    3) Automatic Storage management(ASM): 做了一个抽象ASM系统, 即ASM是在OS与database中间
    4) Clustered file system: 为了 RAC, 看起来像第一种file system
    个人感觉, (1), (3)比较常用

    database 分层结构
    tablespace: 组成了database
    segments: 实际存储对象, 比如 table, index 等, Every object that consumes storage is ultimately stored in a
        single segment. There are undo segments, temporary segments,cluster segments, index segments and so on.
    extents: An extent is a logically contiguous allocation of space in a file.
    blocks: A block is the smallest unit of space allocation in Oracle.    一般分为 2k,4k,8k,16k
   
    <03_01.jpg>
    注意: 这个图我们尽量从逻辑角度看, 所以看到extent是连续的, 但是其实不是这样.
    extent 之间不连续, extent 内部连续。
    <03_02.jpg>

   
    block structure
5. Temp Files
    Temp files never have REDO generated for them, although they can have UNDO generated. Thus,
    there will be REDO generated working with temporary tables since UNDO is always protected by REDO.
6. Control files
    the control files tell the instance where the database and online redo log files are.
    developer 基本上用不到 control file.
7. Redo Log Files
8. password Files
    本地组内部的User, 都可以不用密码登陆数据库, 所以不一定非的是oracle这个用户
    而如果在网络上连接数据库, 操作系统认证就不行了, password file 只可以通过网络认证为 sysdba的用户
    首先启动数据库, 设置参数 remote_login_passwordfile=EXCLUSIVE, 如果是shared表示多个数据库可以共用密码文件
    一般这个参数, 默认就是 EXCLUSIVE
    然后使用, orapwd file=orapw$ORACLE_SID password=aaa entries=20(最大连接数), 这时我们可以使用 sys 用户远程
    连接上来, 但是我们自己随便建立用户, 不能连接上来, 因为我们随便建立的用户不是SYSDBA权限, 所以, 我们要先授权
    我们新建用户的权限, grant sysdba to leon; 然后就可以从远端用 leon 用户连接上来了. 另外注意, orapwd是linux命令
    另外, 远程连接时, 如果server端采用动态注册的话, 那么必须要开启instance时, 才能动态注册, 所以, 这样就没有办法
    使用这种远程连接到没有开启instance的数据库, 所以, 这时需要使用静态注册, 才可以远端来接来sysdba,远端开启数据库
9. dump files
    dmp 文件是独立于平台(os), 可以用于重建表, 模式, 甚至整个数据库, 导入工具的作用就是读取dmp文件, 执行ddl语句,
    并加载它找到的所有数据. 现在这个已经有被 data pump 取代的形式.
10. data pump files
    IMPDP 和 EXPDP 使用这种文件格式, 使用方法与 IMP 和 EXP 一样.    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TensorFlow发布全新版本,又会带来哪些变革?

全世界只有3.14 % 的人关注了青少年数学之旅经过几年的发展&#xff0c;深度学习方法摧枯拉朽般地超越了传统方法&#xff0c;成为人工智能领域最热门的技术。之后&#xff0c;谷歌、亚马逊、百度、Facebook 纷纷开源了自己的深度学习框架。而支撑AlphaGo的核心技术架构--Tenso…

码农身份得到正式认证

各位同行的兄弟姐妹们&#xff0c;我们的码农&#xff08;新生代农民工&#xff09;身份已经得到国家正式确认&#xff0c;程序员这个职业也正式并到农民工行列了。现在互联网大厂&#xff0c;大部分程序员都是在做着模式化开发工作&#xff0c;已经没有技术含量了&#xff0c;…

面试字节我被String类的问题给问死了!

“” 是怎么连接字符串的&#xff1f;&#xff08;JDK1.7及以上&#xff09; 总结&#xff1a; 使用 “” 连接字符串时&#xff0c;实际上是使用临时创建的StringBuilder对象来辅助完成的。 对于编译时常量&#xff0c;在编译后直接计算出字符串的值&#xff0c;而不会在运行…

加州大学惊现神操作!物理教授用数学论文摆脱400美元交通罚单,却惨被网友大反转.........

全世界只有3.14 % 的人关注了青少年数学之旅“学好数理化&#xff0c;走遍天下都不怕。”这句从上个世纪八十年代流传下来的金句&#xff0c;至今仍然哺育着理工科的莘莘学子。为了让模友们更好的理解这句话&#xff0c;今天就让小天给你们涨涨姿势&#xff0c;见识一下什么是学…

VMware虚拟机VMDK 快照 数据恢复成功

VMware虚拟机VMDK 快照 数据恢复成功【故障描述】某影院使用的票管理系统安装在一台虚拟中&#xff0c;数据库采用的是Oracle9I,虚拟机在安装好后做了一次快照&#xff0c;期间又做过一次快照&#xff0c;在正常使用过程&#xff0c;虚拟突然崩溃&#xff0c;无法启动&#xff…

[转]两个经典的windbg调试案例,值得学习。

1. 调试Bug的神兵利器&#xff1a;通过WinDbg条件断点收集Log 原文地址&#xff1a;http://blogs.msdn.com/yizhang/archive/2009/03/30/bug-windbg-log.aspx 调试Bug的神兵利器&#xff1a;通过WinDbg条件断点收集Log 前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。…

设计模式之观察者

观察者模式介绍观察者又名事件订阅者、监听者。观察者模式是一种行为设计模式&#xff0c;允许你定义一种订阅机制&#xff0c;可在对象事件发生时通知多个“观察者”该对象的其他对象。通知目标&#xff1a;拥有一些值得关注的状态的对象。发布者&#xff1a;它要自身的状态改…

二面京东被问到Java 反射,我直呼好家伙,这我不是必过吗?

二面京东被问到Java 反射&#xff0c;我直呼好家伙&#xff0c;这我不是必过吗&#xff1f;用多久我会升职加薪、当上技术总监、迎娶漂亮学姐、走上人生巅峰&#xff01;想想还有点小激动。 好了开始分享面试经历 说说你反射的理解 到底什么是反射呢&#xff1f;&#xff1f;…

通用路由封装(GRE)×××配置

本人没有很好的文采&#xff0c;只能直接配置&#xff0c;有不懂的地方&#xff0c;后面可以联系我&#xff0c;在配置当中&#xff0c;我会尽量在配置命令后面加标注。1、在R1上配置相关的命令R1&#xff08;config&#xff09;#int fa0/0 ---进入以太网fa0/0接口--R1&#…

gridview DataFormatString

转有个时间要在gridview中显示,但是保持着数据库中的是标准时间,很长,而且只需要显示日期,就想要格式化字符串,可是设置了DataFormatString就是不起作用,后来一查,原来要设置"行为"中HtmlEncode false DataFormatString"{0:格式字符串}" 在DataFormatStri…

太神奇了!使用C#实现自动核验健康码:(1)二维码识别

前言因为疫情的原因&#xff0c;无论是进入商场还是医院、车站&#xff0c;都需要出示健康码。现在基本都是采取人工方式核验健康码&#xff0c;看到绿码就通过&#xff0c;否则就禁止进入。但是&#xff0c;单靠人工核验健康码容易造成人员拥堵&#xff0c;增加病毒交叉感染的…

三角形中惊现叛徒!自己胖的像个球,却能成就世界上最快的赛车引擎......

全世界只有3.14 % 的人关注了青少年数学之旅一日&#xff0c;理科生上山寻访禅师。理科生问禅师&#xff1a;“大师&#xff0c;世人为何总嫌我棱角太突出&#xff0c;不合群&#xff01;”禅师思索一阵&#xff0c;掏出数根圆柱铺在地上&#xff0c;在上面搁了一块木板&#x…

我丢,去面试初级Java开发岗位,被问到泛型?

1、泛型的基础概念 1.1 为什么需要泛型 List list new ArrayList();//默认类型是Objectlist.add("A123");list.add("B234");list.add("C345");System.out.println(list);for(int i0;i<list.size();i){//若要将list中的元素赋给String变量&a…

echart 地图 某个地区_中国饮食地图来袭!你爱的口味暗藏健康隐患吗?

食&#xff0c;既是人生存之根本&#xff0c;也是人们热爱生活的体现。中国地域广阔、物产富饶&#xff0c;中国人对“吃”看重也愿钻研&#xff0c;种种因素造就了中国美食 “百花齐放”的局面&#xff0c;在“吃货”眼里&#xff0c;中国地图俨然就是一张美食地图。不同地区的…

面试官:实现一个带值变更通知能力的Dictionary

如题&#xff0c; 你知道字典KEY对应的Value什么时候被覆盖了吗&#xff1f;最近大家都在追.Net6 update&#xff0c;咱还是保持节奏&#xff0c;通用语言聊技术。没背景说个铲铲上文中 数据获取组件维护了业务方所有(在用)的连接对象&#xff0c;DBA能在后台无侵入的切换备份库…

颠覆认知!完美赌徒,到底是如何用数学打造经济神话?!

▲ 点击查看说起世界上最会赚钱的数学家&#xff0c;非詹姆斯西蒙斯莫属。1938年&#xff0c;西蒙斯出生于美国的马萨诸塞州&#xff0c;是一个鞋厂的儿子。在其他的孩子&#xff0c;还在听童话故事的时候&#xff0c;西蒙斯就已经开始展露出惊人的数学天赋了。3岁的时候&…

abs函数的使用方法 oracle_SQL Server 常用函数使用方法

1、SubString()&#xff1a;用于截取指定字符串的方法。该方法有三个参数&#xff1a;参数1&#xff1a;用于指定要操作的字符串。参数2&#xff1a;用于指定要截取的字符串的起始位置&#xff0c;起始值为 1 。参数3&#xff1a;用于指定要截取的长度。select substring(abcde…

高考落榜怎么办,奉劝学弟学妹们一些事情,请一定要擦亮眼睛

在目前这个社会情况Java技术是当前社会的一个热门专业&#xff0c;无论是pc端还是移动端对java的需求都是最多的&#xff0c;大学生学java正好顺应时代的发展&#xff0c;不仅有钱途还有前途&#xff0c;Java也适合零基础的人学习。 最近看见一句话 高考不努力&#xff0c;学习…

神仙打架!一人公开单挑全欧洲数学家,却惨遭4位数学家大反转,66年的难题被一晚破解......

全世界只有3.14 % 的人关注了青少年数学之旅两点之间直线最短&#xff0c;这家喻户晓的数学名言&#xff0c;就算是学渣也能倒背如流。但学渣们不知道的是&#xff0c;这条直线并不是最快的。为了让学渣们真正理解这句话&#xff0c;今天&#xff0c;超模君决定科普一波起源关于…

基于事件驱动架构构建微服务第4部分:repositories

原文链接&#xff1a;https://logcorner.com/building-microservices-through-event-driven-architecture-part4-repositories/在本文中&#xff0c;我将实现Repositories的命令端。存储库属于Clean架构的接口适配器在这一步中&#xff0c;我将开始实现基础设施的命令端&#x…