Skip to content

Commit b26005f

Browse files
committed
add notes repo to this
1 parent 7f2e1a5 commit b26005f

File tree

14 files changed

+675
-0
lines changed

14 files changed

+675
-0
lines changed

database/nosql/neo4j/neo4j.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# neo4j
2+
### 安装
3+
#### Windows
4+
#### Linux
5+
- 下载安装包
6+
- 运行
7+
- 打开浏览器http://localhost:7474/browser/
8+
默认用户名密码均为neo4j
9+
10+
### 数据导入
11+
### 使用API
12+
### 查询语言 Cypher
13+
#### 定义点
14+
#### 关系
15+
#### 资料
16+
- http://www.uml.org.cn/sjjm/201203063.asp

database/oracle/20170811.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
### 作业调度
2+
- 定时任务
3+
- 比Linux操作系统的调度要完善
4+
- 备份,用Oracle内部的调度作业去做
5+
- 资源管理配合,占用资源合理
6+
- 作业链chains
7+
- 保存在字典表中,不易丢失
8+
- cjq 控制作业队列
9+
- 监控后台用户会话信息
10+
- plsql 查询并赋值
11+
- am 12:00pm--》中午十二点
12+
- 做什么?什么时候做?
13+
- 作业、调度、程序
14+
- 窗口(时间段)、窗口组(多个窗口)
15+
- 可以定义不规整的时间周期
16+
- 作业类 不同的作业类可以放在不同的组中
17+
- 资源管理器-》消费者群组-》作业组-》作业 避免过度占用资源
18+
- 多个作业-作业链,在多个作业之间掺杂起来
19+
20+
### 全球化支持
21+
- .bash_profile
22+
- 分级别
23+
- 整个 数据库级别 show parameter nls 影响所有用户 优先级最低
24+
- 每个用户的客户端 .bash_profile/注册表 影响当前用户 优先级较低
25+
- 会话 alter session 影响当前会话 优先级高于前两个 临时修改
26+
- sql 级别 影响一个语句 级别最高
27+
- nls_language
28+
- nls_date_format
29+
- NLS_LANG 语言_位置.客户端字符集(american_america.AL32UTF8)
30+
31+
### 多版本 读的开销大 一致性读取 SCN

