Created
October 22, 2014 09:14
-
-
Save chenzx/df94ec74d5a0093dda53 to your computer and use it in GitHub Desktop.
深入理解Oracle 12c数据库管理
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
深入理解Oracle 12c数据库管理 | |
跳转至: 导航、 搜索 | |
目录 | |
1 安装Oracle | |
2 实现数据库 | |
3 配置高效环境 | |
4 表空间和数据文件 | |
5 管理控制文件、联机重做日志和归档 | |
6 用户账号和基本安全 | |
7 表和约束 | |
8 索引 | |
9 视图、同义词和序列 | |
10 数据字典的基本结构 | |
11 大对象 | |
12 分区:分而治之 | |
13 数据泵 | |
14 外部表 | |
15 物化视图 | |
16 用户管理的备份与恢复 | |
17 配置RMAN | |
18 RMAN备份和报告 | |
19 RMAN恢复操作 | |
20 Oracle安全备份 | |
21 作业自动化 | |
22 数据库疑难答疑 | |
23 可插拔数据库 | |
安装Oracle | |
OFA标准: | |
清单目录 | |
基础目录(ORACLE_BASE) | |
主目录(ORACLE_HOME) | |
网络文件目录(TNS_ADMIN) | |
自动诊断库(ADR_HOME) | |
p5 基础版可免费下载,任何后续补丁需要许可证? | |
OS组:oinstall dba oper asmdba asmadmin backupdba dgdba kmdba | |
$ cat 10gr2_db_so1.cpio.gz | gunzip | cpio -idvm | |
创建oraInst.loc文件 | |
配置应答文件 | |
$ find . -name "*.rsp" | |
$ ./runInstaller -ignoreSysPrereqs -force -silent -responseFile .../inst.rsp | |
使用已安装程序的副本安装 | |
附加主目录 | |
p16 升级Oracle软件和升级数据库不是同一个概念 | |
p17 不允许以覆盖原有程序的方式安装新软件? | |
安装临时补丁(opatch)? | |
使用图形界面的远程安装 | |
xhost? | |
实现数据库 | |
设置OS变量:oratab/oraenv | |
初始化文件:spfile/init.ora | |
创建必需的目录(?) | |
创建数据库 | |
$ sqlplus / as sysdba | |
SQL> startup nomount | |
如果CREATE DATABASE出现错误,可检查警告日志 | |
配置listener(使得可以远程连接) | |
listener.ora --> lsnrctl start | |
netca ? | |
创建密码文件(可选) | |
OS认证(有OS权限的,可以输入错误密码进入!) | |
SQL> shutdown immediate; | |
使用dbca(图形界面)创建数据库 | |
了解Oracle体系结构 | |
配置高效环境 | |
PS1='[\h:\u:${ORACLE_SID}]$ ' | |
SQL> SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER.> ' | |
alias lsd='ls -altr | grep ^d' | |
*编写shell函数 | |
$ history 5 && !276 | |
!! | |
开发标准脚本:login.sql top.sql lock.sql users.sql | |
表空间和数据文件 | |
5个表空间:SYSTEM SYSAUX UNDO TEMP USERS | |
控制重做日志 | |
create tablespace xxx datafile '/.../data01.dbf' size 100m .... nologging; | |
ORA-01578错误(损坏的数据块) | |
更改为只读 | |
drop tablespace xxx including contents and datafiles cascade constraints; | |
OMF | |
create bigfile tablespace xxx ...(无法扩展尺寸) | |
create tablespace xxx .... DEFAULT ROW STORE COMPRESS ADVANCED; | |
alter tablespace users offline; | |
12c: alter tablespace xxx move datafile <path1> to <path2>; | |
管理控制文件、联机重做日志和归档 | |
SQL> show parameter control_files; | |
REDO日志 | |
‘归档日志模式’ | |
丢失了redo情况下保护数据:Oracle DataGuard,MOS 239100.1 | |
日志组 | |
FRA? | |
用户账号和基本安全 | |
SYS vs SYSTEM | |
default_pwd$ | |
密码安全性设置:FAILED_LOGIN_ATTEMPTS PASSWD_LIFE_TIME ...(profile表) | |
resource_limit | |
表和约束 | |
DDL语句自动提交,DML则需要明确COMMIT/ROLLBACK | |
表类型 | |
数据类型 | |
varchar2(30 char):注意,默认按byte,最长4000B? | |
INTERVAL? | |
RAW(2000B => 32767B) | |
p7 为所有表创建数值代理主键(通过sequence生成)? | |
11g 虚拟列:col_name generated always AS (case when .. then .... end) | |
12c 隐藏列:invisible 确保添加列不会破坏现存应用的代码 | |
11g 只读表:read only | |
11gR2 延迟段 | |
12c 插入时自动增长的列:... number generated as identity (start with 5 increment by 2) | |
其实相当于是一个‘语法糖’ | |
注意:序列值不会回滚(溢出了怎么办?) | |
并行度:parallel N | |
12c 表压缩* | |
NOLOGGING可以大幅度减少下列操作生成的redo日志: | |
SQL*Loader直接路径加载 | |
直接路径的INSERT /*+ append */ | |
CREATE TABLE AS SELECT(CTAS) | |
ALTER TABLE MOVE | |
创建和重建索引 | |
修改表 | |
删除列之前,建议先重命名它(DBA的良好习惯!) | |
直接drop (col) ==> 先set unused (col)再drop unused columns; | |
显示表的DDL | |
exp/imp | |
数据泵 | |
DBMS_METADATA | |
恢复已删除的表(回收站?) | |
SQL> show recyclebin; | |
SQL> flashback table xxx to before drop; | |
删除表中数据 | |
SQL> truncate table xxx reuse storage; | |
查看和调整高水位线标记 | |
Autotrace/DBMS_SPACE | |
创建临时表 | |
... on commit delete rows; | |
创建索引组织表(IOT) | |
管理约束*(见鬼,Oracle的控制粒度也太细了) | |
索引 | |
&变量:define index_size=100m --> &&index_size | |
index_stats视图:analyze index cust_idx1 validate structure; | |
多重索引 | |
create index cust_idx2 on cust(first_name, last_name); | |
create bitmap index cust_bmx1 on cust(first_name, last_name) invisible; | |
基于函数的索引:... on cust(func(col1)) | |
唯一索引:create unique index ... | |
位图索引 | |
位图连接索引 | |
... | |
维护索引 | |
alter index xxx unusable/rebuild/monitoring usage | |
外键列索引 | |
p216 如果外键列上没有索引,当向子表插入记录或删除记录时,父表所有行都会被锁定 | |
视图、同义词和序列 | |
create or replace view ... with check option; | |
create or replace优点:如果是先删除再重建,则需要重新赋予角色视图权限 | |
... with read only; | |
可更新的连接视图 | |
被更新的列必须属于‘键保留表’ | |
instead of 触发器* | |
rename xxx to yyy | |
drop view | |
任何依赖该视图的视图、物化视图、同义词(create synonym)都会失效,相关权限也会被删除 | |
序列伪列:nextval/curval | |
数据字典的基本结构 | |
静态视图:user/all/dba/cdb | |
动态视图:v$ gv$ | |
x$基础表 | |
大对象 | |
LOB定位器 -> LOB索引 -> LOB块 | |
BFILE列:存储路径和文件名 | |
区分BasicFiles和SecureFiles | |
... store as basicfile/securefile (tablespace xxx); | |
分区表LOB | |
可通过range、list、hash子句 | |
SecureFiles高级功能 | |
压缩:... (compress high) ... | |
去重:... (deduplicate) ... | |
加密:... (encrypt) ... 透明加密技术(TDE)? | |
加载LOB | |
先创建目录对象:create or replace directory load_db as '/...'; | |
分区:分而治之 | |
11g 根据父表分区:partition by reference | |
虚拟列分区(其实可以视为函数/hash分区吧) | |
应用控制的分区(其实就是应用自定义hash函数) | |
insert into tbl partition(p1) values(...); | |
?通过现存的表交换分区 | |
~stl::swap | |
索引分区 | |
本地索引:局部前缀 vs 局部非前缀 | |
全局索引:使用与表不同的分区策略* | |
12c 部分索引:indexing on/off | |
分区修剪:查询使用了分区键 | |
数据泵 | |
expdp/impdp/DBMS_DATADUMP | |
一致性导出: | |
select current_scn from v$database; | |
expdp mv_maint/foo directory=dp_dir full=y flashback_scn=5715397 dumpfile=full.dmp | |
交互模式(Ctrl+C) | |
监控作业* | |
外部表 | |
直接读取CSV:... organization external(type oracle_loader access parameters( | |
records delimited by newline | |
fields terminated by '|' | |
物化视图 | |
用户管理的备份与恢复 | |
配置RMAN | |
RMAN备份和报告 | |
RMAN> backup as backupset incremental level=0 database; | |
p489 0级备份用于恢复数据文件,1级用于恢复已提交的事务 | |
块修改跟踪 | |
SQL> alter system set db_create_file_dest='/u01/012c/bct' scope=both; | |
SQL> alter database enable block change tracking; | |
RMAN恢复操作 | |
p519 怎么在软件测试时模拟物理坏块? | |
不完全恢复 | |
restore databse until | |
flashback database | |
Oracle安全备份 | |
OSB磁带备份? | |
作业自动化 | |
数据库疑难答疑 | |
可插拔数据库 | |
Multitenant:多租户容器数据库(CDB) | |
DBCA |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment