OCP笔记

以下笔记是在考OCP的时候,记录下来的。

table:

一个表只能包含一个LONG列
不能对Long类型添加约束条件(null,not null,default除外)
不能对LONG列使用group by,order by,Connect by,distinct,unique字句
数据类型varchar2必须要定义长度,char只能存储一个字符,oracle可以存储 year, month, day, hour, minute and second时间类型。
使用clob无需指定长度
创建表时,表的名称必须是合法标示符,长度为1-30字节,并且以字母开头,可以包含字母,数字,下划线,美元符号和#,此外表名称不能与所属模式中其他对象同名,也不能是oracle数据库的保留字
视图在同一个schema下不能跟表名相同,同义词可以
default 用单引号 default ‘true’
一个表只能有一个主键,一个列只能有一个唯一约束(unique,primary key)
如果为一个字段加多个约束,则各约束之间不能有逗号
当一个表有数据,任然可以添加约束。
一个表中只能有一个主键约束,多个外键约束,除了非空约束不能定义表级约束,其他约都可以,外键只需数据类型一样,无需字段名一样
当一个表被drop的时候,所依赖的事务也会立即提交,所创建的索引、触发器将会被删除。表所依赖的视图、同义词、过程、函数、包不会被删除但是不能被使用,需要重新编译。

data dictionary views and dynamic performance views
1\1) These are stored in the SYSTEM tablespace.
2\3) These are owned by the SYS user.

sequence:

NEXTVAL 值不能放在default 字句里面
sysdate不能放在check里面,可以放在default里面。
序列已经达到最大值了,因为该序列循环,没有指定最小值,所以将会从1开始。
序列不能使用在表列上如:CREATE TABLE ord_items (ord_no NUMBER(4) DEFAULT ord_seq.NEXTVAL NOT NULL)

OS_AUTHENT_PREFIX:用户前缀,比如你的前缀是OPS ,oracleOPS ORACLE
OS_ROLES:对用户的角色是通过操作系统管理还是oracle自身管理
REMOTE_OS_AUTHENT:Oracle用户通过外部验证的方式登录数据库,默认只允许本机的用户采用外部验证登录到数据库中。当设置为true时允许客户端采用外部验证的方式登录到数据库中
REMOTE_OS_ROLES:表示操作系统的角色是否对远程用户起作用,默认false
TIMED_OS_STATISTICS:指定当一个客户端进行请求或者一个请求完成后,oracle收集os系统的统计信息的时间间隔
这里其实主要考察的REMOTE_OS_AUTHENT和OS_AUTHENT_PREFIX
由于这里的REMOTE_OS_AUTHENT为false,所以其实是没有启动了,说明还是需要帐号密码的,

O7_DICTIONARY_ACCESSIBILITY:
也是和安全性有关的一个重要的初始化参数。这个参数用来控制数据字典访问行为。
默认情况下,这个参数设置为FALSE,这时拥有ANY系统权限的用户并不能访问SYS用户下的对象,这些对象也包括数据字典。

BIGFILE TABLESPACE:大表空间只能有一个数据文件。

index索引:

外键不自动创建索引,主键和唯一约束自动创建约束
执行dml操作,索引自动更新
索引可以表和clusters上面创建
索引是不能在视图上创建的
外键不自动创建索引,主键和唯一约束自动创建约束
主键自动创建索引,所以不能为主键创建索引,一个列只能有一个索引(复合索引除外)。
表索引可以隐藏(making the index invisible).

索引是数据库对象,可以通过创建索引来提高一些查询的性能。在你创建主键或唯一约束条件时,服务器会同时自动创建索引。
索引
索引具有以下特点:
• 是一个方案对象
• Oracle Server 可用来通过指针加快行检索速度
• 可通过使用快速路径访问方法迅速找到数据来减少磁盘的输入/ 输出(I/O)
• 与建立索引的表无关
• 由Oracle Server 自动使用和维护
A row in the leaf block of the index for the key value is logically deleted and a new leaf row is inserted.
注:如果删除了一个表,则会自动删除索引和约束条件,但会保留视图和序列。

synonym同义词:

一般的普通用户是没有创建同义词的权限
同义词就像一个指针指向它的对象,如果删除同义词,对该对象毫无影响
除了表,还可以为其他对象创建同义词
公有同义词和私有同义词名字可以一样

视图 VIEW:

可以基于表、视图创建视图
复合视图和基本视图可以使用基表的索引
复合视图可以在一个和多个表上创建,表可以在不同的用户下。
这里说明一下简单视图和复杂视图的定义:
简单视图:数据来源于基表,不包含函数,分组等,可以直接进行dml操作
复杂视图:来源于一个表或者多个表,可以包含连接,函数,分组等,能否直接进行dml操作取决于视图的具体定义
在包含DISTINCT关键字的视图上不允许DML操作。
WITH CHECK OPTION约束是限制dml操作结果必须落在视图范围,而确定视图显示的列则是在创建视图时指定的。

constraint:

非空约束只能定义列级约束
主键、外键可以在列、表级别定义
constraint:
DISABLE 和ENABLE 是针对新增的数据是否符合约束,NOVALIDATE 和VALIDATE是针对已经存在的数据是否符合约束。
题中是DISABLE VALIDATE即是针对新增的数据可以不符合约束,但是已经存在的数据要满足约束。

unique:唯一
1、可以包含空值。

一、约束分类
CHECK C
NOT NULL C
PRIMARY KEY P
FOREIGN KEY R
UNIQUE U
CHECK OPTION V
READ ONLY O
二、约束状态
1.类型
a.disable novalidate 不做任何检查
b.disable validate 现有的数据不能违反,新加入的可以
c.enable novalidate 新的数据不能违反,老的可以
d.enable validate 都需要遵守
2.需要注意:
–当约束从禁止转为可用状态的时候,会在所有的数据都会上锁以校验数据的完整性,这回造成dml操作的等待,因此
–可以改变为enable novalidate状态,然后在修改为enable validate
3.各种状态之间的变化规律
a.如果转为enable的时候,没有说明novalidate,那么默认为validate
b.如果转为disable的时候,没有说明validate,就意味着novalidate
c.如果主键或者唯一索引从disable转为enable的时候,没有索引,oracle会自动为它创建一个索引,反之从enable转为
disable的时候,对应的索引会自动删除
d.从novalidate转为validate的时候,会检查数据,反之不会进行检查
e.当从enable novalidate转为 enable validate 的时候,不会阻塞任何读写操作及其他ddl操作
三、按照检验时间分类
1.延迟性约束,initially deferred延迟检查数据是否符合约束,也就是在事物提交的时候才做检查
2.非延迟性约束,initially immediate,马上检查数据是否符合约束
ALTER TABLE cust ADD CONSTRAINT cust_id_pk PRIMARY KEY(cust_id) DEFERRABLE INITIALLY DEFERRED;(延期验证,提交时验证)
INSERT INTO cust VALUES (1,’RAJ’); –row1
INSERT INTO cust VALUES (1,’SAM’); –row2
COMMIT;
此时PRIMARY KEY状态DEFERRABLE INITIALLY DEFERRED,在commit是检查约束,row1,row2一起提交,同时失败
SET CONSTRAINT cust_id_pk IMMEDIATE;
此时PRIMARY KEY状态DEFERRABLE INITIALLY IMMEDIATE,发出命令后立即检查约束
INSERT INTO cust VALUES (1,’LATA’); –row3
发出命令检查约束,执行成功
INSERT INTO cust VALUES (2,’KING’); –row4
发出命令检查约束,执行成功
COMMIT;
提交成功

SQL:
1.INTERSECT
返回 两个结果集的交集(即两个查询都返回的所有非重复值)
select * from apps where num >’50031’;字符型的数据也可以比较。

subquery(子查询);
1、可以使用order by、group by
2、可以使用在 select 语句、from 语句、where 语句,heavy语句里面。

join:
1、full [outer] join – 并集
2、left [outer] join –左表全集
3、right [outer] join 右表为基础

Date:
1、能和date直接做加减的数据类型有date 和INTERVAL DAY TO SECOND
2、
TRIM(TO_CHAR(promo_end_date,’Day’))、
TO_CHAR(promo_end_date,’fmDay’)、
TO_CHAR(promo_end_date,’fxDay’)得到星期几

TRIM(TO_CHAR(promo_end_date,’Month’))、
TO_CHAR(promo_end_date,’fmMonth’)、
TO_CHAR(promo_end_date,’fxMonth’)得到几月

TRIM(TO_CHAR(promo_end_date,’DD,YYYY’)) 、
TO_CHAR(promo_end_date,’fmDD,YYYY’)、
TO_CHAR(promo_end_date,’fxDD,YYYY’)得到 几号,年份。
NEXT_DAY(ADD_MONTHS(hire_date, 6),1)\NEXT_DAY的第2个参数可以是数字1-7,分别表示周日到周六,例如取下一个星期六 select next_day(sysdate,7) FROM DUAL;

GROUPING函数可以接受一列,返回0或者1。如果列值为空,那么GROUPING()返回1;如果列值非空,那么返回0。
GROUPING只能在使用ROLLUP或CUBE的查询中使用。当需要在返回空值的地方显示某个值时,GROUPING()就非常有用。
ROLLUP和CUBE 用法:
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。
如果是Group by ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。n+1
如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C),最后对全表进行GROUP BY操作,记得CUBE排序列顺序是由左到右。

