postgressql資料庫自動備份

2021-08-28 23:02:29 字數 3263 閱讀 8723

一、檢視postgresql的備份命令:

c:\users\helc>"d:\program files\postgresql\9.3\bin\pg_dump.exe" --help

pg_dump 把乙個資料庫轉儲為純文字檔案或者是其它格式.

用法:pg_dump [選項]... [資料庫名字]

一般選項:

-f, --file=filename          輸出檔案或目錄名

-f, --format=c|d|t|p         輸出檔案格式 (定製, 目錄, tar)

明文 (預設值))

-j, --jobs=num               執行多個並行任務進行備份轉儲工作

-v, --verbose                詳細模式

-v, --version                輸出版本資訊,然後退出

-z, --compress=0-9           被壓縮格式的壓縮級別

--lock-wait-timeout=timeout  在等待表鎖超時後操作失敗

-?, --help                   顯示此幫助, 然後退出

控制輸出內容選項:

-a, --data-only              只轉儲資料,不包括模式

-b, --blobs                  在轉儲中包括大物件

-c, --clean                  在重新建立之前,先清除(刪除)資料庫物件

-c, --create                 在轉儲中包括命令,以便建立資料庫

-e, --encoding=encoding      轉儲以encoding形式編碼的資料

-n, --schema=schema          只轉儲指定名稱的模式

-n, --exclude-schema=schema  不轉儲已命名的模式

-o, --oids                   在轉儲中包括 oid

-o, --no-owner               在明文格式中, 忽略恢復物件所屬者

-s, --schema-only            只轉儲模式, 不包括資料

-s, --superuser=name         在明文格式中使用指定的超級使用者名稱

-t, --table=table            只轉儲指定名稱的表

-t, --exclude-table=table    不轉儲指定名稱的表

-x, --no-privileges          不要轉儲許可權 (grant/revoke)

--binary-upgrade             只能由公升級工具使用

--column-inserts             以帶有列名的insert命令形式轉儲資料

--disable-dollar-quoting     取消美元 (符號) 引號, 使用 sql 標準引號

--disable-triggers           在只恢復資料的過程中禁用觸發器

--exclude-table-data=table   不轉儲指定名稱的表中的資料

--inserts                    以insert命令,而不是copy命令的形式轉儲資料

--no-security-labels         不轉儲安全標籤的分配

--no-synchronized-snapshots  在並行工作集中不使用同步快照

--no-tablespaces             不轉儲表空間分配資訊

--no-unlogged-table-data     不轉儲沒有日誌的表資料

--quote-all-identifiers      所有識別符號加引號,即使不是關鍵字

--section=section            備份命名的節 (資料前, 資料, 及 資料後)

--serializable-deferrable   等到備份可以無異常執行

--use-set-session-authorization

使用 session authorization 命令代替

alter owner 命令來設定所有權

聯接選項:

-d, --dbname=dbname       對資料庫 dbname備份

-h, --host=主機名        資料庫伺服器的主機名或套接字目錄

-p, --port=埠號        資料庫伺服器的埠號

-u, --username=名字      以指定的資料庫使用者聯接

-w, --no-password        永遠不提示輸入口令

-w, --password           強制口令提示 (自動)

--role=rolename          在轉儲前執行set role

如果沒有提供資料庫名字, 那麼使用 pgdatabase 環境變數

的數值.

報告錯誤至 .

二、生成bat檔案

@echo  off

@setlocal enableextensions@cd  /d "%~dp0"

set pgpath=d:\"program files"\postgresql\9.3\bin\

set svpath=d:\backup\

set prjdb=aids_neijiang

set dbusr=aids

set daysago=15---定時刪除檔案

for /f "tokens=1,2,3 delims=/ " %%i in ('date /t') do set d=%%i-%%j-%%k

for /f "tokens=1,2,3 delims=: " %%i in ('time /t') do set t=%%i%%j%%k

set dbdump=%prjdb%_%d%_%t%.backup

@echo  off

forfiles /p %svpath% /s /m *.* /d -%daysago% /c "cmd /c del /f @path"

@echo  off

"d:\program files\postgresql\9.3\bin\pg_dump.exe" -h localhost -u postgres -z5 -f c -f %svpath%%dbdump% %prjdb%

echo backup taken complete %svpath%%dbdump%

三、建立windows定時任務

參考文獻:

PostgresSql 資料庫獲取所有表的索引資訊

查詢全部有關資訊 按表進行索引資訊分類 select a.tablename,string agg a.indexdef,from pg indexes a group by a.tablename order by a.tablename select a.tablename,string agg...

資料庫SQLiteOpenHelper自創

增 insert into 表名 欄位名,欄位名 values 刪 delete from 表名 where 字段 改 update 表名 set 字段 字段 where 條件 查 select form 表名 where 字段 可以更改為想要查詢的內容 建立資料庫 package com.bawe...

oracle資料庫自增

1 建立sequence create sequence seq seq1 minvalue 1 maxvalue 99999999999999 start with 1 increase by 1 chache 20 如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence...