- 准备要被激活的物理备数据库
检查数据库的flashback database模式和闪回日志存放的目录。
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oracle/app/oracle/fast_recovery_area
db_recovery_file_dest_size big integer 4182M
如果物理备数据库没有开启闪回功能通过以下方式开启闪回:
创建闪回目录
mkdir -p /backups/flash_recovery_area
设置快速恢复区的大小
SQL> alter system set db_recovery_file_dest_size=10G scope=both;
设置快速恢复区的地址
SQL> alter system set db_recovery_file_dest=‘/backups/flash_recovery_area’ scope=both;
设置闪回保留时间(保留三天)
SQL> alter system set DB_FLASHBACK_RETENTION_TARGET=4320 scope=both;
注:归档量预估闪回区的大小。
如果闪回日志保留时间(DB_FLASHBACK_RETENTION_TARGET)设置的是24小时,而一天的归档产生量是20G,那么闪回区(DB_RECOVERY_FILE_DEST_SIZE)应该设置为20G至30G。
以此类推,如果闪回日志保留7天,那么DB_RECOVERY_FILE_DEST_SIZE设置为20G*7至30G*7。
重启数据库到mount阶段
shutdown immediate;
startup mount;
alter database flashback on;
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
由于备库在应用日志,所以要取消日志应用,并创建一个激活之前的还原点。
SQL> select process,status from v$managed_standby;
SQL> recover managed standby database cancel;
SQL> create restore point test_point guarantee flashback database;
- 准备主库
归档当前日志文件。
在主数据库上,切换日志使得还原点(在步骤 1 中创建)的 SCN 将在物理备数据库上被归档:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
当使用备重做日志文件时,这个步骤是必须的以确保数据库能被正确地闪回到还原点。
延迟指向将被激活的备的日志归档目的地。
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
或者 ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=DEFER;
SQL> show parameter log_archive_dest_state_2
或者 show parameter log_archive_dest_state_3
- 激活物理备数据库
在物理备数据库上,执行下述步骤:
激活物理备数据库并打开到open状态:
SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;
SQL> ALTER DATABASE OPEN; - 使用激活的数据库用于报表或测试
一旦备数据库已经被激活,你能运行报表工具或执行其它测试并激活几天甚至几周,独立于主数据库。
警告:当数据库被激活时,它不从主数据库接收重做数据库并不能提供灾难保护。建议至少有
两个物理备数据库参与配置,使得主数据库保持对数据丢失的保护。 - 恢复激活的数据库回到物理备数据库完成测试之后,需要重新与主数据库同步激活的数据库。在激活的数据库上执行下面语句以快速闪回它到保障的还原点并将它重新与主数据库同步:
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to restore point test_point;
SQL> alter database convert to physical standby;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database open;
alter database recover managed standby database using current logfile disconnect from session;
select database_role,open_mode from v$database;
- 重新允许归档到物理备数据库目的地
在主数据库上,执行下面语句来重新允许归档到物理备数据库:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
或者 ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=ENABLE;
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Mybatis的一个非常有用的附加功能就是能帮助我们打印执行过程中的log:sql语句、参数、执行结果等。这一特性在开发过程中非常有用,可以帮助我们快速高效定位开发过程中的问题。 今天我们从源码的角度研究一下Mybatis的log机制,主要包括两部分: Myb…