pg_dump 備份與恢復的簡單操作

来源:http://www.cnblogs.com/lottu/archive/2016/01/28/5166498.html
-Advertisement-
Play Games

pg_dump 是一個用於備份PostgreSQL資料庫的工具. 該工具生成的轉儲格式可以分為兩種, 腳本 : 其中腳本格式是包含許多SQL命令的純文本格式 (常用) 歸檔文件: 需要重建資料庫就必須和pg_restore工具一起使用 下麵按照這兩種方式進行備份恢復操作。 環境簡介: 操作對象:數據


pg_dump 是一個用於備份PostgreSQL資料庫的工具.    該工具生成的轉儲格式可以分為兩種,    腳本  :     其中腳本格式是包含許多SQL命令的純文本格式  (常用)    歸檔文件:  需要重建資料庫就必須和pg_restore工具一起使用    下麵按照這兩種方式進行備份恢復操作。   環境簡介:

操作對象:資料庫為xzfb; 表lottu,lottu01

  [postgres@oracle2 ~]$ psql -U lottu -d xzfb psql (9.5.0) Type "help" for help.   xzfb=> \d+                       List of relations  Schema |  Name   | Type  | Owner |    Size    | Description  --------+---------+-------+-------+------------+-------------  public | lottu   | table | lottu | 8192 bytes |   public | lottu01 | table | lottu | 8192 bytes |  (2 rows)   xzfb=> select * from lottu;  v_id | v_name   ------+---------  1001 | lottu  1002 | rax  1003 | vincent  1003 | vincent (4 rows)   xzfb=> select * from lottu01;   id   ------  1001  1002 (2 rows)   1.  生成腳本方式來備份,恢復

   備份整個資料庫xzfb   
    先介紹-c參數; 相當於是對對象先刪除;後創建的功效。

  [postgres@oracle2 ~]$ pg_dump -c -f backup/xzfb.sql xzfb   -- 可以替換  pg_dump -c xzfb > ./backup/xzfb.sql  [postgres@oracle2 ~]$ ll total 36 drwxrwxr-x  2 postgres postgres 4096 Jan 28 14:35 backup -rwxrwxr-x  1 postgres postgres 2273 Jan 27 14:27 config.sh drwx------ 19 postgres postgres 4096 Jan 27 16:28 data drwxrwxr-x  2 postgres postgres 4096 Jan 28 00:00 log -rwxrwxr-x  1 postgres postgres  930 Jan 27 16:45 lottu.sh -rw-rw-r--  1 postgres postgres 5087 Jan 27 16:40 master.log -rwxrwxr-x  1 postgres postgres  797 Jan 27 12:57 remove.sh -rwxrwxr-x  1 postgres postgres 2043 Jan 27 16:35 start.sh [postgres@oracle2 ~]$ cd backup [postgres@oracle2 backup]$ ll total 8 -rw-rw-r-- 1 postgres postgres 1571 Jan 28 14:35 xzfb01.sql -rw-rw-r-- 1 postgres postgres 1964 Jan 28 14:41 xzfb.sql  

恢復整個資料庫xzfb  ;由於備份的是腳本;可以直接psql執行即可。 

  [postgres@oracle2 ~]$ dropdb -U postgres xzfb [postgres@oracle2 ~]$ createdb -U postgres -O lottu -D lottu -e xzfb CREATE DATABASE xzfb OWNER lottu TABLESPACE lottu; [postgres@oracle2 ~]$ psql -U lottu -d xzfb psql (9.5.0) Type "help" for help.   xzfb=> \d No relations found.

 從這裡可以看出xzfb庫已經刪除了已創建;裡面是沒有表關聯現在執行 psql -U lottu -d xzfb < ./backup/xzfb.sql 進行恢復

  [postgres@oracle2 backup]$ psql -U lottu -d xzfb < xzfb.sql  

進入資料庫可以看到數據已經回來了


[postgres@oracle2 backup]$ psql -U lottu -d xzfb psql (9.5.0) Type "help" for help.   xzfb=> \d         List of relations  Schema |  Name   | Type  | Owner  --------+---------+-------+-------  public | lottu   | table | lottu  public | lottu01 | table | lottu (2 rows)   xzfb=> select * from lottu;  v_id | v_name   ------+---------  1001 | lottu  1002 | rax  1003 | vincent  1003 | vincent (4 rows)   對 表的數據也可以這樣恢復;這裡不簡介了;大家備份的腳本可以查看下;裡面就是在psql能運行的腳本。   2. 備份格式為 歸檔文件的備份,恢復  
  •  使用dump格式備份和恢復
 首先介紹下

