Data Guard 개념 (9i R2 9.2.0.1) 김형일 HIKIM000@EMPAL.COM 1
목차 1. DataGuard 개념 3 1.1 Data Guard Architecture 3 1.2 DataGuard 장점 4 1.3 Switch over and Failover 5 1.4 Physical Standby 와 Logical Standby 5 2. Data Guard 구축시고려사항 7 2.1 Standby Database 의개수. 7 2.2 Standby 로 Redo log 를전송해주는방법선택. 7 2.3 적용방법의선택, Redo log or SQL 적용 7 2.4. Primary 와 Standby 의 Database 의위치와물리적인구조 7 2.5 Data Protection mode 에대한선택. 8 3. 제약사항 10 2
1.DataGuard 개념 DataGuard 의용도는 Mission Critical 한데이터베이스에대한재해및장애에대한백업을위한것으로, 물리적으로다른서버에동일한데이터베이스를구축하여돌발적으로발생할수있는재해나장애를대비하여데이터를복제하여백업체제를구축하는것이다. 최근들어데이터베이스의가용성을위하여많은솔루션이제공되고있는데, 오라클에서는과거의 Standby Database 의기능을 9i 에서 DataGuard 라는개념으로발전시켰다. Standby 데이터베이스는 primary 의백업을기반으로구축되어지며, Standby Setup 후에 archive file 의전송및적용으로 primary 의데이터를맞추어간다. 1.1 Data Guard Architecture DataGuard 는일반사용자가사용하는 Primary Database 와백업용도로생성되고유지되는 Standby Database 로구성된다. 위의그림은하나의 Primary Database 에대해 Physical Standby, Logical Standby Database 로구성되어있다. 3
Physical Standby 는 Log Data 를 Recovery Mode 로적용하는방법을취하며, Logical Standby database 는전송된 Log 를 Log Miner 기능을적용하여 SQL 을뽑아논리적인일치를맞추어진다. 1.2 DataGuard 장점 Data Guard 를사용할경우에장점은아래와같다. Application Level 에서는변경이거의없다. Primary Site 의재해시빠른시간에복구가가능하며, Application Level 에서는단지 Database Connection 부분만수정해주면된다. 이는 H/W Failover(IP Address Change) 나 Oracle SQL Net 의 Connection FailOver 기능을사용하면손쉽게구현할수있다. Primary Site 에영향을최소화한다. Stand by Database 를유지하기위해 Primary Site 에서는약간의초기 Setup 절차와운영시의 Archive log 를전송하는 Service 에대한부하만있다. Standby Database 를 Open 하여사용할수있다 (read only or write) 복구용의 Standby Database 를필요시에 Read only 로 open 하여조회및 Report 용작업을수행할수있다. Logical Standby Database 는.????? 재해에대한완벽한보장이가능하다 Standby Database 의 Protection mode 를 Maximum Protection 으로구성하여사용할경우돌발적인장애, 재해에대해완벽한데이터보호가가능하다. User Error 를예방할수있다. Physical Standby 로구성하여사용할때 Async 로이용하거나, Logical Standby 를사용할때에는사용자의 Operation 실수를 Standby 로적용하지않으므로해서사용자의실수에대한장애를쉽게복구할수있다. Data corruption 을예방할수있다. Standby Database 로의물리적인 Data Corruption 전달이방지된다. S/W upgrade 나 H/W 작업에필요한계획휴지를감소시킬수있다. H/W, S/W 의 Upgrade 나 Modify 를위해시행하는계획휴지의시간을 Data Guard 의 Switch Over 기능을이용하여감소시킬수있다. 4
1.3 Switch over and Failover Data Guard 의필요성은 Primary 에장애가발생했을때, 그위력을발휘한다. 또한추가적인이점으로시스템작업이나 S/W 의 upgrade 작업에필요한계획휴지를할때이용할수있다. 이러한계획휴지나, 장애시에최소한의짧은시간의정지만을필요로하는가용성을 DataGuard 의 Fail over 와 Switch Over 로지원한다. Switch Over Switch Over 는계획된이행으로 H/W 작업이나 S/W 작업에의해시스템을정지하고작업해야하는것이발생하면, 현재사용중인업무는 Standby Database 로이전하고 Primary Database 측 H/W, O/S 등의작업을할수있도록이행하는방법으로계획된이행을할수있다. Switch over 를수행하게되면 Primary 는 Standby 가되고 Standby 는 Primary 가된다. Fail over 시스템이정상적인운영중에 Primary Database 에장애나재해로인해빠른시간에복구가불가능하게되면, Primary 와 Standby 의 Role 전환을 Failover 방법으로수행한다. 이러한방법으로 Role 전환을수행하게되면, Standby Database 는 Primary Database 가되고, 장애가발생한 Primary Database 는고립된다. 즉, Primary Database 는쓸모없는 Database 가되고만다. 이와같이 S/W 나 H/W 의작업에의해계획된이행은 Switch over 라하며, 운영중에 primary 의예기치않은장애에대한이행은 Failover 라한다. 1.4 Physical Standby 와 Logical Standby Oracle 9i R2(9.2.0.1) Version 부터는 Standby Database 를물리적인 Standby 와논리적인 Standby 로구성할수있다. 두개의기능이나구성에차이는분명히있으며, 장단점이있지만, 서로보완적인형태로사용가능하다. Physical Standby Database Physical Standby Database 는오라클의 Media Recovery 를이용한것으로 Primary 와물리적으로똑같은구조로구성되어야한다. 즉모든 file 의구조, Database 내부의 Object 내역도동일시되어야한다. Primary 와 Standby Database 의일치는 Primary 의 Archive log 를이용하여 Standby Database 에 Recovery 하는개념으로일치해간다. Physical Standby Database 의 archive log 적용은자동으로수행하며, 이때 Open 상태가아닌, Managed Recovery Mode 로운영되어일반사용자가사용할수없다는것이다. 만약 Report 용이나조회를위해서 Read Only 로 Open 하여사용은할수있다. 다만이때는 Archive 가적용되지않고정지해있는상태로사용을하는것이다. 5
Physical Standby Database 는 100% Data 보장을위한 Maximum Protection 모드로운영할수있다. Logical Standby Database Oracle9i R2 에서새로나온기능으로 Archive log 의적용에의한 Standby 구성이아닌 Archive log 에서 SQL 을뽑아내어적용하는방식으로운영된다. 이때 Archive file 에서 SQL 을뽑아내는기술은 Logminer 의기술을이용하며, Standby Database 가 Physical Standby 와는달리 Open 되어있는상태이어야한다. 이때 Database 는 Read/Write 가가능하지만 Archive 로부터적용되는 SQL 의대상이되는오브젝트는 Read Only 로사용해야한다 Logical Standby 의특징으로는 Database 가 Open 된상태로운영된다는것으로, switch over 시나 failover 시에 database 를 restart 할필요가없다. 또한 maximum protection 을지원하지않는다. 6
2. Data Guard 구축시고려사항 DataGuard 를목적에적합한구성으로구축하기위해서는사전의고려사항들을잘점검한후에사용시스템에적합한구성방법으로구성하여야한다. 2.1 Standby Database 의개수. Standby Database 는하나의 Primary Database 에대해 9 개까지구성할수있다. 이각각의 Standby Database 는독립적으로운영되며, 각각성격이다르게구성할수있다. 즉, Physical Standby, Logical Standby 로서로다르게구성할수있다. H/W Failure 를위하여 Physical Standby 를구성하고, User operation 이나 Data Block Corruption 의예방을위한 Logical Standby 를구성할수있다. 또한 Report 용이나 D/W 용으로사용할것이있다면이를위해추가로 Standby 를구성할수있다. 2.2 Standby 로 Redo log 를전송해주는방법선택. Standby 를구성하는것중의중요한요소가 Log 전송서비스를어떻게구성하는것이냐이다. 여기에는 LGWR 가전송하는방법과 ARCH 가전송하는방법이있다. 2.3 적용방법의선택, Redo log or SQL 적용 Log Apply Service 는 physical Standby 의유지를위한서비스이며, SQL 적용방법은 Logical Standby 의유지를위한서비스이다. 결국, Log Apply Service 를사용하느냐, SQL 적용방법을사용하느냐는 Physical Standby 로할지 Logical Standby 로할지결정하는것과동일하다. 2.4. Primary 와 Standby 의 Database 의위치와물리적인구조 일반적으로 Primary 와 Standby 는다른서버에존재하는것이권장되지만고객의사용용도에따라같은서버에위치할수있다. 이때, 같은 directory 구조를가지고있는때에는서로겹치게되므로오라클에서는 file path 을변환시켜서위치가같은곳에같은 file path 으로구성되지않도록지원한다. 결국, Primary 와 Standby 는물리적인위치와구조가같을수도있지만 ( 서로다른 Node 일때 ) 다를수도있다. 7
만약 datafile 과 redolog file 의 path 를 primary 와 secondary 를다르게구성하기위해서는 init.ora 에 db_file_name_convert 와 log_file_name_convert 를지정하여 path 에대한 conversion 을해주어야한다. 2.5 Data Protection mode 에대한선택. Data Guard 의운영 Mode 는 Maximum protection, Maximum availability, Maximum performance 로운영할수있는데, 각사용자의요구사항에따라원하는목적에부합하는 Mode 로운영해야한다. Maximum Protection Maximum protection mode 는가장강력한데이터보장방법으로 primary database 의 LGWR 가 local log file 에기록을하는동시에 Standby Database 에 Log 를전송해주는방식으로, Failover 시에도 Graceful Failover 가가능하며, 데이터의무손실을보장한다. 이러한방식으로운영하고자할경우에는 Standby 용 Redo Log file 이있어야하며, Primary Database 의성능손실을감수해야한다. 또한 Standby Database 가 down 되거나장애가발생하면 Primary Database 도사용하지못한다. 8
Maximum Availability Maximum Availability 는 Maximum protection mode 다음으로데이터를보장하는방법이며, Primary Database 장애시나 Network 장애시잠시나마데이터를잃을수있지만 Primary 의 Redo log 를다시적용하여일치시킬수있다. 장점으로는 Standby Database 가 down 되어도 Primary Site 는계속사용할수있다. 이때 Standby redo log 는 Optional 이된다. Maximum Performance Maximum performance 는데이터의보장보다는성능을중요시할경우에사용하는 Mode 로써위의 2 가지방식과는달리 ARCH 프로세스가 Archive log 를 Standby 로전송하여준다. 그러므로 Primary Database 의성능에는전혀지장이없다. 다만장애시 Online Redo 에있는내용을잃을수있다. 9
3. 제약사항 Data Guard 를구성하기위한일반적인제약사항을언급하며, 각구성방법및 Protection Mode 에대한제약사항들은향후만들문서에서언급하겠다. Primary Database 는 Archive log Mode 로운영하여야한다. Primary 와 Standby 가위치할 Server 는 H/W, S/W Version 이일치해야한다. Primary Site 는 Single 이나 RAC 일수있다. 10