精华内容
下载资源
问答
  • 利用RMAN工具备份和还原系统数据文件、只读数据文件

    系统数据文件又称为 关键性数据文件
       
       关键性数据文件分为:SYSTEM表空间的数据文件 和  UNDO_TABLESPACE 撤销表空间的数据文件
       undo_tablespace 自动撤销表空间的数据文件可以通过查询参数 undo_tablespace 指向的撤销表空间。
      
       system 表空间的数据文件默认就是 1号数据文件,其内部保存的是 oracle数据库系统表即数据字典,是对数据库本身的
       描述,是数据库正常运行的基本保障。系统回滚段(以名为sys.system的撤销段)能够保存数据字典变更的撤销数据。也是
       1号数据文件的内容。
       system表空间 1号数据文件的损坏分为:数据文件丢失、文件头损坏、数据字典损坏、sys.system撤销段损坏。
       1、文件丢失或不能访问:启动oracle时只能讲实例带到mount状态
       2、文件头损坏:运行检查点发起后实例会崩溃,启动oracle时也只能带到mount状态。
       3、数据字段损坏:数据库内的对象定义系统、名称解析系统、用户账号系统、权限管理系统等基础设施将出现部分或全部崩溃。
       4、以名为 sys.system的撤销段损坏:如果实例在运行时sys.system 撤销段与 undo_tablespace 表空间撤销段同时损坏,实例运行的
                                                                    DDL及对SYSTEM表空间内的任意DML 都将失败;在启动实例阶段SYS.SYSTEM撤销段头部损坏
                                                                    实例被强行中断。 连NOMOUNT 状态也进不了,必须用 “startup mount” 才能进入MOUNT状态。
     
        在发生检查点时,若数据文件 或 撤销表空间数据文件头部损坏,实例会被强行中止。这也可作为判断该文件是否为关键数据文件的一个指标。
        但是 检查点CKPT进程不会因为普通文件头部损坏而中止实例。
       
        undo_tablespace 数据文件损坏
        udo数据文件是用来保存所有的变更类命令所产生的撤销数据。
        udo数据文件损坏分为 3种:
        1、udo数据文件丢失或不能访问,实例只能启动到 mount状态
        2、udo数据文件头部损坏,也只能启动到mount状态,运行检查点发起后实例崩溃。
        3、udo表空间某些撤销段损坏,DML命令可能失败;oracle启动时任意一个撤销段头部损坏,实例将被强制关闭,必须 startup mount才能
            进入 mount 状态。撤销段的拥有者是 SYS。实例启动时对撤销段损坏进行 零容忍,有一个撤销段损坏就崩溃。
           
      备份
            使用 BACKUP DATABASE、  backup tablespace  、  backup datafile  、backup as copy  数据文件镜像复制  都可以备份数据文件。
       
     恢复
            恢复的核心步骤是:将数据库进入到mount状态、从备份还原(即restore 或 switch命令)、使用增量备份或重做日志恢复(recovery)
                                              打开数据库。关键数据文件的恢复整个过程都是在 MOUNT状态下完成的。即不能在OPEN状态下进行恢复,也就是
                                              说 关键数据文件不可采用 高可用恢复策略。mount状态需要打开控制文件。
           
         恢复的流程为:
            1、如果实例在运行,则使用 shutdown  abort 关闭实例或 KILL 系统命令关闭实例;
            2、startup mount  ;进入到 MOUNT状态(即打开控制文件);
            3、使用RMAN 执行 restore  或  switch 命令还原损坏的关键数据文件;
            4、使用 recover database 命令利用归档日志和在线重做日志恢复数据文件;
            5、执行 alter  database   open  命令打开数据库,恢复完成。
           
            RUN
            {
                STARTUP  MOUNT;
                RESTORE TABLESPACE SPACE_NAME;
                RECOVER DATABASE;
                ALTER DATABASE OPEN;
            }
            当数据文件的镜像复制处于磁盘上时,使用 switch 命令取代restore命令将控制文件中的数据文件名立即换成镜像复制文件名,
                这样恢复的速度更快。 SWITCH命令的作用是将当前数据文件与镜像复制文件互换。
            STARTUP MOUNT;
            ---以下两步不是必须的
            LIST DATAFILECOPY ALL;
            validate datafilecopy all;
            ---以上两步不是必须的   
            RUN
            {
                SWITCH DATAFILE 1 TO DATAFILECOPY 'PATH';
                RECOVER DATABASE;
                ALTER DATABASE OPEN;
            }

     

    只读数据文件是只读表空间的数据文件。
        备份:
            备份只读数据文件方式 和备份其他数据文件的方式一样。
           
         恢复:
         由于只读文件没有 “写(更改)”的操作,所有就不用归档日志和重做日志恢复了。只需 还原即可。
          在MOUNT状态下的 低可用恢复策略的恢复 步骤:
         1、执行 startup mount 进入 MOUNT 状态
         2、执行 restore 或 switch 命令还原数据文件
         3、执行 alter database open 命令打开数据库,恢复完成
     
         在OPEN状态下的高可用恢复策略的恢复步骤:
         1、执行 alter database 命令让受损坏的只读数据文件下线
         2、执行 restore force  或 switch 命令还原数据文件
         3、执行 alter database datafile 5 online 命令使数据文件上线。
        
       低可用恢复 需要 参数文件和控制文件必须就位。 高可用恢复 还需要关键数据库文件必须就位。
      
       控制文件无损情况下的恢复
        指:只读数据文件损坏时控制文件没有损坏。
        ---如果数据块损坏,通道认为只读数据文件还存在,无须还原,这时必须用 restore datafile  5 force命令还原
        run
        {sql 'alter databae datafile 5 offline';
        restore datafile 5 force;
        sql' alter database datafile 5 online';
        }
        使用镜像复制就不必使用 force关键字
        run
        {
            sql' alter database datafile 5 offline';
            switch datafile 5 to datafilecopy 'path';
            sql' alter database datafile 5 online';
        }
       
      控制文件损坏情况下的恢复
        指:只读数据文件与控制文件一并损坏时的恢复。其恢复步骤包括 恢复控制文件与只读数据文件
        1、将数据库启动至 NOMOUNT状态
        2、用 restore 命令还原控制文件
        3、将数据库启动到 MOUNT 状态
        4、用 restore 命令还原只读数据文件
        5、用 recover 命令恢复整个数据
        6、用 resetlogs 方式打开数据库
        run
        {
            restore controlfile from autobackup;
            mount database;
            restore datafile 5;
            recover database;
            ---如果只读数据文件改为 读写状态后,没有备份,这时数据文件和控制文件都损坏,则需再加一次 recover databae,否则不需要
            recover database;
              ---如果只读数据文件改为 读写状态后,没有备份,这时数据文件和控制文件都损坏,则需再加一次 recover databae
            alter database open resetlogs;
        }
       

    展开全文
  • Rsync 实现服务器数据备份

    万次阅读 2021-05-20 09:03:30
    Rsync 是 Linux 系统下的数据镜像备份工具 ...

    Rsync 是 Linux 系统下的数据镜像备份工具,使用快速增量备份工具 Remote Sync 可以远程同步,可以在不同主机之间进行同步,可实现全量备份与增量备份,保持链接和权限,传输前执行压缩,因此非常适合用于架构集中式备份或异地备份等应用。
           官方网站:https://rsync.samba.org/

    与 SCP 的比较:scp 无法备份大量数据,类似 Windows 的复制。而 rsync 边复制,边统计,边比较。

    • Rysnc 特性和优点
    • 可以镜像保存整个目录树和文件系统。
    • 可以很容易做到保持原来文件的属性、权限、时间、软硬链接等等。
    • 无须特殊权限即可安装。
    • 快速:第一次同步时 rsync 复制全部内容,但在下一次只传输修改过的文件。
    • 压缩传输:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
    • 安全性:可以使用 scp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接。选择性保持:符号连接,硬链接,文件属性,权限,时间等。
    • 常见备份分类
    • 完整备份:每次都备份所有数据。
    • 差异备份:每次备份和第一次完全备份相比的“差异”部分数据。

    • 增量备份:除第一次备份以外,每次只备份增长数据。

    • RSYNC 原理
      运行模式和端口:
      采用 C/S 模式(客户端/服务器模式)[ 实际上是一个点到点的传输,直接使用 rsync 命令即可完成 ]
      rsync 监听的端口:873
    • 四个名词的解释:
      发起端:负责发起 rsync 同步操作的客户机叫做发起端,通知服务器我要备份你的数据。
      备份源:负责响应来自客户机 rsync 同步操作的服务器叫做备份源,需要备份的服务器。
      服务端:运行 rsyncd 服务,一般来说,需要备份的服务器。
      客户端:存放备份数据。

    • 数据同步方式:
    • 推 push:一台主机负责把数据传送给其他主机,服务器开销很大,比较适合后端服务器少的情况。
      拉 pull:所有主机定时去找一台主机拉数据,可能就会导致数据缓慢。
    • 从 数据源服务器 往 备份服务器  push (推,相当于备份操作)

    • 从 数据源服务器 往 备份服务器  pull   (拉,相当于还原操作)

    • 推:目的主机配置为 rsync 服务器,源主机周期性的使用 rsync 命令把要同步的目录推过去(需要备份的机器是客户端,存储备份的机器是服务端)。
      拉:源主机配置为 rsync 服务器,目的主机周期性的使用 rsync 命令把要同步的目录拉过来(需要备份的机器是服务端,存储备份的机器是客户端)。
      两种方案,rsync 都有对应的命令来实现。
      rsync 命令示例说明 push 和 pull

    • CentOS 7 系统之前 xinetd 管理 Rsync 工作原理

    • 使用 rsync 来同步是先通过 xinetd 监听 873 号端口,如果 rsync 进来的是 873 号端口,那么xinetd 就会通知它所管辖的 rsync 服务来做回应,接下来就是 rsync 俩服务于之间的通讯。
    • rsync 命令的基本用法:
      格式:rsync 【选项】 源文件 目标文件

    • 常见的选项:
      -a,--archive(存档) 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD
      -v:显示 rsync 过程中详细信息。

      -r,–recursive 对子目录以递归模式处理
      -l,--links 表示拷贝链接文件
      -p , --perms 表示保持文件原有权限
      -t , --times 表示保持文件原有时间
      -g , --group 表示保持文件原有属用户组
      -o , --owner 表示保持文件原有属主
      -D , --devices 表示块设备文件信息
      -z , --compress 表示压缩传输
      -H 表示硬连接文件
      -A 保留 ACL 属性信息
      -P 显示传输进度
      --delete 删除那些目标位置有而原始位置没有的文件

      例: rsync --delete /原始位置(要同步的数据) username@192.168.2.2:/目标位置

    • --password-file=/etc/rsync.passwd   从文件读取用户名、密码


    • 实验环境 

    • 数据服务器 CentOS 8.3.2011   192.168.2.2

      备份服务器  CentOS 7.8.2003  192.168.2.3
    • iptables、selinux 均为关闭状态,firewalld 已经添加 873 端口

    • 备份(push) C8 的 /usr/share/nginx/html/ 目录下所有文件到 C7 的/bak/databak

    • sudo rsync -avP --delete /usr/share/nginx/html/ root@192.168.2.3:/bak/databak  PS:注意这里的斜杠,不然会将 html 目录一同备份!

    • -a,--archive(存档) 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD
      -z , --compress 表示传输前压缩
      -P 显示传输进度
      --delete 删除那些目标位置有而原始位置没有的文件,保障源文件和目标文件一致

    • 在备份服务器端查看文件数量、大小及权限是否一致

    • 移除 C8 服务器端的文件,从 C7 pull 还原

    • 执行 还原 (pull)操作
    • rsync -avzP root@192.168.2.3:/bak/databak/ /usr/share/nginx/html/ 
    • PS:注意这里的斜杠,不然会将 databak 目录一同还原!

    • 不加 / 会将 html 一同备份


    • 使用 ssh 密钥实现无交互备份。做成脚本,将 C8 的数据,定期备份到 C7 上
    • 首先实现 ssh 密钥无密码登陆

    • 编写 shell 脚本 实现自动备份

    • 加入 crontab 计划任务


    • 安装  Rsync 服务,实现非系统用户备份

    • 需要关闭 selinux,否则即使创建/etc/rsyncd.conf 文件之后去启动服务也不会生效。

    • centos6/8 系统使用如下方法启动 rsync

    • yum -y install xinetd rsync
      vim /etc/rsyncd.conf

    • #Rsync server
      uid = root                         #运行进程的身份
      gid = root                         #运行进程的组
      address =192.168.2.2
      port = 873 
      use chroot = yes                   #是否锁定家目录
      max connections = 100              #最大连接数
      timeout = 600                      #超时时间
      log file = /var/log/rsyncd.log     #日志文件
      ignore errors                      #忽略错误
      read only = false                  #设置服务端文件读写权限
      hosts allow = 192.168.2.0/24       #*代表所有
      hosts deny = 0.0.0.0/32
      [wwwroot] 
      path = /usr/share/nginx/html/
      comment = used for web-data root 
      list = yes 
      auth users = rsyncuser 
      secrets file = /etc/rsync.passwd

    • vim /etc/rsync.passwd
      rsyncuser:password123

    • 必须更改密码文件权限为600或者400!

    • chmod 600 /etc/rsync.passwd

    • 临时开启 rsync 服务

    • rsync --daemon --config=/etc/rsyncd.conf
      netstat -antpu|grep 873

    • 配置 rsync 开机自启动

    • vim /etc/xinetd.d/rsync

    # default: off
    #  description: rsyncserver 
    #  allows crc checksumming etc.
    service rsync

    {
           
    disable     = no
            flags           =IPv4
            socket_type     =stream
            wait            = no
            user            = root
            server          = /usr/bin/rsync
           
    server_args     = --daemon --config=/etc/rsyncd.conf
            log_on_failure  +=USERID                                                                                                                                                               
    }

    • systemctl enable xinetd --now

    • 重启验证

    • 测试

    • 在 C7 上 安装 rsync 从 C8 pull 数据 

    • 创建密码文件
    • vim /etc/rsync.passwd 
      password123
    • 注意文件权限必须为 600或者400
    • chmod 600 /etc/rsync.passwd

    • rsync -avzP rsyncuser@192.168.2.2::wwwroot /bak/databak/ --delete --password-file=/etc/rsync.passwd

    • 测试 
    • 删除 C8 上的源文件,从 C7 恢复


    • rsync+sersync 实现数据实时同步

    • C8 安装 sersync、C7 安装 rsync 服务
      sersync 服务器(数据源,源机器):C8    192.168.2.2
      rsync 客户端(备份端,目标机器):C7     192.168.2.3
    • 特点

    • sersync 可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字。
    • rsync 在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync 在遍历查找对比文件时,速度很快),因此效率很高。
    • 同步过程和原理

    • 用户实时的往 sersync 服务器上写入更新文件数据。
    • 此时需要在同步主服务器(C8)上配置 sersync 服务。
    • 在另一台服务器(C7)开启 rsync 守护进程服务,以同步拉取来自 sersync 服务器上的数据。
    • 或者在另一台服务器(C7)开启 rsync 守护进程服务,使 sersync  (C8) push 文件过来,生产环境一般采取此种方式。

    • 将解压好的文件夹更名
    • mv ./GNU-Linux-x86 ./sersync
    • 进入文件夹备份原始文件
    • cd sersync/
    • cp confxml.xml confxml.xml.bak

    • 编辑 配置文件
    • vim confxml.xml
    • 修改配置文件中的以下内容:
      <sersync>
       <localpath watch="/usr/share/nginx/html">          #本地同步数据目录。
       <remote ip="192.168.2.3" name="wwwroot"/>     #备份服务器IP地址以及 rsync 模块名称.
      <rsync>
       <commonParams params="-artuz"/>
       <auth start="true" users="rsyncuser" passwordfile="/etc/rsync.passwd"/>   #认证部分(rsync 密码认证)
       <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 -->
       <ssh start="false"/>

    • 开启 sersync 守护进程同步数据。
      /home/gf/sersync/sersync2 -d -r -o /home/gf/sersync/confxml.xml
    • -d  在后台运行
    • -r   先执行一遍完整同步
    • -o  指定配置文件

    • 然后在 C7 上安装、启动 rsyncd

    • yum -y install xinetd rsync
    • systemctl enable xinetd --now
    • vim /etc/xinetd.d/rsync
    • # default: off
      #  description: rsyncserver 
      #  allows crc checksumming etc.
      service rsync

      {
              disable     = no
              flags           =IPv4
              socket_type     =stream
              wait            = no
              user            = root
              server          = /usr/bin/rsync
          server_args     = --daemon --config=/etc/rsyncd.conf
          log_on_failure  +=USERID
      }

    • 编辑 /etc/syncd.conf

    • 修改 C8 和 C7 的 /etc/rsync.passwd

    • 注意该文件的属性必须是 600,名称必须一样!!

    • 编写脚本监控服务运行

    • 在 C8 的/usr/share/nginx/html 目录 增加、删除、或改目录文件。
      查看 C7 /web-back 目录的变化
      watch ls -l

    • 设置 sersync 监控开机自动执行
      编辑 rc.local 文件,在最后添加一行。

    • vim /etc/rc.d/rc.local
      /home/gf/sersync/sersync2 -d -r -o /home/gf/sersync/confxml.xml   #设置开机自动运行脚本。
      chmod 755 /etc/rc.d/rc.local     #添加执行权限。

    • 重启验证

    • 使用脚本监控 sersync 是否正常运行
      vim /opt/check_sersync.sh       #编辑脚本,添加以下代码。
      #!/bin/sh
      sersync="/home/gf/sersync/sersync2"
      confxml="/home/gf/sersync/confxml.xml"
      status=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l)
      if [[ $status -eq 0 ]]; then
      $sersync -d -r -o $confxml &
      else
      exit 0;
      fi

    • 加入计划任务

    • 重启验证


    rsync 常见错误与解决方法整理

    • rsyncd.log日志文件里面或.err文件里面查看
    • 注意windows下面我们需要给SvcwRsync用户,管理同步目录的所有权限,基本上这样就可以了
    • 问题一:
    • @ERROR: chroot failed
    • rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
    • 原因:
    • 服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。
    • 问题二:
    • @ERROR: auth failed on module tee
    • rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
    • 原因:
    • 服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
    • 提供正确的用户名密码解决此问题。
    • 问题三:
    • @ERROR: Unknown module ‘tee_nonexists'
    • rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
    • 原因:
    • 服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。
    • 问题1:
    • 在client上遇到问题:
    • rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
    • rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)
    • Password:
    • @ERROR: auth failed on module backup
    • rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
    • 遇到这个问题:client端没有设置/etc/rsync.pas这个文件,而在使用rsync命令的时候,加了这个参数--
    • password-file=/etc/rsync.pas
    • 问题2:
    • rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
    • @ERROR: auth failed on module backup
    • rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
    • 遇到这个问题:client端已经设置/etc/rsync.pas这个文件,里面也设置了密码111111,和服务器一致,但是
    • 服务器段设置有错误,服务器端应该设置/etc/rsync.pas ,里面内容root:111111 ,这里登陆名不可缺少
    • 问题3:
    • rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
    • @ERROR: chdir failed
    • rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
    • 遇到这个问题,是因为服务器端的/home/backup 其中backup这个目录并没有设置,所以提示:chdir failed
    • 问题4:
    • rsync: write failed on "/home/backup2010/wensong": No space left on device (28)
    • rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]
    • rsync: connection unexpectedly closed (2721 bytes received so far) [generator]
    • rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
    • 磁盘空间不够,所以无法操作。
    • 可以通过df /home/backup2010 来查看可用空间和已用空间
    • 问题5:网络收集问题
    • 1、权限问题
    • 类似如下的提示:rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)注意查看同步的目录权限是否为755
    • 2、time out
    • rsync: failed to connect to 203.100.192.66: Connection timed out (110)
    • rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
    • 检查服务器的端口netstat –tunlp,远程telnet测试。
    • 可能因为客户端或者服务端的防火墙开启 导致无法通信,可以设置规则放行 rsync(873端口) 或者直接关闭防火墙。
    • 还有一种在同步过程中可能会提示没有权限 (将同步目录加上SvcwRsync全部权限即可,更简单的方法就是将SvcwRsync设为管理员即可)
    • 3、服务未启动
    • rsync: failed to connect to 10.10.10.170: Connection refused (111)
    • rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
    • 启动服务:rsync --daemon --config=/etc/rsyncd.conf
    • 4、磁盘空间满
    • rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28)
    • *** Skipping any contents from this failed directory ***
    • 5、Ctrl+C或者大量文件
    • rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5]
    • rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]
    • 说明:导致此问题多半是服务端服务没有被正常启动,到服务器上去查查服务是否有启动,然后查看下 /var/run/rsync.pid 文件是否存在,最干脆的方法是杀死已经启动了服务,然后再次启动服务或者让脚本加入系统启动服务级别然后shutdown -r now服务器
    • 6、xnetid启动
    • rsync: read error: Connection reset by peer (104)
    • rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
    • 查看rsync日志
    • rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directory
    • xnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。例如:
    • ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
    • 或者更改指定默认的配置文件路径,在/etc/xinetd.d/rsync配置文件中。
    • Rsync configure:
    • 配置一:
    • ignore errors
    • 说明:这个选项最好加上,否则再很多crontab的时候往往发生错误你也未可知,因为你不可能天天去看每时每刻去看log,不加上这个出现错误的几率相对会很高,因为任何大点的项目和系统,磁盘IO都是一个瓶颈
    • Rsync error:
    • 错误一:
    • @ERROR: auth failed on module xxxxx
    • rsync: connection unexpectedly closed (90 bytes read so far)
    • rsync error: error in rsync protocol data stream (code 12) at io.c(150)
    • 说明:这是因为密码设置错了,无法登入成功,检查一下rsync.pwd,看客服是否匹配。还有服务器端没启动rsync 服务也会出现这种情况。
    • 错误二:
    • password file must not be other-accessible
    • continuing without password file
    • Password:
    • 说明:这是因为rsyncd.pwd rsyncd.sec的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd
    • 错误三:
    • @ERROR: chroot failed
    • rsync: connection unexpectedly closed (75 bytes read so far)
    • rsync error: error in rsync protocol data stream (code 12) at io.c(150)
    • 说明:这是因为你在 rsync.conf 中设置的 path 路径不存在,要新建目录才能开启同步
    • 错误四:
    • rsync: failed to connect to 218.107.243.2: No route to host (113)
    • rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
    • 说明:防火墙问题导致,这个最好先彻底关闭防火墙,排错的基本法就是这样,无论是S还是C,还有ignore errors选项问题也会导致
    • 错误五:
    • @ERROR: access denied to www from unknown (192.168.1.123)
    • rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
    • rsync error: error in rsync protocol data stream (code 12) at io.c(359)
    • 说明:此问题很明显,是配置选项host allow的问题,初学者喜欢一个允许段做成一个配置,然后模块又是同一个,致使导致
    • 错误六:
    • rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(244) [generator=2.6.9]
    • rsync error: received SIGUSR1 (code 19) at main.c(1182) [receiver=2.6.9]
    • 说明:导致此问题多半是服务端服务没有被正常启动,到服务器上去查查服务是否有启动,然后查看下 /var/run/rsync.pid 文件是否存在,最干脆的方法是杀死已经启动了服务,然后再次启动服务或者让脚本加入系统启动服务级别然后shutdown -r now服务器
    • 错误七:
    • rsync: read error: Connection reset by peer (104)
    • rsync error: error in rsync protocol data stream (code 12) at io.c(604) [sender=2.6.9]
    • 说明:原数据目录里没有数据存在
    • rsync 错误与解决方法整理补充篇

    • 查看系统日志
    • 命令:cat /var/log/messages
    • 问题一:
    • @ERROR: auth failed on module bachup
    •  rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
    • 原因:服务器端该模块(backup)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。  提供正确的用户名密码解决此问题。 

    • 问题二:110错误 -time out
    • rsync: failed to connect to 203.100.192.66: Connection timed out (110) 
    • rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
    • 原因:
    • 检查服务器的端口netstat –tunlp,远程telnet测试。 可能因为客户端或者服务端的防火墙开启 导致无法通信,可以设置规则放行 rsync(873端口) 或者直接关闭防火墙。 
    • 在这里博主是重启过服务器,然后就报110了,直接开启rsync服务就行。
    • 命令:service rsyncd start
    • 问题三:113错误 -防火墙
    • rsync: failed to connect to 218.107.243.2: No route to host (113) rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
    • 原因:
    • 防火墙问题导致,这个很简单,关闭防火墙就可以。不过博主还是被困在这里几个小时,因为linux防火墙分两种:
    • -iptable和-firewall
    • 认识到这个问题首先查看系统的防火墙种类,查看防火墙状态即可
    • service iptable status
    • firewall-cmd --state
    • 确定防火墙种类后再按对应方法将防火墙关闭即可。
    • 问题四:1516错误
    • @ERROR: auth failed on module backup
    • rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.9]

    • 解决:这个问题错误差别很大,可查看系统日志查看错误,再搜索解决方法。
    • 注意:一般这种情况都建立在可以连通的基础。去服务端查看系统日志,可以查看相关错误。
    • 命令:cat /var/log/massages
    • cat /var/log/rsyncd.log
    展开全文
  • 数据库恢复 数据恢复前准备工作 数据库基础环境准备 数据恢复目的机器一台,安装ORACLE...准备待备份数据文件(DMP文件,若有对应的日志文件更好),记录待备份数据文件放置位置全路径FilePath(待恢复数据在O...
    • 数据库恢复
    1. 数据恢复前准备工作
      1. 数据库基础环境准备

    数据恢复目的机器一台,安装ORACLE数据库,建立空数据库并将字符集配置为与待备份数据字符集一致(正常显示中文的字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK)

      1. 数据库备份文件准备

    准备待备份数据文件(DMP文件,若有对应的日志文件更好),记录待备份数据文件放置位置全路径FilePath(待恢复数据在Oracle中的逻辑目录);

    1. 数据恢复
      1. 检查逻辑目录

    检查逻辑目录是否存在:SQL语句:select * from dba_directories;

    若逻辑目录不存在,则创建该逻辑目录:SQL语句:create directorty [逻辑目录名称] as ‘[待备份数据所在目录FilePath]’

      1. 创建表空间

    使用oracle数据库管理员登录并创建新的空表空间(表空间名称要与待恢复数据的表空间名称一致)

    Sql语句:create tablespace [表空间名]  datafile ‘[表空间物理数据文件全路径]’ size 2000M autoextend on next 300M maxsize unlimited;

      1. 创建用户

    使用oracle数据库管理员登录并创建新的用户名(如能与待恢复数据所属的用户名一致更好,不一致也可恢复数据)

    Sql语句:create user [用户名] identified by [用户密码] default tablespace [新创建的表空间名];

      1. 用户授权

    将逻辑目录的读写权限授权给新建用户。

    SQL语句:grant read,write on directory [逻辑目录名] to [用户名];

    给用户授予操作数据库更新表空间的权限。

    SQL语句:grant dba,resource,unlimited tablespace to [用户名]

      1. 调用数据泵恢复文件

    数据恢复命令是在cmd控制台输入,并非sql语句

    若新建用户名与原用户名一致:

    恢复SQL:impdp [用户名]/[密码]@ip地址/[实例名] directory=[逻辑目录] schames=[用户名] dumpfile=[待恢复数据dmp文件全程] logfile=[impdp操作日志名称]

    1)导入模式(从模式username1导入到模式username1)

    impdp username1/password@127.0.0.1/orcl dumpfile=expdp.dmp directory=dump_dir schemas=username1 logfile=impdp.log;

    2)导入表(从username1中把表dept和emp导入到system用户中)

    impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=username1.dept, username1.emp remap_schema= username1:system logfile=impdp.log table_exists_action=replace (表空间已存在则替换);

    3)导入表空间

    impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;

    4)导入整个数据库

    impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;

    展开全文
  • MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。MongoDB是一款分布式文档数据库,支持类似关型数据库的主从结构,文档以二进制Json形式存储,无锁,无...

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。MongoDB是一款分布式文档数据库,支持类似关型数据库的主从结构,文档以二进制Json形式存储,无锁,无事务,有索引。

    1.  MongoDB的启动与停止

    MongoDB的启动之前已经谈过,但是需要注意的MongoDB在启动时有很多可配置的启动选项。在命令行运行mongod –help可以查看所有选项。

    其中有一项是--config,可以支持从文件中获取配置项信息。例如:

    1 D:\> mongod --config mongodb.conf

    配置文件中的内容如下:

    1 port = 5586
    2 
    3 logpath = mongodb.log
    4 
    5 …

    注意:文件中以#开头的行是注释;指定选项的语法就是这种“选项=值”的形式,其中选项是区分大小写的;命令行中那些如--fork的开关选项,其值要设为true。

    一种稳妥的停止MongoDB服务的方式就是使用shutdown命令,即{“shutdown” : 1},这是管理命令,要在admin数据库下使用。shell提供了辅助函数,如下:

    1 >use admin
    2 
    3 switched to db admin
    4 
    5 >db.shutdownServer();
    6 
    7 server should be down…

    若MongoDB服务器是最为前台进程运行在终端,那么可以直接关闭命令行窗口即可。

    2. 安全和认证

    每个MongoDB实例中的数据库可以有许多用户,如果开启了安全性检查,则只有数据库认证用户才能执行读或者写操作。在数据库中添加用户,如下所示:

    1 >use test
    2 
    3 >db.addUser(“test_user”, “efgh”)

    addUser()函数中的第三个参数为可选项true或者false,表示该用户是否为只读用户。

    注意:addUser不仅能添加用户,还能修改用户口令或者只读状态。

    要开启安全性检查,重启服务器,同时加--auth命令行选项。然后通过shell重新连接数据库,操作如下:

    1 >use test
    2 >db.auth(“test_user”, “efgh”)

    之后用户就可以在自己的权限范围内进行操作了。

    数据库的用户账户以文档的形式存储在system.users集合里面。文档的结构如下:

    1 {“user” : username, “readOnly” : true, “pwd” : password hash}

    其中password hash是根据用户名和密码生成的散列。

    用户认证时,服务器将认证和连接绑定来跟踪认证。所以如果驱动程序或是工具使用了连接池或是因故障切换到另一个节点,所有认证用户必须对每个新连接重新认证。有的驱动程序能够将这步透明化,但要是没有,就得手动完成了。

    除了认证还有许多选项值得考虑来锁定MongoDB实例。建议将MongoDB服务器布置在防火墙后或者布置在只有应用服务器能访问的网络中。但要是MongoDB必须能被外面访问到的话,建议使用—bindip选项,可以指定mongod绑定到的本地IP地址。例如,只能从本机应用服务器访问,可以运行“mongod –bindip localhost”。

    3. 数据文件备份

    MongoDB的所有数据都在数据目录(/data/db/)下,备份MongoDB就是创建数据目录中所有文件的副本。但是在运行MongoDB时复制数据目录是不安全的。

    Mongodump是MongoDB自带的工具,它能在运行MongoDB时备份数据。用法如下:

    1 D:\> mongodump -d test -o backup

    -d指定了要备份的数据库,-o指定了备份文件所在的目录,这里会自动创建该目录。

    MongoDB还提供了从备份中恢复数据的工具mongorestore。用法如下:

    1 D:\> mongorestore -d foo --drop backup/test/

    -d指定了要恢复的数据库,--drop代表在恢复前删除集合(若存在)。否则数据就会与现有集合数据合并,可能会覆盖一些文档。

    虽然使用mongodump和mongorestore能不停机备份,但有两个问题。

    (1)       mongodump使用普通的查询机制,所以产生的备份不一定是服务器数据的实时快照。

    (2)       mongodump备份时的查询会对其他客户端的性能产生不利影响。

    所以还有MongoDB的fsync命令能在MongoDB运行时复制数据目录还不会损毁数据。用法如下:

    1 >use admin
    2 >db.runCommand({“fsync” : 1, “lock” : 1});

    至此,数据目录的数据就是一致的,且为数据的实时快照,因为上了写入锁,可以安全地将数据目录副本用做备份。备份好了,就要解锁,如下:

    1 >db.$cmd.sys.unlock.findOne();
    2 >db.currentOp();

    运行fsync命令是为了确保已经解锁了。

    唯一不耽误读写还能保证实时快照的备份方式就是通过从服务器备份。

    展开全文
  • 目前备份对象:Mysql数据、SVN数据、部分文件数据 备份周期:一月备份一次、部分实时备份(mysql) 方案 1.采用最直接的方式 scp命令(在不同的服务器备份) 思路: 基本是文件的方式,采用复制的方式,最为...
  • 1.Linux crontab命令概述 Linux crontab是用来定期执行程序的命令; 当安装完成操作系统之后,...系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存; 个人执行的工作:某个用户定期要做的工...
  • 普通数据文件备份与恢复: 普通数据文件指 非 system表空间、udo表空间、临时表空间、只读表空间的文件。普通数据文件的恢复可用采用高可用恢复策略,  即能够在OPEN状态下恢复。  1、实例启动时,如果普通数据...
  • 关键性数据文件分为:SYSTEM表空间的数据文件 和 UNDO_TABLESPACE 撤销表空间的数据文件  undo_tablespace 自动撤销表空间的数据文件可以通过查询参数 undo_tablespace 指向的撤销表空间。    system 表空间...
  • 本章讲述如何使用Oracle安全备份执行文件系统数据备份文件系统数据可以被定义为物理存储或逻辑存储上的文件文件管理结构的集合。Oracle安全备份可以将文件系统中所有类型的文件备份到磁带中。例如,可以使用...
  • MySQL 将一个表中特定的行记录数据按照一定格式备份到文本文件
  • dump命令备份分区、文件或目录 restore命令:还原dump操作备份下的文件、目录或分区 dd命令数据备份,并在备份过程中进行格式转换
  • 常用RMAN备份命令和查看备份命令

    千次阅读 2019-03-12 21:42:53
    rman备份命令 backup database 备份整个数据库 backup database including current controlfile 备份整个数据库还包括现在的controlfile backup database plus archivelog all 备份整个数据库还包括全部的...
  • 静态文件容灾_定时增量同步 1. 环境 2. sshpass 2.1. 应用范围 2.2. 安装 3. rsync 3.1. 应用范围 3.2. 安装 4. crontab 4.1. 应用范围 4.2. 安装 4.3. 定时任务表达式 4.4. 相关命令 5. 同步录音文件...
  • oracle数据库使用数据泵expdp/impdp导出导入踩过的坑1:expdp导出操作2:impdp导入操作3:impdp导入踩坑3.1:ORA-01653 错误解决方案3.2:ORA-39171: Job is experiencing a resumable wait3.3:oracle impdp时卡死...
  • 流程:全量备份 --创建表空间和用户--恢复数据库--检查数据库--下线数据文件--删除数据文件(空间是释放) 1.全量备份: exp betazone/test1234@imapdb full=y file=/home/ora/betazone_201204016.dmp log=/home/...
  • linux定时备份文件

    2018-07-13 10:25:20
    一、 编写脚本编写一个脚本文件,使脚本可以执行备份命令。 例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩。1. 创建脚本命令格式: touch 路径/文件名.sh 例如: 输入命令:touch /home/...
  • Linux 备份压缩 : cpio 命令详解

    千次阅读 2018-08-07 10:24:58
    cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。 语法 cpio(选项) 选项 -0或--null:接受新增列控制字符,通常配合find指令的“-print0”参数...
  • RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_header 在noarchivelog模式下,可以使用RMAN...
  • oracle 定时删除3天前的备份数据

    千次阅读 2017-07-25 13:51:13
    1.那么有什么方法自动删除7天以前备份的*.log文件呢?  2.服务器过多,不可能一一手动创建,有没有自动完成这个创建计划任务的批处理呢?  首先要解决的是自动删除7天以前备份的log文件,然后创建一个可以自动...
  • 为了实现多个服务器负载均衡,我们需要这几个服务器之间进行数据同步,而rsync软件也能胜任,下面我们来介绍如何架设rsync服务器来达到文件增量备份数据同步的功能。 什么是rsync rsync 是一个快
  • 数据备份与恢复、系统备份与恢复

    万次阅读 2018-04-17 22:56:58
    针对整个操作系统进行备份– 当操作系统损坏或者无法启动时,能通过备份快速恢复数据备份– 针对用户的数据文件、应用软件、数据库进行备份– 当这些数据丢失或损坏时,也能通过备份恢复3、数据冷备...
  • 1、副总裁需要裸恢复的严峻现实 集团总部的信息部负责人给我打电话说为了找一年前的记录,...我在电话里面说马上去做,接完电话,想到只有rman备份文件,而且是备份数据文件,没有控制文件没有参数文件的备份,...
  • Linux 备份压缩 : zip 命令详解

    千次阅读 2018-09-20 10:10:07
    zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。 语法 zip(选项)(参数) 选项 -A:调整可执行的自动解压缩文件; -b...
  • 使用MYSQLDUMP命令备份

    千次阅读 2015-12-25 14:53:20
    mysqldump命令执行时将数据库备份成一个文本文件, 该文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据 MYSQLDUMP的语法和选项 mysqldump -u user -p pwd -h host dbn
  • hp-ux系统备份与恢复常用命令

    千次阅读 2017-07-23 10:16:33
    1. 利用SAM做常规系统备份恢复  HPUX 提供的SAM(System Administrate Manager)可以简便的...1) 备份数据 # sam sam ->Backup and Recovery-> AutomatedBackups进入自动备份; sam ->Backup and Recovery->Intera
  • Oracle数据库逻辑增量备份... 由于一个库在云平台上,虽然做了RMAN备份,但是RMAN备份在云本地磁盘上,同时库备份数据量比较大,无法转移到其他的空间上。由于该库应用的性质比较特殊,大数据量部分要求保存180天
  • 在BEGIN BACKUP下达后,系统要对表空间执行检查点,并将该检查点前的所有事务应用都固化到数据文件,然后冻结这个SCN,直到使用END BACKUP,使备份过程结束,再更新为新的SCN,冻结的原因是因为使用操作系统命令拷贝数据...
  • oracle11g数据库导入导出: ①:传统方式——exp(导出)和... oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。 数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数...
  • oracle备份常用命令

    千次阅读 2012-04-24 21:30:53
    1.list backup;列出数据库中所有的备份信息。 2.list backup of controlfile;列出所有备份的控制文件。 3.list backup of datafile ' 或者 list ...列出指定的备份数据文件。 4.list backup of archivelog all
  • 一、rsync、incron简介 关于rsync工具的介绍和使用,以及其结合cron工具实现定时备份的功能,可参考博文:...inotify 是一种文件变化通知机制,Linux内核2.6.13(2005/06/18)版本开始引入; inotify仅仅是一个API

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 167,217
精华内容 66,886
关键字:

备份数据文件检查命令