十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
postgresql中可以使用pg_dump來(lái)備份數(shù)據(jù)庫(kù)。pg_dump是用于備份PostgreSQL數(shù)據(jù)庫(kù)的工具。它可以在數(shù)據(jù)庫(kù)正在使用的時(shí)候進(jìn)行完整一致的備份,并不阻塞其它用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
為靈山等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及靈山網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、靈山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
用法:
pg_dump [選項(xiàng)]... [數(shù)據(jù)庫(kù)名字]
一般選項(xiàng):
-f, --file=FILENAME output file or directory name
-F, --format=c|d|t|p output file format (custom, directory, tar, plain text)
-v, --verbose 詳細(xì)模式
-Z, --compress=0-9 被壓縮格式的壓縮級(jí)別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時(shí)后操作失敗
--help 顯示此幫助信息, 然后退出
--versoin 輸出版本信息, 然后退出
示例:
備份數(shù)據(jù)庫(kù),指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak
開(kāi)始-運(yùn)行-cmd 彈出dos控制臺(tái);然后 在控制臺(tái)里,進(jìn)入PostgreSQL安裝目錄bin下:
cd C:Program FilesPostgreSQL9.0bin
最后執(zhí)行備份指令:
pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak
指令解釋:
pg_dump 是備份數(shù)據(jù)庫(kù)指令,164.82.233.54是數(shù)據(jù)庫(kù)的ip地址(必須保證數(shù)據(jù)庫(kù)允許外部訪問(wèn)的權(quán)限哦~),當(dāng)然本地的數(shù)據(jù)庫(kù)ip寫(xiě) localhost;
postgres 是數(shù)據(jù)庫(kù)的用戶名;databasename 是數(shù)據(jù)庫(kù)名。
意思是導(dǎo)出到C:databasename.bak文件里,如果沒(méi)有寫(xiě)路徑,單單寫(xiě)databasename.bak文件名,那么備份文件會(huì)保存在C: Program FilesPostgreSQL9.0bin 文件夾里。
推薦學(xué)習(xí)《Python教程》。
PostgreSQL自帶一個(gè)客戶端pgAdmin,里面有個(gè)備份,恢復(fù)選項(xiàng),也能對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份 恢復(fù)(還原),但最近發(fā)現(xiàn)數(shù)據(jù)庫(kù)慢慢龐大的時(shí)候,經(jīng)常出錯(cuò),備份的文件過(guò)程中出錯(cuò)的幾率那是相當(dāng)大,手動(dòng)調(diào)節(jié)灰常有限。所以一直尋找完美的備份恢復(fù)方案。
夢(mèng)里尋他千百度,伊人卻在燈火闌珊處...其實(shí)PostgreSQL內(nèi)置不少的工具,尋找的備份恢復(fù)方案就在其中:pg_dump,psql。這兩個(gè)指令 在數(shù)據(jù)庫(kù)的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.5\;然后進(jìn)入到bin文件夾,會(huì)看到不少的exe文件,這就是PostgreSQL內(nèi)置的工具了。里面會(huì)找到 pg_dump.exe,psql.exe兩個(gè)文件。我們?cè)趺从盟麄儯?/p>
用法:
備份數(shù)據(jù)庫(kù),指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak
開(kāi)始-運(yùn)行-cmd 彈出dos控制臺(tái);然后 在控制臺(tái)里,進(jìn)入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最后執(zhí)行備份指令:
pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak
指令解釋:如上命令,pg_dump 是備份數(shù)據(jù)庫(kù)指令,164.82.233.54是數(shù)據(jù)庫(kù)的ip地址(必須保證數(shù)據(jù)庫(kù)允許外部訪問(wèn)的權(quán)限哦~),當(dāng)然本地的數(shù)據(jù)庫(kù)ip寫(xiě) localhost;postgres 是數(shù)據(jù)庫(kù)的用戶名;databasename 是數(shù)據(jù)庫(kù)名。 意思是導(dǎo)出到C:\databasename.bak文件里,如果沒(méi)有寫(xiě)路徑,單單寫(xiě)databasename.bak文件名,那么備份文件會(huì)保存在C: \Program Files\PostgreSQL\9.0\bin 文件夾里。
恢復(fù)數(shù)據(jù)庫(kù),指令如下:
psql -h localhost -U postgres -d databasename C:\databasename.bak(測(cè)試沒(méi)有成功)
pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(測(cè)試成功)
指令解釋:如上命令,psql是恢復(fù)數(shù)據(jù)庫(kù)命令,localhost是要恢復(fù)到哪個(gè)數(shù)據(jù)庫(kù)的地址,當(dāng)然你可以寫(xiě)上ip地址,也就是說(shuō)能遠(yuǎn)程恢復(fù)(必須保證 數(shù)據(jù)庫(kù)允許外部訪問(wèn)的權(quán)限哦~);postgres 就是要恢復(fù)到哪個(gè)數(shù)據(jù)庫(kù)的用戶;databasename 是要恢復(fù)到哪個(gè)數(shù)據(jù)庫(kù)。 的意思是把C:\databasename.bak文件導(dǎo)入到指定的數(shù)據(jù)庫(kù)里。
以上所有的是針對(duì)windows而言的,如果在linux下,會(huì)不會(huì)有效?
在linux里依然有效。有一個(gè)值得注意的是:如果直接進(jìn)入PostgreSQL的安裝目錄bin下,執(zhí)行命令,可能會(huì)出現(xiàn) 找不到pg_dump,psql的現(xiàn)象,我們?cè)诳梢赃@樣:
備份:
/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename databasename.bak
恢復(fù):
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename databasename.bak
pg的64位備份到32位,將數(shù)據(jù)備份為sql格式的備份文件,然后還原到32位的數(shù)據(jù)庫(kù)就可以了,或者通過(guò)第三方工具進(jìn)行數(shù)據(jù)遷移,不如kettle
直接用echo重定向?qū)懭氪蜷_(kāi). 例如: echo "創(chuàng)建新文件"newtext.txt (echo重定項(xiàng)寫(xiě)入時(shí),沒(méi)有的文件將會(huì)被創(chuàng)建) windows10終端命令行怎么打開(kāi) 1、首先在電腦桌面左下角點(diǎn)擊WIN圖標(biāo),然后就可以看到命令提示符,點(diǎn)擊進(jìn)去就可以了. 2、還可以使用...
第一步:
下載批處理文件。
第二步:
你可以通過(guò)一個(gè)簡(jiǎn)單的命令(schtasks /?查看幫助)或者使用圖形界面(開(kāi)始-控制面板-系統(tǒng)和安全-管理工具-任務(wù)計(jì)劃程序)運(yùn)行任務(wù)計(jì)劃管理工具,還可以在%SYSTEMROOT%\System32目錄下雙擊Taskschd.msc來(lái)啟動(dòng)它。
第三步:
你可以通過(guò)向?qū)Щ蛲ㄟ^(guò)XML文件導(dǎo)入信息來(lái)創(chuàng)建基本任務(wù)。向?qū)Х绞絼?chuàng)建方法見(jiàn)任務(wù)計(jì)劃程序幫助,下面介紹下命令行語(yǔ)法:
schtasks /Create [/S system [/U username [/P [password]]]] [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day] [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime] [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
查看此命令幫助:
schtasks /Create /?
如果在Windows防火墻中遠(yuǎn)程任務(wù)計(jì)劃管理被禁用而文件和打印共享被啟用并且遠(yuǎn)程注冊(cè)表服務(wù)正在運(yùn)行,遠(yuǎn)程計(jì)算機(jī)上將會(huì)被創(chuàng)建一個(gè)V1任務(wù)即使沒(méi)有使用參數(shù)V1。參數(shù)V1表明一個(gè)任務(wù)對(duì)下層系統(tǒng)可見(jiàn)。
使用代碼
腳本:
a href="" target="_blank" rel="nofollow"@ECHO/a OFF @setlocal enableextensionsa href="" target="_blank" rel="nofollow"@cd/a /d "%~dp0" SET PGPATH=C:\"Program Files"\PostgreSQL\9.1\bin\ SET SVPATH=f:\ SET PRJDB=demo SET DBUSR=postgres 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%.sqla href="" target="_blank" rel="nofollow"@ECHO/a OFF %PGPATH%pg_dump -h localhost -p 5432 -U postgres %PRJDB% %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP%
初始值
PGPATH - PostgreSQL路徑
SVPATH - 備份文件路徑
PRJDB - 要備份的數(shù)據(jù)庫(kù)名
DBUSR - 數(shù)據(jù)庫(kù)用戶名
(1)將PostgreSQL數(shù)據(jù)庫(kù)的psql工具所在的路徑添加到系統(tǒng)的環(huán)境變量中;
(2)運(yùn)行cmd,在窗口中輸入psql,會(huì)有提示輸入口令的信息,按ctrl+c終止該命令;
(3)建立與服務(wù)器的鏈接,具體格式:psql -h 服務(wù)器IP地址 -U 數(shù)據(jù)庫(kù)連接用戶名 -d 數(shù)據(jù)庫(kù)名稱 -p 端口號(hào);(比如:psql -h 192.168.9.202 -U postgres -d luoyang -p 5432),鏈接成功的話會(huì)出現(xiàn):“數(shù)據(jù)庫(kù)名稱=#”格式的提示(luoyang=#);
(4)修改數(shù)據(jù)庫(kù)中導(dǎo)出數(shù)據(jù)的編碼格式為gbk,指令:\encoding gbk;(輸入\encoding可以查看數(shù)據(jù)庫(kù)的編碼格式,gbk編碼方式保證導(dǎo)出的中文漢字不為亂碼)
(5)導(dǎo)出數(shù)據(jù)表中的數(shù)據(jù)為csv格式文件,指令:\copy 表名 to 路徑 with csv(比如:\copy tbl_user_info to 'C:/user.csv' with csv,成功后在C盤(pán)根目錄下就會(huì)有相應(yīng)的csv文件