首页 > 数据库 >langfuse使用的postgresql异机备份和恢复(docker)

langfuse使用的postgresql异机备份和恢复(docker)

时间:2024-12-03 16:35:42浏览次数:4  
标签:postgresql postgres table docker langfuse root public localhost

环境:
OS:Centos 7

1.备份
##备份
export PGPASSWORD=postgres
/opt/pg16/bin/pg_basebackup -D "/backup/pgbak/basebackup/20241202" -Ft -Pv -U postgres -h 172.16.1.65 -p5432


2.压缩备份
带上-z参数进行压缩
cd /backup/pgbak/basebackup
[yeemiao@middle basebackup]$ tar -zcvf 20241118.tar.gz ./20241118

 

3.备份文件拷贝到另外一台部署了 langfuse 的机器
cd /backup/pgbak/basebackup
scp 20241118.tar.gz root@192.168.1.134:/soft/pgbak/

4.目的机器解压备份文件
[root@localhost pgbak]#cd /soft/pgbak
[root@localhost pgbak]#tar -xzvf 20241118.tar.gz
解压后的文件如下:
[root@localhost 20241118]# ls
backup_manifest base.tar pg_wal.tar
[root@localhost 20241118]# pwd
/soft/pgbak/20241118


5.新环境删除掉原有的重新创建一个新的(新环境可用的话,该步骤省略)
[root@localhost langfuse]#cd /home/middle/langfuse/langfuse
[root@localhost langfuse]#docker compose down
[root@localhost langfuse]#docker compose up -d

 

6.将归档日志拷贝到容器里面(需要提前做,要不恢复的时候提示找不到日志文件)
pg_wal.tar解压到归档目录
[root@host134 ~]#tar -xvf /soft/pgbak/20241118/pg_wal.tar -C /home/middle/langfuse/archivelog ##先解压到宿主机目录,目录需要提前创建
把归档日志拷贝到外挂的数据目录,这里有多少就拷贝多少
cp /home/middle/langfuse/archivelog/000000010000000E0000002B /home/middle/langfuse/pgdata/


登录容器
docker exec -ti langfuse-db-1 /bin/bash

容器里创建存放归档文件的目录
root@41f038664bc3:/# cd /var/lib/postgresql
root@41f038664bc3:/var/lib/postgresql# mkdir archivelog

归档日志放到指定目录
root@41f038664bc3:/#mv /var/lib/postgresql/data/000000010000000E0000002B /var/lib/postgresql/archivelog

修改权限
chown -R postgres:postgres /var/lib/postgresql/archivelog
chmod 0700 /var/lib/postgresql/archivelog

否则会报如下的错误:
cp: cannot open '/var/lib/postgresql/archivelog/000000010000000E0000002B' for reading: Permission denied

 

7.停掉langfuse
[root@localhost langfuse]# cd /home/middle/langfuse/langfuse
[root@localhost langfuse]# docker compose stop

 

8.删除data目录并创建空的data目录
[root@localhost langfuse]# cd /home/middle/langfuse
[root@localhost langfuse]# mv pgdata bak_pgdata
[root@localhost langfuse]# mkdir pgdata

 

9.将备份tar文件解压到数据目录
目前root账号下面操作的,后面需要记得修改权限
base.tar文件解压到data目录
[root@host134 ~]#tar -xvf /tmp/pgbak/20241118/base.tar -C /home/middle/langfuse/pgdata ##解压数据目录

 

9.修改配置文件
cd /home/middle/langfuse/pgdata
vi postgresql.conf 修改如下参数
restore_command = 'cp /var/lib/postgresql/archivelog/%f %p'
recovery_target_timeline = 'latest'

 

10.生成recovery.signal标识文件
[root@localhost pgdata]# cd /home/middle/langfuse/pgdata
[root@localhost pgdata]# touch recovery.signal

 

11.启动容器

[root@localhost langfuse]# cd /home/middle/langfuse/langfuse
[root@localhost langfuse]# docker compose start
[+] Running 2/2
 ? Container langfuse-db-1               Healthy                                                              20.0s 
 ? Container langfuse-langfuse-server-1  Started                                 "docker-entrypoint.s…"   3 months ago   Restarting (1) 24 seconds ago                                                                                              langfuse-db-1

 

12.查看日志
docker logs langfuse-db-1

 

13.登录pg查看

[root@localhost langfuse]# psql -h localhost -U postgres -p5432
Password for user postgres: 
psql (14.11, server 16.4 (Debian 16.4-1.pgdg120+1))
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
Type "help" for help.

postgres=# \dt
                  List of relations
 Schema |           Name           | Type  |  Owner   
--------+--------------------------+-------+----------
 public | Account                  | table | postgres
 public | Session                  | table | postgres
 public | _prisma_migrations       | table | postgres
 public | api_keys                 | table | postgres
 public | audit_logs               | table | postgres
 public | batch_exports            | table | postgres
 public | cron_jobs                | table | postgres
 public | dataset_items            | table | postgres
 public | dataset_run_items        | table | postgres
 public | dataset_runs             | table | postgres
 public | datasets                 | table | postgres
 public | eval_templates           | table | postgres
 public | events                   | table | postgres
 public | job_configurations       | table | postgres
 public | job_executions           | table | postgres
 public | llm_api_keys             | table | postgres
 public | membership_invitations   | table | postgres
 public | models                   | table | postgres
 public | observations             | table | postgres
 public | organization_memberships | table | postgres
 public | organizations            | table | postgres
 public | posthog_integrations     | table | postgres
 public | project_memberships      | table | postgres
 public | projects                 | table | postgres
 public | prompts                  | table | postgres
 public | score_configs            | table | postgres
 public | scores                   | table | postgres
 public | sso_configs              | table | postgres
 public | trace_sessions           | table | postgres
 public | traces                   | table | postgres
 public | users                    | table | postgres
 public | verification_tokens      | table | postgres
(32 rows)

postgres=# select * from users;

 

标签:postgresql,postgres,table,docker,langfuse,root,public,localhost
From: https://www.cnblogs.com/hxlasky/p/18584367

相关文章

  • 麒麟docker与gitlib安装
    迁移好后用:一、安装docker以下操作均在root用户下进行1.1 查看当前操作系统版本[root@db1~]#cat/etc/os-releaseNAME="KylinLinuxAdvancedServer"VERSION="V10(Sword)"ID="kylin"VERSION_ID="V10"PRETTY_NAME="KylinLinuxAdvancedServerV......
  • docker 配置文件
    、解决方案(1)查看DNS客户机的配置文件1cat/etc/resolv.conf 发现我的nameserver是8.8.8.8了,说明我的DNS出了问题需要新增DNS:nameserver114.114.114.114(2)修改配置文件1vim/etc/resolv.conf修改后如下   第一步:编辑Do......
  • 【什么是PostgreSQL日志归档】
    什么是PostgreSQL日志归档文章目录什么是PostgreSQL日志归档前言一、设置PostgreSQL的归档模式1.1查看当前的归档模式1.2查看当前PostgreSQL的数据目录1.3创建日志归档目录1.4修改配置文件1.5重启PG服务检查归档信息1.6查看预写日志列表二、管理过期的归档......
  • docker-compose 部署 Redis 的一些警告
    背景内核参数overcommit_memory警告#WARNINGMemoryovercommitmustbeenabled!Withoutit,abackgroundsaveorreplicationmayfailunderlowmemorycondition.Beingdisabled,itcanalsocausefailureswithoutlowmemorycondition,seehttps://github.com......
  • 使用服务器docker搭建Pwn题目
    一、docker的安装1、安装前先卸载操作系统默认安装的dockersudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc2、安装必要支持sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-commongnupglsb-release3、添加gpgKEY(阿......
  • Docker 容器映射端口访问限制
    在使用Docker容器时我们经常需要将容器端口映射到宿主机上。最基本的端口映射可以通过"PORT:PORT"来设置,比如"6379:6379"就是将容器的6379端口映射到宿主机的6379端口上。然而,这种基本的端口映射存在一个主要问题:默认情况下,任何能访问到宿主机的客户端都可以访问这个端......
  • 云原生周刊:Kubernetes 和 Docker 的对比
    开源项目推荐DokployDokploy是一个功能强大的开源平台,为开发者提供与Vercel、Netlify和Heroku类似的全栈部署与托管体验。它支持现代化的开发工作流,提供快速、可靠的部署服务,涵盖前端、后端和全栈应用。Dokploy的开源特性让开发者可以完全掌控基础设施,同时享受自动化部署......
  • Docker常用应用之稍后阅读
    1.简介wallabag是一款开源的,可以自托管的稍后阅读工具。提供了浏览器插件和手机客户端,可以很方便的收藏文章用于稍后再看。wallabag官网,wallabaggithub地址,wallabagdockerhub2.部署2.1.docker部署cd/docker_data/mkdir-pwallabag/datacdwallabagvidocker-compose.y......
  • docker常用命令
    跳过了docker的安装,可以自己搜索安装.目录下面需要存在一个Dockerfile的文件,内容类似如下:FROMpython:3.11-slimWORKDIR/appRUNpip3installflaskRUNpip3installFlask-CorsRUNpip3installFlask-SQLAlchemyRUNpip3installFlask-HTTPAuthRUNpip3inst......
  • 有关docker save压缩传输的思考
    背景使用gzip/bzip2/xz配合dockersave可以压缩镜像体积,使用管道传输时效率有何不同?试验$dockerimagelsros:jazzy-ros-coreREPOSITORYTAGIMAGEIDCREATEDSIZErosjazzy-ros-core82a20bffe6e26monthsago486MB$doc......