深入理解Oracle 12c数据库管理 笔记
2014-10-22 17:10
519 查看
深入理解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 SYSTEMdefault_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_sizeindex_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
相关文章推荐
- 对oracle使用rman duplicate管理复制数据库的一点理解
- 深入理解Oracle RAC 12c 笔记
- 源码-Oracle数据库管理-第十七章-动态SQL语句-Part 1(理解动态SQL语句)
- 超详细Oracle 12c数据库对象管理操作
- 【数据库学习笔记】Oracle_03_PL/SQL深入:游标编程,自定义异常
- 三、Oracle数据库之学习笔记---Oracle的表的管理
- 源码-Oracle数据库管理-第十五章-触发器和游标-Part 2(理解触发器)
- Oracle 9i & 10g编程艺术-深入数据库体系结构-学习笔记(持续更新中)
- 源码-Oracle数据库管理-第十五章-触发器和游标-Part 4(理解触发器)
- 理解及应用 Oracle 12c 插拔数据库
- oracle笔记——第四天:数据库管理
- [jjzhu学java]深入理解JVM笔记之内存管理机制
- 深入理解Oracle RAC 12c 笔记
- 深入理解JVM笔记之内存管理机制
- Oracle学习系列笔记------数据库登陆、表空间管理
- 数据库隔离级别深入理解(ORACLE)
- 安装oracle 12c 用Navicat for oracle连接数据库cannot load OCI DLL,193 笔记
- oracle变成艺术 深入理解数据库体系结构 第三版 目录
- [Oracle] 炼数成金Oracle 12C RAC集群原理与管理实战 + 玩转数据库 释放数据价值
- 【数据库学习笔记】Oracle_01_sql*plus,存储结构,用户管理,常用数据类型