⑴ postgresql 怎麼備份資料庫
PostgreSQL自帶一個客戶端pgAdmin,裡面有個備份,恢復選項,也能對資料庫進行備份 恢復(還原),但最近發現資料庫慢慢龐大的時候,經常出錯,備份的文件過程中出錯的幾率那是相當大,手動調節灰常有限。所以一直尋找完美的備份恢復方案。
夢里尋他千網路,伊人卻在燈火闌珊處...其實PostgreSQL內置不少的工具,尋找的備份恢復方案就在其中:pg_mp,psql。這兩個指令 在資料庫的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.5\;然後進入到bin文件夾,會看到不少的exe文件,這就是PostgreSQL內置的工具了。裡面會找到 pg_mp.exe,psql.exe兩個文件。我們怎麼用他們?
用法:
備份資料庫,指令如下:
pg_mp -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
開始-運行-cmd 彈出dos控制台;然後 在控制台里,進入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最後執行備份指令:
pg_mp -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
指令解釋:如上命令,pg_mp 是備份資料庫指令,164.82.233.54是資料庫的ip地址(必須保證資料庫允許外部訪問的許可權哦~),當然本地的資料庫ip寫 localhost;postgres 是資料庫的用戶名;databasename 是資料庫名。> 意思是導出到C:\databasename.bak文件里,如果沒有寫路徑,單單寫databasename.bak文件名,那麼備份文件會保存在C: \Program Files\PostgreSQL\9.0\bin 文件夾里。
恢復資料庫,指令如下:
psql -h localhost -U postgres -d databasename < C:\databasename.bak(測試沒有成功)
pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(測試成功)
指令解釋:如上命令,psql是恢復資料庫命令,localhost是要恢復到哪個資料庫的地址,當然你可以寫上ip地址,也就是說能遠程恢復(必須保證 資料庫允許外部訪問的許可權哦~);postgres 就是要恢復到哪個資料庫的用戶;databasename 是要恢復到哪個資料庫。< 的意思是把C:\databasename.bak文件導入到指定的資料庫里。
以上所有的是針對windows而言的,如果在linux下,會不會有效?
在linux里依然有效。有一個值得注意的是:如果直接進入PostgreSQL的安裝目錄bin下,執行命令,可能會出現 找不到pg_mp,psql的現象,我們在可以這樣:
備份:
/opt/PostgreSQL/9.5/bin/pg_mp -h 164.82.233.54 -U postgres databasename > databasename.bak
恢復:
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.bak
⑵ 如何備份和恢復VCSA 5.5自帶的vPostgres資料庫
首先,資料庫的安全就會涉及到備份了,而我們在VAMI UI上面是沒有找到如何備份這個VCSA的資料庫的,更不用說恢復了,因此,本文就著眼於如何備份和恢復它了;
1、利用SSH或者直接登錄到VCSA 5.5的CLI界面,預設用戶名為root,預設密碼為vmware;
2、然後執行如下命令,將路徑切換到vpostgres程序所在目錄:
#cd /opt/vmware/vpostgres/1.0/bin
3、執行如下命令備份VCSA 5.5的vpostgres資料庫:
#./pg_mp EMB_DB_INSTANCE -U EMB_DB_USER -Fp -c > VCDB_Backup
說明:VCDB_Backup這個名字可以自由定義,它就是備份出來的文件名;
4、注意,需要EMB_DB_USER的密碼,可以在如下路徑的文件中找到:
/etc/vmware-vpx/embedded_db.cfg
利用vi編輯器或其它編輯器打開後,如下圖所示,可以看到它的密碼是什麼:
5、如果需要恢復備份的資料庫,可以執行如下命令:
#PGPASSWORD=EMB_DB_PASSWORD ./psql -db EMB_DB_INSTANCE -Upostgres - f VCDB_Backup
⑶ 如何在PostgreSQL中備份一張表(包含表結構)和恢復
--以test作為用戶名,導出localhost:5432伺服器上的Test資料庫。
--導出的文件名為test_data
F:PostgreSQL9.2in>pg_mp-ftest_data-hlocalhost-Utest-p5432Test
口令:
F:PostgreSQL9.2in>dirtest_*
驅動器F中的卷是Install
卷的序列號是24AD-61D9
F:PostgreSQL9.2in的目錄
2013-04-1514:46136,270test_data
1個文件136,270位元組
0個目錄10,456,657,920可用位元組--將test_data文件中的數據,導入到localhost:5432伺服器上的Test2資料庫。
F:PostgreSQL9.2in>psql.exe-hlocalhost-Utest-p5432-dTest2<test_data
用戶test的口令:test
SET
SET
SET
SET
SET
CREATESCHEMA
ALTERSCHEMA
CREATEEXTENSION
COMMENT
CREATEEXTENSION
COMMENT
......
上面的例子, 是 備份 / 恢復整個資料庫的.
如果你是要 僅僅 備份 / 恢復 某個表的, 那麼命令行裡面增加下面的參數:
-t, --table=TABLE 只轉儲指定名稱的表
⑷ postgresql 資料庫有 用sql語句備份的方法嗎
(1)將PostgreSQL資料庫的psql工具所在的路徑添加到系統的環境變數中;
(2)運行cmd,在窗口中輸入psql,會有提示輸入口令的信息,按ctrl+c終止該命令;
(3)建立與伺服器的鏈接,具體格式:psql
-h
伺服器IP地址
-U
資料庫連接用戶名
-d
資料庫名稱
-p
埠號;(比如:psql
-h
192.168.9.202
-U
postgres
-d
luoyang
-p
5432),鏈接成功的話會出現:「資料庫名稱=#」格式的提示(luoyang=#);
(4)修改資料庫中導出數據的編碼格式為gbk,指令:\encoding
gbk;(輸入\encoding可以查看資料庫的編碼格式,gbk編碼方式保證導出的中文漢字不為亂碼)
(5)導出數據表中的數據為csv格式文件,指令:\
表名
to
路徑
with
csv(比如:\
tbl_user_info
to
'C:/user.csv'
with
csv,成功後在C盤根目錄下就會有相應的csv文件
⑸ postgresql的64位資料庫怎麼備份才能恢復到32位資料庫中
pg的64位備份到32位,將數據備份為sql格式的備份文件,然後還原到32位的資料庫就可以了,或者通過第三方工具進行數據遷移,不如kettle
⑹ linux下postgresql怎麼備份資料庫
備份手機的第三方軟體可以通過騰訊手機管家的備份功能來完成備份
可以使用騰訊手機管家的手機備份功能進行備份
進入主界面點擊更多,從裡面找到微雲軟體
先進行微雲軟體的下載安裝,之後登陸微雲軟體的界面
把需要備份的東西進行上傳就可以完成備份了
⑺ postgresql中怎麼用psql命令
連接資料庫, 默認的用戶和資料庫是postgres
psql -U user -d dbname
切換資料庫,相當於mysql的use dbname
\c dbname
列舉資料庫,相當於mysql的show databases
\l
列舉表,相當於mysql的show tables
\dt
查看錶結構,相當於desc tblname,show columns from tbname
\d tblname
\di 查看索引
創建資料庫:
create database [資料庫名];
刪除資料庫:
drop database [資料庫名];
*重命名一個表:
alter table [表名A] rename to [表名B];
*刪除一個表:
drop table [表名];
*在已有的表裡添加欄位:
alter table [表名] add column [欄位名] [類型];
*刪除表中的欄位:
alter table [表名] drop column [欄位名];
*重命名一個欄位:
alter table [表名] rename column [欄位名A] to [欄位名B];
*給一個欄位設置預設值:
alter table [表名] alter column [欄位名] set default [新的默認值];
*去除預設值:
alter table [表名] alter column [欄位名] drop default;
在表中插入數據:
insert into 表名 ([欄位名m],[欄位名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的數據:
update [表名] set [目標欄位名]=[目標值] where [該行特徵];
刪除表中某行數據:
delete from [表名] where [該行特徵];
delete from [表名];--刪空整個表
創建表:
create table ([欄位名1] [類型1] <references 關聯表名(關聯的欄位名)>;,[欄位名2] [類型2],......<,primary key (欄位名m,欄位名n,...)>;);
\right 顯示 PostgreSQL 的使用和發行條款
\encoding [字元編碼名稱]
顯示或設定用戶端字元編碼
\h [名稱] SQL 命令語法上的說明,用 * 顯示全部命令
\prompt [文本] 名稱
提示用戶設定內部變數
\password [USERNAME]
securely change the password for a user
\q 退出 psql
可以使用pg_mp和pg_mpall來完成。比如備份sales資料庫:
pg_mp drupal>/opt/Postgresql/backup/1.bak
⑻ 怎麼在javaWeb里實現備份postgresql的功能
用java運行pg_mp命令行程序就行。
pg_m是postgresql自帶的用來備份資料庫的命令行程序,具體用法請參考文檔。
⑼ postgresql 怎樣自動備份
第一步:
下載批處理文件。
第二步:
你可以通過一個簡單的命令(schtasks /?查看幫助)或者使用圖形界面(開始-控制面板-系統和安全-管理工具-任務計劃程序)運行任務計劃管理工具,還可以在%SYSTEMROOT%\System32目錄下雙擊Taskschd.msc來啟動它。
第三步:
你可以通過向導或通過XML文件導入信息來創建基本任務。向導方式創建方法見任務計劃程序幫助,下面介紹下命令行語法:
schtasks /Create [/S <system> [/U <username> [/P [<password>]]]] [/RU <username> [/RP <password>]] /SC <schele> [/MO <modifier>] [/D <day>] [/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>] [/RI <interval>] [ {/ET <endtime> | /DU <ration>} [/K] [/XML <xmlfile>] [/V1]] [/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]
查看此命令幫助:
schtasks /Create /?
如果在Windows防火牆中遠程任務計劃管理被禁用而文件和列印共享被啟用並且遠程注冊表服務正在運行,遠程計算機上將會被創建一個V1任務即使沒有使用參數V1。參數V1表明一個任務對下層系統可見。
使用代碼
腳本:
<a href="http://my.oschina.net/echolee1987" target="_blank" rel="nofollow">@ECHO</a> OFF @setlocal enableextensions<a href="http://my.oschina.net/ini" 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%.sql<a href="http://my.oschina.net/echolee1987" target="_blank" rel="nofollow">@ECHO</a> OFF %PGPATH%pg_mp -h localhost -p 5432 -U postgres %PRJDB% > %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP%
初始值
PGPATH - PostgreSQL路徑
SVPATH - 備份文件路徑
PRJDB - 要備份的資料庫名
DBUSR - 資料庫用戶名
⑽ PostgreSQL9.2備份與還原
cd C:\Program Files\PostgreSQL\9.0\bin
備份資料庫:
pg_mp -h localhost -U postgres databasename > C:\databasename.bak
恢復資料庫:
psql -h localhost -U postgres -d databasename < C:\databasename.bak