狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

PostgreSQL 數據庫怎么實現自動備份?

admin
2024年10月30日 7:53 本文熱度 591

如果您是數據庫管理員,則很可能會有數據的備份。如果您有數據備份,那么您很可能考慮過如何自動化備份過程。本文可以作為如何自動化 PostgreSQL 備份的指南。

選擇備份方式

默認情況下,就 PostgreSQL 而言,在備份數據時,您有幾種選擇:

  • ? 您可以使用pg_dumppg_dumpall

  • ? 您也可以使用pg_basebackup

PostgreSQL 提供的這兩個工具之間的主要區(qū)別在于:pg_dump 和 pg_dumpall 是邏輯備份,而 pg_basebackup 是物理備份。pg_dump 和 pg_dumpall 之間也存在差異。第一個通常用于備份單個 PostgreSQL 數據庫,pg_dumpall 更常用于將所有 PostgreSQL 數據庫轉儲到單個腳本文件中。以下是使用 pg_dump 實現備份目的的方法:

pg_dump -U postgres -W -F t database_name > database_name.tar

以下是上述命令的作用:

  • pg_dump調用 pg_dump。

  • -U選項指定用戶。

  • -W選項強制 pg_dump 在單擊 Enter 鍵后立即提示輸入密碼。

  • -F選項指定文件輸出格式,文件格式可以是:c自定義格式、d目錄格式的存檔、t生成.tar文件,或p純文件。

  • database_name指定要備份數據的數據庫名稱。

  • database_name.tar是輸出文件。

您還可以使用 pg_dumpall,將所有 PostgreSQL 數據庫備份到一個腳本文件中,如上所述。下面演示了如何做到這一點:

pg_dumpall -U postgres -f data.sql

pg_dumpall 的選項與 pg_dump 的選項類似。

  • ? 您還可以使用命令$ pg_dumpall --schema-only > schema.sql,備份所有數據庫中的所有對象,包括角色、表空間、模式、表、索引、觸發(fā)器、函數、約束、視圖、所有權和權限。

  • ? 如果您只想備份角色,請使用$ pg_dumpall --roles-only > roles.sql

最后,您可以使用 pg_basebackup,創(chuàng)建 PostgreSQL 數據庫的物理備份。

pg_basebackup -D /backups -x

選項包括:

  • -D用于指定輸出目錄的路徑

  • -x將事務日志包含在備份文件夾中

在 Linux 上自動備份

以下是有關如何使用 cron 作業(yè),自動執(zhí)行 PostgreSQL 備份過程的簡易指南。首先,創(chuàng)建一個執(zhí)行備份的 bash 腳本,可能命名為backup.sh

#!/bin/bash

Optional hostname to adhere to pg_hba policies. Will default to "localhost" if none specified.
BACKUP_HOST="192.168.89.128"

Optional username to connect to database as. Will default to "postgres" if none specified.
BACKUP_USER=postgres

backup directory infomation
BACKUP_DIR=/home/postgres/backup/
BACKUP_FILE="$BACKUP_DIR/db_backup_$(date +%Y%m%d).bak"

Set the PGPASSWORD environment variable
export PGPASSWORD="test"

Perform the backup
pg_dumpall -h $BACKUP_HOST -U $BACKUP_USER -f $BACKUP_FILE

在腳本準備完成后,我們現在可以調度它,以便它可以在每天的特定時間運行。在本文中,我們將安排此程序在每天午夜運行。

我們可以使用命令crontab -e打開 crontab,并輸入以下命令:

0 0 * * * bash /home/to/backup.sh >> /home/to/backup.log 2>&1

下面是調度backup.sh腳本的示例。我們安排文件在每天午夜運行,并將日志記錄到backup.log文件。

0 0 * * * bash /home/postgres/backup/backup.sh >> /home/postgres/backup/backup.log 2>&1

在完成設置的配置和規(guī)劃好備份后,PostgreSQL 備份現在應該已自動化了。

在 Windows 上自動備份

創(chuàng)建一個批處理腳本文件,可能命名為backup.bat。該文件必須位于 PostgreSQL 備份目錄中,而不是 bin 文件夾中。

@echo off
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
  set year=%%i
  set month=%%j
  set monthday=%%k
  set weekday=%%l
)
set datestr=%year%%month%%monthday%

set BACKUP_FILE=<BACKUP_DIR>\db_backup_%datestr%.bak
echo backup file name is %BACKUP_FILE%
SET PGPASSWORD=<Password>
echo on
<PGHOME>\bin\pg_dumpall -h <HostName> -U <UserName> -f %BACKUP_FILE%

您需要根據實際生產環(huán)境,更改腳本文件:

  • ? 將<BACKUP_DIR>更改為有效的備份目錄。

    注意:確保在單詞 BACKUP_FILE 后沒有空格,任何空格都會導致該設置不起作用。
  • ? 將上面的<Password>設置更改為正確的備份用戶密碼。PGPASSWORD 的說明。

    注意:確保在單詞 PGPASSWORD 后沒有空格,任何空格都會導致該設置不起作用。
  • ? 將<HostName>更改為部署 PostgreSQL 的服務器的 IP 地址或 DNS 名稱。

  • ? 將<UserName>更改為備份用戶,要確保該用戶有權訪問數據庫以進行備份。

  • ? 將<PGHOME>更改為 PostgreSQL 備份工具的安裝目錄。

在腳本準備完成后,在 Windows 任務計劃程序中創(chuàng)建一個任務。

在選擇好將在其中運行任務的安全上下文后,建議更改運行備份和存儲文件的目錄安全性,因為一個高級用戶名和密碼會以純文本形式存儲。另一個方法是修改 pg_hba.conf 文件,將備份服務器添加為可信任的連接。

總結

自動化 PostgreSQL 備份并不像乍一看那么難。使用 pg_dumpall、pg_basebackup 或 pg_backrest 時,在 Linux crontab 或 Windows 任務計劃程序的幫助下,您可以放心,您的 PostgreSQL 數據會得到妥善處理。如果您還有其他問題,請務必查看備份工具的文檔,或者在需要進一步幫助時聯(lián)系支持人員。


該文章在 2024/10/30 14:36:54 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved