physical standby转换成snapshot用来压测

原理

创建还原点,利用闪回区记录转换为Read/Write中的变化,完成测试后,再将其还原回还原点的位置,重新变为physical standby database。

禁用备库的备份

进入备份管理机,将对应备库的归档和全备禁用

禁用备库的排程

crontab -e

创建闪回区目录

如果业务很忙,闪回日志会很大,需要存放在一个比较大的目录中

mkdir -p /oggdata/flash_recovery_area

修改数据库参数

--修改闪回区位置
alter system set db_recovery_file_dest='/oggdata/flash_recovery_area';
--修改闪回区限额
alter system set db_recovery_file_dest_size = 400G;
--修改闪回区对象保存时间(2天,根据实际需求调整)
alter system set db_flashback_retention_target=2880;
冻结VCS
hagrp -freeze {vcsgroup}

转换

--取消日志应用
alter database recover managed standby database cancel;
--关闭数据库并启动至mount状态
shutdown immediate;
startup mount;
--转换
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
--打开数据库
alter database open;
--查看数据库的状态
select open_mode,database_role from v$database;

修改主库归档删除脚本

#!/bin/bash
source ~/.bash_profile
echo "start date ---------------------->"`date`
rman target / << eof
delete noprompt force archivelog until time 'sysdate - 6/24';
exit
eof
echo "end date ---------------------->"`date`

验证

  1. 查看对应闪回区下是否产生了文件

    cd /oggdata/flash_recovery_area/{db_unqie_name}/flashback/
    ll
    
  2. 使用工具进行连接

    创建一个表并且插入试试是否可读可写

  3. 查看主库归档是否传送过来

  4. 主库alert日志中是否有错误信息

转换回来

转换
-- 关闭数据库并启动至mount状态
shutdown immediate;
startup mount;
--转换
ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
--关闭并重新MOUNT,执行上一步之后,数据库无法mount(ORA-00750: database has been previously mounted and dismounted)
shutdown immediate;
startup nomount;
alter database mount standby database;
--查看数据库的状态
select open_mode,database_role from v$database;
-- 应用日志
alter database recover managed standby database disconnect;
验证
  1. 查看数据库日志是否应用
  2. 查看alert日志是否有报错
还原数据库参数
--修改闪回区位置
alter system set db_recovery_file_dest='/oracle/flash_recovery_area';
--修改闪回区限额
alter system set db_recovery_file_dest_size = 4G;
--修改闪回区对象保存时间(2天,根据实际需求调整)
alter system set db_flashback_retention_target=1440;
打开备份

进入管理机打开备份

参考:測試Oracle dataguard snapshot standby

打开EM

  1. 直接打开后,无法进入EM

    503 Service Unavailable

  2. 关闭EM

    emctl stop dbconsole
    
  3. 修改hosts文件

    vi /etc/hosts
    -------------------------------------------------
    192.168.2.3  standby-vip
    # 修改为(使用主库的EM,因此要用主库的虚拟IP)
    192.168.2.3  standby-vip primary-vip
    -------------------------------------------------
    # ping一下,确定是192.168.2.3
    ping primary-vip
    
  4. 将主库的EM文件scp过来

    cd /oracle/11204/oc4j/j2ee/
    scp -r OC4J_DBConsole_primary-vip_MONKEY 192.168.2.3:`pwd`
    cd /oracle/11204/
    scp -r primary-vip_MONKEY 192.168.2.3:`pwd`
    
  5. 修改环境变量,并打开

    export ORACLE_HOSTNAME=primary-vip
    export ORACLE_UNQNAME=MONKEY
    emctl status dbconsole
    emctl start dbconsole
    

关闭EM

cd /oracle/11204/oc4j/j2ee/
ll
export ORACLE_HOSTNAME=primary-vip
export ORACLE_UNQNAME=MONKEY
emctl status dbconsole
emctl stop dbconsole
emctl status dbconsole

vi /etc/hosts
------------------------------------------
192.168.2.3    standby-vip primary-vip
# 修改为
192.168.2.3    standby-vip
------------------------------------------
原文地址:https://www.cnblogs.com/monkey6/p/14750080.html