042总结

1、SCHEDULER
Oracle 10G的新特性 scheduler ,在10G中,oracle建议使用Scheduler替换普通的job,来管理任务的执行。
2、由于硬件损坏,数据库意外掉电,这就意味着shutdown abort,当重新启动后SMON进程会自动回复实例,uncommited的数据会自动rollback
同时, commited的数据而又未写到datafile中的会被写进datafile中。
3、在课堂练习1——1的449页有介绍 。在em中使用backup?scheduler采用的是RMAN脚本。
4、数据泵导出命令, create directory my_dir as ‘d:\’
5、什么是iSQL*Plus(一种登陆工具)不懂
6、logging clause
这个子句声明这个表空间上所有的用户对象的日志属性(缺省是logging),包括表,索引,分区,物化视图,物化视图上的索引,分区。
  FORCE LOGGING
使用这个子句指出表空间进入强制日志模式。此时,系统将记录表空间上对象的所有改变,除了临时段的改变。这个参数高于对象的nologging选项。
注意:设置这个参数数据库不行open并且出于读写模式。而且,在临时表空间和回滚表空间中不能使用这个选项。
 With the given CREATE TABLESPACE statement, the tablespace created can be changed to the 
 LOGGING mode, and using the NOLOGGING clause in the statement will save space in the redo log files.
 The tablespace created using the NOLOGGING clause can be changed to the NOLOGGING mode by using the
 ALTER TABLESPACE statement with the NOLOGGING clause. When a tablespace is created by using the NOLOGGING clause,
 the operations in the tablespace will not generate any redo data. As a result, space will be saved in the redo log files.
 The objects created using the NOLOGGING clause cannot be recovered because no redo is generated for these objects.
 Therefore, the NOLOGGING clause should be used with objects that can be easily re-created without the redo data. 
 The NOLOGGING clause is not valid for a temporary or undo tablespace. 
 D选项是说在表空间级别的logging选项没有再表、视图等等高
7、当定义主键约束时,默认情况下oracle会自动基于唯一约束建立唯一索引,并且索引名与约束名完全一致,一张表只能有一个主键约束。
   一个主键约束可以由多个列组成。
8、在这里的OS认证和口令文件认证都是针对特权用户来说的
      a、其中文件SQLNET.ORA是来选定是否支持OS认证和口令文件认证的,修改为all就是都支持修改为none只支持口令文件认证。
      b、文件remote_login_passwordfile是用来管特权用户是否可以远程登录。
      c、orapwora10g该文件应该是远程特权用户登陆时需要使用的密码文件。
9、oracle的逻辑结构
  tablespace-segment-extent-oracle block
10、PGA-独立服务进程启动时,里面包括这个进程的数据和控制信息
  在ORACLE9I中,只需要调整 PGA_AGGREGATE_TARGET。
11、使用RMAN备份数据库时,由于在共享服务器模式下,共享池已经不够用了,所以使用大池以供RAMN和共享服务使用。
12、AUDIT?DROP?ANY?TABLE?BY?scott?BY?SESSION?WHENEVER?SUCCESSFUL?
  如果用户scott成功的drop掉一个或多个表在他的会话中,一条审计信息将被在所有会话中创建。
13、FGA精细审计,精确到行列的审计就要使用精细审计。
14、FGA的审计信息,存放在FGA_LOG$中
    FGA?enables?a?SQL?predicate?to?define?when?to?audit?an?event.
    ?FGA?includes?the?SQL?statement?used?by?the?user?as?part?of?the?audit?event?entry.?
15、什么是注册?
    注册就是将数据库作为一个服务注册到监听程序。
    客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库。这个服务名可能与实例名一样,也有可能不一样。
    静态注册:
    静态注册就是实例启动时读取listener.ora文件的配置,将实例和服务注册到监听程序。无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务。
    静态注册时,listener.ora中的GLOBAL_DBNAME向外提供服务名,listener.ora中的SID_NAME提供注册的实例名。
    动态注册
    动态注册是在instance启动的时候PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服务动态注册到listener中。
16、当创建一个监听时需要提供协议、端口、服务名
17、初始化参数REMOTE_OS_AUTHENT用来控制是否允许远端操作系统验证,默认情况下,数据库只运行本地服务器上的操作系统验证。
18、tnsnames.ora在Oracle中,Oracle\Network\ADMIN\tnsnames.ora 文件很重要,它作用是: 本地命名的配置。
    本地名可以用简单的名称就可以访问到所需的数据库或服务器所需的信息。
19、当SERVICE_NAME填写不正确时,你可以tnsping通数据库实例,但是却无法连接到数据库实例,因为你填写错的SERVICE_NAME并没有注册到LISTENER当中
20、已连接的会话,当停止监听时不会中断
21、首先需要把参数LOCAL_LISTENER改为dynamically,因为动态注册PMON进程从参数文件自动注册到listener.ora中。这是我们修要在tnsname.ora中添加相关的动态注册信息。
22、查不到相关资料
23、OLTP行数据库,有大量的用户会话需要连接,这个时候使用共享服务。OLAP 数据仓库
24、statistics_level 参数是oracle9.2开始引入的一个控制系统统计参数收集的一个开关.一共有三个值:basic,typical,all.支持alter session,alter system 动态修改.如果要用statspack或者AWR收集系统性能统计数据.那么这个参数的值必须为typical或all.通常all是一个全面收集,包括 OS以及sql执行路径方面的一些统计信息,除非遇见非常严重的性能问题或在一些特殊的性能挣断方面才会用到statistics_level=all, 平常statistics_level=typeical已经足够诊断99%的性能问题了.
example: seting statistics_level
 
alter system set statistics_level=basic;
alter system set statistics_level=typical;
alter system set statistics_level=all;
or
alter session set statistics_level=basic;
alter session set statistics_level=typical;
alter session set statistics_level=all;


statistics_level=basic的情况下,oracle关闭了所有性能数据的收集,也就是如果要关闭AWR或statspack收集,只要设置alter system set statistics_level=basic;就行了;
 
statistics_level=typical的时
候,除了plan_executetion_statistics和OS Statistics不能收集外,其他的都可以收集,如要要收集这个两项,必须设置statistics_level=all;
 
如果当statistics_level=ALL,系统收集所有的统计信息.
25、AWR 快照集
快照集是一种机制,使用这种机制可标记重要时段的快照数据集。快照集是根据一对
快照定义的,这对快照用快照序列号 (snap_id) 来标识。每个快照集对应于一对且唯一
一对快照。
快照集可用用户提供的名称标识,也可用系统生成的标识符标识。通过执行
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE 过程并指定一个名称和一对快照
标识符,便可创建一个快照集。会为新建的快照集指定一个快照集标识符。在数据库生命
周期内,快照集标识符是唯一的。
快照集用于保留快照数据。因此,属于某个快照集的快照会一直保留,直到删除该快照集。
通常,会为过去某些有代表性的时段创建快照集,用于与当前系统行为进行比较。另外,
可在 Database Control 中通过使用快照集来设置基于阈值的预警。
可直接从 DBA_HIST_SNAPSHOT 或 Enterprise Manager Database Control 获取 snap_id。
26、统计信息是一些数据的集合,用于提供关于数据库及数据库对象的详细信息。查询优化程
序使用优化程序统计信息为每个 SQL 语句选择最佳执行计划。
27、当改变STATISTICS_LEVEL参数时,任务将从下一个生效
28、Automatic Database Diagnostic Monitor (ADDM) ADDM 在创建每个AWR 快照之后自动运行。每次创建快照后,
ADDM 都会分析与最后两个快照对应的时段。多数情况下,ADDM 会为检测到的问题提供建议解决方案,甚至可以量化这些建议案的
优势。ADDM分析的结果存放在AWR中。
29、Editor’s notes:Current Logons Count is system metric values of oracle. You can see this value by querying v$sysmetric.
SELECT * from v$sysmetric t WHERE t.METRIC_NAME='Current Logons Count';
当你想你的数据库自动告警在数据库会话超过100个会话的时候。
30、  DBA_OUTSTANDING_ALERTS :
 描述了oracle数据库认为是突出的警告。当向 Flash Recovery中添加或删除文件等变化都将记录在数据库的 alert 日志中,Oracle 10g 也针对该新特性提供了一个新的视 图 ,通过该视图可以得到相关的信息。
  dba_alert_history:
 代表了不在突出的有时间限制的历史告警
  threshold_alert :
 是超过备份阈值时引发的警报
  ORACLE的一些内部组件可以周期性进行监控的动作,对发现的问题产生相应的alert信息。alert信息的产生是基于一些threshold值或者特定事件。基于threshold的alert信息会自DBA_OUTSTANDING_ALERTS视图中找到,当被clear的时候,这些状态的警告会进入DBA_ALERT_HISTORY
32、在EM上的表空间空间不够用的告警信息会在你扩大表空间后,自动被清除,同时移动到alter log file
33、确定重复的 SQL --通过单击“Performance(性能)”标签页上的“Duplicate SQL(重复的 SQL)”可确定
重复的 SQL。已确定为重复的 SQL(不考虑格式或文字的差异)会列在一起。这有助于
确定可合并应用程序中的哪一个 SQL,如此可降低对库高速缓存的要求,提高执行语句
的速度。
34、当你发现sql执行慢等sql问题时,你使用top sql发现耗费时间的sql语句。这是你需要使用SQL Tuning Advisor推荐数据收集和重建sql语句。
可以使用 SQL 优化指导分析 SQL 语句,并获得性能建议案。通常,会将此指导作为ADDM 性能判断工具来运行。
35、索引问题导致表的查询变慢
36、如果选中“Limited(有限制)”选项,SQL 优化指导会根据统计信息检查、访问路径分析和 SQL 结构分析来生成建议案。
使用“Limited(限制)”选项不会生成SQL 概要文件建议(SQL Profile recommendations)。
SQL 概要文件:ATO 会验证它自身的估计值并收集辅助信息以消除估计错误。它使用辅助信息构建 SQL 概要文件并提出创建
SQL 概要文件的建议。创建 SQL 概要文件后,查询优化程序可使用这个文件生成合理优化的计划。
37、SQL 优化指导(SQL Tuning Advisor)--可以使用 SQL 优化指导分析 SQL 语句,并获得性能建议案。通常,会将此指导作为ADDM 性能判断工具来运行。
    SQL 访问指导(SQL Access Advisor)--可以使用 SQL 访问指导来优化方案并提高查询性能。这个指导要求用户确定SQL 工作量,
    即访问方案的一组 SQL 语句。可以选择不同来源的工作量,包括当前最近的 SQL 活动、SQL 资料档案库或用户定义的工作量,如开发环境的工作量。
38、SGA_TARGET=256MB代表sga里边初始化大小,当确定了SHARED_POOL_SIZE=32MB后,共享池的大小不能小于32M。
39、SGA_TARGET最大能增加到SGA_MAX_SIZE规定的大小,当增大SGA_TARGET的大小,同时会自动增加其他组件的大小。
40、当在一个transaction中时,会话不正常结束,这时PMON会自动将没有提交的数据rollback,commited的脏数据放到datafile中
41、如果将 FAST_START_MTTR_TARGET 参数显式设置为 0,则会禁用自动检查点优化。另外,
如果将 FAST_START_MTTR_TARGET 参数显式设置为大于 0 的值,则会启用重做日志指导。
42、fast_start_mttr_target
此参数是在9i中引入用来代替前面的三个参数的,它定义了数据块崩溃后所需要的实例恢复的时间,Oracle在实际上内在的解释成两个参数:fast_start_io_target和log_checkpoint_interval.如果这两个参数没有显式的指定,计算值将生效.。
fast_start_mttr_target可以设定的最大值是3600,即一个小时。它的最小值没有设限,但是并不是说可以设置一个任意小的值,这个值会受最小dirty buffer(最小为1000)的限制,同时还会受初始化时间以及文件打开时间的限制。
在设置此参数的时候要综合考虑系统的IO,容量以及CPU等信息,要在系统性能和故障恢复时间之间做好平衡。
将此参数设置成0时将禁用 fast-start checkpointing,这样能见效系统负载但同时会增加系统的恢复时间。
如果fast_start_io_target or log_checkpoint_interval被指定,他们会自动覆盖由fast_start_mttr_target参数计算出来的值。
如果将 FAST_START_MTTR_TARGET 参数显式设置为 0,则会禁用自动检查点优化。另
外,如果将 FAST_START_MTTR_TARGET 参数显式设置为大于 0 的值,则会启用重做日
志指导。
43、如果数据库失败,数据库从哪个位置开始恢复 checkpoint position to end of redo log
44、如果将 FAST_START_MTTR_TARGET 参数显式设置为 0,则会禁用自动检查点优化。另
外,如果将 FAST_START_MTTR_TARGET 参数显式设置为大于 0 的值,则会启用重做日
志指导(MTTR Advisor)。自动检查点优化(Automatic tuning of checkpoint would be disabled)
45、多元化control_file的步骤
    a、修改spfile中control_file的值
    b、shutdown数据库
    c、cp control_file命令至相应文件夹下
    d、重启实例
46、control_file失败,将导致数据库关闭
47、当数据库设置为ARCHIVELOG模式后,可以在不必关闭数据库的情况下备份(热备份)
48、归档信息可以再alter文件中查到,同时归档日志最多可以存放10个位置
49、非归档模式下,只能在关闭数据库后归档。
50、归档日志可以使用rman备份、只有使用过的数据块可以被 备份成备份集
51、RMAN-备份不是连续的-可以在数据库打开的情况下备份-恢复时需要使用restore命令,如果meida failure那么首先要restore转储备份 然后再recover命令将数据文件恢复到失败点状态
52、增量备份工作机制
    当你设置星期天执行一次0及备份,工作日执行1级备份
    A、差异备份Differential
    The backup performed on each working day contains all the blocks that have changed since the last
    level 0 or level 1 backup.
    B、累积增量备份Cumulative
    The backup performed on each working day contains all the blocks that have changed since the last
    level 0  backup.
53、0级备份是全量备份
54、rman可以在datafile 、tablespaces和整个数据库做增量备份
55、在EM中使用Schedule Backup使用的是RAMN脚本
56、The trace file has a SQL script. to re-create the control file.
57、数据库工作在非归档模式下,当修改了数据文件或者增加或者删除了表空间后,需要重新备份数据库
58、当使用该命令ALTER DATABASE BACKUP CONTROLFILE TO TRACE,后可以再USER_DUMP_DEST中找到该trace文件
59、DB_RECOVERY_FILE_DEST_SIZE指定DB_RECOVERY_FILE_DEST可以使用的大小,必须要首先清空DB_RECOVERY_FILE_DEST才能清除DB_RECOVERY_FILE_DEST_SIZE
    Flash Recovery Area
60、数据库使用spfile同时媒体失败导致控制文件丢失
  a、关闭数据库
  b、把控制文件拷贝到可以用的位置
  c、重启实例至nomount状态
  d、修改spifle值中的控制文件参数
  e、恢复数据库至失败时那个点
61、运行于非归档模式。所有控制文件丢失。数据库关闭。只有最近的一次数据库全库备份。那么数据库只能恢复到最后一次备份,尽管数据文件并未丢失
62、日志组中的成员损坏并不会影响数据库的正常使用,同时该成员将被标记为stale状态,错误信息会被写到alert日志里
63、如果在归档模式下,日志组成员损坏导致无法正常归档,数据库会处于halted状态,这时可以清楚没有归档的损坏日志文件,使用命令
  ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2
64、在归档模式下,只要归档文件存在,数据库可以恢复到任意时刻
65、临时、索引、SYSAUX表空间可以在恢复时执行open recovery
66、普通的表空间损坏不会导致数据库关闭(除了system表空间之外)
67、在非归档模式下,是不是没有recovery这么一说呢 ?只有restore?(和书上不同,书上全是recover)
68、dorp user和dorp table是可以使用flashback闪回的
69、使用flashbak table可以基于时间闪回
70、打开回收站功能,当你drop一个表后,该表会被改名同时还放在原来的表空间里
71、Flashback Query可以帮助用户解决行级别的错误。是根据undo data来闪回的,undo retention=900s
  这要看有没有retention guarantee,如果有,15分钟内不会被覆盖。如果没有打开,那得看UNTO有没有可用空间,如果没有就会被覆盖
72、在用impdp导入数据时,可以使用remap_schema参数将数据导入到不同于原来schema的schema中,其作用类似于老的imp工具中的fromuser和touser参数,impdp中将fromuser和touser参数合并成了remap_schema参数,通过如下的格式指定:
    impdp … remap_schema=old_schema_name:new_schema_name
    要注意:
      1.该参数的使用方法REMAP_SCHEMA=source_schema:target_schema
      2.即使你指定的对应SCHEMA不存在,只要导入时连接的用户有足够的权限,就会使用DUMP文件中的CREATE USER的metadata来创建一个对应的用户的。
       一个模式由某个用户拥有得对象组成,最初为空。
73、
74、难道是dataguard?
75、SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据  
    仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。
76、把一个普通的文本格式的OS文件看作是Oracle数据库的外部表,
    Oracle可以象普通表一样进行select 操作,可以建视图,可以与其他进行连接等,但不能对其进行DML操作,即该表是只读的!
    (10g里可借此导出数据至平面dmp文件)。
    External table和正规的表很相似,以下的几点需要注意:
    l 数据在数据库的外部组织,是操作系统文件。 
    l 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。    
    l 数据是只读的。(外部表相当于一个只读的虚表) 
    l 不可以在上面运行任何DML操作,不可以创建索引。  
    l 可以查询操作和连接,可以并行操作。
77、可以使用EM和ORACLE NET MANAGER是用户从远程连接到数据库实例
78、终端用户应用需要转移数据到数据库的表中,可以使用SQL*LOADER和External table
79、OFA是oracle数据库中的一个概念   
    Installation and configuration on all supported platforms complies with Optimal Flexible Architecture (OFA).
    OFA organizes database files by type and usage. Binary files, control files, xj files, and administrative files can be spread across multiple disks.
    优化结构OFA。使用这种结构进行设计会大大简化物理设计中的数据管理。
    优化自由结构OFA,简单地讲就是在数据库中可以高效自由地分布逻辑数据对象,
    因此首先要对数据库中的逻辑对象根据他们的使用方式和物理结构对数据库的影响来进行分类,这种分类包括将系统数据和用户数据分开、一般数据和索引数据分开、低活动表和高活动表分开等等。
80、orainstRoot.sh script--It creates the Inventory pointer?file.
81、ORACLE_HOME=$ORACLE_BASE/product/version
    ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。
82、影响oracle数据库字符集最重要的参数是NLS_LANG参数:
    NLS_LANG = language_territory.charset   AMERICAN_AMERICA. ZHS16GBK
    它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性,真正影响数据库字符集的其实是第三部分。
83、你安装数据库时OUI不给响应,这时应该比较installActions.log和response file查看原因
84、创建数据库的时候根据需要选择相应的模板
85、在创建数据库的时候有个选项是来创建数据库备份的
86、使用模板来创建复制数据库
87、
88、LOG_BUFFER是个静态参数,只能scope=spfile,修改完后重启数据库才能生效
89、V$PARAMETER只是显示现在起作用的参数(currently in effect parameter values)
90、数据库启动顺序,首先是nomount--读取参数文件,mount--根据参数文件打开控制文件,open=根据控制文件打开数据文件,打开数据库
  所以说在mount阶段是可以改变datafile和redo log file的名称的。
91、在mount阶段,你可以修改数据文件的名字,同时也可以把数据改为归档或者非归档模式
92、上同
93、shutdown abort是和数据库直接断电一个性质,即不做强制检查点关闭文件,当你重新打开数据库的时候,SM后台进程会自动对数据库进行恢复。
94、shutdown abort后--没有commited的数据不会rollback,Database buffers and redo buffers are not written to the disk.
95、不小心删除alert文件没有关系,数据库会自己重建
96、在alter中看到了死锁,没关系,oracle会自动处理
97、当控制文件丢失时,你可以通过动态性能视图V$controlfile来查看丢失的控制文件
98、当指定了该参数DB_CREATE_FILE_DEST='D:\oracle\product\10.2.0\oradata\oracle'后,当你再创建表空间时,数据文件会自动被创建到该文件下,同时数据文件的名字会由实例自动生成。
     这就是Oracle Managed Files (OMF)
     DB_CREATE_FILE_DEST  定义数据文件和临时文件的默认文件系统目录的位置
     DB_CREATE_ONLINE_LOG_DEST_n  定义重做日志文件和控制文件的创建位置
     DB_RECOVERY_FILE_DEST  定义 RMAN 备份位置
99、BIGFILE--BIGFILE有且只有一个数据问价
           --BIGFILE的段空间是自动管理的
100、数据库建立表空间时默认是locally managed
101、extent是本地管理,位图将用来记录空闲和占用区域
102、段空间是自动管理,就意味着段空间是有位图管理的
   本地管理的表空间:在表空间中通过位图管理区。位图中的每一位对应一个块或
     一组块。分配区或为重新利用空间而释放区后,Oracle 服务器通过更改位图值来
     显示块的新状态。
103、段空间管理:手动
     Manual(手动):此方式指定使用空闲列表来管理段中的空闲空间。空闲列表是由
     一些数据块组成的列表,插入行可使用这些数据块中的空间。由于这种管理段空间
     的方式需要为在表空间中创建的方案对象指定并优化 PCTUSED、FREELISTS 和
     FREELIST GROUPS 存储参数,因此这种方式称为“手动段空间管理”。支持此方
     式是为了实现向后兼容;建议使用 ASSM。
