سلام
یکی از کارهایی که باید چندین بار در محیط تست انجام داد و براش آماده بود، Switchover هست. هر دیتابیس می تواند یکی از دو role شامل primary و یا standby را داشته باشد. عملیات switchover به ما اجازه می دهد بدون از دست دادن داده و یا reset log نقش این دو دیتابیس را عوض کنیم.
عملیات switchover کاربردهای زیادی دارد که از آن جمله می توان به downtime از پیش تعیین شده برای نگه داری، تعمیر سخت افزار، جابجایی فیزیکی سرورها و اشاره کرد.
در این مطلب ما دو rac با نسخه 11.2.0.4 داریم. ابتدا بر روی هر کدام از دیتابیس ها، دستور زیر را برای به دست آوردن اطلاعات و نقش فعلی آنها می زنیم:
select name,open_mode,db_unique_name,switchover_status,database_role from v$database;
نتیجه دیتابیس اصلی به شکل زیر خواهد بود:
NAME OPEN_MODE DB_UNIQUE_NAME SWITCHOVER_STATUS DATABASE_ROLE
--------- -------------------- ------------------------------ -------------------- ----------------
TESTDB READ WRITE testdb TO STANDBY PRIMARY
NAME OPEN_MODE DB_UNIQUE_NAME SWITCHOVER_STATUS DATABASE_ROLE
--------- -------------------- ------------------------------ -------------------- ----------------
TESTDB MOUNTED TESTDG NOT ALLOWED PHYSICAL STANDBY
archive log list
select process ,sequence# , status , thread# from gv$managed_standby;
select thread#, max(sequence#) from v$archived_log where applied='YES' group by thread#;
alter database commit to switchover to physical standby;
alter database commit to switchover to physical standby with session shutdown ;
دیتابیس استندبای را یکبار خاموش و تا مرحله mount بالا می آوریم:
shut immediate;
startup mount;
حالا اگر جستجوی اول کار را بر روی دیتابیس اصلی جدید (استندبای قدیمی) اجرا کنیم، می بینیم که وضعیت switchover_status تغییر پیدا کرده است:
select name,open_mode,db_unique_name,switchover_status,database_role from v$database;
NAME OPEN_MODE DB_UNIQUE_NAME SWITCHOVER_STATUS DATABASE_ROLE
--------- -------------------- ------------------------------ -------------------- ----------------
TESTDB MOUNTED TESTDG TO PRIMARY PHYSICAL STANDBY
alter database commit to switchover to primary ;
shut immediate;
startup;
select name,open_mode,db_unique_name,switchover_status,database_role from v$database;
NAME OPEN_MODE DB_UNIQUE_NAME SWITCHOVER_STATUS DATABASE_ROLE
--------- -------------------- ------------------------------ -------------------- ----------------
TESTDB READ WRITE TESTDG RESOLVABLE GAP PRIMARY
recover managed standby database using current logfile disconnect;
درباره این سایت