postgres本身支援資料庫備份操作,基於安裝路徑下bin目錄下的兩個指令碼檔案pg_dump pg_dumpall
乙個支援單庫備份,乙個支援整個資料庫備份
這裡實現的是不同機子間的備份,例如我在101.62上面是線上資料庫,我需要定時備份到101.68這台機子上。
以下是命令:
-- 備份 pg_dump 資料庫名 -h 要備份的資料庫ip -p 你的埠 -u postgres > 備份結果檔名.dmp pg_dumpall -h 要備份的資料庫ip -p 你的埠 -u postgres > 備份結果檔名.dmp
example:
pg_dump database -h 192.168.101.62 -p 5432 -u postgres > filename pg_dumpall -h 192.168.101.62 -p 5432 -u postgres > filename
-- 還原
psql -h 要還原的資料庫ip -p 埠 -u postgres -d 指定資料庫名
example:
psql -h 192.168.101.68 -p 5432 -u postgres -d new_db < filename psql -h 192.168.101.68 -p 5432 -u postgres < filename
注意:用到的指令碼都在postgres的安裝bin下,所以該方案要求接受備份檔案的機子也需要安裝postgres
這樣顯然,我這裡需要的是定時備份,那麼只需要利用linux的crontab 定時器就可以了
crontab –e 新增定時任務 crontab -l 表示列出所有的定時任務 crontab -r 表示刪除使用者的定時任務
0 23 * * * /temp/pgsql_backup.sh >> /temp/pgdata_export.log 2>&1 //例如每晚23點執行
這個命令指的是每晚23點執行指令碼進行備份,日誌寫入/temp/pgdata_export.log中
crontab如果沒有安裝,centos執行yum安裝即可:
yum -y install vixie-cron yum -y install crontabs
pgsql_backup.sh指令碼為:
#!/bin/bash export path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apache2/bin:/root/bin:/usr/local/pgsql/bin export lang=zh_cn.utf-8 export export pgpassword=postgres dest_folder=/temp/ dest_file=pgdata_$(date +%y%m%d).dmp tar_file=pg_$(date +%y%m%d).tar.gz echo [$(date +'%f %h:%m:%s')] 準備匯出postgresql資料庫 匯出檔案位址為$dest_folder$dest_file echo [$(date +'%f %h:%m:%s')] ..................正在匯出............................
oracle資料庫定時任務
不久前,做的專案中需要用到定時任務 有兩種實現方式 應用程式,資料庫。決定採用資料庫的定時任務。關於資料庫定時任務的資料,網上有很多文章,但當自己在設計時,並沒有僅通過一篇文章就解決問題。於是決定綜合網上資料和自己的專案,寫一篇oracle資料庫自帶的job來實現定時任務。一 定時任務的建立 啟動 ...
oracle資料庫定時任務
常要oracle資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作,這時需要用到乙個函式dbms job.submit,來完成oracle定時器job時間的處理上。使用dbms job.submit這個函式,我們只需要考慮兩個事情 安排某一任...
oracle資料庫定時任務
1.定時任務樣例 一 建立乙個表 create table t free twice id number 8 primary key,name nvarchar2 20 二 建立序列 記錄id值 create sequence create sequence t free twice log min...