暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

面向 Oracle DBA 的 PostgreSQL 入门教程

原创 小小亮 2022-10-13
1262

在我担任数据库管理员的 20 年期间,我通常是这样学习新的 RDBMS 系统的。因此,我直接知道当你陷入深渊时学习另一个系统是多么具有挑战性。

新数据库以不同的方式添加到生产环境中。购买了新的软件应用程序,并且安装需要(或构建)新的数据库。开发人员为业务部门构建原型应用程序。当他们开始使用它时,它很快就变成了一个重要的系统,数据库被交给生产管理员来维护和修复。有时,公司决定他们需要迁移到标准数据库系统并远离另一个系统。这可能需要提升整个管理员团队的技能来学习新系统。

您可能会被告知:“恭喜!您现在负责这个数据库。我知道您是 Oracle DBA,但 PostgreSQL 几乎是一样的,所以您应该能够处理它。”

是的,它们都是关系数据库管理系统 (RDBMS),您(主要)使用标准 SQL 与它们交互。但是您需要了解一些差异。

我将从架构基础开始,即单台机器上的单个数据库。我将介绍 Oracle 和 PostgreSQL 之间的一些异同,以帮助您快速上手。在本文中,我还将重点介绍高层次的体系结构以及要检查的一些关键方面,以确保您的新数据库没有任何明显的问题。

主要功能术语

在 Oracle 中,该服务由多个后台进程和内存段(称为实例)以及包含配置、事务(或归档)日志、数据和索引信息的文件(称为数据库)组成。

在 PostgreSQL 中,有一个称为postgres管理数据库文件、接受来自客户端应用程序的连接并代表这些客户端执行操作的进程。PostgreSQL 还有数据文件和归档日志文件(称为 WAL 文件)。

下表比较了这 2 个数据库系统的一些常用功能:

OraclePostgreSQL功能
TablespaceTablespace在 Oracle 中经常用于负载平衡。在 PostgreSQL 中不常用
UserRolePostgreSQL 中的 CREATE USER 创建一个具有登录权限的角色。
RoleRole在 Oracle 中,只有权限的集合。在 PostgreSQL 中,请参见前一行。
PL/SQLPL/pgSQL程序语言
Exportpg_dump/pg_dumpall从数据库中提取数据副本
Importpg_restore将数据恢复到数据库中
许可模式开源模型许可
Oracle 企业管理器 (OEM)pgAdmin图形管理实用程序
Oracle一系列第三方支持提供商

因此,一旦您了解了 PostgreSQL 的基础知识,接下来您要做的就是执行健康检查。大多数 DBA 都开发了这种形式。它通常从了解什么比以后修复更容易防止发生开始。作为 Postgres 的新手,这里有一些你需要关注的领域的快速入门:

备份

备份 PostgreSQL 数据库有几种主要方法。它们各有 优缺点,因此我将在这里简要介绍它们,并提供链接,如果您想深入了解,您可以获得更多信息。

SQL 转储

pg_dump 实用程序将创建一个 SQL 命令文件,以便能够以与运行该实用程序时相同的状态重新创建数据库。您可以在 pg_dump 文档中阅读更多相关信息。

文件系统备份

如果可以停止数据库,则可以复制所有文件。这对于具有高可用性要求的系统通常是不切实际的,但它可能是确保您拥有已知良好备份的有用方法。在对数据库进行重大更改时,这通常是一个聪明的额外措施,可以在出现任何问题时进行恢复。有关 PostgreSQL 中文件系统备份的更多信息 ,

连续归档

PostgreSQL 使用日志记录来提供崩溃一致性,并能够在系统崩溃的情况下将数据库恢复到一致的状态。这些日志称为预写日志或 WAL。PostgreSQL 可以使用 WAL 文件来恢复对数据库中数据所做的任何修改。

pgBackRest

pgBackRest是一个完整的解决方案,以简单易用的方式备份和恢复最大的 PostgreSQL 数据库。使用 pgBackRest,您可以自定义备份过程以包括并行性以加速备份和恢复、校验和验证以验证完整性以及许多其他功能。(未来的文章将更详细地介绍 PostgreSQL 中的备份选项以及它们与 Oracle 的比较。敬请期待。)

要开始检查您的 Postgres 备份:

  • 第 1 步:确保进行备份。如果您目前根本没有任何备份,那么 本文是开始使用 pgBackRest 的好地方。
  • 第 2 步:记录执行恢复的过程。如果你在半夜失败了,你不想相信你的直觉,而是有一个非常清晰的一步一步的剧本。如果您更进一步并自动化执行恢复的过程,那就更好了。
  • 最后,定期测试该过程。如果您使用上一步中的文档执行这些测试(并且您应该),当您在路上遇到意外的颠簸时(您会),您将能够继续改进记录在案的过程。如果您在尝试解决数据丢失时发现它们可能会成为业务(和职业)影响事件,那么这些路上的颠簸会给您带来不便。我们在 Crunchy Data 建议至少每季度进行一次恢复测试,并且更频繁地用于具有高可用性要求的站点。

现在是时候确保备份策略满足企业的期望了。每周进行一次备份可能会“勾选”备份数据库,但还有很多其他因素需要考虑。

安全

在 IT 工作的每个人的名单上,安全性都应该是最重要的,尤其是对于数据库管理员来说,因为所包含数据的价值以及失去对该信息的控制可能对业务产生的负面影响。

Postgres 主要版本

首先,检查您使用的版本。您不需要使用最新的主要版本,但与 最新的次要版本保持接近将确保您免受大多数可能使您面临风险的 CVE 的侵害。如果您已经过时或接近它,请制定更新计划。

找到 PostgreSQL 版本的两种方法是:

  • 在数据库节点上的命令行中,作为有权运行 PostgreSQL 的用户运行:
postgres --version
  • 登录到数据库后,运行以下命令:
SELECT version();

用户访问

检查有权访问的用户并检查他们是否都有效并且是否有适当的访问控制(即密码)。

一个很好的起点是使用一个简单的postgres-# \du命令并验证所有列出的用户在您的数据库中都有一个位置。通常会创建用户,但当员工离开公司时,他们的帐户并没有从他们使用的所有系统中完全删除。

查看“成员”字段将突出显示可能在不再适用于他们的组中的一些用户。例如,在 Sales 组中但移至 Marketing 的员工在应该从 Sales 中删除时可能同时属于“Sales”和“Marketing”组。

工具

确保在适当的情况下使用安全版本的工具并禁用不安全版本(即 scp、ssh 等)。

文件传输长期以来一直使用文件传输协议 (FTP) 完成,在某些情况下,它可能仍然是适合这项工作的工具,因为它比 SFTP 等替代方案更快。但是,FTP 缺乏安全性,通过使用 SFTP,您可以获得加密通信的额外优势。

相同的注意事项适用于数据库环境中使用的其他实用程序,因此请确保您已满足组织的安全要求。这些将根据业务需求而有所不同,但最佳实践通常涉及使用加密选项而不是非加密选项。

安全基准

有几种方法可以进行这项调查。一种是使用类似于 Internet 安全中心的基准。如果安全性对您的企业至关重要,那么您可能需要研究 PostgreSQL 的安全实现所提供的额外保护。

放轻松

一旦您运行了备份并且您使用的是 Postgres 的安全版本,请确保基础的其余部分符合您组织的要求。


原文标题:A Postgres Primer for Oracle DBAs

原文作者:Stephen Andert

原文链接:https://www.crunchydata.com/blog/a-postgres-primer-for-oracle-dbas

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论