Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 20:40:56 +08:00
parent cb6afe3aef
commit c0ae2f0edb
4 changed files with 314 additions and 82 deletions

View File

@@ -1,15 +1,77 @@
==在计算机科学中, CAP定理CAP theorem, 又被称作 布鲁尔定理Brewer's theorem, 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:== # CAP 定理
- **一致性(Consistency)** ==(所有节点在同一时间具有相同的数据)== > Brewer's Theorem — 分布式计算系统的基本原则
- **可用性(Availability)** ==(保证每个请求不管成功或者失败都有响应)==
- **分隔容忍(Partition tolerance)** ==(系统中任意信息的丢失或失败不会影响系统的继续运作)==
==CAP理论的核心是一个分布式系统不可能同时很好的满足一致性可用性和分区容错性这三个需求最多只能同时较好的满足两个。== ---
==因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:==
- ==CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。== ## 定理内容
- ==CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。==
- ==AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。== 一个分布式系统**不可能同时满足**以下三点:
![captheoramimage](Exported%20image%2020260407225428-0.png)
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)> | 特性 | 说明 |
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)> |------|------|
| **一致性 (Consistency)** | 所有节点在同一时间具有相同的数据 |
| **可用性 (Availability)** | 保证每个请求都有响应(成功或失败) |
| **分区容忍 (Partition Tolerance)** | 系统中任意信息丢失或失败不影响系统继续运行 |
---
## CAP 三角
```
C
/\
/ \
/ \
/ P \
/________\
A
```
**核心**:分布式系统最多只能同时满足 **两个** 特性。
---
## 三类系统
### CA — 一致性 + 可用性
- 单点集群
- 不具备分区容错能力
- 例子:传统 RDBMSMySQL、PostgreSQL
### CP — 一致性 + 分区容忍
- 牺牲可用性
- 网络分区时可能不可用
- 例子MongoDB、HBase、Redis
### AP — 可用性 + 分区容忍
- 牺牲一致性
- 分区期间保持可用,数据可能不一致
- 例子Cassandra、DynamoDB
---
## 选择指南
| 场景 | 选择 |
|------|------|
| 金融交易、银行系统 | CP强一致性 |
| 社交媒体、新闻 Feed | AP高可用 |
| 需要强一致的传统业务 | MySQL/PostgreSQL |
---
## NoSQL 数据库分类
| 类型 | 数据库 |
|------|--------|
| **CA** | 传统关系型数据库 |
| **CP** | MongoDB、HBase、Redis |
| **AP** | Cassandra、DynamoDB、CouchDB |
---
> 参考:[NoSQL 简介 - 菜鸟教程](http://www.runoob.com/mongodb/nosql.html)

View File

@@ -1,54 +1,85 @@
--- ---
title: 数据库 索引 title: 数据库 索引
tags: tags:
- 数据库
- PostgreSQL
- SQLServer
- MariaDB
- 索引 - 索引
created: 2026-04-21 created: 2026-04-21
updated: 2026-04-21
--- ---
# 数据库 # 数据库知识索引
> 自动生成的索引文件 > 数据库技术学习笔记汇总
## 文件列表 ## 📚 目录
| 文件名 | 大小 | 说明 | ### 理论
|--------|------|------| | 笔记 | 说明 |
| [[数据库/CAP定理CAP theorem]] | 1KB | | |------|------|
| [[数据库/Cpu 占用过高]] | 420B | | | [[CAP定理]] | CAP 理论 |
| [[数据库/HiMonitor1.0 升级到1.3脚本注意事项]] | 4KB | | | [[关系型数据库遵循ACID规则]] | ACID 特性 |
| [[数据库/MariaDB_Centos7安装mariadb支持远程访问]] | 1KB | |
| [[数据库/PostgreSQL_Pg12 安装过程]] | 1KB | | ### PostgreSQL
| [[数据库/PostgreSQL_Postgresql 帐号密码修改方法]] | 267B | | | 笔记 | 说明 |
| [[数据库/PostgreSQL_pg_hba.conf]] | 1KB | | |------|------|
| [[数据库/PostgreSQL_postgresql删除还有活动连接的数据库]] | 246B | | | [[PostgreSQL安装]] | PostgreSQL 12 安装 |
| [[数据库/PostgreSQL_systemctl start postgresql-12.service -- 启动服务]] | 223B | | | [[PostgreSQL密码修改]] | 账号密码修改 |
| [[数据库/SQL SERVER 游标使用]] | 2KB | | | [[PostgreSQL_hba配置]] | pg_hba.conf 配置 |
| [[数据库/SQLSERVER 数据库恢复挂起的解决办法]] | 362B | | | [[PostgreSQL删除数据库]] | 删除有连接的数据库 |
| [[数据库/SQLSERVER存储过程基本语法]] | 6KB | | | [[PostgreSQL启动服务]] | systemctl 启动服务 |
| [[数据库/三峡数据变形值直接导出]] | 552B | |
| [[数据库/关系型数据库遵循ACID规则]] | 1KB | | ### SQLServer
| [[数据库/内蒙古数据FTP推送脚本快速获取]] | 440B | | | 笔记 | 说明 |
| [[数据库/单个HiMonitor 站点数据]] | 873B | | |------|------|
| [[数据库/去重]] | 229B | | | [[SQLServer游标使用]] | 游标基本用法 |
| [[数据库/合肥董铺水库中间数据]] | 2KB | | | [[SQLServer存储过程]] | 存储过程语法 |
| [[数据库/回补中间一段时间的GNSS数据]] | 1KB | | | [[SQLServer数据库恢复挂起]] | 恢复挂起解决办法 |
| [[数据库/循环批量删除数据库表]] | 814B | |
| [[数据库/循环造固定数据值脚本]] | 744B | | ### MariaDB
| [[数据库/循环遍历插数据]] | 591B | | | 笔记 | 说明 |
| [[数据库/批量创建app 表索引]] | 820B | | |------|------|
| [[数据库/批量删除表]] | 458B | | | [[MariaDB安装]] | CentOS7 安装并配置远程访问 |
| [[数据库/批量删除超前数据脚本]] | 903B | |
| [[数据库/批量删除超前数据脚本(监测云)]] | 1KB | | ### 运维脚本
| [[数据库/批量增加非聚集索引]] | 1KB | | | 笔记 | 说明 |
| [[数据库/按日分组求均值]] | 221B | | |------|------|
| [[数据库/新增站点基准信息增加]] | 547B | | | [[循环批量删除数据库表]] | 批量删除表 |
| [[数据库/无日志文件附加数据库失败解决]] | 1KB | | | [[批量创建索引]] | 批量创建表索引 |
| [[数据库/松滋 2号店循环造rtk]] | 1KB | | | [[批量删除表]] | 批量删除表 |
| [[数据库/模拟一段数据]] | 1KB | | | [[解除数据库占用连接]] | 解除占用连接 |
| [[数据库/解除数据库占用连接]] | 491B | | | [[数据库收缩脚本]] | 运行中数据库收缩 |
| [[数据库/运行中数据库收缩脚本]] | 743B | | | [[模拟一段数据]] | 测试数据模拟 |
| [[数据库/链接服务器远程查询]] | 1B | | | [[循环造固定数据值]] | 循环造数据 |
| [[数据库/附加数据]] | 105B | | | [[循环遍历插数据]] | 循环插入数据 |
### 常见问题
| 笔记 | 说明 |
|------|------|
| [[Cpu占用过高]] | 数据库 CPU 占用排查 |
| [[附加数据库失败]] | 无日志文件附加失败 |
| [[新增站点基准信息]] | 站点基准信息增加 |
--- ---
*共 36 个文件*
## 常用 SQL
```sql
-- PostgreSQL: 查看连接
SELECT * FROM pg_stat_activity;
-- PostgreSQL: 杀死连接
SELECT pg_terminate_backend(pid);
-- SQLServer: 查看进程
EXEC sp_who2;
-- SQLServer: 杀进程
KILL spid;
```
---
*共 31 篇笔记*

View File

@@ -1,18 +1,91 @@
1. ==Install the repository RPM:========yum install== ==https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm== # PostgreSQL 安装
2. ==Install the client packages:========yum install postgresql12==
3. ==Optionally install the server packages:========yum install postgresql12-server==
4. ==Optionally initialize the database and enable automatic start:========/usr/pgsql-12/bin/postgresql-12-setup initdb========systemctl enable postgresql-12========systemctl start postgresql-12== > 来自 <[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)>
[Service]
Type=notify
User=postgres > CentOS 7 安装 PostgreSQL 12
Group=postgres
# Note: avoid inserting whitespace in these Environment= lines, or you may ---
# break postgresql-setup.
# Location of database directory ## 安装步骤
Environment=PGDATA=/var/lib/pgsql/12/data/
初始化之后,数据文件会存在 /var/lib/pgsql/12/data ### 1. 安装 RPM 源
> 来自 <[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)>
```bash
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
```
### 2. 安装客户端
```bash
yum install postgresql12
```
### 3. 安装服务端
```bash
yum install postgresql12-server
```
### 4. 初始化数据库
```bash
/usr/pgsql-12/bin/postgresql-12-setup initdb
```
### 5. 启动服务
```bash
systemctl enable postgresql-12
systemctl start postgresql-12
```
---
## 配置
### 数据目录
默认数据目录:`/var/lib/pgsql/12/data/`
### 连接配置
```bash
sudo -u postgres psql
```
```sql
-- 修改 postgres 用户密码
ALTER USER postgres WITH PASSWORD '你的密码';
-- 允许远程连接
-- 编辑 pg_hba.conf
host all all 0.0.0.0/0 md5
-- 编辑 postgresql.conf
listen_addresses = '*'
```
---
## 常用命令
```bash
# 启动/停止/重启
systemctl start postgresql-12
systemctl stop postgresql-12
systemctl restart postgresql-12
# 连接数据库
psql -U postgres -h localhost
# 创建数据库
createdb mydb
# 备份
pg_dump -U postgres mydb > backup.sql
# 恢复
psql -U postgres mydb < backup.sql
```
---
> 参考:[PostgreSQL 官方安装指南](https://www.postgresql.org/download/linux/redhat/)

View File

@@ -1,14 +1,80 @@
**关系型数据库遵循ACID规则** # ACID 规则
==事务在英文中是transaction和现实世界中的交易很类似它有如下四个特性==
**1、A (Atomicity) 原子性** > 关系型数据库事务的四个基本特性
==原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。==
==比如银行转账从A账户转100元至B账户分为两个步骤1从A账户取100元2存入100元至B账户。这两步要么一起完成要么一起不完成如果只完成第一步第二步失败钱会莫名其妙少了100元。== ---
**2、C (Consistency) 一致性**
==一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。== ## ACID 特性
==例如现有完整性约束a+b=10如果一个事务改变了a那么必须得改变b使得事务结束后依然满足a+b=10否则事务失败。==
**3、I (Isolation) 独立性** 事务Transaction在英文中与"交易"类似,具有以下四个特性:
==所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。==
==比如现在有个交易是从A账户转100元至B账户在这个交易还未完成的情况下如果此时B查询自己的账户是看不到新增加的100元的。== ---
**4、D (Durability) 持久性**
==持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。== ### A — Atomicity原子性
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>
事务的所有操作**要么全部完成**,要么**全部不执行**。
**示例**:银行转账
```
A账户转100元到B账户
1. 从A账户减100元
2. 向B账户加100元
两步必须同时成功,否则全部回滚
```
---
### C — Consistency一致性
事务执行前后,数据库始终处于**一致的状态**。
**示例**
- 完整性约束:`a + b = 10`
- 事务改变了 `a`,必须相应改变 `b`
- 事务结束后仍满足 `a + b = 10`
---
### I — Isolation隔离性
并发事务之间**互不影响**。
**示例**
- 转账事务进行中
- 另一事务查询 B 账户余额
- **看不到**新增的 100 元(直到事务提交)
---
### D — Durability持久性
事务提交后,修改**永久保存**在数据库中。
- 即使系统宕机
- 也不会丢失已提交的数据
---
## ACID vs BASE
| 特性 | ACID关系型 | BASENoSQL |
|------|----------------|---------------|
| **一致性** | 强一致性 | 弱一致性 |
| **可用性** | 可能牺牲 | 优先保证 |
| **分隔容忍** | 不保证 | 保证 |
---
## 总结
```
原子性:要么全做,要么全不做
一致性:事务前后数据一致
隔离性:并发事务互不干扰
持久性:提交后永久保存
```
---
> 参考:[NoSQL 简介 - 菜鸟教程](http://www.runoob.com/mongodb/nosql.html)