database/oracle/20170814.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# 备份恢复
2+
## 概述
3+
- 关系数据库的备份恢复的机制原理都一样,差不多
4+
- 物理备份RMAN(磁盘的数据文件)、归档日志、完全恢复、不完全恢复
5+
- 恢复的场景
6+
- 针对任何文件丢失
7+
- 闪回(用户的误操作),以更小的代价来恢复。
8+
- 去IOE
9+
- sqlloder移动数据 逻辑备份
10+
- 自动化维护,不是优化
11+
12+
## 概念
13+
- 无故障平均时间 MTBF
14+
- 故障恢复时间 MTTR
15+
- 5个9 99.999% 可用性
16+
- 深入
17+
- rac集群,保证实例的可用。
18+
- 容灾:datagold,数据卫士。
19+
- goodgate,数据传输。
20+
- 优化:
21+
- 故障类型:
22+
- 语句故障-系统自动回滚。
23+
- 用户进程故障-进程监视器
24+
- 特殊场景:10个事务,只会恢复没有完成的事务。
25+
- 网络故障:监听、数据库、客户端。操作系统,防火墙,路由,交换机
26+
- 误操作
27+
- 解决方案1:传统方式,不完全恢复,数据库回退,代价太大
28+
- 解决方案2:flashback,闪回。Oracle特有。代价小。
29+
- 实例故障
30+
- 核心故障
31+
- 硬件故障
32+
- 下次启动会做清理工作,实例恢复
33+
- 介质故障
34+
- 预先做好备份
35+
- 保留足够的信息
36+
- 任何已经提交的事务都不会丢失。完全恢复。
37+
38+
## 配置可恢复性
39+
- 不敢保证不出现问题,但是出了问题都能恢复。
40+
- 避免单点故障
41+
- 磁盘上的每一个文件,都可能出问题,都要考虑保护、恢复策略,预案。
42+
- 前期工作很重要,不能丢数据,解决问题时间要短。
43+
- 五种类型的文件:
44+
- 控制文件、
45+
- 联机重做日志、
46+
- 数据文件、
47+
- 参数文件、
48+
- 口令文件
49+
50+
## 控制文件
51+
- 出现问题,系统会崩溃
52+
- 创建控制文件多个镜像
53+
- 11g默认两份互为镜像的控制文件,分布在不同的硬件设备上,磁盘,磁盘阵列<数据,备份>
54+
- 检查控制文件路径
55+
- `select * from v$controlfile;`
56+
- `show parameter control_files;`
57+
- 修改路径
58+
59+
```
60+
alter system set control_files='','' scope=spfile;
61+
shutdown immediate;
62+
mv
63+
startup
64+
```
65+
- 增加镜像,一般3份就可以
66+
```
67+
- alter system set control_files='','','' scope=spfile;
68+
- shutdown immediate;
69+
- cp
70+
- startup
71+
```
72+
- 一定要关闭数据库之后再复制,否则报错,控制文件版本不一致,解决办法:使用原先的覆盖版本不一致的
73+
74+
## 日志文件 联机重做日志
75+
- 几组日志切换使用,循环使用,不是互为镜像。第一组写满了再写第二组。
76+
- 查看
77+
- `select GROUP#, SEQUENCE#, STATUS, MEMBERS from v$log;`
78+
- `select GROUP#, MEMBER from v$logfile;`
79+
- 每次使用日志,会自动生成一个递增的序号sequence
80+
- 是否会有单点故障
81+
- 日志损坏,本组只有一个日志文件,如果不能写日志,系统就不能工作了。暂时挂起,等待日志是否能使用。解决:组内日志文件做互为镜像。
82+
- 一般两组日志就够
83+
- 超长的事务
84+
- 过于频繁的切换,IO变大
85+
- 经验值:一组日志至少能坚持半个小时,1个小时
86+
- 经验值:5-8组
87+
- 给某个组添加成员
88+
- `alter database add logfile member '/home/oracle/redo01.log' to group 1;`
89+
- 添加日志组
90+
- `alter database add logfile group 2 ('/oracle/log/redo04a.log','/oracle/log2/redo04b.log') size 100M;`
91+
92+
## 联机重做日志与归档日志
93+
94+
## 数据文件 dbf文件
95+
- 查看
96+
```
97+
select name from v$datafile;
98+
```
99+
- 保护数据文件
100+
- 做镜像。很大,浪费空间。如果有误操作,所有副本中都有误操作,无法恢复。
101+
- 周期性的做备份。两次备份期间,期间出现问题,还是会丢数据。
102+
- 两次备份之间,收集备份之间的日志,数据不会丢。
103+
- 联机重做日志循环使用,可能会覆盖掉,日志不连续,没有价值。
104+
- 保存写满的日志文件,复制一份保存起来。归档日志。
105+
- 上次全备份+归档日志=最新全量数据
106+
- 归档日志只需要存在在两次全备份之间,不需要保留所有的归档日志。
107+
- FRA快速恢复区
108+
- 开归档模式

database/oracle/20170815.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# FRA
2+
- 只需要提供一个路径,作为快速恢复区
3+
- 设置
4+
- show parameter db_rec;
5+
- db_recovery_file_dest;
6+
- 备份文件 * .bkp
7+
8+
# 其他
9+
- show parameter archive_log_dest;
10+
- datagold 容灾,记录传输给备用数据库,用log_archive_dest_*
11+
- MySQL 容灾、读写分离
12+
- 交易场景,读写比例不对等,一个主节点,接受写操作,广播同步给子节点。
13+
- Oracle备用节点,一直在mount阶段,不对用户开放,接受日志。
14+
- adg,活动dg,备用节点。
15+
- 一主,n备。
16+
- log_archive_dest_1 有默认值,就是快速恢复区,不要修改。
17+
18+
# RMAN
19+
- 所有Oracle物理备份的基础
20+
- NBU 、TSM (IBM)
21+
- 组件
22+
- 目标数据库、
23+
- RMAN的客户端、
24+
- chanel--路径,通道、
25+
- 恢复目录数据库recovery catalog database(记录目标数据库做的备份的记录)(可选)、
26+
- 辅助数据库(特殊的操作会利用辅助数据库)(可选)
27+
- 如果不使用recovery catalog database,记录在目标数据库的控制文件中,控制文件容量小,控制文件可能出问题,
28+
- 命令
29+
- rman target sys/passwd@orcl catalog user01/user01@rc auxiliary user02/user02@aux;
30+
- rman target /
31+
- show all;
32+
- 磁盘备份类型
33+
- 标准备份集 忽略掉没有数据的空间
34+
- 压缩备份集
35+
- 映象副本(镜像拷贝)原始大小
36+
- 备份集与备份片段
37+
- 及时备份控制文件,里边记录数据库的重大变化和对数据库做备份的记录
38+
- 数据库结构改变,备份时,自动备份控制文件。
39+
40+
# 自动通道管理
41+
- 更改并行度,就是增加通道个数
42+
- 一个文件只能用一个通道
43+
- 通道的分配以文件为最小单位
44+
45+
# 备份命令
46+
- backup tablespace users;
47+
- backup database users;
48+
- backup
49+
50+
# 备份加密
51+
52+
- 怎么保护?
53+
- 加密码,麻烦,打包加密,忘记密码,密码被窃取
54+
- 通过秘钥签名,公钥,私钥。只能在自己的一台机器上用。透明加密。
55+
- 双重加密(密码+秘钥签名)
56+
57+
# 备份
58+
- 思路
59+
- 归档,不归档 online offline 全数据备份 部分备份
60+
- 凡是处于中间状态的事务(未提交的),数据库不一致,打开数据库之前,都要擦除,回滚。
61+
- 不归档,online 备份无价值!
62+
- 不归档,offline 数据无法一致,备份无价值!
63+
- 不归档,正常关闭数据库,一次全部备份所有数据文件。可用。
64+
- 归档。最好是联机online,前端业务不停,后端在备份。
65+
- 任意时刻,数据库中要一致,如果追赶不上,前边的要后退。
66+
## RMAN中的命令
67+
- 要在控制文件的打开方式下
68+
- 不归档,offline,RMAN 。只能在mount。最好不用mount,把所有文件复制,保存。
69+
-

database/oracle/20170816.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# 备份的操作
2+
## 数据文件
3+
### backup
4+
- datafile 1;
5+
- tablespace users,exaple;
6+
- database;全数据库备份
7+
8+
### list 查看备份
9+
- backup;
10+
- list backup of tablespace users;
11+
12+
### v$backup_set;
13+
14+
### select from dba_data_files;
15+
###控制文件的自动备份
16+
17+
## 增量备份
18+
- 0级别
19+
- 备份所有的数据
20+
- 在此级别上可以做1级别的增量备份
21+
- 1级别
22+
- 累积的 1c
23+
- 仅包含小于1的增量备份。
24+
- 差异的 1d
25+
- 仅包含小于等于1的增量备份,最近一个。找上一次的增量备份。
26+
- 有了归档日志,再做增量备份,可以提高备份恢复的效率。
27+
- 场景:1w个数据块,热点数据100个数据块,会被频繁修改。
28+
- 备份方式1:全备份+归档日志。
29+
- 备份方式2:0级增量+1级增量。
30+
- 增量备份的缺点,单独的增量备份是没有作用的。需要在0级增量备份的基础上。
31+
- 全备份之间做增量备份。
32+
- 目标:备份的时间长一些,恢复的时间短一些。
33+
- 如何选择0 、1c、1d?
34+
- 如果0备周期较长,中间穿插1d,有风险,且恢复成本较高,可穿插1c
35+
- 1/3 2/3 1/4 经验值 间隔穿插1c备份
36+
- 适合的环境:数据库很大,频繁修改的数据块比较小。
37+
### 操作
38+
- 0备
39+
- 1备
40+
- 默认1d
41+
42+
### 分两个阶段
43+
- 读数据块,那些修改了?选出修改的
44+
- 写入备份
45+
### 增量备份花费的时间并不是很小
46+
### 改进-块跟踪-记录数据块的变化 BCT
47+
- 日志记录被改动的数据块
48+
- 代价:额外开销
49+
- 需要衡量,经常增量备份,需要开启块变化跟踪
50+
51+
## 全备份
52+
- 数据文件中没有数据的数据块不会被备份
53+
54+
55+
## 增量备份没有办法完全回避0级别备份
56+
- 间隔密集,备份成本高
57+
- 间隔大,恢复成本高
58+
59+
## 增量更新=11g的新特性,不是关系数据库的标准功能
60+
- 直接改变所有备份的策略,代价低
61+
### 思想
62+
- 镜像拷贝,及时同步数据库的变化,直接拿来就用
63+
- 恢复:和数据文件的差异很小,恢复时不需要很大的操作,
64+
- 备份:从此不需要0级别的备份,备份的开销小
65+
- 场景:每晚1d备份,差异不超过一天,
66+
- 让增量更新与数据文件保持安全距离,稍微远点的距离,
67+
68+
## 操作
69+
- 系统强制创建0级别
70+
- 设置标签
71+
- 可用来恢复的镜像
72+
-

