论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Oracle
›
从 $PGDATA 到文件组:深入剖析 PostgreSQL 与 SQL Serv ...
从 $PGDATA 到文件组:深入剖析 PostgreSQL 与 SQL Server 的存储策略 ...
我爱普洱茶
金牌会员
|
前天 09:07
|
显示全部楼层
|
阅读模式
楼主
主题
722
|
帖子
722
|
积分
2166
从 $PGDATA 到文件组:深入剖析 PostgreSQL 与 SQL Server 的存储策略
在数据库领域,数据存储和管理的效率与可靠性是决定体系性能、可扩展性和易于管理的关键因素。PostgreSQL 和 SQL Server 在数据存储方面采取了略有不同的方式。
PostgreSQL 中一个数据库管理员经常遇到的关键概念是 $PGDATA 文件夹。在这里,我们将探究 $PGDATA 文件夹是什么,它的重要性,以及 PostgreSQL 的数据存储架构与 SQL Server 的比较。
什么是 $PGDATA?
$PGDATA 在 PostgreSQL 中指的是包含数据库集群所有配置和数据文件的目录。这是 PostgreSQL 数据存储架构的核心。简朴来说,它是 PostgreSQL 存储所有文件的目录,这些文件包罗现实数据、配置文件、事件日志以及其他重要信息,确保数据库集群可以或许正常运行。
$PGDATA 文件夹的关键组成部分
在 $PGDATA 文件夹中,你会发现许多子目录和文件,它们存储数据库的不同方面。
其中一些关键组成部分包罗:
base 目录
:存储集群中每个数据库的现实数据。每个数据库在 base 文件夹中都有一个单独的子目录。
PG_VERSION
:这是一个小文件,用于存储该集群利用的 PostgreSQL 版本信息,这在升级或迁移时确保兼容性。
pg_wal(预写日志)
:该文件夹包含预写日志(WAL),对于事件的长期性和恢复至关重要。WAL 文件记录了对数据所做的每一次更改,确保在崩溃的环境下数据库可以恢复到一致的状态。
pg_hba.conf
:负责基于主机的身份验证配置文件,在此文件中,你可以界说允许哪些用户从哪些位置(主机)毗连到哪些数据库。
postgresql.conf
:重要的配置文件,包含 PostgreSQL 实例的所有操作设置,包罗内存设置、日志参数和其他与性能干系的设置。
$PGDATA 的重要性
$PGDATA 文件夹至关重要,因为它本质上是 PostgreSQL 的支柱。如果该目录损坏或丢失,集群中的所有数据都会无法恢复。因此,定期掩护和备份 $PGDATA 目录是每个数据库管理员的一项基本任务。
PostgreSQL 利用基于文件的存储体系,默认环境下将数据写入 8KB 的页面。页面巨细可以在编译 C 源代码时更改。这些页面随后被分组为段并存储在 $PGDATA 目录中。
配置 $PGDATA
在 PostgreSQL 初始化(通常利用 initdb)期间,你可以指定 $PGDATA 目录的位置。你可以通过向 initdb 命令通报 -D 选项或设置 $PGDATA 环境变量来设置位置。例如:
initdb -D /var/lib/postgresql/data
复制代码
初始化后,PostgreSQL 期望环境变量 $PGDATA 始终指向此位置,无论服务器是启动还是停止。
SQL Server 中的数据存储
虽然 PostgreSQL 依靠于 $PGDATA 文件夹进行核心操作,SQL Server 在数据存储和管理方面采取了略有不同的方式。Microsoft SQL Server 将其数据组织为数据库,每个数据库都有自己的一组数据文件、事件日志文件和备份选项。
在 SQL Server 中,数据库存储在不同类型的文件中:
主数据文件(.mdf)
:这是存放所有数据库对象(如表、索引、存储过程)的重要数据文件。每个数据库至少有一个 MDF 文件,mdf文件可以明白为数据库的共享表空间,默认所有表都存储在这个mdf文件里。
次要数据文件(.ndf)
:这些文件是可选的,用于将数据分布到多个磁盘上,从而进步大型体系的性能和可扩展性,ndf文件可以明白为独立表空间,当你把一个文件组附加在ndf文件上,然后指定数据表建立在这个文件组上,相当于把表建立在独立表空间上。
事件日志文件(.ldf)
:类似于 PostgreSQL 的 WAL,LDF 文件存储数据库中每个事件的日志记录。这对于确保在发生故障时可以回滚事件至关重要,也用于恢复过程。
与 PostgreSQL 不同,PostgreSQL将数据存储在 $PGDATA 文件夹中的子目录下,SQL Server 将数据库存储在这些 .mdf、.ndf 和 .ldf 文件中,通常位于管理员在安装或创建数据库时设置的特定目录或磁盘上。
PostgreSQL 与 SQL Server 存储的关键区别
现在我们已经相识了 PostgreSQL 和 SQL Server 怎样处置处罚数据存储,以下是它们之间的关键差异:
存储位置
PostgreSQL 将所有数据存储在 $PGDATA 目录中,该目录包含每个数据库的子目录以及 WAL 日志和配置文件。SQL Server 利用单独的文件(.mdf、.ndf、.ldf)来存储每个数据库。管理员可以将这些文件放置在任何磁盘或目录中。
事件日志
PostgreSQL 利用 pg_wal 目录来存储预写日志。SQL Server 利用 .ldf 文件进行事件日志记录,与 PostgreSQL 的 WAL 类似,但每个数据库都有自己的 .ldf 文件。
文件组抽象
SQL Server 提供文件组,这是一层抽象,允许管理员将数据分布在多个存储设备上以进步性能和管理。PostgreSQL 没有类似的抽象层,文件管理完全依靠于操作体系,管理员只能将不同的表空间放置在不同的磁盘上。
配置文件
PostgreSQL 的配置文件紧麋集成在 $PGDATA 目录中(如 postgresql.conf、pg_hba.conf),而 SQL Server 的配置文件通常与数据库文件分开存储。
临时数据存储
SQL Server 利用一个专门的体系数据库 TempDB 进行临时数据存储,而 PostgreSQL 则在现有的$PGDATA 目录中利用临时表空间,与SQL Server类似,也是整个实例(集群)共享临时表空间。
总结
虽然 PostgreSQL 和 Microsoft SQL Server 都提供了强大的数据存储机制,但它们的方法却有着根本的不同。PostgreSQL 的 $PGDATA 文件夹是与数据库集群干系的所有内容的中央枢纽,
而 SQL Server 则依靠于更为精致化的 .mdf、.ndf 和 .ldf 文件体系来进行数据存储。每个体系都有其自身的优势,最佳选择通常取决于具体的利用场景、性能需求和体系架构偏好。
明白每个体系存储架构的渺小差别对于数据库管理员来说至关重要,因为这将影响到备份策略、性能调优和灾难恢复计划的决策。
参考文章
https://www.javelin-tech.com/blog/2020/06/sizing-the-microsoft-sql-mdf-and-ldf/
https://docs.oracle.com/cd/E19787-01/820-3361/ciadcigh/index.html
https://docs.microfocus.com/UCMDB/11.0/ucmdb-docs/docs/eng/doc_lib/Content/database/PostgresConfig_c_logs.htm
https://www.postgresql.org/docs/current/storage-file-layout.html
https://www.quora.com/What-are-MDF-and-NDF-files-in-an-SQL-server
本文版权归作者所有,未经作者同意不得转载。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
我爱普洱茶
金牌会员
这个人很懒什么都没写!
楼主热帖
Java 中怎样将 bytes 转换为 long 类型 ...
time.sleep(6)!华为AI生成图片发布会 ...
初学Vue(全家桶)-第16天(vue-router ...
事务
OpenHarmony轻量系统开发【1】初始Open ...
Python教程:高级特性
KAFKA EAGLE 监控MRS kafka之操作实践 ...
如何优雅的备份MySQL数据?看这篇文章 ...
总算给女盆友讲明白了,如何使用stream ...
大数据揭秘丨疫情影响下亚马逊女性夹克 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表