国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PostgreSQL--實(shí)現(xiàn)數(shù)據(jù)庫備份恢復(fù)詳細(xì)教學(xué)

這篇具有很好參考價(jià)值的文章主要介紹了PostgreSQL--實(shí)現(xiàn)數(shù)據(jù)庫備份恢復(fù)詳細(xì)教學(xué)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

這是我在這個(gè)網(wǎng)站整理的筆記,關(guān)注我,接下來還會(huì)持續(xù)更新。 作者:RodmaChen

數(shù)據(jù)庫備份恢復(fù)功能是每個(gè)產(chǎn)品所需的,以下是簡單的腳本案例,滿足了大部分備份和恢復(fù)需求

關(guān)于備份恢復(fù)命令可參考這篇文章:PostgreSQL – 備份恢復(fù)命令

一. 數(shù)據(jù)庫備份

我創(chuàng)建了back-sql.sh腳本

#!/bin/bash
pg_info=($1)
local_path=$2
ctime=$(date "+%Y%m%d%H%M%S")
backup_path="${local_path}/${ctime}_${pg_info[4]}.sql"
zip_path="${local_path}/${ctime}_sql.zip"
pg_dump  --compress=9  --dbname=postgres://${pg_info[0]}:"${pg_info[1]}"@"${pg_info[2]}":${pg_info[3]}/${pg_info[4]}  --format=custom --file=${backup_path}
cd ${local_path}/
zip -m ${zip_path} "${ctime}_${pg_info[4]}.sql"

linux上執(zhí)行以下命令就備份成功了

給腳本執(zhí)行權(quán)限
chmod +x back-sql.sh

./back-sql.sh "用戶名 密碼 地址 端口 數(shù)據(jù)庫" 要備份的路徑

PostgreSQL--實(shí)現(xiàn)數(shù)據(jù)庫備份恢復(fù)詳細(xì)教學(xué),數(shù)據(jù)庫,# postgresql,數(shù)據(jù)庫,postgresql

這樣就能夠備份成功了

PostgreSQL--實(shí)現(xiàn)數(shù)據(jù)庫備份恢復(fù)詳細(xì)教學(xué),數(shù)據(jù)庫,# postgresql,數(shù)據(jù)庫,postgresql

–compress=9是為了給備份出來的文件壓縮,原本備份出來的sql有31M,壓縮后就是3M

–format=custom --file=${backup_path}是備份出二進(jìn)制文件,與pg_restore 配合使用

如果不使用以上兩個(gè)命令,那么就需要psql命令進(jìn)行恢復(fù)

二. 數(shù)據(jù)庫恢復(fù)

我做了點(diǎn)容錯(cuò),處理邏輯如下

PostgreSQL--實(shí)現(xiàn)數(shù)據(jù)庫備份恢復(fù)詳細(xì)教學(xué),數(shù)據(jù)庫,# postgresql,數(shù)據(jù)庫,postgresql

創(chuàng)建一個(gè)recover-sql.sh腳本

#!/bin/bash
pg_info=($1)
path=$2
ctime=test_$(date "+%Y%m%d%H%M%S")
sql_path=${path}
psql postgres://${pg_info[0]}:"${pg_info[1]}"@${pg_info[2]}:${pg_info[3]}/postgres <<EOF
CREATE database ${ctime};
EOF
pg_restore --exit-on-error --dbname=postgres://${pg_info[0]}:"${pg_info[1]}"@${pg_info[2]}:${pg_info[3]}/${ctime} ${sql_path}
if [ $? -ne 1 ]; then
	echo "pg_restore 命令執(zhí)行成功"
	psql postgres://${pg_info[0]}:"${pg_info[1]}"@${pg_info[2]}:${pg_info[3]}/postgres <<EOF
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '${pg_info[4]}' AND pid <> pg_backend_pid();
DROP database IF EXISTS ${pg_info[4]};
ALTER database ${ctime} rename to ${pg_info[4]};
EOF
else
	echo "pg_restore 命令執(zhí)行失敗"
	psql postgres://${pg_info[0]}:"${pg_info[1]}"@${pg_info[2]}:${pg_info[3]}/postgres <<EOF
DROP database IF EXISTS ${ctime};
EOF
fi

linux上執(zhí)行以下命令就恢復(fù)成功了

