################################备库自动化脚本#############################
!!!!!!!!!!!!!!!!!!!!/home/oracle/readonly 1 点
#!/bin/bash
cd /home/oracle
source /home/oracle/.bash_profile
/u01/app/oracle/product/10.2.1/db_1/bin/sqlplus system/oracle as sysdba <<!
alter database recover managed standby database cancel;-- 取消日志应用
alter database open read only;
exit
!
!!!!!!!!!!!!!!!!!/home/oracle/recover 6 点
#!/bin/bash
cd /home/oracle
source /home/oracle/.bash_profile
/u01/app/oracle/product/10.2.1/db_1/bin/sqlplus system/oracle as sysdba <<!
alter database recover managed standby database disconnect from session;-- 启动日志应用
exit
!
#########物理standby因接收主库归档日志不连续致使日志不能应用的解决办法(整个过程主库不用停主库)##############################
主库做全备份(不含归档日志)
rman target /
run{
allocate channel c1 type disk maxpiecesize=1024m; ------设定备份片大小
backup as compressed backupset database include current controlfile for standby format '/home/oracle/backup/%d_%I_%s_%p_%T_%t.bkp' filesperset=3;
}
备库删除控制文件,数据文件,归档日志文件,旧的备份片;然后在备库上重新恢复数据库:
RMAN> alter database nomount;
RMAN> restore controlfile from '/home/oracle/backup/ORCL_1332484048_6_1.bkp';
RMAN>alter database mount;
RMAN>restore database
RMAN>exit
备库
SQL> select status from v$instance;
MOUNT;
备库启用接受归档
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
SQL> select sequence# ,applied from v$archived_log order by sequence#;(查看提交状态)
SEQUENCE# APP
---------- ---
4008 YES
4009 YES
即表示归档接受并应用
主库切换归档, 看备库归档是否传输过来;
主库建个表,备库切换到只读模式验证一下;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN READ ONLY;
注意redo是否也被删除了,没有则手动添加
#########################################################################
六、DG的启动以及关闭顺序
启动:
Primary:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
Standby:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
关闭:
Standby:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> SHUTDOWN IMMEDIATE;
Primary:
SQL> SHUTDOWN IMMEDIATE;
!!!!!!!!!!!!!!!!!!!!/home/oracle/readonly 1 点
#!/bin/bash
cd /home/oracle
source /home/oracle/.bash_profile
/u01/app/oracle/product/10.2.1/db_1/bin/sqlplus system/oracle as sysdba <<!
alter database recover managed standby database cancel;-- 取消日志应用
alter database open read only;
exit
!
!!!!!!!!!!!!!!!!!/home/oracle/recover 6 点
#!/bin/bash
cd /home/oracle
source /home/oracle/.bash_profile
/u01/app/oracle/product/10.2.1/db_1/bin/sqlplus system/oracle as sysdba <<!
alter database recover managed standby database disconnect from session;-- 启动日志应用
exit
!
#########物理standby因接收主库归档日志不连续致使日志不能应用的解决办法(整个过程主库不用停主库)##############################
主库做全备份(不含归档日志)
rman target /
run{
allocate channel c1 type disk maxpiecesize=1024m; ------设定备份片大小
backup as compressed backupset database include current controlfile for standby format '/home/oracle/backup/%d_%I_%s_%p_%T_%t.bkp' filesperset=3;
}
备库删除控制文件,数据文件,归档日志文件,旧的备份片;然后在备库上重新恢复数据库:
RMAN> alter database nomount;
RMAN> restore controlfile from '/home/oracle/backup/ORCL_1332484048_6_1.bkp';
RMAN>alter database mount;
RMAN>restore database
RMAN>exit
备库
SQL> select status from v$instance;
MOUNT;
备库启用接受归档
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
SQL> select sequence# ,applied from v$archived_log order by sequence#;(查看提交状态)
SEQUENCE# APP
---------- ---
4008 YES
4009 YES
即表示归档接受并应用
主库切换归档, 看备库归档是否传输过来;
主库建个表,备库切换到只读模式验证一下;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN READ ONLY;
注意redo是否也被删除了,没有则手动添加
#########################################################################
六、DG的启动以及关闭顺序
启动:
Primary:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
Standby:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
关闭:
Standby:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> SHUTDOWN IMMEDIATE;
Primary:
SQL> SHUTDOWN IMMEDIATE;