【PostgreSQL】- 1.2 PostgreSQL 配置单独的数据库存储

在 Debian 或其它 Linux 系统上,为数据库创建一个单独的挂载点(如 /opt/pgdata)并将一块大容量硬盘挂载到这个目录有几个优点:数据隔离、性能优化、备份和恢复、安全性。
因此接上篇 “【PostgreSQL】- 1.1 在 Debian 12 上安装 PostgreSQL 15”,我在初始化之前先规划数据库的存储。

添加硬盘

新添加一块大容量硬盘,规划做为数据库的数据盘。

查看新硬盘

  ~# lsblkNAME                                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTSsr0                                                 11:0    1 1024M  0 romvda                                                254:0    0  100G  0 disk|-vda1                                             254:1    0  487M  0 part /boot|-vda2                                             254:2    0    1K  0 part`-vda5                                             254:5    0 99.5G  0 part|-deb12ser--vg-root   253:0    0 98.6G  0 lvm  /`-deb12ser--vg-swap_1 253:1    0  980M  0 lvm  [SWAP]vdb                                                254:16   0    2T  0 disk

硬盘分区

找到新硬盘 vdb, 使用 fdisk 进行分区

  ~# su - rootPassword:~# fdisk /dev/vdbWelcome to fdisk (util-linux 2.38.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.The size of this disk is 2 TiB (2199023255552 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).Created a new DOS (MBR) disklabel with disk identifier 0x7f500dd1.Command (m for help):

看到提示硬盘vdb大小超过了2TB,建议使用GUID分区表格式(GPT)而不是DOS分区表格式(MBR)。MBR格式对于大于2TB的驱动器有限制,而GPT则没有这个限制。

这里换用parted来创建GPT分区。不过,如果您确定要使用fdisk并且您的fdisk版本支持GPT,您可以尝试以下步骤(但请注意,fdisk的GPT支持可能因Linux发行版而异):

退出当前的fdisk会话(如果没有做任何更改的话):

   Command (m for help): q

使用parted来创建GPT分区(推荐,应为fdisk需要用专家模式或者通过直接写入GPT头来强制fdisk使用GPT分区表,通常不推荐,因为它可能会导致数据丢失或分区表损坏。):

debian12 默认没有 parted,进行安装:apt install parted,然后进行 gpt 类型的分区:

   ~# parted /dev/vdb mklabel gptInformation: You may need to update /etc/fstab.

继续创建分区:

   ~# parted /dev/vdb mkpart primary 0% 100%Information: You may need to update /etc/fstab.

这将在整个磁盘上创建一个主分区。

查看创建结果如下:

  ~# lsblkNAME                                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTSsr0                                                 11:0    1 1024M  0 romvda                                                254:0    0  100G  0 disk|-vda1                                             254:1    0  487M  0 part /boot|-vda2                                             254:2    0    1K  0 part`-vda5                                             254:5    0 99.5G  0 part|-deb12ser--vg-root   253:0    0 98.6G  0 lvm  /`-deb12ser--vg-swap_1 253:1    0  980M  0 lvm  [SWAP]vdb                                                254:16   0    2T  0 disk`-vdb1                                             254:17   0    2T  0 part

配置 LVM

创建物理卷(PV)

  ~# pvcreate /dev/vdb1Physical volume "/dev/vdb1" successfully created.

创建卷组(VG)

  ~# vgcreate vg_pgdata /dev/vdb1Volume group "vg_pgdata" successfully created

创建逻辑卷(LV)

  ~# lvcreate -L 2T -n lv_pgdata vg_pgdataVolume group "vg_pgdata" has insufficient free space (524287 extents): 524288 required.

检查一下:

  ~# vgdisplay vg_pgdata--- Volume group ---VG Name               vg_pgdataSystem IDFormat                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               <2.00 TiBPE Size               4.00 MiBTotal PE              524287Alloc PE / Size       0 / 0Free  PE / Size       524287 / <2.00 TiBVG UUID               RzUB4Z-eiNi-UEoX-9634-8CmF-VnKT-hVWEzd

错误信息表明,尽管 vg_pgdata 卷组显示的空闲空间接近 2TB(由 524287 个空闲的 PE 组成,每个 PE 大小为 4MiB),但实际上它没有足够的空间来创建一个精确的 2TB(2 * 1024 * 1024 MiB)逻辑卷,因为 2TB 需要 524288 个 PE。

那么换个参数配置

  ~# lvcreate -l 100%FREE -n lv_pgdata vg_pgdataLogical volume "lv_pgdata" created.

确认一下

  ~# lvsLV        VG                               Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv_pgdata vg_pgdata                        -wi-a-----  <2.00troot      zh-ubds-pg01-hw8-deb12-zx-ser-vg -wi-ao----  98.56gswap_1    zh-ubds-pg01-hw8-deb12-zx-ser-vg -wi-ao---- 980.00m

