RAC 攻击 - Oracle 集群数据库在家/设置备份
外观
在本实验中,我们将故意错误配置集群数据库备份,并在本地非共享存储中犯一些常见错误。
- 以 oracle 用户身份登录到 collabn1 上的终端。
- 在 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该错误发生在远程节点上,但在此处报告。它也在远程节点上记录 - 你知道它在哪里记录吗?需要什么样的监控才能通过此类消息主动发出警报?
- 现在在远程节点上创建该目录并重新运行操作。这应该会成功,但它仍然是一个糟糕的配置;我们将在本实验的后面调查原因。SQL> host ssh collabn2 mkdir /u01/app/oradata SQL> alter system set db_recovery_file_dest='/u01/app/oradata'; System altered.
- 在整个集群中关闭数据库。然后在 collabn1 上挂载它,并将数据库置于归档日志模式。没有分配归档日志目的地 - 归档日志将去哪里,为什么?为此,您不需要禁用 cluster_database init 参数。
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