select … from tablename
start with [条件1]
connect by [条件2]
where [条件3];
其中:
条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id;就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
条件3 是过滤条件,用于对返回的所有记录进行过滤。
PRIOR被置于CONNECT BY子句中等号的前面时,则强制从根节点到叶节点的顺序检索,即由父节点向子节点方向通过树结构,我们称之为自顶向下的方式
PIROR运算符被置于CONNECT BY 子句中等号的后面时,则强制从叶节点到根节点的顺序检索,即由子节点向父节点方向通过树结构,我们称之为自底向上的方式。

drop columns是物理删除,set unused是逻辑删除,两者都不可以通过rollback恢复,所有引用到该列的对象都会失败。
A. 当列被drop或者被set unused时,所有基于该列的对象失效。表的同义词基于的是表不是列,所以不会失效。
B. 当列被unused,可以增加同名字列。
C. 含有被set unused的列的视图会失效,但不会自动删除并重建,由于表结构改变,视图已经无法重建,应该称为新建视图。
D. 当set unused或者drop列时,会删除表的结构被依赖的 index/constrain/trigger,依赖于该表的 procedure/function 将保留,但是变为 invalid 状态

清除掉字典信息(撤消存储空间),不接查询,不可恢复。

multitable INSERT :
Conditional FIRST INSERT 根据条件插入行;
INSERT FIRST
WHEN SAL > 25000 THEN
INTO special_sal VALUES(DEPTID, SAL)
WHEN HIREDATE like (‘%’) THEN
INTO hiredate_history_00 VALUES(DEPTID,HIREDATE)
WHEN HIREDATE like (‘%’) THEN
INTO hiredate_history_99 VALUES(DEPTID, HIREDATE)
ELSE
INTO hiredate_history VALUES(DEPTID, HIREDATE)
SELECT department_id DEPTID, SUM(salary) SAL,
MAX(hire_date) HIREDATE
FROM employees
GROUP BY department_id;
Pivoting INSERT 有选择性插入数据;
INSERT ALL
INTO sales_info VALUES (employee_id,week_id,sales_MON)
INTO sales_info VALUES (employee_id,week_id,sales_TUE)
INTO sales_info VALUES (employee_id,week_id,sales_WED)
INTO sales_info VALUES (employee_id,week_id,sales_THUR)
INTO sales_info VALUES (employee_id,week_id, sales_FRI)
SELECT EMPLOYEE_ID, week_id, sales_MON, sales_TUE,
sales_WED, sales_THUR,sales_FRI
FROM sales_source_data;
Unconditional INSERT ALL 有选择性插入数据
INSERT ALL
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT employee_id EMPID, hire_date HIREDATE,
salary SAL, manager_id MGR
FROM employees
WHERE employee_id > 200;
Conditional INSERT ALL 根据条件插入行
INSERT ALL
WHEN SAL > 10000 THEN
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
WHEN MGR > 200 THEN
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT employee_id EMPID,hire_date HIREDATE,
salary SAL, manager_id MGR
FROM employees
WHERE employee_id > 200;
Unconditional INSERT ALL 有选择性插入数据
INSERT ALL
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT employee_id EMPID, hire_date HIREDATE,
salary SAL, manager_id MGR
FROM employees
WHERE employee_id > 200;

join
CROSS JOIN 笛卡尔乘积(所有可能的行对)
INNER JOIN 仅对满足连接条件的CROSS中的列
LEFT OUTER JOIN 一个表满足条件的行,和另一个表的所有行
RIGHT OUTER JOIN 与LEFT相同,但两个表的角色互换
FULL OUTER JOIN LEFT OUTER 和 RIGHT OUTER中所有行的超集

Merge into 详细介绍
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。
通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。
这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。

分析: 本题考点是WHERE与HAVING的区别
A. where要写在group by之前
B. having子句中的列要在select子句中出现

REGEXP_INSTR(street_address,’[^[:alpha:]]’) = 1 //street_address第一个字母!=1
expression:’[^Ale|ax.r$]’ //第一个字母非’A’ 后面是’le’ 或者 ‘ax’接着是任意字母 最后一个字符是r.

REGEXP_INSTR 有6个参数:
第一个是输入的字符串 第二个是正则表达式
第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
第四个是标识第几个匹配组。(默认为1)
第五个是指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为
非0则返回匹配值的最后一个位置。
第六个是是取值范围:
i:大小写不敏感; c:大小写敏感; n:点号 . 不匹配换行符号;
m:多行模式; x:扩展模式,忽略正则表达式中的空白字符。

REGEXP_REPLACE(phone_number,’([[:digit:]]{3}).([[:digit:]]{3}).([[:digit:]]{4})’, ‘(\1) \2-\3’)
示意:REGEXP_REPLACE(exp1,exp2,exp3)
exp1输入的字符串
exp2 匹配输入的字符串,第一部分字符串有3位,以“.”结束;第二部分字符串有3位,以“.”结束;第三部分字符串有4位,以“.”结束。
exp3对符合第二个参数的字符串格式化输出,

date:
INTERVAL YEAR TO MONTH ,使用月份表示年,年有4位,月有2位,不够的用0补位,按照年月格式显示。
INTERVAL DAY TO SECOND,使用秒来表示天,天有2位,秒有6位,不够的补0,按照日时分秒格式显示。

Oracle q’ 简化单引号转义
qoracle从10g开始引入该特性。q’后面的字符可以是:!、[ ]、{ }、( )、< >。
前提是这些字符不会出现在后续的SQL中。
请看例子,这两种写法都正确,后者显然可读性更强。

判断一个字段是否为空,建议使用 is not null,,where (a,b) is not null 这种写法错误。
不能使用别名作为order by 后面的排序
表达式是可以作为order by后面的排序
数字默认是升序
Where 后面的条件是不能用别名的
日期要比较,则需要格式相同
判断空值要用where a is null , 空加一个数字结果为空
q’{’s start date was }’// s start date was
q'<'s start date was >'//
s start date was
q’\’s start date was \’//`s start date was
select ‘it”s an example’ from dual;
select q’[it’s an example]’ from dual;

when drop tables then :
■ All rows from the table are dropped.
■ All table indexes and domain indexes are dropped.

create sequence seq1;//oracle会默认创建一个序列,可以看出序列默认的开始值为0,并且以1增长,最大值为:
Specify NOMAXVALUE to indicate a maximum value of 1028-1 for an
ascending sequence or -1for a descending sequence. This is the default
并且:nocycle
Specify NOCYCLE to indicate that the sequence cannot generate more
values after reaching its maximum or minimum value. This is the default.

In addition, LONG columns cannot appear in these parts of SQL statements:
1、 GROUP BY clauses, ORDER BY clauses, or CONNECT BY clauses or with the DISTINCT operator in SELECT statements
2、 The UNIQUE operator of a SELECT statement
3、 The column list of a CREATE CLUSTER statement

所以是不能再添加一个数据类型为LONG的列,一个表只能有一个LONG列
不能对Long类型添加约束条件(null,not null,default除外)

A column with the UNIQUE constraint can contain NULL values.
E. A table and a synonym can have the same name in the same schema.
F. The same table name can be used in different schemas in the same database.

表或视图中的最大列数为1000
无法创建与对象同名的同义词

group by 只能出现在最后一个union (all) 后面。
The statement would not execute because the ORDER BY clause should appear only at the end of the SQL statement, that is, in the last SELECT statement.

CREATE OR REPLACE VIEW sales_staff_vu AS
SELECT employee_id, last_name,job_id
FROM employees
WHERE job_id LIKE ‘SA_%’ WITH CHECK OPTION;
通过视图可以删除表数据;也可以通过视图插入数据,但是插入的数据必须符合‘where’条件。

All //大于最大的,类似于 and
any //大于最小的,类似于 or

Check约束里面不能使用sysdate,但是default 可以指定为sysdate,单引号括起来
一列有多个约束,之前使用空格分割,不能使用逗号分割。

使用clob无需指定长度
表名不能以数字开头
default 用单引号

创建表时,表的名称必须是合法标示符,长度为1-30字节,并且以字母开头,可以包含字母,数字,下划线,美元符号和#,此外表名称不能与所属模式中其他对象同名,也不能是oracle数据库的保留字
只要子查询里有空值,在主查询就不能用not in,因为不能返回任何值。

Order by 才可以用别名,group by 不能用别名
格式里面的G代表逗号,D代表为点

group by 分组字段必须跟select 字句字段一致。

非空约束可以被 create table app as select * from tmtk;传递
经过一系列插入数据操作,发现只有非空约束才能传递。

using和on的区别:
using 不能用于不等连接
using 连接的字段可以data type 不等,但是名字要相等
using 跟natural join是相互排斥的
using 的字段是不能够再起别名,不能做限制。
on 连接的字段data type 要一致,名字可以不一样
where条件和on条件是分开处理的

Oracle内部存储的时间为数值格式

between…and…,不适用于 weekday类日期,BETWEEN ‘MONDAY’ AND ‘FRIDAY’

1.索引不能创建在视图上,可以创建在表和聚镞上
2.表达式是可以作为order by后面的排序
3.在字符排序是,区分大小写
4.Order by asc时, nulls last为默认
5.INITCAP(JA) //Ja
Mod()//应该是返回余数
Initcap 返回首字母大写
Round(m,n)对m进行四舍五入,n为负数,表示将m四舍五入到小数点左边第n位,round(156.00,-1) //160
round(m,n)不指定n的值,直接取整数,也可以用在时间上,round(sysdate-promo_begin_date,0)。
Trunc(m,n)对m进行截取操作,n小于0时,表示截取到小数点左边第n位
Trunc(161.10,-1) ;//160
Rpad(char1,n,char2)把字符串1右侧填充字符串char2使其长度达到n,如果字符串char1长度大于n,则返回字符串char1左侧n个字符
trim([leading | trailing| both] trim_char from string) 从字符串String中删除指定的字符trim_char。trim_char只能是一个字符
LTRIM(‘c1’,’c2’)删除左边出现的字符串 RTRIM()删除c2中出现c1的字符串.
leading:从字符串的头开始删除。
trailing:从字符串的尾部开始删除。
borth:从字符串的两边删除。
6、Oracle内部存储的时间为数值格式
7、对于db_link,sysdate也是获取目标库当前的时间
8、INITCAP将每个单词的第一个字母大写,其他字母小写
INITCAP(SUBSTR(cust_name, INSTR(cust_name,’ ‘)+1))
INITCAP(ename) 返回首字母大写,其他字母小写 Smith
LPAD(c1,n[,c2]) 在字符串c1的左边用字符串c2填充,直到长度为n时为止。
RPAD()在列的右边粘贴字符。
COALESCE(c1, c2, …,cn)
【功能】返回列表中第一个非空的表达式,如果所有表达式都为空值则返回1个空值.参数类型要一致。

9、INSTR(cust_name, ”,1,2)<>0; 表示搜索空字符串,从第一个字符开始,到最后的得到
空字符串在该字符串中出现的次数为2次,说明该字符串有三个Names
INSTR(cust_name, ”,-1,2)<>0 同理,从倒数第一个位置搜索,INSTR最后一个数字,不能是0或负数
INSTR(cust_name,’ ‘) 返回空字符串的位置
INSTR(cust_first_name, ‘e’)<>0 返回e在cust_first_name的位置,这里等于0,表示为没有找到
10、CONCAT(SUBSTR(INITCAP(ename),1,3),REPLACE(hiredate,’-‘));字符串组合函数
SUBSTR(cust_first_name,-2, 1)=’a’ 用于获取字串,-2表示位置,倒数第二个,1表示子串的长度,
SUBSTR中如果位置数字大于长度,则返回null
SUBSTR(‘Smith’,1,3) 截取字串 Smi
SUBSTR(cust_name,INSTR(cust_name,’ ‘)+1) 截取空字符串后面的字符
REPLACE(hiredate,’-‘,’‘) //把hiredate中得’-‘替换成’‘,如果不指定代替的字符串,将直接删除要替代的字串
To_date 将符合格式的字符串转换为日期,和sysdate格式一样,所以可以相减

MONTHS_BETWEEN(start_date,end_date)返回一个数字
NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致,不一致的话,expr2会转换为expr1的类型
nvl要求两者的数据类型一致。'Not Available'不能够隐式的转换为number。
NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
null可以转化为date。显示空.
Nullif (expr1, expr2) 如果里面的两个表达式相等,就返回空,但是如果有其中一个表达式为空,也将返回为空,不相等返回expr1。
这里主要考察decode的用法,引用官方文档:
DECODE(expr,search1,result1[,search2,result2……,default]):比较expr与search1,如果等于search1则返回result1,如果等于search2则返回result2,依次类推,如果都不等于,如果有default则返回default,否则返回NULL.

DECODE compares expr to each search value one by one. If expr is equal to a
search, then Oracle Database returns the corresponding result. If no match is
found, then Oracle returns default. If default is comitted, then Oracle returns null.
The arguments can be any of the numeric types (NUMBER, BINARY_FLOAT, or
BINARY_DOUBLE) or character types or date type.

Order by后面可以使用别名
GROUP by后面不可以使用别名
Having后不能使用嵌套分组函数

如果想对union集合自定义排序(union 默认会有排序),需要自己在语句最后面使用order by。
数字空值 可以用null表示,字符串空值就需要用 is null表示。
delete常用于在同个时间内删除一个表的行,多个表的行不适用
commit、rollback、create 导致事务结束。
因为已经提交,所以无法做rollback操作,也无法rollback到保存点。
事务只能是dml或DCL语句组成。
保存点可以用于回滚操作,仅对DML有效。

EXISTS:
select id, name,salary
from employees
where exists (
select id
from employees
where id in (1,2,3)
)
当内查询select id from employees where id in (1,2,3)搜索不到id为1或者2或者3的记录时,内查询返回false到外查询
当内查询select id from employees where id in (1,2,3)搜索到第一个id为1或者2或者3的记录时,内查询直接弹回true外查询
所以称exists为半查询

select avg(max(qty)) from ord_items group by item_no having avg(max(qty))>50 *
ERROR at line 1:
ORA-00935: group function is nested too deeply
HAVING子句后面不能有好几个组函数嵌套,只能使用一个组函数。

count(id) ;不会反悔id为空的行,count(*) 会返回空值的行
SELECT AVG( inv_date- SYSDATE) from dual ; inv_date-sysdate得到数字,所以能使用avg
11、TO_DATE(X[,c2[,c3]])
【功能】将字符串X转化为日期型

TO_CHAR(x[[,c2],C3])

【功能】将日期或数据转换为char数据类型
count()还可以用在date等数据类型的行上
明确指定了distinct,就不会返回重复行,当然也不会返回空行
在select 子句中,条件不能嵌套3层,having字句条件不能嵌套2层
having必须要跟group by一起使用
order by 列必须出现在select 语句中
子查询不能出现order by

INTERSECT 这个值要存在于第一句和第二句才会被选出,相当于两个查询的结果的交集

MINUS :which returns only unique rows returned by the first query but not by the second:
因为已经提交,所以无法做rollback操作,也无法rollback到保存点
事务只能是dml或DCL语句组成

Data Recovery Advisor (DRA)支持的数据库配置:
– 单实例
– 非RAC
– 支持故障转移到备用数据库,但不支持分析和修复备用数据库

list failure;
advise failure;
REPAIR FAILURE;

非簇表只能使用一个段
每个表空间只属于一个数据库,包含一个或多个数据文件,每个数据文件只属于一个表空间
每个段包括一个或多个extents区
一个数据文件只能属于一个表空间。而数据文件和extent也是一对一的,即是说数据文件不能夸区,但可以夸段。

• 每个事务处理只分配给一个还原段。
• 一个还原段可以同时服务多个事务处理。
多个事务可以共享同一个undo段,段包括区,即也可以共享同一个区。

进行数据库审计时会记录审计对象中发生的插入、更新和删除操作,但是不会捕获更改的实际值。
要扩展数据库审计,可使用基于值的审计,利用数据库触发器(事件驱动的PL/SQL 构造)来捕获更改的值。

在固定大小的还原表空间,且没有设置retention guarantee 强制保留,UNDO_RETENTION 就会被忽略.
MMON: 数据库(默认情况下)每60 分钟从SGA 中自动捕获一次统计信息,然后将其以快照形式存储在AWR 中。这些快照通过一个名为易管理性监视器(MMON) 的后台进程存储在磁盘上。默认情况下,快照会保留八天。可以修改快照时间间隔和保留间隔。
ADDM 在记录每个AWR 快照之后会自动运行。每次记录快照后,ADDM 会分析与最后两个快照对应的时段。ADDM 会预先监视实例,以便在大多数瓶颈问题成为严重问题之前检测到这些问题。多数情况下,ADDM 会为检测到的问题提供建议解决方案,甚至可以量化这些建议的优势。
每次ADDM 分析的结果都存储在AWR 中,并可通过Enterprise Manager 进行访问

只需要设置一个目标内存大小初始化参数( MEMORY_TARGET ) 和一个最大内存大小初始化参数( MEMORY_MAX_TARGET),数据库就会根据处理需求在SGA 与实例 PGA 之间动态交换内存。
自动内存管理是用两个初始化参数进行配置的:
MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0。

MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。但并不会因为设置了MEMORY_TARGET,这两个参数就会自动变回0。

有冲突的锁定请求以分层布局的形式显示,其中持有锁的会话位于顶部,下面是排队请求锁的所有会话

Set the SGA_TARGET initialization parameter to a nonzero value.//对于白天运行大型联机事务处理(OLTP) 作业(要求大型缓冲区高速缓存)和夜晚运行并行批处理作业(要求大型池的内存空间比较大)的系统,就必须同时配置缓冲区高速缓存和大型池,以便适应峰值需求。
有了ASMM 功能,当 OLTP 作业运行时,缓冲区高速缓存会获取大部分内存来保证良好的I/O 性能。以后启动数据分析和报告批处理作业时,内存又会自动迁移到大型池,供并行查询操作使用,而不会产生内存溢出错误。
如果使用的是服务器参数文件(SPFILE) ,则Oracle DB 会在每次关闭实例时记住自动优化的组件的大小。因此,系统不需要在每次启动实例时都重新了解工作量的特性。它可以利用从以前的实例中获取的信息,从上次关闭时中断的位置开始继续评估工作量。

为了解决锁冲突,应该:
• 提交或回退持有锁的会话
• 终止持有锁的会话(在紧急情况下)
ALTER SYSTEM KILL SESSION ‘118,2597’ IMMEDIATE

temporary tablespace:
对于临时表,索引和视图可以在建立。
临时表空间不会出现DML锁,因为临时表空间不会被别的用户访问