database/oracle/20170817.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
## 备份归档日志
2+
- 使用RMAN对归档日志进行备份
3+
- 对归档日志做镜像
4+
- 只要把快速恢复区关联的硬件可靠性做好
5+
- 命令:
6+
- list archivelog all;
7+
- backup archivelog all delete all input;
8+
- list backup;
9+
10+
## 维护备份文件
11+
- 查看
12+
- list backup;
13+
- list copy;
14+
- list backup of tablespace users;//只要备份集中包含这个表空间的,就会列出这个数据文件。
15+
- list backup of datafile 4;
16+
- list archivelog all;
17+
- report need backup;//列出那些备份是不够的
18+
- report need backup redundancy 2;//列出备份冗余度不足2的,至少,最低要求
19+
- recovery window 恢复窗口,出现故障可以恢复到窗口内的任意时间点
20+
- CONFIGURE RETENTION POLICY TO REDUNDANCY 1; //冗余度是1,show all;每个数据文件至少有一个备份
21+
- report obsolete;
22+
- 关于备份的所有操作,不要离开RMAN!
23+
24+
- 清理
25+
- delete backupset 91;
26+
- 控制文件中的信息删掉&删掉操作系统的文件
27+
- delete backupset of tablespace users;
28+
- 使用冗余度策略,快速删除备份文件。
29+
- report obsolete;
30+
- delete obsolete;
31+
- 如何设置冗余度?
32+
- 如果在文件系统中误删除备份集?标记成报废状态(控制文件中存在,文件系统中不存在)
33+
- crosscheck backup;//标记或取消报废状态。
34+
- delete expired backup;//删除报废状态的备份集
35+
- 控制文件中没有备份集,文件系统中存在文件。控制文件重建。
36+
- catalog recovery area noprompt; //把磁盘的备份集加入到控制文件中 扫描快速恢复区
37+
- 特定操作、特殊情况
38+
39+
## RMAN 恢复
40+
### 文件丢失,如何解决
41+
#### 数据文件
42+
- restore//把备份集中的数据文件抽取出来
43+
- recovery//把archivelog + online redo log告诉给数据文件,处理事务中的,系统自动redo和undo
44+
- redo(roll forward)前滚,所有日志里的东西,回放给数据文件,包含已提交和未提交的事务,此时处于不一致的状态
45+
- undo(roll back)回滚,撤销数据,撤销表空间
46+
47+
- 完全恢复
48+
- 提交的事务不受影响
49+
- 不完全恢复
50+
- 恢复到过去的某个时间点
51+
- 所有文件都要回退
52+
- 场景:
53+
- 用户的误操作
54+
- 本来计划做完全恢复,但是归档日志有丢失,日志不连续
55+
- 代价大,能不做就不做
56+
57+
#### 物理备份:周期性备份+归档日志
58+
59+
##### 如何做的备份决定怎样去恢复
60+
61+
### 控制文件
62+
### 参数文件
63+
### 联机重做日志

0 commit comments

Comments
 (0)