043总结

1、DBVERIFY:是一种外部命令行实用程序,可以对脱机或联机的数据库执行物理数据结构
   完整性检查。可以对备份文件与联机文件(或文件片段)运行此实用程序。只能检查数据文件;不能检查重做日志文件
   ANALYZE:使用 ANALYZE命令可以验证表或表分区的结构,以及索引或索引分区的结构。要分析的
   对象必须位于本地计算机,并且必须是在您自己的方案中,或者必须拥有ANALYZE ANY
   系统权限。CASCADE 选项可以验证对象,包括该对象的所有相关对象。不将块标记为软损坏;只报告软损坏情况
   RMAN CROSSCHECK:当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。
   所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。
   根据题意验证分区表的block,验证行是否属于正确的分区,所以要选ANALYZE
2、当出现空间不足等相关的错误时,Oracle可以不是马上返回错误信息,并回滚当前的操作,
   而是将操作挂起,直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
   C、如果在60s内没有解决问题,挂起状态将报错。按理说A选项也应该是对的,就是说挂起状态会保留至少60s,不知道是不是至少出的错
3、在ASM实例添加和删除磁盘,在没有完之前数据库会很慢,用什么方法可以在不影响数据库速度的情况下添加或删除磁盘
   Striping:条带化
   条带化是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中不同磁盘上的方法。
   此技术非常有用,它比单个磁盘所能提供的读写速度要快的多,当数据从第一个磁盘上传输完后,第二个磁盘就能确定下一段数据。
   数据条带化正在一些现代数据库和某些RAID硬件设备中得到广泛应用。
  
   ASM_POWER_LIMIT:该参数控制重新平衡操作的速度。值的范围在1 到 11 之间,
   11 表示速度最快。如果省略,该值将默认为 1。从属进程的数量可以从手动重新平
   衡命令 (POWER) 中指定的并行级别派生,或者通过 ASM_POWER_LIMIT 参数派生。
  
   重新平衡不会妨碍任何数据库操作。重新平衡进程主要会对系统上的 I/O 负载产生
   影响。重新平衡的强度越高,它加在系统上的 I/O 负载也就越大。这样,可供数据库I/O 使用的 I/O 带宽就越少。
  
   如果 ASM 环境是使用命令行而不是通过EM 创建的,则必须先创建磁盘组然后才能装载。
4、SGA_TARGET = 10GB
   SGA_MAX_SIZE = 14GB
   STREAMS_POOL_SIZE = 1GB
   SHARED_POOL_SIZE = 3GB
   SGA_TARGET表明sga初始化的大小10G,SGA_MAX_SIZE表明当SGA的各个组件不够用时,SGA最多能扩展到14G,下面两个说明这两个组件
   会被分配就这么大,剩下的6G空间将被分配到其它组件。
   但是,如果如果SGA不够用 扩展到14G  SHARED_POOL_SIZE和 STREAMS_POOL_SIZE会增加吗?
   按照题意,是不能够增加的,但是SHARED_POOL_SIZE可以
   流池:由 Oracle Streams 使用
5、DBMS_RESOURCE_MANAGER_PRIVS 程序包中包含将资源使用者组分配至用户的过程。
   授予用户切换权限后,用户可以切换到其它使用者组。
6、nls_timestamp_tz_format NLS 与 NLS_TIME_TZ_FORMAT 相似,
   其中的一对值指定 TIMESTAMP 数据类型的默认值,该类型除存储 YEAR、MONTH 和 DAY 日期值,HOUR、MINUTE 和 SECOND 时间值,
   还存储 TIMEZONE_HOUR 和 TIMEZONE_MINUTE。 语法: TIMESTAMP ';1997- 01- 31 09:26:50+ 02:00'; (将值存储为 13 个字节)。
7、在归档模式下无论数据库是打开还是关闭都可以使用rman命令全库备份,如果是非归档模式下,那么只能在数据库关闭的时候使用rman进行全库备份
8、你的临时数据文件丢失了(属于临时表空间),这时不用去闪回或者回复,直接删除原来的旧有临时表空间,新建一个新的就行了。
9、catalog模式是备份日志模式,nocatalog是非备份日志模式最直观的就是,备份的时候也备份了相应的日志。
   备份集是一个次备份产生的文件 包括备份的数据文件 日志文件 控制文件等 两个备份集是应为备份完数据文件等后,
   需要备份备份后的日志信息,用于数据还原用的
10、关于resetlogs其实意思就是是否使用原有的redolog,就目前观察来看凡是用户管理的不完全恢复都要用到resetlogs,
    如果使用了resetlogs那么数据库会,清空原有重做日志的所有内容,并将日志序列号复位为一。
    (1)在线日志序列号重置为1;(2)在线日志清空,归档日志不可用。
    如果你再想找到resetlogs之前的数据状态,那是不可能的。因为你怎么可能穿越时空回到自己的前世去找数据呢。
11、purge从recycle里面删除drop掉的表
    在你的recycle里面有许多叫DEPT2的表,而在你的方案中并无该表,使用了purge table DEPT2这时会删除再recycle中scn最老的那个DEPT2
    (如果在方案中存在DEPTE2这个表,执行purge table DEPT2是否会直接drop该表并且不会放入到recycle中)
12、Flashback table 语句同时提供了一个rename to的子句,如果要恢复的表在当前的schema中已经
    存在同名的表,建议你在恢复时通过rename to子句为待恢复的表指定一个新的表名,不然数据库会报ORA-38312
    Flashback table DEPT2 to before drop rename to dept
13、关于Flashback table
    a、Recycle bin只放置非系统表,同时也是本地管理的表空间
    b、基于undo的表恢复,被恢复的表必须启用row  movement,而从recycle bin 中恢复应该不需要
14、使用SCN闪回表 基于undo的表恢复,被恢复的表必须启用row  movement
15、Flashback table后发现数据不对,提出要求一是不影响其它数据二是要快,那么再闪回一次就行了
16、a、Flashback table肯定会被写到alert中
    b、使用scn闪回,肯定是使用的undo里面的数据,
    c、如果一个表被删除后是否还是可以使用闪回表呢(需要验证)
    d、在一个transaction中,闪回将被执行
    e、闪回表后,同时会恢复在其上的索引
17、同上
18、哪两种sql语句可以使用闪回表
    a、update
    b、insert
    这应该证明drop表或者truncate表是无法使用闪回的,同时改变表的结构也是不行的
19、a.flashback versions query
    flashback versions query 能够得到某个时间段内,某些数据行的所有不同版本。
    这里的版本以事务为单位,事务中的每次数据变化就是一个版本
    flashback transaction query
    flashback transaction query 其实就是查询历史的事务信息,通过查询,我们可以得到过去某个事务操作信息,
    包括改变的数据行rowid,事务开始和结束时间,事务对应的loggon user,以及用来撤销某个数据行改变的undo sql等。
20、你使用flashback versions query来查看表的变化,发现前两次的变化没有显现出来,因为flashback versions query只能
    显示到表的结构改变以后的变化。就是当表的结构变化以前的数据改变都无法显示出来。
21、在哪种情况下可以使用flashback versions query
     a、只能是commited以后的数据
     b、只能是dml语句,ddl不行,ddl以后,前面的dml也查询不到
     c、没必要非要启用row  movement
22、同19
23、SELECT operation, undo_sql, table_name FROM flashback_transaction_query?
    该语句会查询到正在活动的和committed的undo数据
24、同19
25、DBVERIFY:是一种外部命令行实用程序,可以对脱机或联机的数据库执行物理数据结构
    完整性检查。可以对备份文件与联机文件(或文件片段)运行此实用程序。只能检查数据文件;不能检查重做日志文件
    主要用于物理损坏检查,并且不能修复坏块。
    DBVERIFY 不能检测诸如 INDEX与 TABLE不匹配之类的问题,此类问题可通过ANALYZE TABLE .. VALIDATE STRUCTURE CASCADE 命令进行检测。
    DBVERIFY 只单独检查数据块;不考虑数据块是否属于现有对象。
26、ANALYZE:(逻辑上)使用 ANALYZE命令可以验证表或表分区的结构,以及索引或索引分区的结构。要分析的
    对象必须位于本地计算机,并且必须是在您自己的方案中,或者必须拥有ANALYZE ANY
    系统权限。CASCADE 选项可以验证对象,包括该对象的所有相关对象。不将块标记为软损坏;只报告软损坏情况
27、如果性能开销可以接受,则应将 DB_BLOCK_CHECKING 设置为 FULL。默认值为
    FALSE,此值等同于以前版本中的 OFF。即使关闭了此选项,也始终对SYSTEM 表空间
    执行块检查。
    a、OFF:在除 SYSTEM之外的任何表空间中都不执行块检查。
    b、LOW:在内存中块的内容发生更改之后(例如,在UPDATE或 INSERT语句之后以及在磁盘上读取时),执行基本的块头检查。
    c、MEDIUM:执行所有 LOW 检查,并对所有不是按索引组织的表块执行块检查。
    d、FULL:执行所有 LOW 和 MEDIUM检查,以及对索引块的检查。
    就是不管怎么样都会对SYSTEM执行块检查
28、DB_BLOCK_CHECKING=ture这个不好理解,因为书上说,改为TRUE之后会有4种状态,,Oracle 数据库将对所有数据块执行块检查。
    Oracle 数据库通过读取块中的数据来检查块,以确保此数据块的自我一致性。
29、数据库在归档模式下,每个星期天进行一次全备份,星期一早晨发现数据块损坏,要求MTTR时间最少,要求data file在线,
    所以最好的方法就是RMAN BLOCKRECOVER
30、数据库必须在mounted or open状态下才可以使用RMAN BLOCKRECOVER
  RMAN BLOCKRECOVER始终执行完全恢复。使用BLOCKRECOVER命令时,不能执行时间点恢复 
    point-in-time recovery=TSPITR
    通过执行TSPITR可将一个或多个表空间快速恢复到以前某个时间点。并不影响数据库中其他表空间或对象的状态。
   
31、V$DATABASE_BLOCK_CORRUPTION 视图显示当前损坏的数据库块的列表。
  通过使用 CORRUPTION LIST 子句,可以恢复 V$DATABASE_BLOCK_CORRUPTION 中列出的块。
  遇到损坏的块时,就会在备份操作期间填写此视图。
  如果备份遇到的损坏块数量超过可接受的数量,则根本不会填写此视图。
  此时应运行 BACKUP…VALIDATE 命令,以将所有损坏块的记录完整地填写到此视图中。
  BACKUP VALIDATE DATABASE
  BLOCKRECOVER CORRUPTION LIST RESTORE UNTIL TIME 'sysdate – 10';
  因为损坏块数量超过可接受的数量,所以要使用BACKUP VALIDATE DATABASE这个命令备份,在备份的同时会在备份操作期间填写V$DATABASE_BLOCK_CORRUPTION
  然后再使用CORRUPTION LIST 子句,可以恢复 V$DATABASE_BLOCK_CORRUPTION 中列出的块。
32、使用RMAN Block Media Recovery (BMR)的好处
    a、减少MTTR的时间
    b、由于正在恢复的数据文件继续保持联机状态,所以可以提高数据在介质恢复期间的可用性。
33、你发现你的数据高速缓存区(Database Buffer Cache)不够用了,可以使用Memory Advisor来确定其大小
    自动数据库诊断监视器 (ADDM):执行自上而下的实例分析,确定问题和潜在的原因,并提供修复问题的建议案。ADDM 可潜在地调用其他指导。
    SGA 指导(Memory Advisor):根据系统全局区(SGA) 中各个组件的访问模式,负责优化和建议 SGA 的大小。
34、你怀疑你的一个表中有碎片(fragmented),你可以使用段指导(Segment Advisor)来获取信息
    段指导:监视对象空间问题并分析增长趋势。
35、你发现你的数据仓库中的执行报告时间非常慢,你怀疑是缺少相应的索引,可以使用SQL Access Advisor(SQL 访问指导)
    SQL 访问指导:处理方案问题并确定最佳数据访问路径(如索引和实体化视图) 。
    实体化视图=物化试图
    物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。
    物化视图存储基于远程表的数据,也可以称为快照。
36、SQL 优化指导(SQL Tuning Advisor):提供优化SQL 语句的建议
    可以使用top sql、snapshots(AWR)、SQL Tuning sets可供SQL Tuning Advisor来分析
37、你发现一共用三个redo log 并且每个redo log 有两个member,所有都在一个磁盘上造成了等待现象,所以要把redo log分别放到不同的磁盘上
    同时还有一个把数据放到一个磁盘的不同位置,也可以提高读写速度。
    根据逻辑卷在硬盘上的位置不同,可以将硬盘的截面分为5个同心的区域:
    外边缘(Outer-Edge)、外中间(Outer-Mirror)、中央(Center)、内中间(Inner-Mirror)、内边缘(Inner-Edge)
    其中中央最快、内中间内边缘其次、外面的最慢
38、你的数据库在归档模式下,同时你发现数据库在日志转换的时候会很慢,日志文件和归档文件都在同一个磁盘中。
    当日志切换以后,前一个日志会被归档,如果该日志比较大,归档很慢,当日志再次切回来时由于该日志归档没有完成,数据库会hang住
    这时应该首先增加redo log的数量,其次最好把redo log和归档日志放在不同的磁盘上,可以减少I/O
39、当发生日志切换时会触发哪些进程
    首先日志切换并不一定会触发完全CKPT进程,如果不一定触发完全CKPT进程那么也就不一定触发DBWn进程
    一定会触发归档的后台进程
    发生日志切换时应该会触发增量CKPT,而不会触发完全CKPT(这道题有问题)
40、
41、不懂
42、触发器是存储在数据库中的 PL/SQL 代码对象,它们会在某些事件发生时自动运行或“触
    发”。Oracle 数据库允许许多操作充当触发事件,包括插入到表中、用户登录数据库以及
    尝试删除表或更改审计设置等操作。
43、当你更改了警告和严重的门限后(往小改,已经达到了门限),该更改会立即生效,但是数据库不会立即产生告警。
44、自动工作量资料档案库 (AWR)
     a、AWR 是为 Oracle Database 10g组件提供服务的基础结构,通过这个基础结构可收集、维护和利用统计信息,
    以便检测问题和进行自优化。可将这个基础结构视为包含数据库统计信息、度量等内容的数据仓库。
    b、默认情况下,数据库每隔 60 分钟从SGA 中自动捕获一次统计信息,然后将其以快照形式存储在 AWR 中。
45、当你设置了警告和严重的门限后,数据库到达了该门限,却并没有发出警告,是因为STATISTICS_LEVEL=BASIC
    STATISTICS_LEVEL 参数控制数据库中所有主要统计信息的收集或指导,并设置数据库的统计信息收集级别。
    此参数的值有 BASIC、TYPICAL和 ALL。
    a、BASIC:AWR 统计信息和度量的计算功能处于关闭状态
    b、TYPICAL:只收集某些统计信息。这些统计信息是监视 Oracle 数据库行为通常所需要的信息。
    这种自动采集统计信息级别可减少由于统计信息过期或无效而导致不正确执行 SQL 语句的可能性。
    c、捕获所有可能的统计信息。除非在需要额外SQL 诊断信息的某些极少数情况下,否则不应使用这种捕获级别。
46、
47、
48、
49、可以将索引和表数据一起存储在一个称为“索引组织的表”(Index-Organized Table, IOT)的表中。
    使用IOT可以显著地减少磁盘空间的使用,因为不需要存储索引的列两次(一次存在表中,一次存在索引中)。
    相反,只需将它们和其他任何非索引的列存储在IOT中一次。
    不过,按索引组织的表的主键约束条件不能被删除、延迟或禁用。
   
    按索引组织的表非常适合OLTP 应用程序,这类应用程序要求基于主键实现快速访问和高可用性。
50、Bitmap indexes on index-organized tables are supported,
    provided the index-organized table is created with a mapping table.
    This is done by specifying the MAPPING TABLE clause in the CREATE TABLE statement that you use to create the index-organized table,
    or in an ALTER TABLE statement to add the mapping table later.
    你创建了一个IOT表,想在上面的其中一列建立位图索引,你必须建立一个mapping  table
51、需要使用索引簇的表
    a、数据不经常变化,大部分是以select为主
    b、经常需要在相关表之间执行连接查询
    需要使用散列(HASI)簇的表
    a、在等值查询中引用散列簇,即查询多为=
    b、表的数据时静态的,变化不频繁
52、已排序的散列簇:当 Oracle 数据库在按堆组织的表中存储数据时,行不是按用户控制的顺序进行存储,而是根据存储试探式方法来决定行的放置位置。
   
    某电信公司需要存储固定数量的主叫电话号码通过电信交换机拨出的呼叫记录。
    每个主叫电话号码都可以有无数个电话呼叫。呼叫按进行的顺序存储,然后在为每个主
    叫电话号码生成帐单时,按“先进先出”的顺序进行处理。每个呼叫都通过一个时间戳
    号来识别。
53、你建立了一个IOT表,为了加快querying的速度,你又建立了一个mapping table和一个位图索引,这时你发现因为mapping table碎片
     导致查询变慢,这时你需要重新建立mapping table。(请问这个位图索引是建在mapping table上还是IOT表上)