./recover-sql.sh "用戶名 密碼 地址 端口 數(shù)據(jù)庫" 你sql文件的地址(列如:/tmp/hwaf2/b.sql)

三. 存留問題

  1. 備份出來的數(shù)據(jù)庫是明文的,可以被隨意查看的
  2. 可以隨便拿一個(gè)sql就能進(jìn)行恢復(fù),修改掉原來的數(shù)據(jù)庫

針對(duì)以上問題,我的方案是對(duì)sql文件進(jìn)行加密。

我通過python使用國密的sm2和sm4進(jìn)行了嘗試,發(fā)現(xiàn)如果sql文件過大,加密速度變得很慢,所以這種加密方法明顯行不通,不知道各位大神有什么解決方案

作者:RodmaChen
本人博客:https://blog.csdn.net/weixin_46654114
轉(zhuǎn)載說明:務(wù)必注明來源,附帶本人博客連接。文章來源地址http://www.zghlxwxcb.cn/news/detail-610556.html

到了這里,關(guān)于PostgreSQL--實(shí)現(xiàn)數(shù)據(jù)庫備份恢復(fù)詳細(xì)教學(xué)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)庫實(shí)驗(yàn)7---數(shù)據(jù)庫的備份與恢復(fù)

    使用mysqldump命令備份數(shù)據(jù)庫studentsdb的所有表,存于D:下,文件名為all_tables.sql。 在MySQL服務(wù)器上創(chuàng)建數(shù)據(jù)庫student1,使用mysql命令將備份文件all_tables.sql恢復(fù)到數(shù)據(jù)庫student1中。 使用mysqldump命令備份數(shù)據(jù)庫studentsdb的所有表,存于D:下,文件名為s_c.sql。 在MySQL服務(wù)器上創(chuàng)建數(shù)據(jù)

    2024年02月09日
    瀏覽(17)
  • 數(shù)據(jù)庫運(yùn)維——備份恢復(fù)

    數(shù)據(jù)庫運(yùn)維——備份恢復(fù)

    數(shù)據(jù)庫備份,數(shù)據(jù)庫為school,素材如下 1.創(chuàng)建student和score表 CREATE? TABLE? student ( id? INT(10)? NOT NULL? UNIQUE? PRIMARY KEY? , name? VARCHAR(20)? NOT NULL , sex? VARCHAR(4)? , birth? YEAR, department? VARCHAR(20) , address? VARCHAR(50)? ); 創(chuàng)建score表。SQL代碼如下: CREATE? TABLE? score ( id? INT(10)? NOT NU

    2024年02月16日
    瀏覽(26)
  • MySQL數(shù)據(jù)庫備份與恢復(fù)

    MySQL數(shù)據(jù)庫備份與恢復(fù)

    在項(xiàng)目的開發(fā)過程中數(shù)據(jù)庫的備份是非常重要的,為了防止數(shù)據(jù)庫受到破壞,造成不可估量的損失,所以一定要進(jìn)行數(shù)據(jù)庫的備份,并且需要掌握數(shù)據(jù)庫恢復(fù)方法,在發(fā)生數(shù)據(jù)庫損壞的時(shí)候,能快速進(jìn)行數(shù)據(jù)庫恢復(fù)。 本文主要介紹MySQL數(shù)據(jù)表備份與恢復(fù)主要的三種方法,包括

    2024年02月12日
    瀏覽(858)
  • mysql數(shù)據(jù)庫備份和恢復(fù)

    數(shù)據(jù)備份可以分為三種, 熱備份。 數(shù)據(jù)庫處于運(yùn)行狀態(tài),此時(shí)依賴數(shù)據(jù)庫的日志文件進(jìn)行備份 溫備份。 進(jìn)行數(shù)據(jù)備份時(shí)數(shù)據(jù)庫服務(wù)正常進(jìn)行,但是數(shù)據(jù)智能度不能寫。 冷備份。數(shù)據(jù)庫處于關(guān)閉狀態(tài),能夠夠好的保證數(shù)據(jù)庫的完整性。 邏輯備份。使用軟件從數(shù)據(jù)庫中提取數(shù)

    2024年02月12日
    瀏覽(95)
  • 如何備份與恢復(fù)MySQL數(shù)據(jù)庫數(shù)據(jù)

    如何備份與恢復(fù)MySQL數(shù)據(jù)庫數(shù)據(jù)

    目錄 一、MySQL備份 備份方式 完全備份 差異備份 增量備份 二、常見的備份方法 物理冷備 專用備份工具 mysqldump 或 mysqlhotcopy 啟用二進(jìn)制日志進(jìn)行增量備份 第三方工具備份 三、MySQL完全備份 四、數(shù)據(jù)庫完全備份分類 物理冷備份與恢復(fù) mysqldump備份與恢復(fù) 五、物理冷備份與恢復(fù)

    2024年02月16日
    瀏覽(101)
  • 9-MySQL數(shù)據(jù)庫 數(shù)據(jù)的備份與恢復(fù)

    9-MySQL數(shù)據(jù)庫 數(shù)據(jù)的備份與恢復(fù)

    1.date文件的備份 2.mysqldump 備份 說明: mysqldump是MySQL數(shù)據(jù)庫中的一個(gè)實(shí)用程序,它主要用于轉(zhuǎn)儲(chǔ)(備份)數(shù)據(jù)庫。mysqldump通過生成一個(gè)SQL腳本文件,包含從頭開始重新創(chuàng)建數(shù)據(jù)庫所必需的(如 CREATE TABLE和INSERT等),來實(shí)現(xiàn)數(shù)據(jù)庫的備份和轉(zhuǎn)儲(chǔ)。這樣,你可以在任何時(shí)候通過運(yùn)

    2024年02月08日
    瀏覽(96)
  • Mysql數(shù)據(jù)庫增量備份與恢復(fù)

    使用 mysqldump 進(jìn)行完全備份,備份的數(shù)據(jù)中有重復(fù)數(shù)據(jù),備份時(shí)間與恢復(fù)時(shí)間長。 而增量備份就是備份自上一次備份之后增加或改變的文件或內(nèi)容。 1、增量備份的特點(diǎn): 沒有重復(fù)數(shù)據(jù),備份量不大,時(shí)間短 恢復(fù)麻煩:需要上次完全備份及完全備份之后所有的增量備份才能恢復(fù)

    2024年02月07日
    瀏覽(93)
  • 數(shù)據(jù)庫(MySQL的備份和恢復(fù))

    目錄 1.1 MySQL 日志管理 1.1.1 MySQL日志類型 1.1.2 錯(cuò)誤日志 錯(cuò)誤日志中主要記錄的幾種日志 錯(cuò)誤日志的定義 1.1.3 通用查詢?nèi)罩?1.1.4 慢查詢?nèi)罩?和慢查詢相關(guān)的變量設(shè)置 1.1.5 二進(jìn)制日志 二進(jìn)制日志是記錄執(zhí)行的語句還是執(zhí)行后的數(shù)據(jù) 日志滾動(dòng)? 1.2 MySQL備份 1.2.1 備份類型 1.2.2

    2024年01月25日
    瀏覽(133)
  • 數(shù)據(jù)庫應(yīng)用:MySQL備份與恢復(fù)

    數(shù)據(jù)庫應(yīng)用:MySQL備份與恢復(fù)

    目錄 一、理論 1.數(shù)據(jù)備份 2.完全備份與恢復(fù) 3.完全備份與恢復(fù)應(yīng)用 4.增量備份與恢復(fù) 5.增量備份與恢復(fù)應(yīng)用 6.使用腳本備份 7.日志管理 二、實(shí)驗(yàn) 1.完全備份與恢復(fù) 2.增量備份與恢復(fù) 3.使用腳本備份 三、問題 1.mysqldump報(bào)錯(cuò) 四、總結(jié) (1)重要性 ①? 備份的主要目的是災(zāi)難恢復(fù)

    2024年02月16日
    瀏覽(90)
  • MySQL數(shù)據(jù)庫的備份與恢復(fù)

    MySQL數(shù)據(jù)庫的備份與恢復(fù)

    備份的主要目的是災(zāi)難恢復(fù)。 在生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性至關(guān)重要。 任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴(yán)重的后果。 造成數(shù)據(jù)丟失的原因: 程序錯(cuò)誤 人為操作錯(cuò)誤 運(yùn)算錯(cuò)誤 磁盤故障 災(zāi)難(如火災(zāi)、地震)和盜竊 1)物理備份 物理備份:對(duì)數(shù)據(jù)庫操作系統(tǒng)的物理文件(如數(shù)據(jù)

    2024年02月04日
    瀏覽(1460)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包