备份 PostgreSQL特定schema或table数据

除了创建独立数据库,PostgreSQL DBA 通常建议创建schema,因为PostgreSQL不支持跨库进行查询。在当前数据库中,你不能选择当前数据库服务器上的任何其他数据库的数据,如果要实现需要配置DB link。

因此大多数数据库用户会为不同应用场景创建不同的schema,本文针对这种应用场景介绍如何备份特定schema及表。

备份特定范围数据

备份schema

pg_dump -U postgres -d postgres --schema=public > back1.sql

备份指定表

pg_dump -U postgres -d postgres -t public.t_oil >t_oil.sql

另外还有其他几个常用参数:

pg_dump -U postgres -W -F t dvdrental > c:\pgbackup\dvdrental.tar

-U postgres 指定用户连接数据库服务器,这里是 postgres

-W 强制 pg_dump 在连接数据库服务器之前提示密码

-F 指定输入文件格式:

  • c: 自定义归档文件格式
  • d: 目录方式归档,创建目录包括每个表对应一个文件
  • t: tar压缩文件格式
  • p: 普通SQL文本

备份其他数据库对象

我们知道可以通过 pg_dumpall 命令备份全部数据库对象:

pg_dumpall -U postgres > c:\pgbackup\all.sql

我们也可以备份其他数据库特定对象,如角色、表空间、数据库、schema、table、索引等。下面给几个典型示例。

仅备份scheam定义:

pg_dumpall --schema-only > c:\pgdump\definitiononly.sql

仅备份角色定义:

pg_dumpall --roles-only > c:\pgdump\allroles.sql

仅备份表空间定义:

pg_dumpall --tablespaces-only > c:\pgdump\allroles.sql
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Django中实现备份PostgreSQL数据,可以使用Django提供的`django.db`模块中的`connection`方法和`cursor`方法来实现。以下是一个简单的实现示例: 1. 首先,确保已经在项目的`settings.py`文件中配置好了PostgreSQL数据库的连接信息。 2. 在Django项目中创建一个视图函数,用于执行备份操作。例如: ```python from django.db import connection def backup_postgresql(request): # 使用Django的连接方法获取PostgreSQL数据库连接 conn = connection.cursor() # 定义备份文件的路径和文件名 backup_file_path = '/path/to/backup.sql' # 执行备份命令 conn.execute('pg_dump -U your_username -h your_host -p your_port your_database_name > ' + backup_file_path) # 关闭数据库连接 conn.close() return HttpResponse('备份成功!') ``` 3. 在项目的`urls.py`文件中配置备份的URL路径,以便访问备份视图函数。例如: ```python from django.urls import path from .views import backup_postgresql urlpatterns = [ path('backup/', backup_postgresql, name='backup_postgresql'), ] ``` 4. 运行Django项目并访问备份的URL路径,即可触发备份操作。 需要注意的是,以上示例中的备份命令是直接执行系统命令来实现的,所以需要确保项目运行的服务器上已经安装了`pg_dump`命令,并且必须在命令中提供正确的用户名、主机、端口和数据库名称等参数。同时,备份文件路径也需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值