Cài đặt Oracle Data guard bằng công cụ Oracle Enterprise Manager Enterprise Manager OEM

Oracle Data Guard là một tính năng của hệ thống quản lý cơ sở dữ liệu Oracle Database, được thiết kế để đảm bảo sự sẵn sàng và bảo vệ dữ liệu trong môi trường cơ sở dữ liệu Oracle. Data Guard cung cấp các giải pháp cho việc sao lưu, phục hồi, và chuyển đổi giữa các máy chủ chính (primary) và máy chủ sao lưu (standby)

Có các loại Standby database như sau:

Physical Standby Databases

Standby is identical copy of primary database

• Redo changes

  • transported from primary to standby
  • applied on standby (Redo Apply)

• Can switch operations to standby

  • Planned (switchover / switchback)
  • Unplanned (failover)

Logical Standby Databases

• Redo copied from primary to standby

• Changes converted into logical change records (LCR)

• Logical change records applied on standby (SQL Apply)

• Standby database can be opened for updates

  • Can modify propagated objects
  • Can create new indexes for propagated objects

• May need larger system for logical standby

  • LCR apply can be less efficient than redo apply
  • Array updates on primary become single row updates on standby

Snapshot Standby Databases

A snapshot standby database is a type of updatable standby database that provides full data protection for a primary database. A snapshot standby database receives and archives, but does not apply, redo data from its primary database. Redo data received from the primary database is applied when a snapshot standby database is converted back into a physical standby database, after discarding all local updates to the snapshot standby database.

Các chế độ bảo vệ dữ liệu:

word image 2643 1

Download bộ cài Oracle tương ứng tại:

https://edelivery.oracle.com/osdc/faces/SoftwareDelivery

Mục tiêu: Máy chủ nguồn source và máy chủ đích (dự phòng) target

ItemsDB HN – primaryDB HCM – standby
hostnamehnhcm
ip192.168.68.11192.168.68.12
db nameoradboradb
instance_nameoradboradb
db_unique_nameoradbporadbs
version DB19.319.3
DB_HOME/u01/app/oracle/product/19.3.0/ dbhome_1/u01/app/oracle/product/19.3.0/ dbhome_1
DB_BASE/u01/app/oracle/u01/app/oracle
global database namehn.localdomainhcm.localdomain

OEM server:

ip: 192.168.68.10

hostname: oemdb.localdomain

Failover: chuyển đổi dự phòng tự động

Switchover: chuyển đổi chủ động

Máy chủ ở HN là máy chủ primary, HCM là standby database

Máy chủ ở HN đã được cài đặt phần mềm và tạo CSDL tên oradb, global database name = oradb.localdomain

Máy chủ ở HCM đã được cài đặt phần mềm oracle database software và chưa tạo database

Unique_name HN là HN, unique_name ở HCM là HCM, chung CSDL tên HN

Các bước cài đặt:

  1. Trên Prim tạo CSDL oradb
  2. Thay đổi db_unique_name: oradbp
  3. Bật chế độ archivelog mode, unlock user DBSNMP
  4. Tạo OEM agent trên cả hai server Prim và Stand
  5. Check oracle home trong OEM
  6. Thêm standby database thông qua OEM
  7. Testing….

Chỉnh sửa file /etc/hosts trên cả 02 server, thêm vào cuối file hiện tại:

192.168.68.11 hn.localdomain hn

192.168.68.12 hcm.localdomain hcm

192.168.68.10 oemdb.localdomain oemdb

On the Primary

1. Create Primary Database

2. Setup Primary Database in ARCHIVELOG mode

3. Enable FORCE LOGGING

5. Set DB_UNIQUE_NAME

Bật chế độ archivelog và force logging cho CSDL

sqlplus / as sysdba

startup mount

select name,log_mode,force_logging from v$database;

alter database archivelog;

alter database open;

alter system switch logfile;

alter database force logging;

select name,db_unique_name, log_mode,force_logging from v$database;

–kiểm tra name, instance name, db unique name, service name của DB

show parameter name

–đổi db unique name

alter system set db_unique_name=’oradbp’ scope=spfile;

–unlock user dbsnmp

alter user dbsnmp account unlock;

alter user dbsnmp identified by oracle;

–Có thể khởi động lại DB và OS để hệ thống apply thông tin mới

shut immediate;

word image 2643 2

Trên cả 2 DB:

–tạo thư mục để phục vụ add host agent vào trong OEM

mkdir –p /u01/app/oracle/oemagent

cd $ORACLE_HOME/network/admin

ls –l

–tao listener va tnsnames tren ca 2 db

netca

Bật listener trên cả 2 DB

Bật DB startup trên DB node 1 primary

Trên server OEM

sqlplus / as sysdba

startup

exit

Tiến hành khởi động OMS:

/u01/app/oracle/middleware/bin/emctl start oms

–khi starup oms thì các agent sẽ tự động khởi động

https://192.168.68.10:7803/em

user/pass: sysman/oracle111

Cài đặt Agent vào host DB:

Setup/add target/add targets manually

Add Host Targets => Install Agent on Host

*Session Name: name_of_session

Platform: same for all hosts

=>add +

Trong mục host: nhập vào host cần add

hn.localdomain

hcm.localdomain

NEXT

Installation Base Directory: /u01/app/oracle/oemagent

(đây chính là đường dẫn tạo bên trên 2 host DB, dùng để cài đặt oemagent)

nhấn TAB => đường dẫn này được tạo tự động

Instance Directory: /u01/app/oracle/oemagent/agent_inst

–tạo credential (lưu user/pass login cho user oracle trên DB) để có quyền login tự động khi cần thiết

Named Credential:

user: oracle

pass: oracle

save as: oracle_user_credential

–tạo credential (lưu user/pass login cho user oracle trên DB)

Root Credential:

user: root

pass: oracle

save as: root_user_credential

port: 3872

NEXT

Màn hình summary check lại thông tin

DEPLOY AGENT

–chờ cho hệ thống tạo agent trên 2 máy db

=>Agent Deployment Succeeded

–vào target/ hosts xem danh sách host hiện có trong OEM

–add database va listener cua DB prim vao OEM

Setup/add target/add targets manually

Tại mục Add Non-Host Targets Using Guided Process click Add using guied process => sau đó chọn Oracle database, listener and automatic managemnt… sau đó nhấn ADD

Specify Host or Cluster => click tìm kiếm

chọn DB

hn.localdomain

NEXT

chọn database và listener, nhập pass oracle cho user dbsnmp sau đó click NEXT (có thể test connection ở bước này…)

click SAVE

–làm tương tự để add node standby vào OEM

–add database va listener cua DB Stand vao OEM

Setup/add target/add targets manually

Tại mục Add Non-Host Targets Using Guided Process click Add using guied process => sau đó chọn Oracle database, listener and automatic managemnt… sau đó nhấn ADD

Specify Host or Cluster => click tìm kiếm

chọn DB

hcm.localdomain

NEXT

chọn database và listener, nhập pass oracle cho user dbsnmp sau đó click NEXT (có thể test connection ở bước này…)

trong mục này thì chỉ add được listener của node 2 mà thôi, bởi vì node 2 chưa có DB

click SAVE

–nhân bản DB standby

targets/database => chọn DB oradbp

Trên giao diện hiện ra vào Availability/Add standby database

Login vào DB prim với thông tin

user: sys

pass: oracle

quyền: sysdba

Tại màn hình này

Create a new physical standby database

continue

tiếp theo chọn hình thức tạo standby theo online backup hay là existing backup => next

Add Standby Database: Backup Options

tại màn hình này là thông tin của Prim db => kiểm tra thông tin và next

tại màn hình này là thông tin của Standby sẽ cài apply DB của Prim lên => thay thông tin host của Standby vào bằng cách click vào tìm kiếm và chọn node Standby trong mục HOST

hcm.localdomain

kiểm tra các thông số khác như:

instance name, data storage, host, oracle home, credential, name…

next

đến màn hình thông tin datafile standy => kiểm tra và next

đến màn hình standby configuration sửa lại thông tin sau

Standby Database Parameters: oradbs

Target Name: oradbs

tích chọn Data guard broker

trong mục Data Guard Connect Identifiers

Primary Database Connect Identifier: use ket noi mac dinh

Standby Database Connect Identifier: use ket noi mac dinh

sau đó click next

hệ thống bắt đầu thực hiện backup database và tạo standby db

word image 2643 3

DB prim

–login vao broker

dgmgrl / as sysdba

validate static connect identifier for all;

=>bao loi do listener tren DB prim thieu thong tin

Oracle Clusterware is not configured on database “oradbp”.

Connecting to database “oradbp” using static connect identifier “(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hn.localdomain)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oradbp_DGMGRL.localdomain)(INSTANCE_NAME=oradb)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))” …

Unable to connect to database using (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hn.localdomain)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oradbp_DGMGRL.localdomain)(INSTANCE_NAME=oradb)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Failed.

Oracle Clusterware is not configured on database “oradbs”.

Connecting to database “oradbs” using static connect identifier “(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hcm.localdomain)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oradbs_DGMGRL.localdomain)(INSTANCE_NAME=oradb)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))” …

ORA-01017: invalid username/password; logon denied

  • Sửa lỗi như sau:

khi cài đặt xong stand thì hệ thống tự tạo thêm thông tin trong file listener ở DB stand dùng cho việc active listener của data guard broker DGMGRL

=>mở file listener trên DB standby và copy thông tin thêm vào file listener bên DB prim

vi /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = oradbp_DGMGRL.localdomain)

(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)