54、heap table就是普通表
    在OLTP系统中,许多用户频繁修改数据,包括主键值,一些用户还需要关联几个表产生数据
    那么首先IOT无法使用,因为主键值也频繁修改。
    其次簇表也无法使用,因为频繁修改。
55、
56、
57、哪种情况下需要你需要重建索引
    a、当你需要改变存储选项
    b、当你需要把索引移动到其它的表空间
58、如果 LOG_ARCHIVE_DEST 设置为不完整的 ASM 文件名(例如+dGroupA),则将忽略LOG_ARCHIVE_FORMAT。
    如果 LOG_ARCHIVE_DEST 设置为 ASM 目录(例如,+dGroupA/myarchlogdir/),则将使用 LOG_ARCHIVE_FORMAT,并且文件是非OMF 文件。
    Oracle 数据库会自动为归档日志创建唯一的文件名。
59、ASM实例
    要使用 ASM,在启动数据库实例之前,必须启动一个名为 ASM 实例的特殊实例。
    ASM 实例不会装载数据库,而是管理使 ASM 文件可用于普通数据库实例所必需的那些元数据。
    ASM 实例和数据库实例都能访问一些公共的磁盘集,这些公共磁盘集称为磁盘组。
    数据库实例直接访问 ASM 文件的内容,它们与ASM 实例通信的目的只是为了获取这些文件的布局信息。
   
    ASM指的是一个在物理卷(或者磁盘分区)上特别为Oracle数据文件而创建的"专用"文件系统。
    该文件系统由Oracle内核保存并维护,Oracle知道数据所处的位置,并自动管理这些位置,
    进而获得适用于数据库的最高性能和最大可用性
60、ASM_DISKSTRING:该参数是一个与操作系统相关的值,由ASM 用来限制搜索中涉及的磁盘集。
61、ALTER DISKGROUP tdgroupA ADD ALIAS '+tdgroupA/data/datafile.dbf' FOR '+tdgroupA.231.45678'
    该命令创建了一个同义词datafile.dbf并放在+tdgroupA/data/目录下,但不影响原来的的+tdgroupA.231.45678文件
62、DB_CREATE_ONLINE_LOG_DEST_1 = '+dg1'
    DB_CREATE_ONLINE_LOG_DEST_2 = '+dg2'
    当一个新的日志组加入了以后,会在每个磁盘组中有个成员。
    一般一个日志组默认有两个member互为镜像。
    那么这个意思是oracle会在两个磁盘组之间互为镜像。要设置镜像首先得创建失败组,
    如果不明确将一个磁盘指定到一个失效组,那么默认磁盘组的每一个磁盘都属于只包含自身的一个失败组。
63、CREATE TABLESPACE user_tbsp DATAFILE '+dgroup3(user_temp)/user_files/user_tbsp' SIZE 200M
    该命令将创建一个表空间包括一个数据文件有同义词,而且他的特性由用户自己定义。

64、ALTER DISKGROUP dgroupA ADD DISK '/devices/A*';
    将A4 添加到 DGROUPA磁盘组。由于其它磁盘已经是 DGROUPA磁盘组的成
    员,因此即使它们与搜索字符串匹配,第二个语句仍将忽略这些磁盘。如图所示,向磁盘
    组添加磁盘时,ASM 实例将确保该磁盘是可寻址的并且可用,然后,才会对该磁盘进行
    格式化并使其重新平衡。由于需要将每个文件的分配单元移到新磁盘上,因此重新平衡过程非常耗时。
65、一个磁盘已经加入到ASM组里,你又把他加一遍就会报错,这里使用的是明细命令。
66、删除磁盘组的时候,如果磁盘组不为空,即期中还有磁盘,那么之间删除磁盘组会报错。
67、ALTER DISKGROUP dgroupB REBALANCE POWER 5;
    此命令通常不是必需的,因为在添加、删除磁盘或调整磁盘大小时会自动执行此操作。
    不过,如果希望使用 POWER 子句来覆盖初始化参数 ASM_POWER_LIMIT 定义的默认速
    度,则该命令非常有用。通过在命令中重新输入新的级别,可以更改正在进行的重新平
    衡操作的强度。如果强度级别为 0,则重新平衡操作将中断,直到重新隐式或显式调用该命令。
68、MIRROR FINE是正常冗余:支持双镜像
69、你想新增加一个磁盘组,只需要新建,mount上就行,不会影响原来的文件,也不回影响数据库
70、将数据库移植到 ASM 存储区
    由于 ASM 文件无法通过正常的操作系统界面访问,因此 RMAN 是复制 ASM 文件的唯一途径。
    虽然由于表空间的历史原因,表空间中的文件既可以是ASM 文件,也可以是非 ASM 文件,
    但是 RMAN 命令会将非ASM 文件移到 ASM 磁盘组中。通过以下过程,可以将整个数据库移到ASM 磁盘组中:(假定您使用的是服务器参数文件。)
    1.   使用V$CONTROLFILE 和V$LOGFILE,获取当前控制文件和联机重做日志的文件名。
    2.   像平常一样关闭数据库。按如下所述,修改数据库的服务器参数文件:
         - 将必要的 OMF 目标参数设置为所需的ASM 磁盘组。
         - 删除 CONTROL_FILES 参数。
    3.   编辑和运行RMAN 命令文件,这将备份数据库、将当前数据文件移到备份中并重命名联机重做日志。
         使用BACKUP AS COPY命令只能移动表空间或数据文件。
    4. 删除旧的数据库文件
71、同上
72、使用rman命令来移植asm数据库
73、你配置了自动Shared Memory Management,那么Java pool,Shared pool ,large pool ,database buffer,STREAMS_POOL会自动控制,
    但是如果指定STREAMS_POOL_SIZE规定以后就不会增大了,log buffer也不会
74、STATISTICS_LEVEL
    自动管理共享内存功能要求将STATISTICS_LEVEL 设置为 TYPICAL 或 ALL。
    PGA_AGGREGATE_TARGET
    在自动 PGA 内存管理模式下运行时,所有会话的工作区大小的调整都是自动的,
    在该模式下运行的所有会话都会忽略*_AREA_SIZE参数(例如 SORT_AREA_SIZE)。
    在任何给定时间,可用于实例中各活动工作区的 PGA 内存总量自动从
    PGA_AGGREGATE_TARGET 初始化参数派生。此内存量设置为
    PGA_AGGREGATE_TARGET 值减去系统其它组件分配的 PGA 内存量(例如,会话分配的
    PGA 内存)。由此得到的PGA 内存随后按照各活动工作区的特定内存需求分配给相应的工作区。
75、标准块大小可以通过设置初始化参数DB_BLOCK_SIZE 来指定。其有效值介于 2K 和 32K 之间,默认值为 8K。
    DB_nK_CACHE_SIZE 参数不能用于调整标准块大小的高速缓存的大小。如果DB_BLOCK_SIZE 的值为nK,则设置 DB_nK_CACHE_SIZE是非法的。
    标准块大小的高速缓存的大小始终由DB_CACHE_SIZE 的值确定。
    标准块大小用于 SYSTEM表空间。不同的表空间之间可以使用不同的块大小。
76、由于从大型池为 Oracle 共享服务器分配会话内存,因此共享池中由于频繁分配和取消分配大对象而产生的碎片也就很少。
    将大对象从共享池中分离出来,可增加共享池内存的使用效率,这意味着,它可以将更多内存用于处理新的请求,
    以及在需要时用于保留现有数据。
    大型池必须显式配置。大型池的内存不是来自共享池,而是直接来自 SGA,
    这就增大了Oracle 服务器在实例启动时需要的共享内存量。
    大型池
    用于在内存中为以下各项存储数据:
    – UGA
    – 备份和还原操作
    – 并行查询消息传送
77、使用 SGA_TARGET初始化参数可手动配置自动管理共享内存功能。
    默认情况下,SGA_TARGET 设置为 0,这表示禁用自动管理共享内存功能,必须手动配置数据库内存
    Streams pool会从shared pool分配
    使用动态 SGA 基础结构,可以在不关闭实例的情况下更改数据库缓冲区高速缓存、共享池、大型池、Java 池和流池的大小
78、已经设置了DB_BLOCK_SIZE = 8k 就不能设置DB_8K_CACHE_SIZE了
    如果指定了shared pool size 那么就不能再缩小了,只能增大
79、因为oracle的存贮备份的造成shared pool负担过重,这时候应该配置大池
80、用户全局区
     UGA 包含Oracle 共享服务器的会话信息。使用共享服务器会话时,如果尚未配置大型池,则 UGA 位于共享池中
81、你的PGA设置为自动管理模式,这时oracle会自动控制PGA的大小,当然包括你面组件的大小。
    在自动 PGA 内存管理模式下运行时,所有会话的工作区大小的调整都是自动的,
    在该模式下运行的所有会话都会忽略*_AREA_SIZE参数(例如 SORT_AREA_SIZE)。
    在任何给定时间,可用于实例中各活动工作区的 PGA 内存总量自动从PGA_AGGREGATE_TARGET 初始化参数派生。
    PGA内存通常包括:
    a、专用 SQL 区
    b、游标和 SQL 区
    c、工作区
    d、会话内存
82、在自动 PGA 内存管理模式下运行时,所有会话的工作区大小的调整都是自动的,
    在该模式下运行的所有会话都会忽略*_AREA_SIZE参数(例如 SORT_AREA_SIZE)。
    在任何给定时间,可用于实例中各活动工作区的 PGA 内存总量自动从PGA_AGGREGATE_TARGET 初始化参数派生。
    此内存量设置为PGA_AGGREGATE_TARGET 值减去系统其它组件分配的 PGA 内存量(例如,会话分配的PGA 内存)。
    由此得到的PGA 内存随后按照各活动工作区的特定内存需求分配给相应的工作区。
83、同上
84、
85、
86、
87、
88、
89、
90、
91、
92、
93、
94、
95、
96、
97、
98、SCHEDULE中的job和普通的job不一样(其它不明白)
99、SCHEDULE可以定义任务执行的频率或者周期
100、一个企业,每天每个部门要产生一个report,这些report只是调用的表不一样,其它都一样。这样我们可以使用DBMS_SCHEDULER建立
     一个program接受多个变量,同时建立一个job调用该program
101、
102、LOGGING_LEVEL :指定日志记录的级别,有下列三种级别:
   DBMS_SCHEDULER.LOGGING_OFF :关闭日志记录功能;
   DBMS_SCHEDULER.LOGGING_RUNS :对该 Job Class 下所有任务的运行信息进行记录;
   DBMS_SCHEDULER.LOGGING_FULL :记录该 Job Class 下任务的所有相关信息,不仅有任务的运行情况,甚至连任务的创建、修改等也均将记入日志。
103、你想在每个月的星期二执行一个job,用该命令
     FREQ = MONTHLY ; BYDAY = 2FRI;
104、一个用户登陆到数据库执行DBMS_SCHEDULER发现权限不够
     GRANT DBA TO USER;
     GRANT MANAGER SCHEDULER TO  USER;
105、你创建了一个job class里面有两个job
     当你drop 了该job class,里面的两个job会自动被disable掉
     一些在job class等级定义的attribute会被自动应用到这两个job上
106、WINDOW 可以指定一个时间窗口,在此期间,通过与 Job Classes 的搭配组合,能够有效控制 job 执行
     配 ( 使用 ) 的资源。比如说 job 通常是在凌晨服务器负载较低时执行,那么就可以通过 WINDOW 设置在此期
     允许 jobs 使用更多的系统资源,而到了工作时间后,如果 job 仍未执行完成,为其分配另一个有限的资源
     尽可能降低 job 执行占用的资源对其它业务的影响。
107、对于一个应用,在你的回话中你想设定本地操作系统时间,而不影响其它的回话,
     a、你需要使用  alter  session修改该会话的时间
     b、在客户机上修改操作系统的参数ORA_SDTZ
108、你想给你的监听设置密码
      使用CHANGE_PASSWORD和SAVE_CONFIG命令
109、同上
110、lsnrctl status l1 查看l1的监听状态和是否设置密码保护
111、你的flash recovery area空间不够用了
     1、增加DB_RECOVERY_FILE_DEST_SIZE的大小
     2、修改保留celue
     每次 RMAN 在快速恢复区中创建文件时,Oracle 数据库都会更新磁盘上不再需要的文件的列表。
     需要将某个文件写入快速恢复区但空间不够时,Oracle 数据库会删除位于作废文件列表中的文件,并在预警日志中写入一条通知。
     由于快速恢复区中没有文件可以删除,使快速恢复区的空间紧张或空闲空间过低时,将发出警告。
112、同上
113、当你设置了DB_RECOVERY_FILE_DEST后,如果没有指明其它的恢复目录,你的备份文件都会放到该参数指定的地方
     好像如果你没有设置LOG_ARCHIVE_DEST_n的目录,同样也会把归档日志放在该目录下
114、作废备份与过期备份不同。作废备份是根据用户的保留策略认为不再需要的备份。
     过期备份是 CROSSCHECK 命令在指定介质设备上找不到的备份;虽然资料档案库指示了它的位置,但备份文件已经被删除或移动。
     CONFIGURE RETENTION POLICY TO RECOVERY WINDOWS OF 7 DAYS;
     七天以后,你七天前做的备份将被视为作废。
115、
116、如果启用了控制文件自动备份,则 RMAN 在出现以下一种情况时
     就会自动备份控制文件和当前服务器参数文件(如果该文件用来启动数据库):
     a、在RMAN 资料档案库中记录了成功的备份。
     b、数据库的结构更改影响了控制文件的内容,因此必须进行备份。
117、CONFIGURE RETENTION POLICY TO NULL
     这样配置后,就没有配置文件会被设为obsolete
118、应保持恢复窗口时间期小于或等于控制文件参数 CONTROL_FILE_RECORD_KEEP_TIME的值,以防止控制文件中较早备份的记录被覆盖。
     首先应该知道如果没有设置恢复目录(catalog),那么元数据(rman资料库)会被放在control file中,如果control file丢失你又没
     备份,那么完了,你先面rman备份的东东都不能用了
119、同上
120、PARMS="SBT_LIBRARY=…":指定由该通道使用的 MML (Media Management Library )的位置。
     你指定了通道备份到sbt(磁带库),但是却没有使用MML指定sbt的位置,数据肯定不知道磁带库在哪
121、
122、。如果启用了 CONFIGURE CONTROLFILE AUTOBACKUP,RMAN 会在BACKUP 命令后自动备份控制文件和当前服务器参数文件。
123、使用 Oracle Recovery Manager 执行备份时:
     如果目标数据库处于 NOARCHIVELOG 模式,则仅能执行“干净”表空间和数据文件
     备份(即“正常脱机”或“只读”表空间的备份)。仅当数据库先完全关闭,然后
     在MOUNT 模式下重新启动时,才能执行数据库备份。
124、密码文件、临时文件、redo log文件、tns文件都不能使用rman备份
125、rman备份压缩只能针对备份集使用,同时默认也是disable的
126、CTWR-
     执行增量备份的目的是为了只备份自上一次备份以来更改过的数据块。
     每个增量备份过程中都会读取整个数据文件,即使自上次增量备份以来该文件只有很小一部分进行了更改。
     块更改跟踪功能使用更改跟踪写进程 (CTWR) 这一后台进程将所有数据库更改的实际位置
     记录到名为“更改跟踪文件”的新类型的文件中。
     启用更改跟踪后,第一个级别为 0 的增量备份仍须扫描整个数据文件,因为更改跟踪文件尚未反映块的状态。对于后续增量备份,
     RMAN 将使用更改跟踪数据来确定增量备份过程中要读取的块,无需读取整个数据文件,从而提高了性能。
127、同上
128、SQL> ALTER DATABASE ENABLE  BLOCK CHANGE TRACKING USING FILE '/mydir/rman_change_track.f' REUSE;
     打开了更改跟踪数据,这是oracle会把数据更改自动写入规定的文件。
129、SQL> ALTER DATABASE ENABLE  BLOCK CHANGE TRACKING;
     由于没有指定存放路径,那么会按照Oracle Managed Files (OMF)参数DB_CREATE_FILE_DEST指定的路径
130、要报告需要三个或更多增量备份来进行恢复的文件:
     RMAN > REPORT NEED BACKUP incremental 3 database;

     要报告三天以来尚未进行备份的系统文件:
     RMAN > REPORT NEED BACKUP days 3 tablespace system;

     要报告需要进行备份以恢复到三天前的数据状态:
     REPORT NEED BACKUP  recovery window of 3 days;

     如果不具有两个或更多个备份则需要进行备份
     REPORT NEED BACKUP redundancy 2

     这个report出来的应该都是数据文件,而不是备份集或者映像副本
131、使用 RMAN LIST命令显示有关资料档案库中记录的备份集、代理副本和映像副本的信息。使用此命令可列出:
     a、RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
     b、可用的且可以用于还原操作的数据文件备份和副本
     c、备份集和副本,其中包含指定数据文件列表或指定表空间的备份
     d、包含指定名称或范围的所有归档日志备份的备份集和副本
     e、由标记、完成时间、可恢复性或设备限制的备份集和副本
     f、指定数据库或资料档案库已知的所有数据库的原型
     e、恢复目录中的存储脚本
要使用 LIST 命令,必须连接到目标数据库。如果在 NOCATALOG 模式下连接,则必须
装载目标数据库。如果使用恢复目录连接,则必须启动目标实例,但不需要装载。
可以控制输出的组织方式(BY BACKUP 或 BY FILE)以及输出的详细程度(VERBOSE
或 SUMMARY)
132、RECOVERY WINDOW 2设置为2天,同时使用命令report obsolete
     会列出备份集或者映像副本超出两天时间过期了
133、在alert.log文件中可以查看数据库启动时的一些相关参数
134、通过使用DBMS_MONITOR.SESSION_TRACE_DISABLE来关闭用户会话的tarce
135、BACKGROUND_DUMP_DEST里存放后台进程trace file和预警文件
136、默认情况下,表空间空间占用率(达到 70% warning时发出警告,达到90%critical 时发出严重警告)
137、warning threshold是不能超过critical threshold的
138、丢失临时文件后,数据库可以正常启动,并会在alert指出无法找到temp file,我们所要做的是重建一个就可以
139、此题说明在查询后排序时,会存放到temp file中
140、在关机状态下丢失redo log group数据库是无法启动的,只能到mount状态,在control file里有日志文件位置的信息
141、日志最常见的状态有以下几种:CURRENT ,  ACTIVE , INACTIVE ,UNUSED
     a、CURRENT
     当前日志文件,正在被使用
     b、ACTIVE
     ACTIVE的日志是活动的非当前日志,该日志可能已经完成归档也可能没有,活动的
     日志文件在crash恢复时会被用到
     c、INACTIVE
     INACTIVE的日志是非活动日志,该日志在实例恢复时不再需要,但是在介质恢复时可能会
     用到。INACTIVE状态的日志也可能没有被归档。如果数据库启动在归档模式,在未完成归档
     之前,日志文件也不容许覆盖,这时候会话会处于log file switch(archiving needed)等待之中。
     d、UNUSED
     UNUSED指该日志从未被写入
    
     你可以直接drop掉inactive和unused状态下的日志组
142、如果LGWR正在访问的日志组坏掉,那么数据库会报错,instance会关掉
143、数据库在打开的状态下日志坏掉,然后数据库自动关了,那个坏掉的日志没有归档。
     只需要使用命令clear redo log group就行了,同时由于缺少了一部分archive log  需要整个数据库重新备份一下
144、一般情况下,一个日志group中有两个member,只要是其中一个损坏都没有关系,只要drop掉然后重新建一个就行了
145、在你索引表空间中的数据文件丢失,会造成你的数据库提问的响应时间,这时你可以drop掉这个索引表空间,然后重建表空间,重建索引。
     或者restore 该数据文件,然后再recover 该表空间。
146、point_in_time(不完全恢复?)你丢失了数据库中的index表空间,你不能使用point_in_time,因为在表和索引之间有关联。
     如果point_in_time是不完全恢复的话,估计不行,因为强行恢复,会丢失损失index表空间之后表所改变的数据
147、你丢失了索引,重建后可以使用data bump(数据泵),和SQL scripts
148、你注意到你的数据库中的index表空间需要恢复,你重建了索引,可以同过PARALLEL和nologging(不写日志文件,不安全)来提高恢复速度
     部分ddl语句是可以不写日志的
149、普通表空间丢失了不会影响数据库运行,如果sys表空间,丢失数据库直接就关闭了
150、你的表空间在read-only状况下丢失,你最后一次备份也在read-only,那么直接copy过去就行,因为scn没有变化
151、和上面差不多,只不过表空间是在read-write状态下丢失,那么你首先restore该表空间,然后应用archive和redo log文件恢复该表空间
152、不太明白,一个表空间是只读状态,然后丢失了控制文件,重建控制文件后,你需要重新命名只读数据文件至正确的名字。
     如果恢复了控制文件,那么可以noresetlogs方式打开数据库。表明可以使用当前redolog file 文件。
     控制文件中记录着数据文件,日志文件的具体位置。
153、只读表空间位于只读媒体上,你想要执行数据库恢复,使用原来备份的控制文件,这个控制文件记录的只读表空间还是可读写的,
     你需要在nomount状态下,恢复控制文件,接着再mount状态下将只读表空间offline然后在恢复数据库
154、丢失控制文件重建后,你打开数据库,你发现有些你的数据文件命名为MISSINGnnnnn,后面是5个0。这是因为在你的数据库里有只读表空间。
     数据库丢失空间后,手工重建如果有只读表空间,应当先把只读表空间offline。
155、
156、在使用了RESTORE CONTROLFILE后你需要做什么
     a、重新建立临时文件
     b、使用recover database后,用resetlogs打开数据库
157、当RESTORE CONTROLFILE FROM AUTOBACKUP后oracle怎样找到正确的备份
     a、通过oracle  database ID
     b、通过自动备份格式
158、怎样查看oracle的 DBID
     a、从rman会话的日志文件中
     b、从自动备份的control file文件格式中
159、使用rman基于时间的不完全恢复,只要归档日志和日志文件,想恢复到任何时刻都可以
160、由于部分归档日志丢失,可以使用rman基于取消的不完全恢复
161、日志组有限,数据库处于非归档模式,那么数据库一旦出现问题,那么只能恢复到最后一次完整备份。如果没有做备份,那你就惨了!
162、数据库在归档模式下,在什么情况下使用基于取消(cancel)的恢复模式
     a、日志组丢失,选项一里说是日志组里的member丢失,这是没有关系的,因为一个组里的member互为镜像
     b、归档日志丢失。
     如果一个处于归档模式的数据库磁盘出现问题,或数据文件丢失,那么我们可以利用完整性备份,归档日志以及日志文件做全恢复。
     如果没有完整性备份,那么只要数据库从建立初始的归档日志在,那照样可以做全恢复。