创建文件系统

  ~# mkfs.ext4 /dev/vg_pgdata/lv_pgdatamke2fs 1.47.0 (5-Feb-2023)Discarding device blocks: doneCreating filesystem with 536869888 4k blocks and 134217728 inodesFilesystem UUID: f43e19a0-3d29-441b-bd47-b97dadd97b3cSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848, 512000000Allocating group tables: doneWriting inode tables: doneCreating journal (262144 blocks): doneWriting superblocks and filesystem accounting information:done

挂载新分区:

   ~# mkdir /opt/pgdata~# mount /dev/vg_pgdata/lv_pgdata /opt/pgdata

检查

  ~# df -lhFilesystem                                                Size  Used Avail Use% Mounted onudev                                                      7.8G     0  7.8G   0% /devtmpfs                                                     1.6G  648K  1.6G   1% /run/dev/mapper/deb12ser--vg-root   97G  1.6G   90G   2% /tmpfs                                                     7.8G     0  7.8G   0% /dev/shmtmpfs                                                     5.0M     0  5.0M   0% /run/lock/dev/vda1                                                 455M   59M  372M  14% /boottmpfs                                                     1.6G     0  1.6G   0% /run/user/1000/dev/mapper/vg_pgdata-lv_pgdata                           2.0T   28K  1.9T   1% /opt/pgdata

配置自动挂载:

要确保每次启动时分区都自动挂载,编辑/etc/fstab文件并添加一行类似于以下的条目:

   /dev/vg_pgdata/lv_pgdata /opt/pgdata ext4 defaults 0 0

重启检查 reboot

  ~# df -lhFilesystem                                                Size  Used Avail Use% Mounted onudev                                                      7.8G     0  7.8G   0% /devtmpfs                                                     1.6G  640K  1.6G   1% /run/dev/mapper/zh--ubds--pg01--hw8--deb12--zx--ser--vg-root   97G  1.6G   90G   2% /tmpfs                                                     7.8G     0  7.8G   0% /dev/shmtmpfs                                                     5.0M     0  5.0M   0% /run/lock/dev/vda1                                                 455M   59M  372M  14% /boot/dev/mapper/vg_pgdata-lv_pgdata                           2.0T   28K  1.9T   1% /opt/pgdatatmpfs                                                     1.6G     0  1.6G   0% /run/user/1000

配置权限

确定 PostgreSQL 的用户和组(这里是 postgres 用户和组)。
更改 /opt/pgdata 目录的所有者和组为 PostgreSQL 的用户和组。使用 chown 命令:

  ~# chown -R postgres:postgres /opt/pgdata

确保目录的权限设置得当,以便 PostgreSQL 进程可以读写数据。
这里设置权限为 700(-rwx------ 仅所有者有读、写和执行权限):

  ~# chmod 700 /opt/pgdata

检查

  ~# ls -l /opttotal 4drwx------ 3 postgres postgres 4096 Mar 27 11:27 pgdata

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/778231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础算法-去重字符串,辗转相除法,非递归前序遍历二叉树题型分析

目录 不同子串 辗转相除法-求最大公约数 二叉树非递归前序遍历 不同子串 从a开始&#xff0c;截取 a aa aaa aaab 从第二个下标开始a aa aab 从第三个 a ab 从第四个 b 使用set的唯一性&#xff0c;然后暴力遍历来去去重&#xff0c;从第一个下标开始截取aaab a aa aaa aaab…

【JS】数组详解

前言 数组是js中最常用到的数据集合&#xff0c;它是引用数据类型的一种&#xff08;其他二者为Object和Function&#xff09;&#xff0c;但其本质是Object。 一、数组的组成 数组由三部分组成&#xff0c;分别是索引、元素和length。 索引&#xff1a;用于标识元素&#xf…

ES学习日记(三)-------第三方插件选择

前言 在学习和使用Elasticsearch的过程中&#xff0c;必不可少需要通过一些工具查看es的运行状态以及数据。如果都是通过rest请求&#xff0c;未免太过麻烦&#xff0c;而且也不够人性化。 目前我了解的比较主流的插件就三个,head,cerebor和elasticHD 1.head 老牌插件,功能…

原生js实现循环滚动效果

原生js实现如下图循环滚动效果 核心代码 <div class"scroll"><div class"blist" id"scrollContainer"><div class"bitem"></div>......<div class"bitem"></div></div> </di…

Long long类型比较大小

long 与 Long long类型和Long类型是不一样&#xff0c;long类型属于基本的数据类型&#xff0c;而Long是long类型的包装类。 结论 long是基本数据类型&#xff0c;判断是否相等时使用 &#xff0c;即可判断值是否相等。&#xff08;基本数据类型没有equals()方法&#xff0…

局域网找不到共享电脑怎么办?

局域网找不到共享电脑是一种常见的问题&#xff0c;给我们的共享与合作带来一定的困扰。天联组网技术可以解决这个问题。本文将介绍天联组网的原理和优势&#xff0c;并探讨其在解决局域网找不到共享电脑问题中的应用。 天联组网的原理和优势 天联组网是一种基于加速服务器的远…

基于Pytorch的验证码识别模型应用

前言 在做OCR文字识别的时候&#xff0c;或多或少会接触一些验证码图片&#xff0c;这里收集了一些验证码图片&#xff0c;可以对验证码进行识别&#xff0c;可以识别4到6位&#xff0c;纯数字型、数字字母型和纯字母型的一些验证码&#xff0c;准确率还是相当高&#xff0c;需…

第14章动态规划

动态规划 确定递推状态&#xff1a; f(n)解释 确定递推公式 程序实现 优化&#xff1a; 去除冗余状态 状态重定义 优化转移过程 斜率优化 优化-递归记忆化 if arr[n] return arr[n]递归记忆化(正向求解-递归) 或 改变求解顺序&#xff08;逆向递归求解-循环&#xff09; &…

STM32 PWM通过RC低通滤波转双极性SPWM测试

STM32 PWM通过RC低通滤波转双极性SPWM测试 &#x1f4cd;参考内容《利用是stm32cubemx实现双极性spwm调制 基于stm32f407vet6》&#x1f4fa;相关视频链接&#xff1a;https://www.bilibili.com/video/BV16S4y147hB/?spm_id_from333.788 双极性SPWM调制讲解以及基于stm32的代码…

基于 RisingWave 和 ScyllaDB 构建事件驱动应用

概览 在构建事件驱动应用时&#xff0c;人们面临着两大挑战&#xff1a;1&#xff09;低延迟处理大量数据&#xff1b;2&#xff09;实现流数据的实时摄取和转换。 结合 RisingWave 的流处理功能和 ScyllaDB 的高性能 NoSQL 数据库&#xff0c;可为构建事件驱动应用和数据管道…

cts 运行时 有时候 aapt2 的问题

05-04 16:30:18 E/AaptParser: aapt2 dump badging stderr: W/ziparchive(1050736): Unable to open ‘badging’: No such file or directory badging: error: No such file or directory. 05-04 16:30:18 E/AaptParser: Failed to run aapt2 on /xxx/android-gts/tools/./…/…

阿里云发送短信配置

依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.2.1</version> </dependency> <dependency><groupId>org.apache.httpcomponents</groupId&g…

毛细管制冷系统的设计要点

1在制冷系统的高压侧&#xff0c;不要设置储液器&#xff0c;在保证冷凝器能够容纳全部制冷剂的前提下&#xff0c;尽量减少其有效容积。 因为在采用毛细管作为节流元件的制冷系统中&#xff0c;若设置储液器或冷凝器容积过大&#xff0c;则当压缩机停机后&#xff0c;制冷剂液…

使用html实现图片相册展示设计

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>图片&#xff08;相册&#xff09;展示设计</title><link rel"stylesheet" href"./style.css"> </head> <b…

YOLOv8改进 | 检测头篇 | 2024最新HyCTAS模型提出SAttention(自研轻量化检测头 -> 适用分割、Pose、目标检测)

一、本文介绍 本文给大家带来的改进机制是由全新SOTA分割模型(Real-Time Image Segmentation via Hybrid Convolutional-TransformerArchitecture Search)HyCTAS提出的一种SelfAttention注意力机制,论文中叫该机制应用于检测头当中(论文中的分割效果展现目前是最好的)。我…

JavaScript 字符串 API

JavaScript 字符串 API 指南 JavaScript 中的字符串&#xff08;String&#xff09;是一种基本数据类型&#xff0c;表示文本数据。通过字符串 API&#xff0c;我们可以对字符串进行各种操作和处理&#xff0c;如创建、访问、修改、查找等。本指南将介绍 JavaScript 中常用的字…

【Ubuntu】Ubuntu LTS 稳定版更新策略

1、确保下载环境 sudo apt update && sudo apt upgrade -y sudo apt autoremove 2、安装更新管理器 sudo apt install update-manager-core -y 3、设置只更新稳定版 sudo vim /etc/update-manager/release-upgrades 4、开始更新&#xff0c;耐心等待 sudo do-re…

Spring面试题系列-2

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而&#xff0c;Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言&#xff0c;绝大部分Java应用都可以从Spring中受益。 ApplicationC…

Python数据结构与算法——排序(希尔、计数、桶、基数排序)

目录 希尔排序 计数排序 桶排序 基数排序 希尔排序 希尔排序是一种分组插入排序算法 步骤&#xff1a; 首先取一个整数d1 n/2&#xff0c;将元素分为d1个组&#xff0c;每组相邻量元素之间距离为d1&#xff0c;在各组内进行直接插入排序&#xff1b; 取第二个整数d2 …

深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;深入浅出的揭秘游标尺模式与迭代…