启用ASMM 之前,应该从 SPFILE 中删除单个内存区参数,因为设置这些参数会使
ASMM 受到限制。看到 ASMM 分配的效果之后,如果决定要调整特定组件的分配值,可
以为这些组件指定值。如果指定的值比目前的值小,这些值将被视为各个组件的最小内存
大小。如果指定的值比目前的值大,那么只要有空闲内存,就可以将内存组件的大小重新
上调至您提供的值

数据库是处于自动内存管理即AMM,也即是说MEMORY_TARGET设定为非零值。
只需要设置一个目标内存大小初始化参数( MEMORY_TARGET ) 和一个最大内存大小初始化参数( MEMORY_MAX_TARGET),数据库就会根据处理需求在SGA 与实例 PGA 之间动态交换内存。
自动内存管理是用两个初始化参数进行配置的:
MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0。
MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。但并不会因为设置了MEMORY_TARGET,这两个参数就会自动变回0。

数据库是处于自动共享内存管理即ASMM,也即是说share_pool_size=0、sga_target != 0.
启用ASMM 之前,应该从 SPFILE 中删除单个内存区参数,因为设置这些参数会使
ASMM 受到限制。看到 ASMM 分配的效果之后,如果决定要调整特定组件的分配值,可
以为这些组件指定值。如果指定的值比目前的值小,这些值将被视为各个组件的最小内存
大小。如果指定的值比目前的值大,那么只要有空闲内存,就可以将内存组件的大小重新
上调至您提供的值。执行此操作会限制可用于自动调整的内存量,但在环境需要对大小进
行特殊调整、而ASMM 又无法满足此需要时,可使用此功能。

To enable MTTR Advisor, set the two initialization parameters STATISTICS_LEVEL and FAST_START_MTTR_TARGET.
STATISTICS_LEVEL governs whether all advisors are enabled and is not secific to MTTR Advisor. Ensure that it is set to TYPICAL or ALL. Then, whenFAST_START_MTTR_TARGET is set to a nonzero value, the MTTR Advisor is enabled.
MTTR 指导可将FAST_START_MTTR_TARGET值转换为多个参数,以便在所需时间内(或者在尽量接近此时间的范围内)启用实例恢复。请注意,将
FAST_START_MTTR_TARGET参数显式设置为0会禁用MTTR 指导。
FAST_START_MTTR_TARGET参数的设置值必须支持系统的服务级协议。如果MTTR 目标的值较小,则会因增加了数据文件写入次数而增加I/O 开销(这会影响性能)。但是,如果MTTR 目标设置得过大,则实例在崩溃后需要花费较长的时间才会恢复。

而快速启动检查点功能是通过指定所需的非零恢复平均时间(MTTR)值来启用的,该值将用于设置FAST_START_MTTR_TARGET初始化参数。此参数控制数据库对单个实例执行崩溃恢复所花费的时间量。启用快速启动检查点功能时,oracle将自动保持检查点的速度,已便达到请求的MTTR.如果将该值设置为0,将禁用此功能。

OEM(Oracle Enterprise Manager)可以自动备份离线数据库

执行1级增量累积备份。 backup incremental level 1 cumulative database; 星期一是与0级备份之间的差异备份,星期二是与0级备份之间的差异累积备份,等等。

DBMS_STATS.SET_TABLE_PREFS(‘SH’, ‘CUSTOMERS’, ‘PUBLISH’, ‘false’);//随后,当收集任务完成后custer表的统计信息将不会自动发布,相反数据库会把这个信息存储起来。

ADDM 在记录每个AWR 快照之后会自动运行。每次记录快照后,ADDM 会分析与最后两个快照对应的时段。ADDM 会预先监视实例,以便在大多数瓶颈问题成为严重问题之前检测到这些问题。多数情况下,ADDM 会为检测到的问题提供建议解决方案,甚至可以量化这些建议的优势。
每次ADDM 分析的结果都存储在AWR 中,并可通过Enterprise Manager 进行访问。

STATISTICS_LEVEL=basic|typical|all
• BASIC:AWR 统计信息和度量的计算被关闭。自动优化程序统计信息任务被禁用,所有指导和服务器生成的预警也被禁用。
• TYPICAL:收集数据库自我管理所需的主要统计信息。这些统计信息表示监视OracleDB 行为通常需要的信息。这包括自动搜集统计信息,以减少由于统计信息过时或无
效而导致不正确执行SQL 语句的可能性。
• ALL:捕获所有可能的统计信息。此捕获级别增加了计时操作系统统计信息和计划执行统计信息。多数情况下并不需要这些统计信息,为了获得最佳性能,不应启用这些
统计信息;有时执行特定的诊断测试时需要这些统计信息。
Oracle 建议将STATISTICS_LEVEL初始化参数设置为默认值TYPICAL。如果将该参数的值设置为BASIC,则会禁用自动搜集优化程序统计信息功能。

Data Recovery Advisor 支持的数据库配置:
– 单实例
– 非RAC
– 支持故障转移到备用数据库,但不支持分析和修复备用数据库

When loading data into a clustered table
A direct path load does not support loading of clustered tables.

使用spfile启动时,sga_target 的isspecified为true,如果为false,则是使用pfile启动;
也可以通过 show parameter spfile这个方法,如果value有值,则说明使用spfile启动。如果没有值,则又pfile启动

• 按以下顺序搜索$ORACLE_HOME/dbs中具有特定名称的文件:
1. 搜索spfile.ora。
2. 如果未找到spfile.ora,则搜索spfile.ora。
3. 如果未找到spfile.ora,则搜索init.ora。

shutdown abort后,再startup,需要用到smon进行实例恢复。
在nomount阶段,读取初始化参数,分配SGA,后台进程启动
在mount阶段,读取控制文件和联机日志文件,查看需要打开哪些数据文件
在open阶段,根据控制文件内容找到数据文件,并打开,因为是IMMEDIATE 关闭的数据库,即是一致性关闭,所以再次启动后,不需要恢复

启用数据字典保护使用 O7_DICTIONARY_ACCESSIBILTY参数设置为false,则阻止普通用户访问数据字典。
要使普通用户能访问动态性能视图,就必须要授予查询v_session权限。如:grant select on v_session to user_name

• 动态服务注册:Oracle8i和更高版本的实例会在启动数据库时向默认监听程序自动进行注册。默认监听程序不需要其它的监听程序配置。
动态注册不需要显示的配置listener.ora文件,实例启动的时候,PMON进程根据instance_name,service_name参数将实例和服务动态注册到listerer中。
如果没有设定instance_name,将使用db_name初始化参数值。如果没有设定service_names,将拼接db_name和db_domain参数值来注册监听。
-不需要人工干预在lsnrctl start后,会自动注册数据库的instance_name,service_name,然后tns不论使用SID和SERVICE_NAME均可以连接上来。
-修改了SERVICE_NAME或者SID不用修改listener.ora文件

Limiting Memory Use for Each User Session by Setting PRIVATE_SGA.
You can set the PRIVATE_SGA resource limit to restrict the memory used by each client session from the SGA.
PRIVATE_SGA defines the number of bytes of memory used from the SGA by a session.
However, this parameter is used rarely, because most DBAs do not limit SGA consumption on a user-by-user basis.

‘ALTER DISKGROUP dga OFFLINE DISKS IN FAILGROUP f2 DROP AFTER 5H;’ means
All the disks in the dga disk group in failure group f2 would be OFFLINE and the
DISK_REPAIR_TIME disk attribute would be set to 5 hours

块头:块头包含段类型(如表或索引)、数据块地址、表目录、行目录和事务处理插槽。每个插槽的大小约为23 字节,修改块中的行时会使用这些插槽。块头自上
而下进行增长。

• 行数据:这是块中行的实际数据。行数据空间自下而上进行增长。

• 空闲空间:空闲空间位于块的中部,允许头和行数据空间在必要时进行增长。当插入新行或用更大的值更新现有行的列时,行数据会占用空闲空间。

导致块头增长的事件的示例包括:
- 行目录需要更多的行条目
- 需要的事务处理插槽数多于最初配置的数目
起初,块中的空闲空间是相邻的。但是,删除和更新操作可能会使块中的空闲空间变成碎片。需要时Oracle 服务器会接合块中的空闲空间。

• SYSTEM 和SYSAUX 表空间是在创建数据库时创建的 必需存在的表空间。这些表空间必须联机。
• SYSTEM 表空间用于核心功能(例如数据字典表)。
• 辅助的SYSAUX 表空间用于附加的数据库组件 (如Oracle Enterprise Manager Repository)。
• 不建议使用SYSTEM 和SYSAUX 表空间来存储应用 程序的数据。
每个Oracle DB 必须包含一个SYSTEM表空间和一个SYSAUX表空间。它们是在创建数据库时自动创建的。系统默认值是创建小文件表空间。还可以创建大文件表空间,Oracle DB 可通过该表空间管理超大文件。
表空间的状态可以是联机(可访问)或脱机(不可访问)。打开数据库时,SYSTEM表空间始终处于联机状态。这个表空间可存储支持数据库核心功能的表,如数据字典表。
SYSAUX表空间是SYSTEM表空间的辅助表空间。SYSAUX表空间可存储许多的数据库组件(例如EM),要使所有数据库组件正常运行,该表空间必须处于联机状态。
注:SYSAUX表空间可以脱机以执行表空间恢复,而SYSTEM表空间则不能。这两种表空间都不能设置为只读。

在SCOTT执行插入操作时,会将整个表锁定起来,而这时DBA去更改这个表空间为只读状态,只能等待scott提交或者回滚后才能对表空间进行操作。

脱机:可以让联机的表空间脱机,使数据库的这部分暂时不可用于一般用途(C对。)。数据库的余下部分是开放的,可让用户访问其中的数据。表空间脱机时,可以使用以下选项:
- Normal(默认正常):ALTER TABLESPACE “USERS” OFFLINE NORMAL
如果表空间中的任一数据文件都不存在任何错误状态,通过正常方式便可使表空间脱机。当Oracle DB 使表空间脱机时,通过为表空间的所有数据文件设置检查点,来确保将所有数据写入磁盘。 B对。
- Temporary(临时):ALTER TABLESPACE “USERS” OFFLINE TEMPORARY
如果表空间中的一个或多个文件存在错误状态,也可以使表空间暂时脱机。当Oracle DB 使数据文件(尚未脱机的)脱机时,将为这些数据文件设置检查点。如果没有任何文件脱机,但是使用了临时子句,则在使表空间重新联机时不需要执行介质恢复。但是,如果因写错误而导致表空间的一个或多个文件脱机,而且设置了表空间临时脱机,那么表空间需要执行恢复后才能重新联机。
- Immediate(立即):ALTER TABLESPACE “USERS” OFFLINE IMMEDIATEOracle DB 可以使表空间立即脱机,而不需要为任何数据文件设置检查点。如果指定了“Immediate(立即)”,则必须先对表空间执行介质恢复,才能使表空间联机。如果数据库在NOARCHIVELOG模式下运行,则无法立即使表空间脱机。
- For Recover(用于恢复):ALTERTABLESPACE”USERS”OFFLINEFORRECOVERFOR RECOVER设置已被废弃。支持此语法是为了向后兼容。

当DB_16K_CACHE_SIZE为非零值是,在创建表空间时,才可以选择16K的块大小。
sys@TEST0924> alter system set db_16k_cache_size=32M;

段空间管理:本地管理的表空间中的段空间管理方式可指定为:
• 自动:Oracle DB 使用位图管理段中的空闲空间。位图描述了段中每个数据块的状态,该状态与可插入行的块中的空间量有关。当数据块中可用空间增多或减少时,位图中会反映数据块的新状态。通过使用位图,Oracle DB 可以提高管理空闲空间的自动化程度。因此,这种空间管理方式称为“自动段空间管理(ASSM)”。
USERS表空间的SEGMENT MANAGEMENT 为AUTO,也即是说users表空间使用ASSM管理方式,是使用位图管理段中的空闲空间。
• 手动:此方法指定要使用空闲列表来管理段中的空闲空间。空闲列表是由一些数据块组成的列表,这些数据块中有可插入行的空间。由于这种管理段空间的方式需要为在表空间中创建的方案对象指定并优化PCTUSED、FREELISTS和FREELIST GROUPS存储参数,因此这种方式称为“手动段空间管理”。支持使用此方法是为了向后兼容,建议使用ASSM。

外部验证:这是使用数据库外部的方法(操作系统、Kerberos 或Radius)执行的验证。Kerberos或Radius 需要使用高级安全选件。用户可以在不指定用户名或口令的情况下连接到Oracle DB。借助于执行严格验证的高级安全选件,系统可以通过使用生物统计学、x509 证书和标记设备来识别用户。使用外部验证时,数据库依赖基础操作系统、网络验证服务或外部验证服务来限制对数据库帐户的访问。对于此类登录不会使用数据库口令。
如果操作系统或网络服务允许的话,可以使用外部验证来验证用户。如果使用操作系统验证,请设置OS_AUTHENT_PREFIX初始化参数,并在Oracle 用户名中使用前缀。OS_AUTHENT_PREFIX参数定义了一个前缀,Oracle DB 会在每个用户的操作系统帐户名之前添加此前缀。为了实现与Oracle 软件早期版本的向后兼容,此参数的默认值为OPS$。

WITH ADMIN OPTION的意思是被授予该权限的用户有权将某个权限(如MGR_ROLE)授予其他用户或角色,取消是不级联的。
而WITH GRANT OPTION的意思是被授予该权限的用户有权将某个权限(如MGR_ROLE)授予其他用户或角色, 只能取消自己授过权的用户,此用户授权的用户也将会revoke。

1.确保ODATE 列在以后都有数据。即添加非空约束,添加非空约束使用,Modify the column using the “ALTER TABLE…MODIFY” command add constraint.

默认的PCTFREE 为10%,意味着在一个数据块里至少有10%的空闲空间,如果插入的数据或者更新的数据让数据块的空闲空间少于10%,则会插入或更新到另一个数据块里

truncate–相应的 index 也会被 truncate,执行 truncate 会产生非常少量的 undo 信息或者不产生,HWM(高水位标记)会恢复到第一个使用段,使用区、使用块,HWM 这时应该是第二个块

AWR 中包含数百个表,所有这些表均属于SYSMAN方案且存储在SYSAUX表空间中。

1、通过重建不可用索引来重算指针,可使不可用索引变为有效。重建不可用索引会在新位置重新创建索引,然后会删除不可用索引。如使用一下语句来重建索引
ALTER INDEX HR.emp_empid_pk REBUILD ONLINE;
使用REBUILD ONLINE子句,用户可以在重建时继续更新索引表。

2、Oracle Secure Backup 增加了备份到磁带功能和操作系统文件备份。
3、使用sqlplus备份表空间可以不需要在归档模式,.alter tablespace users.begin backup.,当表空间处于热备模式,数据文件头不会被更新,期间数据文件可以正常使用;
shutdown abort后,再startup,需要用到smon进行实例恢复。
在nomount阶段,读取初始化参数,分配SGA,后台进程启动
在mount阶段,读取控制文件和联机日志文件,查看需要打开哪些数据文件
在open阶段,根据控制文件内容找到数据文件,并打开,因为是abort关闭的数据库,则在open时需要检查数据库,数据库文件以及数据文件头部的scn号是否一致,如果不一致,SMON进程进行实例恢复。

4、
指定CASCADE CONSTRAINTS 语句是指删除所有的参照完整性约束包括主键约束和唯一性约束。
指定PURGE,意味着在drop table的同时也释放了和它相关联的空间。如果指定PURGE,那么数据库不会将表和它相关联的对象放置到回收站。
5、
bitmap index 和 b-tree 另外一个最大的不同在于对NULL 的处理. bitmap index 可以处理null值, 而b-tree index 则无法存储NULL

更新键列会导致索引进行逻辑删除和插入。PCTFREE设置对索引没有影响,但创建时除外。即使索引块的空间少于PCTFREE指定的空间,也可以向索引块添加新条目。
B-tree索引,键列中的NULL值的行在索引中也有条目。错误。当某行包含的所有键列为NULL 时,该行没有对应的索引条目。因此,当WHERE子句指定了NULL 时,始终会导致全表扫描

在临时表中可以创建索引、视图及触发器,还可以使用“Export and Import(导出和导入)”或“Data Pump(数据泵)”导出和导入临时表的定义。但是,即使使用了ROWS 选项,也不会导出数据。
在临时表中,DML锁永远不需要,正确。
临时表可专用于事务处理,也可专用于会话。对于专用于事务处理的临时表而言,数据存在于事务处理期间;对于专用于会话的临时表而言,数据存在于会话期间。在这两种情况下,会话插入的数据专用于会话。每个会话仅可查看和修改自己的数据。因此,临时表的数据从不会获得DML 锁。

053:
AWR 中包含数百个表,所有这些表均属于SYSMAN方案且存储在SYSAUX表空间中。

通过重建不可用索引来重算指针,可使不可用索引变为有效。重建不可用索引会在新位置重新创建索引,然后会删除不可用索引。如使用一下语句来重建索引
ALTER INDEX HR.emp_empid_pk REBUILD ONLINE;
使用REBUILD ONLINE子句,用户可以在重建时继续更新索引表。

Oracle Secure Backup 增加了备份到磁带功能和操作系统文件备份。
• Oracle Secure Backup 和RMAN 一起为Oracle 环境提供端到端备份解决方案:
– 对文件系统数据和Oracle DB 使用集中式磁带备份管理
– 对RMAN 备份提供最佳集成介质管理层
– 可备份网络上任意位置的任意数据
• 由一个技术支持资源来支持整个备份解决方案,可加快解决问题的速度。
• 确保以较低的成本和复杂性提供可靠的数据保护。
Oracle Secure Backup 通过以下方式对现有功能提供补充:
• 完整的备份解决方案:Oracle Secure Backup 为数据库和非数据库的数据提供数据保护,可保护整个Oracle 环境。
• 介质管理:Oracle Secure Backup 为RMAN 数据库磁带备份提供了介质管理层。在Oracle Secure Backup 推出以前,客户需要购买价格昂贵、集成有RMAN 磁带备份功能的第三方介质管理产品。
• 备份网络上任何位置的数据:Oracle Secure Backup 可备份从多台连接到网络的计算机系统至网络上的三级存储资源中的所有数据。Oracle Secure Backup 支持对服务器、客户机、网络连接存储(NAS) 服务器和三级存储设备的各种配置,并保护网络存储环境。
RMAN 和Oracle Secure Backup 的组合提供了一个纯粹以Oracle 产品堆栈实现的端到端备份解决方案。因为由Oracle Corporation 负责整个备份解决方案,因此该解决方案可提供更好的客户支持服务。

shutdown abort后,再startup,需要用到smon进行实例恢复。
在nomount阶段,读取初始化参数,分配SGA,后台进程启动
在mount阶段,读取控制文件和联机日志文件,查看需要打开哪些数据文件
在open阶段,根据控制文件内容找到数据文件,并打开,因为是abort关闭的数据库,则在open时需要检查数据库,数据库文件以及数据文件头部的scn号是否一致,如果不一致,SMON进程进行实例恢复。

1Z0-053 V14.02.pdf:
create table inv_history (
inv_no number(3),
inv_date DATE,
inv_amt number(10,2)
) partition by range(inv_date)interval
(Numtoyminterval (1,’mon’))
(partition p0 values less than (to_date(”,”))
(partition p1 values less than (to_date(”,”))
);

ASMCMD可以修复块I/O读错误

sql优化专家、sql访问专家

在flashback使用版本查询的表有:heap table堆积表也就是普通表、索引组织表也就是iot表,如:
select versions_xid,ename,sal from a5 versions between scn minvalue and maxvalue;

使用Flashback Version Query查询记录修改版本,查询表在不同时间点的不同版本的数据,闪回版本查询只能对提交后的数据进行查询,

memory_target=sga_max_size+pga

flashback Data Archive 先觉条件是:
1.undo表空间自动段管理
2.表空间管理方式ASSM
表未定义对触发器未影响但是是无效状态
ASM_POWER_LIMIT 可以是ASM的磁盘组之间平衡更快,但是会导致高I/O产生
当DB_BLOCK_CHECKING=off,只有系统表空间会检查块。

The disk group will be automatically rebalanced during the drop operation.Once the rebalancing is complete, the disk will be dropped
当删除ASM磁盘组磁盘时,先平衡各磁盘组的数据之后才能真正删除磁盘。
You can back up the RMAN recovery catalog with RMAN ? yes
RMAN只支持spfile系统参数文件的备份,默认会自动备份。当配置控制文件自动备份的机制,spfile也会默认自动备份。

report need backup days 3;//Lists all datafiles not backed up in the last three days.It does not imply that the datafile is not
recoverable.

不完全恢复:
restore database until time ‘06-SEP-2008 18:29:55’);
recover database until time ‘06-SEP-2008 18:29:55’);
alter database open resetlogs;

report schema;
report need backup;//The list datafile has not yet been backed up and This report does not imply that the data in the
datafile can not be recovered(列举出可备份的文件且未被恢复过的)

sql tunning:

begin
VARIABLE task_name VARCHAR2(255);
VARIABLE sql_stmt VARCHAR2(4000);
BEGIN :sql_stmt := ‘SELECT COUNT(*) FROM customers WHERE cust_state_province =”CA”’;
:task_name := ‘MY_QUICKTUNE_TASK’;
DBMS_ADVISOR.QUICK_TUNE(DBMS_ADVISOR.SQLACCESS_ADVISOR, :task_name, :sql_stmt);
END;
//To tune a single SQL statement, the QUICK_TUNE procedure accepts as its input a task_name and a SQL statement. The procedure creates a task and workload and executes this task. There is no difference in the results from using QUICK_TUNE. They are exactly the same as those from using EXECUTE_TASK, but this approach is easier to use when there is only a single SQL statement to be tuned.

EXPIRED状态:
此状态与crosscheck命令相关,crosscheck backup 命令是对备份进行交叉检查,检查备份集是否有效。当crosscheck命令检查到某备份已经在系统层面删除的时候即物理上不存在的时候,就会将available状态置为expired状态,但这个时候并没有真正删除备份【所以删除备份不能在系统层面删除,而应该在rman中删除,使用delete backup】;
report obsolete;//
list expired backup;//
OBSOLETE状态:
obsolete状态是根据rman备份的保留策略来定的,当超过保留策略的备份就会被标记为obsolete状态,使用 report obsolete 命令来查看,使用delete noprompt obselete来删除备份;

recover、restore的区别:restore拷贝备份的数据文件到指定目录;recover恢复archivelog 到指定的数据文件。

Compression can be enabled at the table, tablespace, or partition level for both direct loads and
conventional DML.

在oracle 11g中,为了防止诊断任务过度消耗系统资源,数据库资源管理被自动运行。

RMAN提供自动错误检测功能,步骤:
RMAN> list failure ;//列出所要修复的错误
RMAN> advise failure ;//让rman给出修复的建议,并给出修复的脚本
RMAN> repair failure ;//自动修复错误

在对表使用shrink操作的时候ALTER TABLESPACE lmtemp SHRINK SPACE KEEP 20M;必须确认表空间是本地管理模式

CREATE TABLE purchase_interval PARTITION BY RANGE (time_id) INTERVAL
(NUMTOYMINTERVAL(1,’month’)) STORE IN (tbs1,tbs2,tbs3)
( PARTITION p1 VALUES LESS
THAN(TO_DATE(‘1-1-2005’, ‘dd-mm-yyyy’)
),
PARTITION p2 VALUES LESS THAN(TO_DATE(‘1-1- 2007’,
‘dd-mm-yyyy’))) AS SELECT * FROM purchases WHERE time_id < TO_DATE(‘1-1-2007’,’dd-mm-yyyy’);

SecureFile LOBs好处:
1.Fragmentation is minimized by using variable-sized chunks dynamically;//通过使用可变大小块可以减少碎片化
2.SecureFile encryption allows for random reads and writes of the encrypted data;//允许随机读写加密数据

SQL Access Advisor provide for optimizing SQL queries:分区表,物化视图,索引

sql tun advisor(sta) is:
C. The tuned plan is added to the fixed SQL plan baseline as a nonfixed plan.

SQL Management Base is:
C. It is part of the data dictionary and stored in the SYSAUX tablespace.
E. It contains the statement log, the plan history, plan baselines, and SQL profiles.

SQL Repair Advisor is:
ALTER TABLE sales_2007 COMPRESS FOR ALL OPERATIONS.
C. It compresses all data added or modified henceforth but the existing data in the table is not
compressed immediately.

dataguard的standby database、RAC集群环境等均不支持Data Recovery Advisor(数据恢复专家)

SQL Access Advisor is used to partition tables,materialized view or materialized view log ,index.

Automated Maintenance Task include Segment Advisor、Optimizer statistics gathering、Automatic SQL Tuning Advisor.

database duplicate:
RMAN> CONNECT TARGET sys/sys@APPPROD
RMAN> CONNECT AUXILIARY sys/sys@DUPDB
RMAN> DUPLICATE TARGET DATABASE
TO dupdb
FROM ACTIVE DATABASE
PASSWORD FILE
SPILE
NOFILENAMECHECK;

CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;//规定每次备份都需要压缩

RMAN>’CONFIGURE BACKUP OPTIMIZATION ON;’ command is means Read-only datafiles will not be backed up as long as backups of those files already exist and those
backups meet established retention criteria;

create a recovery catalog setp:
1.Create the recovery-catalog database
2.Create the recovery-catalog user
3.Grant the recovery_catalog_owner privilege to the recovery-catalog user
4.Issue the register database command from the target database
5.Issue the create catalog command

185.A shoot-out has erupted between your MS development teams using .NET and your Linux
development teams using Java.Knowing that your database is in danger, which command would you use
to back up your NOARCHIVELOG mode database using RMAN with compression?
(有异议**)
A. backup database all
B. backup compressed database
C. backup as compressed backupset database;
D. backup as compressed backup database plus archivelog all;
E. backup as compressed backupset database plus compress archivelog all;
Answer: C

272.You issue the following RMAN command to set a retention policy on a database:
RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
What will be the outcome of issuing this command?
(有异议**)
A. After two days, a backup will be marked obsolete
B. After two days, a backup will be deleted from the media
C. If the RMAN repository has records of two or more recent backups of a file, then older backups will be
deleted from the media.
D. If the RMAN repository has records of two or more recent backups of a file, then older backups will be
marked obsolete.
Answer: D

279.Identify the activities performed as part of the Automatic SQL Tuning process in the maintenance
window? (Choose all that apply.)
A. generating the SQL profile
B. testing and accepting the SQL profile
C. generating a list of candidate SQLs for tuning
D. adding tuned SQL plans into the SQL plan baseline
E. tuning each SQL statement in the order of importance
F. generating baselines that include candidate SQLs for tuning
Answer: ABCE

What privileges must be granted to allow an account to create the recovery catalog?
A. RECOVERY_CATALOG_OWNER.
C. RESOURCE.

Attempting point-in-time recovery in RMAN :until time、until sequence、until SCN.

expired:The backup set contains one or more missing backup set pieces.使用‘crosscheck’检查控制文件
或者catalog目录的记录跟备份文件是否一致,不一致 则使用‘delete expired backup’删除控制文件或
恢复目录的记录,但是不会删除磁盘的备份文件。

Backup as compressed backupset duration 2:00 minimize load database;

report unrecoverable database;

expired 是不在了、obsolete 是不要了

*
duplication of the ORCL database to the ORCL2 database:
Set oracle_sid=orcl
rman target=sys/robert auxname=sys/Robert@orcl2
duplicate target database to neworcl from active database nofilenamecheck spfile
set control_files ‘c:\oracle\oradata\neworcl\control01.ctl’,’c:\oracle\oradata\neworcl\control02.ctl’
set db_file_name_convert ‘c:\oracle\oradata\orcl’,’c:\oracle\oradata\neworcl’
set log_file_name_convert ‘c:\oracle\oradata\orcl’,’c:\oracle\oradata\neworcl’;