(SID_NAME = oradb)

(ENVS = “ORACLE_UNQNAME=oradbp_DGMGRL”)

)

)

–khoi dong lai listener va check status cua no

lsnrctl stop

lsnrctl start

lsnrctl status

dgmgrl / as sysdba

validate static connect identifier for all;

DB stand:

–login vao database va open

sqlplus / as sysdba

alter database open;

–test tren ca 2 db de xem thong tin hien tai

select NAME,DB_UNIQUE_NAME, OPEN_MODE, LOG_MODE,FORCE_LOGGING from v$database;

HN db prim

–login vao data guard broker

dgmgrl / as sysdba

show configuration;

–ket qua

Configuration – oradbp.localdomain

Protection Mode: MaxPerformance

Members:

oradbp – Primary database

oradbs – Physical standby database

Fast-Start Failover: Disabled

Configuration Status:

SUCCESS (status updated 5 seconds ago)

–test tren ca 2 db de xem thong tin hien tai

select NAME,DB_UNIQUE_NAME, OPEN_MODE, LOG_MODE,FORCE_LOGGING from v$database;

OEM

–active update realtime tren DB standby

targets/database

=>oradbs

=> Availability/add standby database/cancel

=> hệ thống hiển thị chi tiết thông tin data guard

=> Standby Databases => click vào Normal

=> Redo Apply Services => Enable Real-time Query

word image 2643 4

sau đó nhấn Apply

TEST DỊCH VỤ

DB prim:

–create tablespace de luu data bang test

–create user va bang

sqlplus / as sysdba

create tablespace DUONG datafile size 100m autoextend on next 10m maxsize unlimited;

alter tablespace DUONG add datafile size 100m autoextend on next 10m maxsize unlimited;

create user duo identified by oracle default tablespace DUONG temporary tablespace TEMP quota unlimited on DUONG;

create table duo.tab (id number, data varchar(100));

alter table duo.tab add primary key (id);

select count(*) from duo.tab;

–insert data vào tab

insert into duo.tab values (1,’duo nguyen 1′);

insert into duo.tab values (2,’duo nguyen 2′);

insert into duo.tab values (3,’duo nguyen 3′);

commit;

set lines 999;

select * from duo.tab;

select count(*) from duo.tab;

–insert them

insert into duo.tab values (4,’duo nguyen 4′);

insert into duo.tab values (6,’duo nguyen 6′);

insert into duo.tab values (7,’duo nguyen 7′);

insert into duo.tab values (8,’duo nguyen 888′);

insert into duo.tab values (9,’duo nguyen 999′);

insert into duo.tab values (10,’duo nguyen 101010′);

insert into duo.tab values (11,’duo nguyen 11111′);

insert into duo.tab values (12,’duo nguyen 12′);

insert into duo.tab values (13,’duo nguyen 13′);

commit;

–kiem tra db prim, db standby de xem che do hien tai

select name, db_unique_name, database_role, switchover_status, open_mode from v$database;

word image 2643 5

word image 2643 6

=>hien thi thong tin day du ve 2 DB, prim va stand

Thủ tục swichover, failover Prim => Stand và ngược lại:

–có 03 cách thực hiện việc này, chuyển DB nào thì đứng ở DB đó và thực hiện lệnh

1.thông qua OEM

–check xem DB đang là trạng thái nào, prim hay stand

select name, db_unique_name, database_role, switchover_status, open_mode from v$database;

–chuyển từ prim sang stand, đứng ở prim

availability/data guard administration/ Standby Databases/switchover hoặc failover…continue/continue/check confirm và chọn yes

–tich chon ca monitoring

=>check ket qua: prim da tro thanh stand va stand chuyen thanh prim

=>test insert data vào và check kết quả

2.thông qua data guard broker

dgmgrl / as sysdba

–check thong tin db

show configuration;

Configuration – oradbp.localdomain

Protection Mode: MaxPerformance

Members:

oradbs – Primary database

oradbp – Physical standby database

Fast-Start Failover: Disabled

Configuration Status:

SUCCESS (status updated 36 seconds ago)

–hien dang dung o prim server

–switch từ prim thành stand

connect SYS

switchover to oradbs;

=>prim dang la stand chung ta co the switchback thanh prim

–switch từ stand thành prim

connect SYS

switchover to oradbp;

FAILOVER: khi may prim loi => may stand se thanh prim

Login in vào Standby Server:-

–check status hien tai

select name,open_mode,database_role from v$database;

— Cancel tiến trình MRP

alter database recover managed standby database cancel;

–Chuyển standby thành primary

alter database recover managed standby database finish;

alter database activate standby database;

shutdown immediate;

Startup

=>stand bay gio da chuyen thanh prim

–test data

Check lag tren Stand

SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME=’apply lag’;

=>kiem tra tren DB standby xem dữ liệu đồng bộ như thế nào?

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận