2. 补充日志主要是针对 UPDATE 命令的,是对重做日志记录中 变更矢量块的补充信息,增加了变更矢量记载的记录量。
日志挖掘器(LogMiner)、闪回事务查询、闪回事务等都需要 补充日志的支持。尤其是 日志挖掘器如果发现未启用补充日志,就拒绝服务。也就是说补充日志主要是为UPDATE 命令服务的,补充的目的是高度还原 UPDATE 命令,避免因为update 命令造成的行迁移和行移动,让LogMiner 通过分析重做日志中识别 update 命令 不是 由 insert 和 delete 完成的。
3. 所谓的free buffer就是指没有包含任何数据的buffer,所谓的pinned buffer,就是指当前正在被访问的buffer。
4. 差量备份:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式。
增量备份:是备份上级备份以来所有变化的块.
log_archive_dest_n,那么归档日志不再存放于db_recovery_file_dest中,而是存放于设置的log_archive_dest_n目录中,如果想要归档日志继续存放在
db_recovery_file_dest中,可以通过如下命令alter system set log_archive_dest_2='location=USE_DB_RECOVERY_FILE_DEST';log_archive_dest只能与
log_archive_duplex_dest共存,他们作用一样;还有一点就是,如果我们设置的log_archive_dest_n不正确,那么ORACLE会在我们设置的上一级目录归档,比如
说我们设置log_archive_dest_1='location=C:/ARCHIVE1',如果操作系统中没有ARCHIVE1这个目录,那么ORACLE会在C盘归档,这个没做测试,感兴趣的可以做一做。
6. crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。 备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired
,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上);crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上
,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),
crosscheck将把状态重新从Expired标记回Available。;crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在
于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为
availabel,要删除丢弃备份delete obsolete。
7.direct path load是否生成redo data取决于数据库是否处于归档模式,如果数据库处于归档模式,则会生成redo data,否则就不生成。direct path load生
成不生成redo data和表本身是否logging无关。
8. 不能对date类型求平均数
9. 启用约束:
enable( validate) :启用约束,创建索引,对已有及新加入的数据执行约束,validate关键字可省略。
enable novalidate :启用约束,创建索引,仅对新加入的数据强制执行约束,而不管表中的现有数据。
禁用约束:
disable( novalidate):关闭约束,删除索引,可以对约束列的数据进行修改等操作,novalidate关键字可省略。
disable validate :关闭约束,删除索引,不能对表进行 插入/更新/删除等操作。
9. 启动实例过程包括执行以下任务:按以下顺序搜索$ORACLE_HOME/dbs中具有特定名称的文件:搜索spfile<SID>.ora; 如果未找到spfile<SID>.ora,则搜索
spfile.ora; 如果未找到spfile.ora,则搜索init<SID>.ora。
10. V$session是v_$session的public的同义词,如果要赋予某个用户v$session的查询权限,需要先赋予v_$session的查询权限
11. 启用数据字典保护使用 O7_DICTIONARY_ACCESSIBILTY参数设置为false,则阻止普通用户访问数据字典;动态性能视图(不包括动态字典视图)以基于数据库服
务器内部的内存结构构建的虚拟表为基础;V$FIXED_TABLE只能查询动能性能视图所有的名称。
12. You can set the PRIVATE_SGA resource limit to restrict the memory used by each client session from the SGA.
13. 静态服务注册:监听程序所在的端口不是默认的1521 端口,又不希望将实例配置为使用非默认端口进行注册;在数据库未open状态中,就可以远程连接到数
据库,对数据库进行操作。
14. expiry_date date CHECK (expiry_date > SYSDATE), 系统时间是变化的,不能作为约束
15. INSERT INTO (SELECT * FROM employees WHERE department_id IN (20,50) WITH CHECK OPTION)
VALUES (emp_id_seq.NEXTVAL, '&ename', '&jobid', 2000, NULL, &did);注意WITH CHECK OPTION约束。
16. 私有同义词只被创建它的用户所拥有,只能由该用户以及被授权的其他用户使用。
17. with admin option 和with grant option 的区别
给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户
或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create
session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from。而with grant
option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传
播而失效,如:grant select on 表名 to A with grant option;,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收
回B的SELECT ON TABLE 权限。
18. The VALUES clause cannot be used in an INSERT with a subquery.即insert into后面的如果有子句,则不用values.
19. Long列:在使用子查询创建表时不复制LONG列;不能在GROUP BY或ORDER BY子句中包括LONG列;每个表只能使用一个LONG列;不能对LONG列定义约束条件。
20. 日期与字符串做表达式计算,隐式将日期转换为字符串,而字符串之间不能相减
21. For update of 实际列名(可以加of,也可以省略of,如果加上of就是锁定指定的表,而列并不重要,只要是该表
中的实际列名,不可以使用列别名,如果不加of,则锁定满足条件的所有行)
22. 单行函数可以嵌套任意层,但分组函数最多可以嵌套两层
;HAVING子句后面不能有好几个组函数嵌套,只能使用一
个组函数;分组函数不能在where条件句中。
23. 在Group By子句中,必须采用表达式的全称,而不能够采用其别名
24. to_date不能用于格式化date类型数据,to_number不能用于格式化number类型数据
25. 如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将会返回一个错误。
列用于自然连接不能有限定符,如:SELECT p.prod_id,prod_name,prod_list_price,
quantity_sold,cust_last_name FROM products p NATURAL JOIN sales s NATURAL JOIN customers c
WHERE prod_id =148; 该select语句中的p要去掉 。
26. Resource plans directives:将每个计划配置分配到相应的资源组;
27. asm_diskstring设置存放asm磁盘的路径,如果为null则访问所有:ASM_DISKSTRING specifies an operating system-dependent value used by Automatic Storage Management to limit the set of disks considered for discovery. When a new disk is added to a disk group, each Automatic Storage Management instance that has the disk group mounted must be able to discover the new disk using the value of ASM_DISKSTRING.
28. delete expired删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了的信息,删除的只是RMAN资料库中的记录;delete obsolete则删除旧于备份保留策略定义的备份数据同时也更新RMAN资料库以及控制文件
29. DECODE(expr,search1,result1[,search2,result2……,default]):比较expr与
search,如果等于search1则返回result1,如果等于search2则返回result2,依次类推
,如果都不等于,如果有default则返回default,否则返回NULL.
ORACLE在比较之前,会自动把expr和每一个search隐式转换成第一个search(search1
)的数据类型。自动把返回值转换成第一个result(result1)的数据类型。如果第一
个result的数据类型为CHAR或者值是null,则Oracle转换返回值为VARCHAR2.
30.日期与字符串做表达式计算,隐式将日期转换为字符串,而字符串之间不能相减.
31.trim函数的from前面只能是一个字符,不能两个.错:select trim('as'from name)
from user;对:select trim('s'from name) from user;
32.BETWEEN 'A' AND 'C' 包含A开头到C,不包含C开头以后的.
33.WHERE子句不能跟别名.
34. NEXTVAL不能用作列默认值,CREATE TABLE ord_items (ord_no NUMBER(4)DEFAULT ord_seq.NEXTVAL NOT NULL)为错;BETWEEN可以用在约束中,SYSDATE不能用在CHECK约束中,但其可以为列的默认值。
35. 在使用子查询创建表时不复制LONG列,不能在GROUP BY或ORDER BY子句中包括LONG列, 每个表只能使用一个LONG列,不能对LONG列定义约束条件。
36. 在相同的schema里,表和view的名字不能相同,在同一个数据库里,在不同的schema里,可以有相同的名称。
37. DISTINCT不能放在select在第二列,故 select empno,distinct job from emp;报错。
38.镜像副本是数据文件或归档日志文件等的完整拷贝,未经过任何压缩等处理,不能备份到磁带,也不支持增量备份.备份集中空闲的数据块将不会被备份,因此备份集可以支持压缩。备份集支持增量备份,可以备份到磁盘或磁带.
39.TRUNC可用于数字和日期
40.SQL Plan Management(SPM),在SPM的帮助下优化器自动管理执行计划并保证只有已知或已确认的执行计划才被采用。当一个新的计划出现时,Oracle将不会采用它,直到确认其与当前的执行计划有着相当的,或更好的性能。
SQL Plan Management(SPM)保证数据库运行时性能绝不因为执行计划的改变而大幅下降。为了确保这一点,仅仅那些已被接受的(accepted or trusted)的执行计划将被采用;任何计划的进化都将被追踪并仅在其被评价为无损于性能或有益于性能后被采纳。
41. 相关子查询,其先查询外部的表,而后查询内部的表,select OrderId From Orders where EmployeeId=(select EmployeeId From employees where lastName like N'Davolio')
42.insert into (<select clause> WITH CHECKOPTION) values (...)
这样的语法看起来有点特点,其实insert是插入到查询里的这张表里,只不过如果不满足子查询里的where条件的话,就不允许插入。如果插入的列有不在子查询作为检查的where条件里,那么也会不允许插入。如果不加WITH CHECK OPTION则在插入时不会检查。