104、只要加了 PCTUSED就表明使用了段空间管理:手动
105、系统、sysaux、undo、temp表空间是不能被设置为只读的
106、不太懂神么意思
107、SYSAUX表空间是可以被OFFLINE,但是system、undo和temp不行
108、ASM可以基于文件做镜像,还可以在ASM盘之间提供自动负载均衡
109、数据库用户正连接数据时,这时是不能删除该用户的
110、什么权限都给了,唯独没有给用户在相应的表空间上给空间,当然建不成表
111、role可以赋予给其它的role,同时role的权限可以包括系统权限和对象权限
112、不明白啊
113、ADMIN OPTION当有这个字段时,表明可以把该权限赋予另外一个人
114、A、B、C三个用户,A用户把自己表的权限赋给了B、B又赋给了C,这时侯A用户是不能直接revoke C用户关于该表的权限。
115、一个用户执行sql语句报错ORA-02393:exceeded call limit on CPU usage这时候可以在该用户的profile 里修给recourse limits
116、同上
117、关于临时表---可以在临时表上创建视图和索引,临时表经常建立在临时表空间上,在临时表上永远不容许有DML 锁
118、你想把你EMPLOYEE上个人信息这个字段存贮在操作系统上,这时你需要把这个列指定为BFILE类型
119、用普通用户建表时,如果不指定表空间会建立到默认表空间上。
120、约束状态--约束一共有四种状态
     a、enable validate-要求新旧数据必须同时满足约束规则-在规则正在进行中时是不容许在表上进行任何DML操作的
     b、enable novalidate-已存在数据可以不满足,但是新数据必须满足
     c、disable validate-不容许在表上进行任何DML操作,对主键和唯一约束来说,会删除相应的唯一索引,但约束规则仍然有效
     d、disable novalidate-数据不满足约束规则,对主键和唯一约束来说,会删除相应的唯一索引
121、主键和外键,当在外键上加了delete cascade这个字段,删除主键的同时,外键也会删除,但是为什么A是错的

122、truncate--相应的index也会被truncate,执行truncate会产生非常少量的undo信息或者不产生,HWM(高水位标记)会恢复到第一个
   使用段,使用区、使用块,HWM这时应该是第二个块
123、B+树建立在重复值很少的列上,使用位图索引建立在重复值很多,不同值相对固定的列上。
124、位图索引---在关键列上,每一个不同值都有位图段,
                更新关键列,会锁住位图段,包含主要要被更新的段
125、每年用户一个表上的一个列,那么在这个列上的索引,行数据在索引leaf block的值会删除再被插入
126、同上
127、视图可以被创建为只读,视图本身是没有数据的,视图可以基于多表建立,在视图上可以执行DML语句
128、HR用户根据scott用户的emp表建立了一个视图,他想把该视图的select权限赋予JIM用户,他需要有emp表的with  GRANT OPTION才能这么做
129、外键,因为添加了delete cascade索引删除主键的同时会自动删除对应外键
130、MERGE---使用 MERGE命令可在一个命令中执行 UPDATE和 INSERT。可将一个源中的数据合并到
             另一个源,因而可选择插入新行和更新特定列(如果行已经存在)。
             A表往B表里插入数据,如果存在该数据那么就update,如果不存在那么就insert
131、约束  关于主键和外键,有两种方法应对删除外键时遇到的错误。一是在外键出加delete cascade 二是先删外键表中数据,再删主键表中数据
132、a、程序包:程序包是由逻辑上相关的一些过程和函数组成的集合。程序包的这一部分
     又称为说明,用于描述应用程序的接口;它声明了可供使用的类型、变量、常量、
     异常错误、游标和子程序
     b、程序包体:程序包体完整地定义了游标和子程序,因此实施了说明。程序包体包含
     实施明细和专用声明,这些内容不显示给调用方。
     c、类型主体:类型主体是由与用户定义的数据类型相关联的一些方法(过程和函数)
     组成的集合。
     d、过程:过程是用于执行特定操作的PL/SQL 块。
     e、函数:函数是使用RETURN PL/SQL 命令返回单个值的 PL/SQL 块。它是具有返回值
     的过程。
     f、触发器:触发器是当数据库中发生特定事件时执行的 PL/SQL 块。这些事件可以基于
     表,如在表中插入行时。也可以是数据库事件,如在用户登录数据库时。
    
    
     程序包是函数与过程的组合。将一些函数和过程组成一个程序包,性能和可维护性会有所提高。