163、丢了部分没有归档的redo log,可以使用基于取消的恢复,打开数据库的时候必须要使用resetlogs
164、什么时候使用基于备份控制文件的恢复
     基于备份控制文件恢复是指使用备份控制文件将数据库恢复到备份点与失败点之间某个时刻的状态。
     a、表空间被意外删除
     b、所有控制文件全部损坏
     比如说你不小心删除了一个表空间,那么current控制文件肯定不包含被删除表空间的信息,只能使用原来的控制文件
165、不完全恢复,只能是基于整个数据库级的,revover database。不能基于表空间和数据文件。完整恢复可以。
166、对于不完全恢复,哪种备份可以被rman使用 restore 数据文件
     我认为都可以,abcf都属于rman知道备份具体路径,说明不管是备份集或者映像备份、rman备份或是用户自定义备份只要rman知道路径就可以。
     那么D选项,说是放在flash recovery area的用户自定义备份,可以使用CATALOG命令追加用户管理备份到rman资料库中。
     catalog  datafilecopy
     E选项同D
167、由于未被归档redo log file丢失,比如说230丢失,如果不执行基于取消的恢复,那么数据库只能恢复到229
     使用命令SET UNTIL SEQUENCE 230 THREAD 1
168、数据库处于归档模式,由于用户错误需要执行不完全恢复
     a、必须以resetlogs
     b、我认为应该看是什么类型的错误,如果是删除表空间的话,要使用基于备份控制文件
     如果是误删除了表,或者是提交错误数据,可以闪回,如果没有打开,可以使用基于scn 和时间的不完全恢复。我认为基于时间和SCN的恢复是一个道理。
169、表被删除,同时purge从recycle bin中,无法使用闪回来闪回表,只能基于scn的不完全恢复
     因为是不完全恢复,必须基于数据库级,所以要recover all data files还需要SCN。但是A和B应该没什么区别吧。 
170、为什么在不完全恢复后不需要执行全库备份,应该要执行啊
     当以RESETLOGS方式打开数据库之后,会更新重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1。
     当以RESETLOGS方式打开数据库之后,因为过去的备份不能直接使用,为了防止介质失败导致无法恢复,必须重新备份所有数据文件和控制文件。
171、%t:备份集时间戳;
     %d:数据库名称;
     %s:备份集的号;
     %r:独一无二,每一次数据库incarnation的编号
172、当完全丢失了控制文件,和全备份以后的归档日志文件后,是需要使用resetlogs来恢复的
     这也是为什么不完全恢复完毕后都要resetlogs,因为不完全恢后redo log里的scn和控制文件的都不合拍
173、C项是丢失了其中一个控制文件,所以没事。F项丢失日志组,没有办法全恢复。
174、这道题有意思,每个星期天执行一次全备份。因为错误你在星期二执行了不完全恢复使用了resetlogs。然后星期三又因为错误
     又执行了不完全恢复,现在最近的全备份是星期天的全备份。
     答案:restore星期天的全备份,然后执行基于时间的不完全恢复到星期三发生的错误点。
     那么这么说来,在执行了resetlogs之后是不用再执行全备份了喽,我前面170后面关于以RESETLOGS方式打开数据库之后是错误的了。这个需要验证。
175、下午6点时候发现,在系统表空间中的一个表不属于数据字典被drop掉了,你使用基于时间点的不完全恢复,为什么不能用闪回呢 ?
176、数据文件损坏,导致许多重要的表丢失,你可以先restore数据文件,然后在recovery
177、DBA不小心drop了一个schema,可以使用闪回表空间的方法恢复
178、FLashback database必须在mount下执行,同时闪回过后必须以resetlogs方式打开
179、使用FLashback Query可以查看一个或多个操作在一段时间内的做出的改变
180、RVWR
181、什么情况可以使用FLashback database
     a、归档模式
     b、数据库必须在mount状态下
     c、必须启用自动撤销管理表空间
     d、必须启用了 flashback Recovery area( 闪回区 )
182、关于FLashback logs,首先FLashback logs不会被归档,其次 FLashback logs会被存放在 flashback Recovery area  
183、修改数据库可以使用flashback,同时要FLashback logs能保存三天时间
     a、关闭数据库                   shutdown immediate
     b、启动mount状态                startup mount exclusive
     c、修改retention参数            alter system set DB_FLASHBACK_RETENTION_TARGET=4320
     d、修改数据库可以使用FLashback  alter database flashback on
     e、打开数据库                   alter database open
184、在什么情况下使用FLashback database?
     只能在truncate table之后
     看来drop tablespace不行了?为什么?难道是drop tablespace同时数据文件也不在了,那就没办法闪回控制文件
185、执行alter database flashback off后,flashback会自动被删除
186、SELECT * FROM V$FLASHBACK_DATABASE_LOG
     显示出最低的scn你可以flashback到和对应的时间
187、关于V$FLASHBACK_DATABASE_STAT
     a、这个视图包括了24小时之内flashback 数据
     b、REDO_DATA在redo 数据在interval内写入的字节的数量
188、你决定改变flashback area的位置,但你改变位置后,新的flash recovery area将被放到新的地方
     应该由DB_RECOVERY_FILE_DEST来决定flash recovery area位置
     这个DB_RECOVERY_FILE_DEST_SIZE决定其大小
189、flash recovery area的默认位置,这个应该被放在$ORACLE_BASE下
     ORACLE_HOME=$ORACLE_BASE/product/version
190、在flash recovery area有什么
     一般有备份集,映像副本,自动控制文件备份,有时候还会有归档日志
191、第一次使用该命令BACKUP RECOVERY AREA,将会备份flash recovery area里的控制文件的自东备份和备份集的增量备份

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23493401/viewspace-678659/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23493401/viewspace-678659/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值