Switch over from dataguard rac to stand-alone
After the http://snowhill.blog.51cto.com/339421/1923591, is built, do the switch over:
1 check the parameter fal_server,fal_client,log_archive_dest_2,log_file_name_convert,data_file_name_convert
Standby_file_management
Source:
Fal_server=standby
Fal_cleint=db
Alter system set db_file_name_convert='/data','+data' scope=spfile;alter system set log_file_name_convert='/data','+data' scope=spfile
Standby:
Fal_server=db
Fal_client=standby
Standby_file_management=auto
2 rac needs to be closed to an instance before switching
3 check whether there is gap
4 switching:
Source:
SQL > alter database commit to switchover to standby with session shutdown
After switching here, the source end will automatically shutdown abort.
-- standby
SQL > select name,open_mode,DATABASE_ROLE,PROTECTION_MODE,switchover_status from v$database NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS--DB READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM AVAILABILITY TO PRIMARYSQL > alter system set log_archive_dest_2= "service=db lgwr sync affirm valid_for= (all_logfiles All_roles) db_unique_name=db "scope=both SQL > alter system set log_archive_dest_state_2=enable;SQL > alter database commit to switchover to primary with session shutdown
-- Source
SQL > startup mountSQL > alter system set log_archive_dest_state_2=defer SQL > select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS Db_unique_name from v$databaseNAME LOG_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS DB_UNIQUE_NAME -- DB ARCHIVELOG MOUNTED PHYSICAL STANDBY RECOVERY NEEDED dbSQL > alter database recover managed standby database cancel SQL > alter database open;SQL > alter database recover managed standby database using current logfile disconnect;SQL > select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS, db_unique_name from v$database NAME LOG_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS DB_UNIQUE_NAME-- -DB ARCHIVELOG READ ONLY WITH APPLY PHYSICAL STANDBY TO PRIMARY db
-- standby
SQL > alter system set log_archive_dest_2= "service=db lgwr sync affirm valid_for= (all_logfiles,all_roles) db_unique_name=db" scope=both;SQL > alter system set log_archive_dest_state_2=enable scope=both