Postgresql

如何從硬碟驅動器上的 postgres 數據目錄中恢復數據?

  • May 1, 2021
  • 我有一台舊 iMac,不久前停止工作
  • 我每週對我正在更新的數據庫進行備份,其中包含來自多個 rss 提要的提要項
  • 我仍然缺少上週的數據
  • 我目前有舊機器的硬碟驅動器,其中包含 postgres 數據目錄(它是基於 Intel 的 iMac)
  • 我的新機器是基於 Apple M1 的 mac mini,我想載入所有這些提要項目
  • 我想從包含舊 postgres 文件的硬碟驅動器上的數據目錄中的名為 ch_v3 的特定數據庫中恢復名為 feed_items 的特定表
  • 如何將舊硬碟上以原始格式儲存的 100k+ 提要項目恢復到新機器上的新 postgres 安裝中?

如果您需要一種方法來恢復數據庫,但沒有可用的基於 Intel/AMD 的系統,那麼 Amazon、DigitalOcean 或其他地方的虛擬機可能會滿足您的需求。如果您從未擁有過 Amazon Web Services 帳戶,您甚至可以“免費”完成所有這些操作。

該過程可能像這樣工作:

  1. 在 VPS 提供商處註冊一個帳戶
  2. 使用您選擇的作業系統對其進行配置。為了這個例子,我將使用 Ubuntu Server 20.04 和 PostgreSQL 12
  3. 安裝 PostgreSQL
sudo apt install postgresql postgresql-contrib
  1. 通過連接數據庫確認安裝成功:
sudo -i -u postgres
psql
  1. 只要你能連接,那麼一切都很好。讓我們退出:
\q
  1. 現在我們需要停止伺服器:
service postgresql stop

有了基礎知識,現在是時候進行一些文件管理了。

  1. 刪除位於 PostgreSQL 數據目錄中的文件
sudo rm -Rf /var/lib/postgresql/12/main
  1. 將舊數據文件複製到該位置
  2. 相應地設置文件權限:
sudo chown -R postgres:postgres /var/lib/postgresql/12/main
sudo chmod -R u+rwx,g-rwx,o-rwx /var/lib/postgresql/12/main
  1. 重啟 PostgreSQL
sudo service postgresql start
  1. 取回您的數據

總而言之,這可能是大約 30~45 分鐘的工作。希望它可以讓您恢復失去的記錄。

**注意:**如果您選擇創建 AWS 賬戶並使用他們的免費套餐選項,請記住在完成後終止實例,以避免一年後出現任何意外費用。

**注意 2:**因為這些是虛擬機,如果出現任何問題,只需終止機器並重新開始。

引用自:https://dba.stackexchange.com/questions/290639