zoukankan      html  css  js  c++  java
  • 应用系统部署后远程备份

    应用部署后,用户开始录入数据,担心应用不稳定,所以每天在用户录入数据后,都要备份应用系统;
    由于设计时,数据库中存储的应用系统相关的有些文件,是存储的文件路径,所以,在备份数据库后,
    需要同步将路径对应的文件备份下来。以便恢复时,能够完全恢复。

    rem------------------------------------------------------------------------
    rem 以下是备份批处理文件内容
    rem------------------------------------------------------------------------
    e:
    cd e:prodname_backup

    set fn_date=%date:~0,4%%date:~5,2%%date:~8,2%
    if "%time:~0,1%"==" " (set fn_time=0%time:~1,1%%time:~3,2%%time:~6,2%) else (set fn_time=%time:~0,2%%time:~3,2%%time:~6,2%)
    set fld=%fn_date%_%fn_time%
    set fn=prodname_%fn_date%_%fn_time%.backup
    mkdir %fld%

    c:
    cd C:Program Files (x86)pgAdmin III1.20

    echo 1 备份开始.................
    pg_dump.exe --host 192.168.0.105 --port 5432 --username "pgsql" --role "pgsql" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --inserts --column-inserts --verbose --file "e:prodname_backup\%fld%\%fn%" "proddbname"
    echo 1 备份结束.................

    echo 2 创建本地同名数据库开始.................
    psql --host 127.0.0.1 --dbname=postgres --username=pgsql -f e:prodname_backupdrop_create_localdb.sql
    echo 2 创建本地同名数据库结束.................

    echo 3 恢复到本地同名数据库开始.................
    pg_restore.exe --host localhost --port 5432 --username "pgsql" --dbname "proddbname" --role "pgsql" --no-password --section pre-data --section data --section post-data --verbose "e:prodname_backup\%fld%\%fn%"
    echo 3 恢复到本地同名数据库结束.................


    winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://username:password@192.168.0.105:22" "option transfer binary" "get /home/username/projdir e:prodname_backup\%fld%projdir" "exit" /log=e:prodname_backup\%fld%winscp-log.txt

    e:
    cd e:prodname_backup\%fld%
    dir %fn%
    cd..


    ------------------------------------------------------------------------
    sql内容,database每次都重建,若不重建,恢复是总是报权限问题
    ------------------------------------------------------------------------
    drop database if exists proddbname;
    create database proddbname


    唯一值得记录的就是scp;
    先尝试装cygwin,下载openssh,然后用其带的scp;
    scp不能直接在命令行中通过参数制定密码,需要用秘钥,
    在windows上通过ssh-keygen生产密钥对,然后将密钥的公钥传到服务器,追加到authorized_keys中

    在服务器上配置ssh-config,然后windows client端用命令

    scp -r -i /cygdrive/c/cygwin64/home/username/.ssh/id_rsa username@192.168.0.105:/home/username/prodname /cygdrive/e/backupdir

    传输速度非常慢,改为用winscp,速度快了不止2倍

    改用winscp,winscp直接指定用户名和密码,轻松搞定;

     

     

    敦品厚德 格物致知
  • 相关阅读:
    如何查看Android SDK源码版本
    迁移 Express 到函数计算
    阿里云安全运营中心:DDoS攻击趁虚而入,通过代理攻击已成常态
    Schedulerx2.0支持应用级别资源管理和任务优先级
    Serverless 解惑——函数计算如何安装字体
    一遇到复杂分析查询就卡顿?MySQL分析实例了解一下
    浅谈企业的数据资产管理
    大咖说备份 | 云,让灾备更简单
    急速上线 Serverless 钉钉机器人“防疫精灵”
    Alibaba Cloud Linux 2 LTS 正式发布,提供更高性能和更多保障
  • 原文地址:https://www.cnblogs.com/crunchyou/p/5558809.html
Copyright © 2011-2022 走看看