參數-F: p(plain): 純文本格式的SQL腳本文件(預設)。c(custom): 輸出適合於pg_restore的自定義歸檔格式。 這是最靈活的格式,它允許對裝載的數據和對象定義進行重新排列。這個格式預設的時候是壓縮的。t(tar): 輸出適合於 pg_restore的tar歸檔文件。使用這個歸檔允許在恢複數據庫時重新排序和/或把資料庫對象排除在外。同時也可以在恢復的時候限制對哪些數據進行恢復。

  [postgres@oracle2 ~]$ pg_dump -U postgres -Fc xzfb > ./backup/xzfb02.dump             --備份 [postgres@oracle2 ~]$ dropdb -U postgres xzfb                                                          --刪庫操作 [postgres@oracle2 ~]$ createdb -U postgres -O lottu -D lottu -e xzfb                             --建庫操作 [postgres@oracle2 ~]$ pg_restore -U postgres -d xzfb ./backup/xzfb02.dump > ./backup/dump01.log 2>&1                --恢復操作 [postgres@oracle2 ~]$ psql -U lottu -d xzfb psql (9.5.0) Type "help" for help.   xzfb=> \d         List of relations  Schema |  Name   | Type  | Owner  --------+---------+-------+-------  public | lottu   | table | lottu  public | lottu01 | table | lottu (2 rows)   xzfb=> select * from lottu;  v_id | v_name   ------+---------  1001 | lottu  1002 | rax  1003 | vincent  1003 | vincent (4 rows) 恢復OK;恢復詳細步驟看./backup/dump01.log內容;
 
  • 使用tar格式備份和恢復
跟上面備份,恢覆沒什麼兩樣      [postgres@oracle2 ~]$ pg_dump -U postgres -Ft xzfb > ./backup/xzfb03.tar        [postgres@oracle2 ~]$ pg_restore -U postgres -d xzfb ./backup/xzfb03.tar  > ./backup/dump02.log 2>&1   參考文獻:對pg_dump參數詳解: --http://www.cnblogs.com/stephen-liu74/archive/2012/06/01/2307813.html
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 相比看一下枯燥乏味的對於block的講解,為什麼不從大神的代碼中領路它的使用方法呢,瞭解一下大神是如何使用block的呢,見識它的強大。https://github.com/zwaldowski/BlocksKit該項目對iOS的一些常用類進行了擴展,你可以學習到block的精髓。
  • 本文介紹一些流行的iOS的開源項目庫 1.AFNetworking 更新頻率高的輕量級的第三方網路庫,基於NSURL和NSOperation,支持iOS和OSX。https://github.com/AFNetworking/AFNetworking 2.GPUImage 圖像處理庫,基於OpenG
  • 一、簡介 Redis的replication機制允許slave從master那裡通過網路傳輸拷貝到完整的數據備份。具有以下特點: 非同步複製 可以配置一主多從 可以配置從伺服器可以級聯從伺服器,既 M->S->S M replication時是非阻塞的(在replication期間,M依然能夠處理客戶
  • 分片(partitioning)就是將你的數據拆分到多個 Redis 實例的過程,這樣每個實例將只包含所有鍵的子集。本文第一部分將向你介紹分片的概念,第二部分將向你展示 Redis 分片的可選方案。 分片能做什麼 Redis 的分片承擔著兩個主要目標: 允許使用很多電腦的記憶體總和來支持更大的資料庫。
  • 概述 本篇文章主要介紹Mycat以月進行分片的方法,包括配置方法、註意事項等。 mycat版本:1.4 數據節點:dn1,dn2,dn3 架構:主從 配置 創建測試表 CREATE TABLE `tdate` ( `id` int(11) NOT NULL, `createdate` datetim
  • 一、 Storm整體介紹 Storm 是一個類似Hadoop MapReduce的系統, 用戶按照指定的介面實現一個任務,然後將這個任務遞交給JStorm系統,Jstorm將這個任務跑起來,並且按7 * 24小時運行起來,一旦中間一個Worker 發生意外故障, 調度器立即分配一個新的Worker替
  • 前陣子搞了下資料庫同步,大概意思就是伺服器上有一個資料庫,與本地資料庫進行同步,伺服器上的資料庫有什麼改變,可以同步到本地資料庫中。做之前百度了下,流程分以下三步, 第一步: 伺服器上的資料庫進行發佈 第二步: 本地資料庫進行訂閱 第三步: 把冰箱門關上 看起來很簡單,實際上遠不是這麼一回事,把哥都
  • 有一張資金記錄表,一張金幣記錄表,想以時間為單位,降序合併排列他們之間的信息,查詢SQL如下:select * from (select * from t_money_logs union select * from t_gold_logs) as c order by create_time de
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...