the features of the I/O calibration process is: //I/O评估特性
A. Only one I/O calibration process can run at a time.//某一时间只能有一个线程运行
D. It can be used to estimate(评估) the maximum number of I/Os and maximum latency time for the system.
E. The latency time is computed only when the TIMED_STATISTICS initialization parameter is set to
TRUE.

Physical and logical block corruption is recorded automatically in V$DATABASE_BLOCK_CORRUPTION,
Physical corruptions are repairable by BMR.

通过rman可以修复坏块(11g):
1.RECOVER CORRUPTION LIST;
2.RECOVER DATAFILE 1201 BLOCK 1968;

AMM(Automatic Memory Management):MEMORY_TARGET !=0.

对于白天运行大型联机事务处理(OLTP) 作业(要求大型缓冲区高速缓存)和夜晚运行并行批处理作业(要求大型池的内存空间比较大)的系统,就必须同时配置缓冲区高速缓存和大型池,以便适应峰值需求。
有了ASMM 功能,当 OLTP 作业运行时,缓冲区高速缓存会获取大部分内存来保证良好的I/O 性能。以后启动数据分析和报告批处理作业时,内存又会自动迁移到大型池,供并行查询操作使用,而不会产生内存溢出错误。
ASMM(Automatic Shared Memory Management):MEMORY_TARGET =0 && sga_target !=0.
Manually Management SGA should configuration DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE
Configuring Automatic Shared Memory Management is default enables Automatic PGA Memory Management。
Manually Management pga should configuration SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE、CREATE_BITMAP_AREA_SIZE.

Heap tables、Indexes、Partitions and subpartitions is used to Segment Shrink.

ALTER TABLESPACE hi_data BEGIN BACKUP:
1.No transaction on the tablespace is allowed but you can perform queries.
2.The checkpoint change number is frozen in headers of the data files until the file is removed from
backup mode.

The steps to recover from the loss of a current redo log group member:
1.Issue a checkpoint and clear the log.
2.Perform incomplete recovery.
3.Relocate by renaming the member of the damaged online redo log group to a new location.
4.Open the database with the RESETLOGS option.

‘ALTER DISKGROUP dgroup1 UNDROP DISKS;’ means
It cancels all pending disk drops within the disk group.

‘REPORT NEED BACKUP days 3;’ means a list of files that require a backup within three days.

‘NLS_LANGUAGE’ means
1.Languages for server messages
2.Day and month names and abbreviations

3.Symbols to represent a.m., p.m., AD, and BC
4.Affirmative and negative response strings (YES, NO)

‘NLS_TERRITORY’ means
1.Date format
2.Decimal character
3.Group separator

快跟踪’ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE ‘/mydir/rman_change_track.f;只对incremental level 0级备份有效。

Before a Flashback Table operation, you execute the following command:
‘ALTER TABLE employees ENABLE ROW MOVEMENT;’//开启行迁移,因为行ID在闪回操作中可能会改变。
flashback 恢复数据,表外键不能被恢复

21.2.4 Workload Capture Restrictions(限制):
1、The following types of client requests are not captured in a workload in the current release:
2、Direct path load of data from external files using utilities such as SQL*Loader
3、Shared server requests (Oracle MTS)
4、Oracle Streams
5、Advanced Replication streams
6、Non-PL/SQL based Advanced Queuing (AQ)
7、Flashback queries
8、Oracle Call Interface (OCI) based object navigations
9、Non SQL-based object access
10、Distributed transactions (any distributed transactions that are captured will be replayed as local transactions)
11、Remote DESCRIBE and COMMIT operations

SQL*Loader:

conventional path
1、使用commit
2、始终生成重做条目
3、强制所有约束条件
4、出发insert 触发器
5、可加载到聚簇表中
6、允许其他用户在加载操作过程中修改表
7、每次插入时维护索引条目

direct path
1、使用数据库保存提交
2、只在特定条件下生成重做条目
3、只强制primary key、unique和 not null
4、不出发insert 触发器
5、不加在到聚簇表中
6、阻止其他用户在加载过程中更改表
7、加载结束时合并新索引条目

常规路径加载通过执行SQL INSERT语句,将表填充到Oracle DB 中。直接路径加载通过格式化Oracle 数据块并将其直接写入数据库文件,消除了大部分Oracle DB 开销。直接加载不与其他用户争用数据库资源,因此其数据加载速度通常与磁盘速度相差无几。常规路径加载使用SQL 处理和数据库COMMIT操作来保存数据。插入记录数组后要执行COMMIT操作。每次数据加载可能涉及多个事务处理。
直接路径加载使用数据保存将数据块写入Oracle 数据文件。这就是为什么直接路径加载比常规路径加载快很多的原因。
通过以下特性可区分数据保存与COMMIT的差异:
• 在数据保存期间,只有完整的数据库块才写入数据库中。
• 这些块是在按照表的高水位标记(HWM) 写入的。
• 完成数据保存后,HWM 会移动。
• 完成数据保存后不会释放内部资源。
• 完成数据保存不会结束事务处理。
• 每次执行数据保存时不会更新索引。

CREATE DISKGROUP dgroup1 NORMAL REDUNDANCY
FAILGROUP controller1 DISK ‘/devices/diska1’, ‘/devices/diska2’
FAILGROUP controller2 DISK ‘/devices/diskb1’, ‘/devices/diskb2’ ;

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT;
//设置备份介质为磁带

RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE sbt TO 2;
//备份数据文件到磁带,两份拷贝

Before transporting a tablespace from a database on one platform to a database on another platform,must be:
1.Both source and target database must be the same character set.
2.Both source and target database must have the same endian format.
3.The minimum compatibility level for both the source and target database must be 10.0.0.

ALTER TABLE trans SHRINK SPACE CASCADE;

Flash back:
1. FLASHBACK TABLE

TO SCN ;
2. SELECT * FROM
AS OF SCN 123456;
3. FLASHBACK TABLE
TO BEFORE DROP;
4. FLASHBACK DATABASE TO TIMESTAMP ;
5. SELECT * FROM
VERSIONS AS OF SCN 123456 AND 123999;

CREATE DISKGROUP misc EXTERNAL REDUNDANCY
DISK ‘ORCL: FRA3’ NAME misc1, ‘ORCL: FRA4’ NAME misc2;

rebalancing cause:
ALTER DISKGROUP misc MOUNT;
ALTER DISKGROUP misc CHECK ALL NOREPAIR;

只有改变磁盘组的大小才会促发重新平衡操作。

闪回事务处理4个先决条件:
1.grant select any transaction to user;
2.grant execute on dbms_flashback to user;
3.alter database add supplemental log data;
4.alter databse add supplemental log data(primary key) columns;

‘RESUMABLE_TIMEOUT’表空间资源细粒度控制

‘STATISTICS_LEVEL’控制数据库收集统计信息的级别,有三个参数值:
1、typical—收集大部分统计信息(数据库的默认设置).
2、basic —-收集基本的统计信息.
3、all——-收集全部统计信息,如果设置为BASIC,则内存自动管理功能就不支持了,所以就报以上的错误.
其实可能还同时报错如下:
ORA-00848:STATISTICS_LEVEL cannot be set to BASIC with SGA_TARGET or MEMORY_TARGET 实验说明SGA_TARGET and MEMORY_TARGET可以同时set,
而从官方文档看出STATISTICS_LEVEL initialization parameter must be set to TYPICAL (the default) or ALL

因为是users表空间的数据文件损坏,不是关键数据文件损坏,即可以使用数据文件offline下进行恢复。又因为是image copy,所以可以使用switch to来还原数据文件,也可以使用restore to来还原数据文件。最后恢复文件,使数据文件online,然后再打开数据库。

Memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)

data dictionary view:
1.stored in the system tablespace;
2.owned by sys user

表空间在线备份 …begin backup,数据库必须处在归档模式。

You need to restore your database back to 9/30/2008 at 18:00.
In what order would you run the following commands to compete this task?
a. restore controlfile until time
09/30/2008:18:00:00';
b. restore database until time
09/30/2008:18:00:00’;
c. restore spfile until time
09/30/2008:18:00:00';;
d. recover database until time
09/30/2008:18:00:00’;
e. alter database open resetlogs;
f. alter database open;
A. b, d, e
B. b, d, f
C. c, a, b, d, e
D. c, a, b, d, f
E. a, b, d, e
Answer: A

316.Given a complete loss of your database, in what order would you need to perform the following
RMAN operations to restore it?
a. restore controlfile
b. restore database
c. restore spfile
d. recover database
e. alter database open
f. alter database open resetlogs
A. b, a, c, d, e
B. a, c, b, d, f
C. c, a, b, d, e
D. c, a, b, d, f
E. e, a, b, d, c
Answer: D

321.True or false: RMAN offers the equivalent(同等) of the SQL command alter database backup controlfile to
trace.
A. True
B. False
Answer: B

0x0000006B:PROCESS1_INITIALIZATION_FAILED

rman debug:
DEBUG选项用于:
– 查看生成的PL/SQL
– 准确判断RMAN 命令在何处挂起或出错
• DEBUG选项是在RMAN 提示符下或者在run 块内指定的。
• DEBUG选项会创建大量输出,因此要将输出重定向到跟踪文件:
$ rman target / catalog rman/rman debug trace trace.log

