4. Data Guard 主备库切换 Data Guard的主备库切换分为2种,switchover和failover。遇到突发事件,基本都是采用failover切换。 在主备库切换完成后应该修改数据库服务器的IP地址,如将10.85.8.205的服务器IP地址改为10.85.8.203。或者进Sfcallset,将数据库服务器的IP地址改为10.85.8.205,即备库的地址.这样才能保证系统的正常运作。
主库: 1.查看switchover状态 SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; to standby 2.切换成备库 SQL> Alter database commit to switchover to physical standby with session shutdown; SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; Database altered.
3启动到mount和应用日志状态 SQL> SHUTDOWN IMMEDIATE SQL> startup nomount; SQL> alter database mount standby database; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
4.查看数据库模式 SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status; SQL>select status,database_mode from v$archive_dest_status;
备库:
1.查看switchover状态 SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; TO PRIMARY 2.切换成主库 SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; Database altered. SQL> shutdown immediate; SQL> startup; SQL> alter system switch logfile; 3.查看数据库模式 SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status; SQL>select status,database_mode from v$archive_dest_status;
4. Data Guard 主备库切换
Data Guard的主备库切换分为2种,switchover和failover。遇到突发事件,基本都是采用failover切换。 在主备库切换完成后应该修改数据库服务器的IP地址,如将10.85.8.205的服务器IP地址改为10.85.8.203。或者进Sfcallset,将数据库服务器的IP地址改为10.85.8.205,即备库的地址.这样才能保证系统的正常运作。
4.1 . switchover
一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。
主库:
1.查看switchover状态
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
to standby
2.切换成备库
SQL> Alter database commit to switchover to physical standby with session shutdown;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
Database altered.
3启动到mount和应用日志状态
SQL> SHUTDOWN IMMEDIATE
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
4.查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
备库:
1.查看switchover状态
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
TO PRIMARY
2.切换成主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
SQL> shutdown immediate;
SQL> startup;
SQL> alter system switch logfile;
3.查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
4.2 Failovers:
FAILOVER切换一般是PRIMARY数据库发生故障后的切换,这种情况是STANDBY数据库发挥其作用的情况。这种切换发生后,可能会造成数据的丢失。而且这个过程不是可逆的,DATA GUARD环境会被破坏。由于PRIMARY数据库已经无法启动,所以FAILOVER切换所需的条件并不多,只要检查STANDBY是否运行在最大保护模式下,如果是的话,需要将其置为最大性能模式,否则切换到PRIMARY角色也无法启动。
1.查看是否有日志GAP,没有应用的日志:
SQL> SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
如果有,则拷贝过来并且注册
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '路径';
重复查看直到没有应用的日志:
2.然后停止应用归档:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
3.下面将STANDBY数据库切换为PRIMARY数据库:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
Database altered.
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
检查数据库是否已经切换成功:
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
PRIMARY
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
很详细,有没有逻辑dataguard的资料,你给的是物理dataguard。