Postgresql
如何從硬碟驅動器上的 postgres 數據目錄中恢復數據?
- 我有一台舊 iMac,不久前停止工作
- 我每週對我正在更新的數據庫進行備份,其中包含來自多個 rss 提要的提要項
- 我仍然缺少上週的數據
- 我目前有舊機器的硬碟驅動器,其中包含 postgres 數據目錄(它是基於 Intel 的 iMac)
- 我的新機器是基於 Apple M1 的 mac mini,我想載入所有這些提要項目
- 我想從包含舊 postgres 文件的硬碟驅動器上的數據目錄中的名為 ch_v3 的特定數據庫中恢復名為 feed_items 的特定表
- 如何將舊硬碟上以原始格式儲存的 100k+ 提要項目恢復到新機器上的新 postgres 安裝中?
如果您需要一種方法來恢復數據庫,但沒有可用的基於 Intel/AMD 的系統,那麼 Amazon、DigitalOcean 或其他地方的虛擬機可能會滿足您的需求。如果您從未擁有過 Amazon Web Services 帳戶,您甚至可以“免費”完成所有這些操作。
該過程可能像這樣工作:
- 在 VPS 提供商處註冊一個帳戶
- 使用您選擇的作業系統對其進行配置。為了這個例子,我將使用 Ubuntu Server 20.04 和 PostgreSQL 12
- 安裝 PostgreSQL
sudo apt install postgresql postgresql-contrib
- 通過連接數據庫確認安裝成功:
sudo -i -u postgres psql
- 只要你能連接,那麼一切都很好。讓我們退出:
\q
- 現在我們需要停止伺服器:
service postgresql stop
有了基礎知識,現在是時候進行一些文件管理了。
- 刪除位於 PostgreSQL 數據目錄中的文件
sudo rm -Rf /var/lib/postgresql/12/main
- 將舊數據文件複製到該位置
- 相應地設置文件權限:
sudo chown -R postgres:postgres /var/lib/postgresql/12/main sudo chmod -R u+rwx,g-rwx,o-rwx /var/lib/postgresql/12/main
- 重啟 PostgreSQL
sudo service postgresql start
- 取回您的數據
總而言之,這可能是大約 30~45 分鐘的工作。希望它可以讓您恢復失去的記錄。
**注意:**如果您選擇創建 AWS 賬戶並使用他們的免費套餐選項,請記住在完成後終止實例,以避免一年後出現任何意外費用。
**注意 2:**因為這些是虛擬機,如果出現任何問題,只需終止機器並重新開始。