ocp原厂培训笔记(第十天)
来源:互联网 发布:沧州电脑网络销售培训 编辑:程序博客网 时间:2024/04/29 15:10
scn_wrap.
scn_base
select current_scn from v$database;
察看当前数据库的scn值。
select timestamp_to_scn(sysdate) from dual;
察看时间片对应的scn值
select scn_to_timestamp(959044) from dual;
oracle
平均每5分钟同步表里的信息。 12*12*5
scn 增长,最先增长到 scn_base,
当scn增长到上限,则 scn_wrap自动增一。
select max(scn_bas) from smon_scn_time;
当前最大的scn数值。
select eimp_dp,scn_wrap*65536*65536+scan_base scn from smon_scn_time;
||||||||||||||||||||||||||
14章
task 任务:
传统 是 exp,imp
10g expdp,impdp
相比exp,imp,
expdp、impdp是一个任务。
任务都可以restart的。
(支持断点续传)
如何用job来创建schema.
job chains在 oracle10g里实现不了。(10g 里面 实现不了,是一个bug)
schedule 自动化任务,
月结,日结,备份,都可以用任务来进行调度。
对应的程序包 dbms_job.
when:什么时间点去执行。
what :要执行什么,
administration->scheduler jobs->create job
name job1,schema scott.
block
execute immediate 'alter index pk_index rebuild'; -- ddl 语句必须这么玩
schedule: repeat
自动做和不自动做
job=program+schedule+job attributes
创建program p460面
database schedule->program
schedul就是一个调度时间安排表,(可以调用program,program可是是一个sh脚本)
job 里面使用schedue,选择predefined schedue.
creating program->creating and using schedules->creating and running a job->monitor a job
准备ocm考试的时候,最好背大量的语句。
根据事件来触发调度:
当某个情况出线,将触发一个schedule( 这个可以查看14章的练习)
建立一个基于事件的job,
db_util_sntp
调度的时候,系统中也有些job。
job 开启了,成功了,失败了
veritas 使用的其实也是 schedule.
在某一天不需要做什么动作。(exclude)
包含某个月的某个日期。(include)
网上公开的设置schedule的办法(什么书)
job1,如果成功了,做job2,如果失败了做job3,如果job2 失败了就返回99,成功了返回0
定义job chain,定义步骤。
步骤定义完了,再定义规则,(满足条件才能执行规格),最后enable jobchain,开始一个chain. p478
name conditon
rule1 1=1 action
rule2 :step1.state="succeed" start step1
拷贝ppt:挂接program+schedue.
创建job class
create job class
name:jobclass1
选择resoufce group 组。
可见job class主要就是设置资源组。
job里面,如何挂接 job class.
默认情况下是defualt jobclass.
window:
和schedule 非常相象。
plan 1(包含了 组一和组2的资源分配)
windows 在调度的时候,是受哪个resource plan的限制。
每个window 总是包含了:一个挂接的resouce plan,一个是挂接的schedule,你也可以设置自己的schedule。
job class,预定义的schedule 还是预定义的job.
整个job玩的流程。
job的优先级别,优先级别越高,调度的越快。
window 限制了时间窗,做不完就做不完。(for example 早上6点以前自动会停止,下一天晚上才会执行)
ORACLE transparent Data Encryption:TDE
安全加密
使用加密钥匙
OWM:建立秘钥
调用owm:(oracle 钱包管理)
owm
调用oracle wallet manager
配置 sqlnet.ora 中间就可以包含这些内容了。
配置sqlnet.ora的方法:
修改sqlnet.ora
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=/opt/oracle/product/10.2.0/db_1/)))
alter system set encription key identified by ....;
alter system set encription key identified by zao123wsx;
alter system set encription wallet iedentfied by zao123wsx;
打开之后,再建立表,会出现加密的方式。
create table testt(id number,sal number encrypt,name varcha2(40) encrypt no salt);
(如果不选择no salt,必须要有随机串)
默认的加密算法AES 192
directory 下会出现这样一个文件 ewallet.pl2
SYS 用户下,不能被加密,LONG 和 LOB 不能加密。
如果对索引列加密,必须加no salt.
c/test/testt/
如果没打开wallete ,就不能看到加密的列。如果查询没有 加密的列,是可以找回来的。
拷贝的时候 是,(create table testf as select * from testc;)
这个testf是不会被加密的。
DBAI手册:加入老师的群。
mkstore.
datapump的方法,有一个结果集,删除操作系统文件的时候,oracle仍然会去找。
reject limit unlimited: 导入的时候,把被拒绝的方法放一边,把没拒绝的拿进来。
rman 备份加密:
transparent 加密
password模式加密,restore的时候,必须要口令
dual mode:双重加密,既要带开wallet钱包,又加上口令来加密。
test:
transparent 加密
rman target /
RMAN>show all;
RMAN .CONFIGURE ENCRIPTION FOR DATABASE ON;
password 加密
set encription on identfied by password only
set decryption identfied by password {,password2,...,passwordn)
组合加密:
set encryption on identified by oracle;
RMAN>BACKUP FORMAT ‘/u01/app/oracle/%U.users' tablespace users;
test:
set encryption on identified by oracle only;
backup format '/u01/...test/users.bak' tablespace users;
rman > restore tablespace users;
这个时候就会报错了。
RMAN> set decryption identfied by oracle;
RMAN>restore tablespace users;
这样才能restore成功。
实验。
查看rman 支持的加密算法:
select * from v$RMAN_ENCRYPTION_ALGORITHMS;
VPD的作用是什么?
select * from emp;
某个人是10号部门。
限制某个人只看自己部门的。自动在select 后面加 where 条件。
这个就是 VPD。
(自动在访问的时候加一个谓语动词,这个在全库级别设置的,在行级别限制访问容量);
select * from abc;(执行时间超过 某个时间段,就不执行)(增加一个加密列,也可以)
强制增加某些限制来访问某些行,这个是可以通过列来指定。
1>谁最先访问,别人访问都只能这么访问。
2>根据users不同,访问的范围有所不同。
oracle 10g new feature里面可以查看1>,2>个属性。
策略类型可以是 index,
策略类型是谓语动词,最大 32K。
用列来控制访问的条件。
dbms_rls.add_policy :增加一个policy
test的过程
sql>desc customers;
sql>select account_mgr_id,count(*) from customers group by account_mgr_id;
sql>create context order_ctx using oe.orders_app_pkg; (创建上下文,利用这个package)
创建package
create or replace package oe.orders_app_pkg
IS
procedure show_app_context;
procedure set_app_context;
function the_predicate
(p_schema varchar2,p_name varchar2)
return varchar2;
end varchar2;
end orders_app_pkg;
要注意的几个环节
生成,打开wallet钱包,
用rman 钱包。
oracle online evaluation
2185314
评估。
字符集的
oracle 下面安装oracle,选择american,字符集合又用成zh**k.
环境变量和字符集不匹配了。
需要修改nls_lang
面向全球支持的字符集:
多语言排序
拼音,比画,部首
ascci-7,单字节,
一般支持128个字符。(ascci-7)
8位码
支持256个字符
zhi16GBK 面向中国的双字节
utf8:面向全亚洲的(2个,3个,4个字节都可以代表一个汉字)
同样的汉字,为什么插入的个数不一样。
繁体字,4个字节(增补字符集)
utf8面向全亚洲的时候,可以用2,3,4代表字节。
AL32UTF8:用不同的宽度代表你的编码。
对于亚洲的字符,一般用3个字符代表,对于增补字符集合,一般用4个字节表示一个字符。
对于汉字来说,某些必须用到增补字符集。48
NLS_LANG:语言地域字符集
desc props$;
select name,values$ from props$ where name like '%CHARACTER%';
select name from ,values from nls_database_parameters where parameter like '%CHARACTERSET%';
desc database_properties;
desc nls_database_parameters;
国际字符集 本地字符集的区别:
国际字符集是一个增补的过程。
设置的时候避免问题,
不要用props$来修改字符集。
我们只能用:
alter database set characterset 来修改字符集
从单字节改成双字节没有问题。
从双字节改成单字节会有问题。(internal used,不建议修改)
database 怎么修改,
block块size 怎么修改,直接修改blocksize.metalink里面有文档。
character set
nantional character set : union code
exp
选择字符集:
亚洲项目,utf8,兼容中日韩字符集。
数据库字符集和national 字符集
对于national 字符集,必须设置为 union code.
基于语言的行为:
先把语言读进来,用环境变量覆盖初始化参数,session级别可以覆盖环境变量和数据库的方式。
可以用排序选项(sql function)覆盖上面所有的。
conn / as sysdba
show paramaeter sql_trace;
alter session set sql_trace=true; 56
设置正确的语言,地域,字符集。
language 和地域相关的参数
dd-mon-rr :千年之后 RR和 yy就没有区别了。
在荷兰: ,=小数点 小数点 =千位符
alter session set NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
p60面
一般排序,用二进制
还可以用拼音,笔画,部首排序
设置 NLS_SORT PARAMETER: 可以修改查询级别,修改默认的一个排序规则。
SQL> ALTER SESSION SET NLS_SORT=BINARY;
Session altered.
SQL> SELECT fr_word
2 FROM words
3 ORDER BY fr_word;
FR_WORD
-------
gelez
gelé
gelée
gèle
SQL> SELECT fr_word
2 FROM words
3 ORDER BY NLSSORT(fr_word,'NLS_SORT=FRENCH_M');
FR_WORD
--------
gèle
gelé
gelée
gelez
NLS_SORT
_AI 不区分重音
_CI 不区分大小写。
Specify the linguistic name:
• Examples:
• Specify the sort action for WHERE clauses and
PL/SQL blocks:
• Useful for migrated databases
NLS_SORT = <NLS_sort_name>[_AI | _CI]
NLS_SORT = FRENCH_M_AI
NLS_SORT = XGERMAN_CI
NLS_COMP = BINARY | ANSI | LINGUISTIC
start with: 用一条命令把组织架构图搞出来。
p66
以排序规则设置索引
Linguistic Index Support
• Create an index on linguistically sorted values.
• Rapidly query data without having to specify
ORDER BY clause and NLSSORT:
• Set the NLS_SORT parameter to match the
linguistic definition that you want to use for the
linguistic sort when creating the index.
CREATE INDEX list_word ON list (NLSSORT(word, 'NLS_SORT=French_M'));
SELECT word FROM list;
clob->nclob 隐含转换 ,完全透明的。经常会发生在参数传递的过程中。
sqlloader
导入导出 一定要注意字符集。
在不同平台字符集之间导入导出一定要注意字符集是否匹配兼容。
如果字符集不一致,怎么做,需要修改NLS_LANG这个参数。
Globalization Support Features
• Language support
• Territory support
• Character set support
• Linguistic sorting
• Message support
• Date and time formats
• Numeric formats
• Monetary formats
关于字符集的测试推荐 盖国强的博客。
sqlplus 只支持中文,
isqlplus 会读取操作系统中间的语言,会给你显示正常的字符集合。
除了rman之外,还可以做导入导出备份。
中国电信不敢开归档。(为什么?因为归档开启后,arc文件生产太多,很快就会把磁盘空间耗尽)
- ocp原厂培训笔记(第十天)
- ocp原厂培训笔记(第二天)
- ocp原厂培训笔记(第四天)
- ocp原厂培训笔记(第六天)
- ocp原厂培训笔记(第一天)
- ocp原厂培训笔记(第三天)
- ocp原厂培训笔记(第五天)
- ocp原厂培训笔记(第七天)
- ocp原厂培训笔记(第八天)
- ocp原厂培训笔记(第九天)
- OCP培训笔记-flashback
- OCP培训笔记-DataPump
- OCP培训笔记-External
- ocp培训第二天
- ORACLE PERFORMANCE TUNING 原厂培训.笔记1
- 第十天培训!!!
- OCP 培训经历
- ocp培训第一天
- C# 美化窗体(换肤)
- MPEG
- Windows与Vmware下的Linux文件共享方式1
- 设计模式总结-Observer模式
- ocp原厂培训笔记(第九天)
- ocp原厂培训笔记(第十天)
- 英国国立利兹都会大学工商管理博士项目介绍
- What??? You deleted "Default Web Site" from IIS?!?!
- JDK5.0垃圾收集优化之--Don't Pause
- oracle彻底卸载,出错无需重装系统
- VC中的消息分类
- MapXtreme 没有实现对 Feature 插入顺序的管理
- 交叉编译D-Bus之备忘录
- ASP.NET程序中常用的三十三种代码