133、程序包是由函数和过程组成的集合。每个程序包应由两个
     对象组成:
     程序包说明:这个对象(有时称为程序包头)的对象类型为 PACKAGE,其中只包含程序包中的过程、函数和变量的定义。
     程序包体:这个对象的对象类型为PACKAGE BODY,包含程序包说明中定义的子程序的实际代码。
     
   只有在编译了程序包说明之后才能编译程序包体。可以在没有程序包体的情况下创
     建程序包说明,但不能在没有程序包说明的情况下创建程序包体。
    
     与程序包说明是分开的。因此,可以更改并重新编译程序包体代码,此时不会将与
     程序包说明相关的其它对象标记为无效。
134、触发器
   触发器是存储在数据库中的 PL/SQL 代码对象,它们会在某些事件发生时自动运行或“触发”。
   触发器可以调用其它过程或函数。触发器的代码最好简短一些,需要较长代码的内容尽量放置到单独的程序包中。
135、Oracle从9i开始引入这个功能,当出现空间不足等相关的错误时,Oracle可以不是马上返回错误信息,并回滚当前的操作,
     而是将操作挂起,直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
    
     这个triger都是在after suspend后执行
     首先设置RESUMABLE TIMEOUT,当你建立一个非常大的索引,三天三夜后数据库空间使用了99%,因为设置了RESUMABLE TIMEOUT,所以
     oracle会挂起操作(suspend),直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
136、oracle使用行锁和表锁。
     一般情况下你更新一条数据,oracle针对正在更新的一行或多行的 EXCLUSIVE 行锁定,针对要更新的表的 ROW EXCLUSIVE 表级锁定。
     这可避免在进行更改时另一会话锁定整个表(可能会删除或截断表)。
137、SHARE:允许并发查询,但禁止更新锁定的表。需要有(并且会自动请求)SHARE锁定才能创建表的索引。
     EXCLUSIVE:允许查询锁定表,但禁止对锁定表执行任何其它活动。需要有EXCLUSIVE 锁定才能删除表。
138、你在更新一个表时,会产生哪两种锁
   a、针对正在更新的一行或多行的 EXCLUSIVE 行锁定
   b、针对要更新的表的 ROW EXCLUSIVE 表级锁定
139、死锁
   死锁是锁定冲突的特殊示例。两个或多个会话等待由对方锁定的数据时,就会发生死锁。
     因为每个会话都在等待另一个会话释放锁定,所以任何一个会话都不能完成事务处理,也不能解决冲突。
     Oracle 数据库会自动检测死锁并终止语句,同时显示错误消息。更正这种错误的适当做法
     是执行提交或回退,这样做会在一个会话中释放任何其它锁定,以便其它会话可继续完成其事务处理。
140、因为针对要更新的表的 ROW EXCLUSIVE 表级锁定,所以你可以更新该表的其它数据,但是不能删除或者截断表或者改变表的结构。
141、你建立了一个undo表空间,你希望你的oracle能自动管理,这时你需要设置UNDO_TABLESPACE的参数是你刚才建立表空间的名字,然后设置UNDO_MANAGEMENT为ANTO
142、ORA-01555: snapshot too old 解决这个问题,一、增加undo表空间大小,二、打开retention guarantee
143、UNDO_RETENTION=900s  在undo表空间里的extent不包括没有committed的数据,将会被保留15分钟(为什么不说只有committed的数据,因为除此以外应该还有其它数据,我也不知道)
144、UNDO_RETENTION=1000s undo retention is not guaranteed  Committed的undo数据会在undo表空间中保留1000s,只要undo 表空间有空闲undo表空间够用
145、回滚一个transaction和从一个失败的transaction恢复 是需要undo数据的,应该闪回操作也是需要undo数据的
146、在一个update执行后,如果没有Committed,那么会在undo 缓存中建立一个原数据的前镜像,如果这时候查询还会是原来的数据
147、在DML操作中,delete语句的undo数据是最多的,因为你在删除的时候,undo会记下所有删除的信息,而插入的话只会记住哪一条
148、再决定undo表空间的时候,需要考虑undo block的大小,每秒产生的undo数据多少,UNDO_RETENTION的参数是多少

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值