Orcl1(data)
- 格式:pptx
- 大小:399.66 KB
- 文档页数:68
oracle dataguard原理(一)Oracle DataGuard原理详解介绍Oracle DataGuard是Oracle数据库提供的一种数据冗余和灾难恢复解决方案。
它通过实时数据复制和自动故障转移来提供数据保护和高可用性。
本文将从浅入深,逐步解释Oracle DataGuard的相关原理。
数据冗余•数据冗余是指将数据库中的数据复制到另一个位置,以保护数据免受硬件故障、自然灾害和人为错误的影响。
•在Oracle DataGuard中,数据冗余是通过将主数据库中的数据异步或同步复制到一个或多个备用数据库实现的。
•备用数据库是主数据库的精确副本,它可以提供故障转移和灾难恢复的能力。
主备同步•主备同步是指主数据库和备用数据库之间的数据复制是实时的并保持同步。
•在Oracle DataGuard中,主备同步有两种模式,即同步模式和异步模式。
•同步模式要求主数据库将数据写入本地磁盘后,等待至少一个备用数据库确认接收并写入数据,确保数据一致性和可靠性。
•异步模式允许主数据库立即提交事务,并异步地将数据发送给备用数据库。
这种模式下,主备数据库之间可能存在一定的数据延迟。
数据传输•数据传输是指主数据库将数据发送给备用数据库的过程。
•在Oracle DataGuard中,数据传输可以通过物理复制或逻辑复制来实现。
•物理复制是将主数据库的物理数据文件复制到备用数据库。
这种复制方式效率高,适用于大型数据库。
•逻辑复制是将主数据库的逻辑数据写入备用数据库。
这种复制方式可以跨不同操作系统平台和数据库版本。
自动故障转移•自动故障转移是指在主数据库发生故障时,备用数据库可以自动接管主数据库的功能。
•Oracle DataGuard提供了故障切换的功能,可以迅速将备用数据库切换为主数据库,实现连续的应用程序可用性。
•故障切换是基于Oracle Grid Infrastructure和Fast-Start Failover技术实现的,它能够在故障发生时自动检测和处理。
Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库⼀:章节前⾔本章着眼于影响表中数据存储性能的数据库特性本章着眼于影响表中数据存储性能的数据库特性。
表的性能部分取决于在创建之前所应⽤的数据库特性。
例如:在最初创建数据库时采⽤的物理存储特性以及相关的表空间都会在后来影响表的性能。
类似地,表性能还受到最开始选择的物理特性的影响。
例如:表类型和数据类型。
因此应⽤实践中使⽤的数据库、表空间、和表的创建标准(并将性能问题放在⼼上),就形成了优化数据可能性和可扩展性的基础。
组成Oacle 数据库的物理结构⽤来存储、管理、保护以及读取数据。
在创建数据库的时候,可以选择应⽤⼀些与性能相关的特性。
例如⽂件的初始布局以及表空间的管理类型,都是在创建数据库时制定。
这时所实现的架构上的决策,通常都会产⽣很长远的影响。
提⽰: oralce 实例的定义是其内存结构及其后台进程。
⽽Oracle 数据库则由物理⽂件(即:数据⽂件、控制⽂件、在线重做⽇志⽂件)组成。
如图1-1所描述的那样,表空间是⽀持管理⼀组数据⽂件的逻辑结构。
数据⽂件就是磁盘的物理⽂件。
配置表空间时,要注意⼀些对性能会产⽣深远影响的特性,也就是本地管理表空间以及⾃动段存储管理的表空间。
如果合理地设计这些特性,将来也就能最⼤限度得可接受到表性能 图1-1 逻辑存储于物理存储之间的关系图表是数据库中存储数据的对象。
数据库性能衡量的是应⽤能够以什么样的速度插⼊、更新、删除、和查询数据。
因此,此书就从优化表性能的攻略讲起。
本章⾸先介绍创建数据库和表空间时,可能会影响表性能的各⽅⾯因素,然后,讨论另外⼀些主题,⽐如根据于性能相关的业务需求,选择表类型和数据类型。
稍后介绍的主题包括管理表空间使⽤情况的物理实现⽅式。
本章还会详细介绍其他问题。
例如探测表碎⽚、处理位于⾼⽔位线下⽅的空闲空间、⾏链接以及数据压缩。
除此之外还会描述Oracle 段顾问(Oracle Segment Advisor ).这个⼯具很好⽤,能够帮助你⾃动探测并解决碎⽚和未使⽤的空间问题。
oracle一位小数点-回复什么是Oracle数据库?Oracle数据库是一种关系数据库管理系统(RDBMS),由Oracle Corporation开发和提供。
它是当前全球应用最广泛的数据库管理系统之一,被广泛应用于企业级应用程序和数据存储。
为什么选择Oracle数据库?选择Oracle数据库有以下几个主要原因:1. 可扩展性:Oracle数据库具备强大的可扩展性,可以处理大规模和高并发的数据操作。
它能够处理数百个用户同时访问和操作数据库。
2. 可靠性:Oracle数据库是一个非常可靠的数据库管理系统。
它提供了多种备份和恢复机制,能够确保数据的完整性和持久性。
此外,Oracle 还提供了高可用性解决方案,如实时备份和数据冗余,以应对硬件故障和系统崩溃。
3. 安全性:Oracle数据库提供了强大的安全性功能,可以保护敏感数据免受未经授权的访问。
它支持基于角色的访问控制、身份验证和授权机制,能够确保只有授权用户可以访问和操作数据库。
4. 高性能:Oracle数据库具备出色的性能优化能力,能够处理高负荷和复杂的查询。
它支持多种性能优化技术,如索引、分区和缓存机制,以提高数据检索和操作的效率。
5. 全球支持:Oracle是一个拥有全球服务和支持网络的公司,能够提供及时的技术支持和维护服务。
无论企业的规模和地理位置如何,Oracle 都能为其提供专业的咨询和解决方案。
Oracle数据库的组成部分Oracle数据库由多个组成部分组成,包括:1. 实例(Instance):实例是数据库运行时的内存和进程结构,它负责管理数据库的内存分配、用户访问控制和并发控制等。
每个Oracle数据库都有一个相应的实例。
2. 数据库(Database):数据库是数据的物理存储和管理单元。
一个Oracle数据库可以包含多个表空间(tablespace),而表空间则包含了数据库的实际数据。
3. 表空间(Tablespace):表空间是逻辑存储和管理数据的单元。
Oracle_Data_Integrator(ODI)安装Oracle_Data_Integrator(ODI)安装2011-4-14杨明泽OS :WINDOWSXP -32ORACLE_DB: 11GWLS: 单机版10.3.4.0RCU: 11.1.1.3.3ODI: 11.1.1.3.0⼀、安装WebLogic1.1、安装向导1.2、创建安装主⽬录1.3、选择注册⽅式1.4、选择安装类型如果需要安装Server Examples 服务(选择定制项)1.5、选择产品安装⽬录1.6、选择快捷安装位置1.7、安装组件概要1.8、开始安装1.9、安装结束⼆、安装Repository Creation Utility (RCU)2.1、安装Rcu解压完成后:打开rcuHome\BIN⽬录运⾏rcu.bat⽂件,选择创建2.2、创建资料档案库2.3、添加数据库连接2.4、创建前缀选择Oracle Data Integrator 选项,准备创建Master Repository schema user name,(这⾥默认资料档案库名称:mz_odi_repo)2.5、设置⽅案⼝令2.6、设置超级⽤户⼝令2.7、创建资料档案库表空间点击下⼀步2.8、开始创建资料档案库点击创建2.9、完成创建RCU。
安装结束点击完成安装。
RCU安装结束三、安装Oracle Data Integrator(ODI)3.1、选择安装类型3.2、对系统环境进⾏检查3.3、选择安装⽬录3.4、选择oracle middleware主⽬录由于选择了JAVA EE组件,这⾥选择的⽬录是wls安装的⽬录3.5、配置资料档案库3.6、添加连接数据库信息⽤户名是之前建⽴RCU提供的:MZ_ODI_REPO 3.7、输⼊超级⽤户密码这⾥的密码是建⽴RCU时设定的3.8、指定⼯作资料库信息3.9、开始安装ODI点击安装。
第一章oracle数据库10g概述1.1 数据库和信息管理服务器必须在多用户环境中管理大量的数据,使得多个用户能够并行访问数据。
所有这些必须能够在高性能的情况下完成,数据库服务器必须防止未经授权的非法访问,保护敏感数据,同时,为故障恢复提供解决方案。
▪客户用员务器环境▪大型数据库和空间管理▪多个并行数据库用户▪连接性▪高事务处理能力▪控制可用性▪开放的、基于工业标准▪管理安全性▪数据库完整性增强▪兼容性▪分布式系统▪复制环境1.2 Oracle 10g服务器Oracle 10g服务器是对象关系数据库管理系统,提供对信息管理的集成方法,一个Oracle服务器包括一个Oracle数据库和一个Oracle服务器实例。
每当数据库启动的时候,系统全局区(SGA)被分配,并启动了Oracle后台进程。
系统全局区是用于数据库用户共享数据库信息的内存区域。
后台进程和内存缓冲区称为Oracle实例。
Oracle实例包含两种类型的进程:用户进程和Oracle进程。
用户进程执行应用操作的代码。
Oracle 进程是执行用户进程和后台进程,对Oracle进行维护的服务器进程。
为了最大化性能和处理多个用户的请求,多进程Oracle系统使用附加进程,这些附加进程称为后台进程。
后台进程能够自动执行I/0和监视Oracle进程,为获得更好的性能和稳定性提供更好的支持。
数据库的物理结构和存储结构之间的关系由后台进程来维持。
数据库拥有多个后台进程,其数量取决于数据库的配置。
这些进程由数据库管理,它们只需要进行很少的管埋。
每个后台进程创建一个跟踪文件。
Oracle在实例操作期间保存跟踪文件。
后台进程跟踪文件的命名约定和位置随操作系统和数据库版本不同而不同。
一般来说,跟踪文件含有后台进程名或后台进程的操作系统进程ID.可以设置init.ora文件的BACKGROUND_DUMP_DEST参数来规定后台进程跟踪文件的位置。
但是有些版本的Oracle忽略这种设置。
ORACLE数据库结课论文一个好的程序, 必然联系着一个庞大的数据库网路...今年我们学习了oracle数据库这门课程, 起初的我, 对这个字眼是要多陌生有多陌生, 后来上课的时候听一会老师讲课, 偶尔再跟上上机课, 渐渐的学会了不少东西, 但我感觉, 我学到的仍是一些皮毛而已, 怀着疑惑和求知的心态, 我在网上搜索了关于oracle数据库的一些知识。
1.ORACLE的特点:可移植性ORACLE采用C语言开发而成, 故产品与硬件和操作系统具有很强的独立性。
从大型机到微机上都可运行ORACLE的产品。
可在UNIX、DOS、Windows等操作系统上运行。
可兼容性由于采用了国际标准的数据查询语言SQL, 与IBM的SQL/DS、DB2等均兼容。
并提供读取其它数据库文件的间接方法。
可联结性对于不同通信协议, 不同机型与不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。
2.ORACLE的总体结构(1)ORACLE的文件结构一个ORACLE数据库系统包括以下5类文件:ORACLE RDBMS的代码文件。
数据文件一个数据库可有一个或多个数据文件, 每个数据文件可以存有一个或多个表、视图、索引等信息。
日志文件须有两个或两个以上, 用来记录所有数据库的变化, 用于数据库的恢复。
控制文件可以有备份, 采用多个备份控制文件是为了防止控制文件的损坏。
参数文件含有数据库例程起时所需的配置参数。
(2)ORACLE的内存结构一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。
SGA(System Global Area)包括数据库缓冲区、日志缓冲区与共享区域。
PGA(Program Global Area)是每一个Server进程有一个。
一个Server进程起动时, 就为其分配一个PGA区, 以存放数据与控制信息。
(3)ORACLE的进程结构ORACLE包括三类进程:①用户进程用来执行用户应用程序的。
1、控制文件中注释用“--”。
2、为防止导入出现中文乱码,在控制文件中加入字符集控制1.LOAD DATA2.CHARACTERSET ZHS16GBK3、让某一列成为行号,用RECNUM关键字1.load data2.infile *3.into table t4.replace5.( seqno RECNUM //载入每行的行号6.text Position(1:1024))7.BEGINDATA8.fsdfasj4、过滤某一列,用FILLER关键字1.LOAD DATA2.TRUNCATE INTO TABLE T13.FIELDS TERMINATED BY ','4.( field1,5.field2 FILLER,6.field37.)5、过滤行在INTO TABLE table_name后加WHEN过滤条件,但功能有限,如果以竖线分隔符的文件,不能实现字段级的过滤,定长的还好。
1.LOAD DATA2.INFILE 'mydata.dat'3.BADFILE 'mydata.bad'4.DISCARDFILE 'mydata.dis'5.APPEND6.INTO TABLE my_selective_table7.WHEN (01) <> 'H' and (01) <> 'T' and (30:37) = '20031217'8.(9.region CONSTANT '31',10.service_key POSITION(01:11) INTEGER EXTERNAL,11.call_b_no POSITION(12:29) CHAR12.)6、过滤首行,用OPTIONS (SKIP 1)选项,也可以写在命令行中,如:sqlldr sms/admin control=test.ctl skip=17、TRAILING NULLCOLS的使用,作用是表的字段没有对应的值时允许为空如:1.LOAD DATA2.INFILE *3.INTO TABLE DEPT4.REPLACE5.FIELDS TERMINATED BY ','6.TRAILING NULLCOLS // 其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应的列的值的如果第一行改为 10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了7.(DEPTNO,8.DNAME "upper(:dname)", // 使用函数9.LOC "upper(:loc)",ST_UPDATED date 'dd/mm/yyyy', // 日期的一种表达方式还有'dd-mon-yyyy' 等11.ENTIRE_LINE ":deptno||:dname||:loc||:last_updated"12.)13.BEGINDATA14.10,Sales,Virginia,1/5/200015.20,Accounting,Virginia,21/6/199916.30,Consulting,Virginia,5/1/200017.40,Finance,Virginia,15/3/20018、添加、修改数据(1)、1.LOAD DATA2.INFILE *3.INTO TABLE tmp_test4.( rec_no "my_db_sequence.nextval",5.region CONSTANT '31',6.time_loaded "to_char(SYSDATE, 'HH24:MI')",7.data1 POSITION(1:5) ":data1/100",8.data2 POSITION(6:15) "upper(:data2)",9.data3 POSITION(16:22)"to_date(:data3, 'YYMMDD')"10.)11.BEGINDATA12.11111AAAAAAAAAA99120113.22222BBBBBBBBBB990112(2)、1.LOAD DATA2.INFILE 'mail_orders.txt'3.BADFILE 'bad_orders.txt'4.APPEND5.INTO TABLE mailing_list6.FIELDS TERMINATED BY ","7.( addr,8.city,9.state,10.zipcode,11.mailing_addr "decode(:mailing_addr, null, :addr, :mailing_addr)",12.mailing_city "decode(:mailing_city, null, :city, :mailing_city)",13.mailing_state14.)9、合并多行记录为一行记录通过关键字concatenate 把几行的记录看成一行记录:1.LOAD DATA2.INFILE *3.concatenate 3 // 通过关键字concatenate 把几行的记录看成一行记录4.INTO TABLE DEPT5.replace6.FIELDS TERMINATED BY ','7.(DEPTNO,8.DNAME "upper(:dname)",9.LOC "upper(:loc)",ST_UPDATED date 'dd/mm/yyyy'11.)12.BEGINDATA13.10,Sales, // 其实这3行看成一行 10,Sales,Virginia,1/5/200014.Virginia,15.1/5/200010、用”|+|”分隔符,避免数据混淆:fields terminated by "|+|"11、如果数据文件包含在控制文件中,用INFILE *如下:1.LOAD DATA2.INFILE *3.append4.INTO TABLE tmp_test5.FIELDS TERMINATED BY ","6.OPTIONALLY ENCLOSED BY '"'7.TRAILING NULLCOLS8.( data1,9.data210.)11.BEGINDATA12.11111,AAAAAAAAAA13.22222,"A,B,C,D,"12、一次导入多个文件到同一个表1.LOAD DATA2.INFILE file1.dat3.INFILE file2.dat4.INFILE file3.dat5.APPEND6.INTO TABLE emp7.( empno POSITION(1:4) INTEGER EXTERNAL,8.ename POSITION(6:15) CHAR,9.deptno POSITION(17:18) CHAR,10.mgr POSITION(20:23) INTEGER EXTERNAL11.)13、将一个文件导入到不同的表(1)、1.LOAD DATA2.INFILE *3.INTO TABLE tab1 WHEN tab = 'tab1'4.( tab FILLER CHAR(4),5.col1 INTEGER6.)7.INTO TABLE tab2 WHEN tab = 'tab2'8.( tab FILLER POSITION(1:4),9.col1 INTEGER10.)11.BEGINDATA12.tab1|113.tab1|214.tab2|215.tab3|316.==============(2)、1.LOAD DATA2.INFILE 'mydata.dat'3.REPLACE4.INTO TABLE emp5.WHEN empno != ' '6.( empno POSITION(1:4) INTEGER EXTERNAL,7.ename POSITION(6:15) CHAR,8.9.deptno POSITION(17:18) CHAR,10.mgr POSITION(20:23) INTEGER EXTERNAL11.)12.INTO TABLE proj13.WHEN projno != ' '14.( projno POSITION(25:27) INTEGER EXTERNAL,15.empno POSITION(1:4) INTEGER EXTERNAL16.)14、过滤掉的数据文件路径指定1./opt/app/oracle/product/10.2.0/bin/sqlldr APS/APS control=/home/oracle/APS_LOAD/ctl/AP_CONTRACT.CTL LOG=/home/oracle/APS_LOAD/log/$yesterday/AP_CONTRACT_$yesterday.log bad=/home/oracle/APS_LOAD/bad/DUE_BILL_$yesterday.bad rows=10000readsize=20000000bindsize=20000000DISCARD=/home/oracle/APS_LOAD/bad /discard_ts.dis15、附:测试用控制文件1.LOAD DATA2.INFILE '/home/oracle/APS_LOAD/dat/APS_AP_CONTRACT.dat'3.TRUNCATE4.INTO TABLE AP_CONTRACT5.WHEN (01)<>'1'6.FIELDS TERMINATED BY "|"7.TRAILING NULLCOLS8.(9.AGMT_NO "(TRIM(:AGMT_NO ))",10.CONTRACT_NO FILLER, -- "(TRIM(:CONTRACT_NO ))",11.LOAN_AMT "(TRIM(:LOAN_AMT ))",12.AGMT_HOLDER "(TRIM(:AGMT_HOLDER ))",13.LOAN_TYPE_CD "(TRIM(:LOAN_TYPE_CD ))",14.CURR_CD "(TRIM(:CURR_CD ))",15.BALANCE "(TRIM(:BALANCE ))",16.LOAN_DIRC_CD "(TRIM(:LOAN_DIRC_CD ))",17.AGMT_START_DATE "(TRIM(:AGMT_START_DATE ))",18.AGMT_END_DATE "(TRIM(:AGMT_END_DATE ))",19.AGMT_BELONG_ORG_NO "(TRIM(:AGMT_BELONG_ORG_NO ))",20.MANAGER_NO "(TRIM(:MANAGER_NO ))",21.PROCESS_RATE "(TRIM(:PROCESS_RATE ))",22.INSURE_METH_TYPE_CD "(TRIM(:INSURE_METH_TYPE_CD ))",23.AGMT_SIGN_DATE "(TRIM(:AGMT_SIGN_DATE ))",24.LOAN_PROP_CD "(TRIM(:LOAN_PROP_CD ))",25.LOAN_USE_TYPE "(TRIM(:LOAN_USE_TYPE ))",26.ENTRUST_LOAN_FLAG "(TRIM(:ENTRUST_LOAN_FLAG ))",27.ENTRUST_NAME "(TRIM(:ENTRUST_NAME ))",28.FARM_LOAN_FLAG "(TRIM(:FARM_LOAN_FLAG ))",29.FARM_LOAN_TYPE_CD "(TRIM(:FARM_LOAN_TYPE_CD ))",30.LOAN_BIZ_TYPE_CD "(TRIM(:LOAN_BIZ_TYPE_CD ))",31.ID_TEST RECNUM ,32.CHAR_TEST CONSTANT '31',33.SQ "sqlldr.nextval",34.TEST_4 "TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS')",35.TEST_5 "(TRIM(:LOAN_BIZ_TYPE_CD)||'---'||TRIM(:AGMT_NO))"36.)来源:网络编辑:联动北方技术论坛。
SQL获取第⼀条记录的⽅法(sqlserver、oracle、mysql数据库)Sqlserver 获取每组中的第⼀条记录在⽇常⽣活⽅⾯,我们经常需要记录⼀些操作,类似于⽇志的操作,最后的记录才是有效数据,⽽且可能它们属于不同的⽅⾯、功能下⾯,从数据库的术语来说,就是查找出每组中的⼀条数据。
下⾯我们要实现的就是在sqlserver中实现从每组中取出第⼀条数据。
例⼦我们要从上⾯获得的有效数据为:对应的sql语句如下所⽰:select * from t1 t where id = (select top 1 id from t1 where grp = t.grp order by createtime desc )下⾯给⼤家介绍oracle查询取出每组中的第⼀条记录oracle查询:取出每组中的第⼀条记录按type字段分组,code排序,取出每组中的第⼀条记录⽅法⼀:select type,min(code) from group_infogroup by type;注意:select 后⾯的列要在group by ⼦句中,或是⽤聚合函数包含,否则会有语法错误。
⽅法⼆:SELECT * FROM(SELECT z.type , z.code ,ROW_NUMBER()OVER(PARTITION BY z.type ORDER BY z.code) AS code_idFROM group_info z)WHERE code_id =1;这⾥涉及到的over()是oracle的分析函数参考sql reference⽂档:Analytic functions compute an aggregate value based on a group of rows. They differ from aggregate functions in that they return multiple rows for each group.Analytic functions are the last set of operations performed in a query except for the final ORDER BY clause. All joins and all WHERE , GROUP BY , and HAVING clauses are completed before the analytic functions are processed. Therefore, analytic functions can appear only in the select list or ORDER BY clause.语法结构:analytic_function ([ arguments ]) OVER(analytic_clause)其中analytic_clause结构包括:[ query_partition_clause ][ order_by_clause [ windowing_clause ] ]也就是:函数名( [ 参数 ] ) over( [ 分区⼦句 ] [ 排序⼦句 [ 滑动窗⼝⼦句 ] ])这⾥PARTITION BY 引导的分区⼦句类似于聚组函数中的group by,排序⼦句可看成是select语句中的order by.mysql 中只获取1条数据SELECT * FROM 表 LIMIT 0, 10LIMIT 接受⼀个或两个数字参数。
Oracle常见错误及解决办法Ø简介本⽂主要记录 Oracle 常见错误及解决办法,包括以下内容:1.ORA-00054: 资源正忙, 但指定以 NOWAIT ⽅式获取资源, 或者超时失效2.ORA-01034: ORACLE not available3.ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated(启动数据库报错)4.ORA-12154: TNS: ⽆法解析指定的连接标识符5.ORA-12514: TNS:listener does not currently know of service requested in connect descriptor6.ORA-12541: TNS:no listener7.ORA-12560: TNS: 协议适配器错误8.ORA-27125: unable to create shared memory segment(启动数据库报错)9.ORA-28040: 没有匹配的验证协议((11g dblink 连接 12c 时)1.ORA-00054: 资源正忙, 但指定以 NOWAIT ⽅式获取资源, 或者超时失效n错误原因由于其他 Session 已经对⽬标表做了操作,并且已经有排他锁在表上了,所以新的 Session ⽆法再对表进⾏DDL操作。
n解决办法以 system ⽤户登录:1)查询被锁的会话IDselect session_id from v$locked_object;2)查询 sid, serial# 字段SELECT sid, serial#, username, osuser FROM v$session where sid = 9;3)将锁定的会话关闭ALTER SYSTEM KILL SESSION '9,99';2.ORA-01034: ORACLE not available1)检查当前数据库实例是否启动3.ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated(启动数据库报错)n错误描述SQL> startupORA-01261: Parameter db_recovery_file_dest destination string cannot be translatedORA-01262: Stat failed on a file destination directoryLinux-x86_64 Error: 2: No such file or directoryn解决办法(没有效果)不知道是什么原因,导致 $ORACLE_BASE/fast_recovery_area 少了这个⽬录,⽽导致了这个错误。