savepoint:
指定savepoint可以任意回滚到指定的保存点,但是如果事务提交了(commit,rollbak)就不能回滚到保存点了。
for update:
会锁住符合条件的行数据,只有在commit、rollback才会结束事务。
union:
在union语句中,order by字句只能出现在最后一个select子句中。union不允许有重复值,也包括非空。
INTERSECT 交集
MINUS 补集

子查询-subquery:
子查询嵌套最大级别为255,
可以从一个表或多个表查询数据
If the subquery returns 0 rows, then the value returned by the subquery expression is NULL.

natural join:指明了两表进行自然连接,并且连接是基于两表中所有同名字段的,等同于using(col1[,col2]…),注意两个表自然连接同名字字段最好不能超过1个,不然会当作条件连接起来查询。
because a column used in the NATURAL join cannot have a qualifier.(使用在自然连接的列不能有限制条件),自然连接自动判断相同名称的列,而后形成匹配.

between: 左闭又开 [)。

oracle加载参数文件顺序:
spfile.ora
spfile.ora
pfile.ora
pfile.ora

undo:
多个事物可以共享同一个段。

重演的步骤:(record workload captured)
Resolving References to External Systems
Remapping Connections
Specifying Replay Options
Using Filters with Workload Replay
Setting Up Replay Clients

RMAN> run {
debug on;
allocate channel c1 type disk;
backup datafile 5;
}

DEBUG选项用于:
– 查看生成的PL/SQL
– 准确判断RMAN 命令在何处挂起或出错
• DEBUG选项是在RMAN 提示符下或者在run 块内指定的。
• DEBUG选项会创建大量输出,因此要将输出重定向到跟踪文件:
$ rman target / catalog rman/rman debug trace trace.log

DEBUG选项显示在RMAN 编译期间执行的全部SQL 语句以及执行结果。另外,还显示恢复目录PL/SQL 程序包生成的所有信息。

661.View the Exhibit and examine the output.
You execute the following RMAN command to perform the backup operation:
RMAN> RUN {ALLOCATE CHANNEL c1 DEVICE TYPE disk MAXOPENFILES 8;
BACKUP DATABASE FILESPERSET 4 ;}
What is the multiplexing level in the preceding backup process?
auswer:the level of multiplexing is simply the smallest number among FILESPERSET, MAXOPENFILES and total number of datafiles。
You can calculate the level of multiplexing as follows:
Multiplexing = Min (Min (DATAFILES,FILEPERSET) , MAXOPENFILES)

临时表文件损坏,需要恢复。首先手动创建个临时表文件,切换到好的临时表文件把损坏的临时表文件删除。

灾难恢复包括在丢失了整个目标数据库、所有当前控制文件、所有联机重做日志文件、所有参数文件和恢复目录数据库(如果有)后还原和恢复目标数据库。
要执行灾难恢复,至少需要以下备份:
• 数据文件的备份
• 在备份之后生成的相应归档重做日志
• 至少一个控制文件自动备份
基本过程:
• 还原服务器参数文件的自动备份。
• 启动目标数据库实例。
• 从自动备份还原控制文件。
• 装载数据库。
• 还原数据文件。
• 恢复数据文件。
• 使用RESETLOGS选项打开数据库

block change tracking:

Note:
In an Oracle RAC environment, the change tracking file must be located on shared storage accessible from all nodes in the cluster.
RMAN does not support backup and recovery of the change tracking file.
The database resets the change tracking file when it determines that the change tracking file is invalid.
If you restore and recover the whole database or a subset, then the database resets the block change tracking file and starts tracking changes again.
After you make a level 0 incremental backup, the next incremental backup can use change tracking data.

ASM disks:
CREATE DISKGROUP语句,该语句的语法如下:
CREATE DISKGROUP diskgroup_name
[ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]
[ FAILGROUP failgroup_name ]
DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] …;

•首先要指定的就是磁盘组名称(diskgroup_name);
•指定冗余度,有三个选择:HIGH(高度冗余>三路)、NORMAL(标准冗余–双路)和EXTERNAL(外部存储冗余);
•选择是否指定FAILGROUP(如果选择非external则必须指定);
•指定该磁盘组中的成员(对应的LUN),在指定成员时一般ASM能够自动检测出磁盘的容量,不过如果DBA基于某些方面的考虑,希望限制ASM使用的空间的话,也可以在指定成员过程中,顺便指定大小(只要指定的大小不超出磁盘实际容量),在添加成员时,ASM也会自动检查磁盘头以确定该磁盘是否被加入到其它的磁盘组中,当发现该盘已加入其它磁盘组的话,你可以通过FORCE选项来强制修改该盘所属磁盘组。

  1. FLASHBACK TABLE

    TO SCN ;

  2. SELECT * FROM

    AS OF SCN 123456;

  3. FLASHBACK TABLE

    TO BEFORE DROP;

  4. FLASHBACK DATABASE TO TIMESTAMP ;

  5. SELECT * FROM

    VERSIONS AS OF SCN 123456 AND 123999;

1.闪回表原理是还原数据。

2.闪回查询是还原数据。

3.闪回删除是回收站原理。

4.闪回数据库是基于闪回日志。

5.闪回版本查询是基于还原数据。

SQL Tuning Advisor recommendations fall into the following categories:

Statistics analysis
SQL profiling
Access path analysis
SQL structure analysis

SQL Access Advisor:
• New procedures.
• In addition to its usual table, index, materialized view, and materialized view log recommendations, the advisor now also recommends partitioning of tables, indexes, and materialized views.
• Reporting of intermediate results at publish points.

Windows:
1、You create windows to automatically start jobs or to change resource allocation among jobs during various time periods of the day, week, and so on
2、Windows work with job classes to control resource allocation.
3、Because only one window can be active at one time,
4、You typically create windows only when you are in the role of Scheduler administrator.

database transporting (diff platform):
1、Both source and target database must be the same character set
2、Both source and target database must have the same endian format
3、The minimum compatibility level for both the source and target database must be 10.0.0.
不同的操作系统之间数据库传输,在oracle 10.0版本才支持。

把备份的数据库恢复到另外一台主机,可以使用recovery catalog恢复数据文件,然后使用switch命令修改数据文件的位置.

提交数据有三种类型:
显式提交、隐式提交及自动提交。下面分别说明这三种类型。
1、显式提交:用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;
2、隐式提交:用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
3、自动提交:若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON;

duplicate database:
connect target sys/sys@appdb;
run {
duplicate target database to dupdb from active database
db_file_name_convert ‘/u01/app/oracle/appdb/’ ,’u01/app/oracle/dupdb’
set sga_max_size =300m
set sga_target=250m
set log_file_name_convert ‘/u01/app/oracle/appdb/redo/’ ,’u01/app/oracle/dupdb/redo’;
};

hot backup:
alter database users begin backup;//
根据In backup mode, the database copies whole changed data blocks into the redo stream.说明,在备份模式下,事务产生的日志会放在redo stream里面,
在热备份模式下,可以进行查询和事物操作。

LOG_ARCHIVE_DEST_n
where:
n is an integer from 1 to 31.Archive destinations 1 to 10 are available for local or remote locations.Archive destinations 11 to 31 are available for remote locations only.)

oracle 11g 在windows安装,通过 sqlplus / as sysdba登录

SQLNET.AUTHENTICATION_SERVICES=NTS
ORA-12638  身份检索失败

SQLNET.AUTHENTICATION_SERVICES=ALL
ORA-12641 服务无法初始化

SQLNET.AUTHENTICATION_SERVICES=NONE
ORA-01031 : 权限不够

!/bin/sh

su - oracle

source /home/oracle/.bash_profile

$ORACLE_HOME/bin/rman log /home/oracle/rman/rman_bk_Full_date +%Y%m%d-%H%M.log <

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 19c OCP全程课堂笔记是一份详细记录Oracle数据库19c版本OCP培训课程内容的笔记。这个课程旨在为数据库管理员和开发人员提供深入的Oracle数据库知识,并帮助他们准备并通过Oracle Certified Professional (OCP)认证考试。 课程的第一部分主要介绍了Oracle数据库的概述,包括数据库的基本概念、架构和体系结构。学员学习了如何安装和配置Oracle数据库19c,并了解了数据库实例、表空间、数据文件等关键组件。 在第二部分中,学员学习了如何管理数据库对象,包括表、索引、视图和存储过程。他们还学习了如何使用Oracle数据字典来查询和管理数据库元数据。 第三部分重点讲解了Oracle数据库的性能优化和故障排除。学员学习了如何监视和调整数据库性能,并学习了使用工具和技术来解决常见的数据库问题。 在第四部分中,学员学习了如何备份和恢复Oracle数据库。他们了解了不同类型的备份和恢复策略,并学习了如何使用RMAN工具执行备份和恢复操作。 第五部分介绍了Oracle高可用性和数据保护解决方案。学员学习了如何配置和管理数据保护功能,如数据镜像、数据卷和故障转移。 最后,课程结束前,学员进行了一系列实践实验和案例研究,以加深对所学知识的理解和应用。 通过参加Oracle 19c OCP全程课堂,学员可以全面了解Oracle数据库的各个方面,并为OCP认证考试做好充分准备。这些课堂笔记提供了课程内容的详细记录,学员们可以通过复习这些笔记来巩固所学知识并进行复习,以便在考试中取得成功。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值