跳转到内容

RAC 攻击 - Oracle 集群数据库在家/设置备份

来自 Wikibooks,开放世界开放书籍


在本实验中,我们将故意错误配置集群数据库备份,并在本地非共享存储中犯一些常见错误。



  1. 以 oracle 用户身份登录到 collabn1 上的终端。
  2. collabn1 上创建一个目录 /u01/app/oradata,并尝试通过 init 参数 db_recovery_file_dest 将其配置为闪回恢复区 (FRA)。操作将失败。collabn1:/home/oracle[RAC1]$ mkdir /u01/app/oradata collabn1:/home/oracle[RAC1]$ ss SQL*Plus: Release 11.1.0.6.0 - Production on Mon May 4 07:39:57 2009 SQL> show parameter recovery_file NAME TYPE VALUE ------------------------------- ----------- ------------------------------ db_recovery_file_dest string +FRA db_recovery_file_dest_size big integer 4000M SQL> alter system set db_recovery_file_dest='/u01/app/oradata'; alter system set db_recovery_file_dest='/u01/app/oradata' * ERROR at line 1: ORA-32008: error while processing parameter update at instance RAC2 ORA-02097: parameter cannot be modified because specified value is invalid ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated ORA-01262: Stat failed on a file destination directory Linux Error: 2: No such file or director


  3. 现在在远程节点上创建该目录并重新运行操作。这应该会成功,但它仍然是一个糟糕的配置;我们将在本实验的后面调查原因。SQL> host ssh collabn2 mkdir /u01/app/oradata SQL> alter system set db_recovery_file_dest='/u01/app/oradata'; System altered.
  4. 在整个集群中关闭数据库。然后在 collabn1 上挂载它,并将数据库置于归档日志模式。没有分配归档日志目的地 - 归档日志将去哪里,为什么?
    collabn1:/home/oracle[RAC1]$ srvctl stop database -d RAC
    collabn1:/home/oracle[RAC1]$ srvctl status database -d RAC
    Instance RAC1 is not running on node collabn1
    Instance RAC2 is not running on node collabn2
     
    collabn1:/home/oracle[RAC1]$ ss
    SQL*Plus: Release 11.1.0.6.0 - Production on Mon May 4 09:08:01 2009
     
    SQL> startup mount
     
    SQL> alter database archivelog;
    Database altered.
     
    SQL> alter database open;
     
    collabn1:/home/oracle[RAC1]$ srvctl start database -d RAC
    



华夏公益教科书