Thứ Tư, 23 tháng 10, 2019

Thủ tục Cài đặt Oracle Data Guard 11g với Physical Standby bằng Duplicate

Trong bài viết này tôi sẽ hướng dẫn bạn cách xây dựng một cơ chế dự phòng vật lý của Oracle Database với giải pháp Physical Standby. Giả định là cơ sở dữ liệu chính đã hoạt động tốt và ORACLE software được cài đặt trên máy chủ dự phòng.
PRIMARY
STANDBY
SERVER
primary-host
standby-host
DB_UNIQUE_NAME
PROD
PRODSBY


PRIMARY:
Đảm bảo cơ sở dữ liệu là archive log mode, và enable force logging.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


PRIMARY > select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

-----  Bật force login:
-----  FORCE LOGGING là yêu cầu  bắt buộcmọi sự thay đổi  trong database sẽ được gi ra redo logstừ đó sẽ được apply tới standby

SQL > ALTER DATABASE FORCE LOGGING;

Database altered.

[PRIMARY]Thêm logfiles dự phòng;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106


SQL > select GROUP#,BYTES/1024/1024,thread# from v$log;

    GROUP# BYTES/1024/1024    THREAD#
---------- --------------- ----------
         1             128          1
         2             128          1
         3             128          1
         4             128          1
         5             128          1
         6             128          1
         7             128          1
         8             128          1

rows selected.


SQL >col member for a45
SQL > set pagesize 200
SQL > set lines 200
SQL >select GROUP#,MEMBER from v$logfile;
    GROUP# MEMBER
---------- ---------------------------------------------
         1 /uv1249/redo1/PROD/redo_01a.dbf
         1 /uv1249/redo2/PROD/redo_01b.dbf
         2 /uv1249/redo1/PROD/redo_02a.dbf
         2 /uv1249/redo2/PROD/redo_02b.dbf
         3 /uv1249/redo1/PROD/redo_03a.dbf
         3 /uv1249/redo2/PROD/redo_03a.dbf
         4 /uv1249/redo1/PROD/redo_04a.dbf
         4 /uv1249/redo2/PROD/redo_04a.dbf
         5 /uv1249/redo1/PROD/redo_05a.dbf
         5 /uv1249/redo2/PROD/redo_05a.dbf
         6 /uv1249/redo1/PROD/redo_06a.dbf
         6 /uv1249/redo2/PROD/redo_06a.dbf
         7 /uv1249/redo1/PROD/redo_07a.dbf
         7 /uv1249/redo2/PROD/redo_07b.dbf
         8 /uv1249/redo1/PROD/redo_08a.dbf
         8 /uv1249/redo2/PROD/redo_08b.dbf



---  Truy vấn động để tạo ra các sqls .

SQL > select 'alter database add standby logfile '''||
regexp_substr(MEMBER,'/.+/')||'stdby_'||
regexp_replace(member,regexp_substr(MEMBER,'/.+/'),'')||
''' size '||bytes||';' "Create Standby redo"
from v$logfile lf v$log l
where l.group# = lf.group#
/  2    3    4    5    6    7

Create Standby redo
------------------------------------------------------------------------------------------------------------------
--------------------------------
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_01a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_01b.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_02a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_02b.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_03a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_03a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_04a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_04a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_05a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_05a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_06a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_06a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_07a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_07b.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_08a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_08b.dbf' size 134217728;

16 rows selected.



SQLalter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_01a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_01b.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_02a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_02b.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_03a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_03a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_04a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_04a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_05a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_05a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_06a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_06a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_07a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_07b.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo1/PROD/stdby_redo_08a.dbf' size 134217728;
alter database add standby logfile '/uv1249/redo2/PROD/stdby_redo_08b.dbf' size 134217728;


database altered

database altered
....

.
.
.
.
.

[PRIMARY]tạo tập tin mật khẩu

1
2
3
4
5
6


cd $ORACLE_HOME/dbs

orapwd file=orapwPROD password=prod1234 entries=30

[PRIMARY]Tạo cấu hình các listener và tns như bên dưới.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30


cat tnsnames.ora
PROD =
(DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = primary-host )(PORT = 1571)) (CONNECT_DATA = (SID = PROD)))
PRODSBY =
(DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = standby-host )(PORT = 1571)) (CONNECT_DATA = (SID = PRODSBY)))


cat listener.ora

LISTENER_PROD =
   (address_list =
    (address =
           (protocol = tcp)
           (host     = primary-host)
           (port     = 1571)
      )
)
SID_LIST_LISTENER_PROD =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = PROD)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
      (SID_NAME = PROD)
    )
)

lsnrctl start LISTENER_PROD

[PRIMARY]Thực hiện dưới đây những thay đổi trong spfile:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22


--- Tham số log_archive_config gửi  nhận  archive logs tới remote dest
----DG_CONFIG - need to specify the list of db_unique_name of both primary and standby.
alter system set log_archive_config='DG_CONFIG=(PROD,PRODSBY)' scope=BOTH;

--- archive destination in local(primary server)
alter system set log_archive_dest_1='LOCATION=/uv1249/arch/PROD VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD'  scope=BOTH;

---log_archive_dest_2 parameter defines the archive destination of standby
--- ASYNC - This is used for maximum performance mode(DEFAULT) .Means redo logs generated in primary need not be shipped/applied in standby
alter system set log_archive_dest_2='SERVICE=PRODSBY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRODSBY' scope=BOTH;

alter system set log_archive_dest_state_2='ENABLE'  scope=BOTH;
alter system set log_archive_dest_state_1='ENABLE'  scope=BOTH;

--- Tns entry name for primary
alter system set fal_client='PROD'  scope=BOTH;

--- tns entry name for primary -- i.It will fetch the archives from standby .
alter system set fal_server='PRODSBY'  scope=BOTH;

[PRIMARY] Vì vậy, sau khi thay đổi, tệp spfile trong Primary


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42


strings spfilePROD.ora

*.audit_trail='DB'
*.compatible='11.2.0'
*.control_files='/uv1249/data1/PROD/control1.ora','/uv1249/data2/PROD/control2.ora','/uv1249/undo/PROD/control3.ora'
*.core_dump_dest='/uv1249/admin/PROD/cdump'
*.db_block_size=8192
*.db_cache_size=3008M
*.db_file_multiblock_read_count=64
*.db_keep_cache_size=512M
*.db_name='PROD'
*.db_unique_name='PROD'
*.diagnostic_dest='/uv1249/admin/PROD/diag'
*.dml_locks=100
*.fal_client='PROD'
*.fal_server='PRODSBY'
*.instance_name='PROD'
*.job_queue_processes=2
*.log_archive_config='DG_CONFIG=(PROD,PRODSBY)'
*.log_archive_dest_1='LOCATION=/uv1249/arch/PROD VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD'
*.log_archive_dest_2='SERVICE=PRODSBY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRODSBY'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='arch_PROD_%t_%s_%r.arc'
*.log_buffer=31367168# log buffer update
*.log_checkpoint_interval=300000
*.max_dump_file_size='unlimited'
*.nls_date_format='DD-MON-RR'
*.os_authent_prefix='NULL'
*.pga_aggregate_target=1500M
*.processes=600
*.remote_dependencies_mode='SIGNATURE'
*.remote_login_passwordfile='EXCLUSIVE'
*.resource_limit=TRUE
*.sga_max_size=5152M# internally adjusted
*.shared_pool_size=512M
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=30000
*.undo_tablespace='UNDO'

STANDBY:

[STANDBY] Tạo cấu trúc thư mục giống như cấu trúc chính
1
2
3
4
5
6
7
8
9


mkdir -p /uv1249/data1/PROD/
mkdir -p /uv1249/data2/PROD/
mkdir -p /uv1249/arch/PROD
mkdir -p /uv1249/undo/PROD
mkdir -p /uv1249/admin/PROD/cdump
mkdir -p /uv1249/admin/PROD/diag
[STANDBY] Tạo pfile and password trong $ORACLE_HOME/dbs :

1
2
3
4
5
6
7
8
9
10
11


-----copy the password file from production and rename to standby name.
cd $ORACLE_HOME/dbs
scp oracle@primary-host:/u01/app/oracle/product/11.2.0/dbs/orapwPROD orapwPRODSBY

-----create an init file with minimum parameter as below
vi initPRODSBY.ora
DB_NAME=PROD
DB_UNIQUE_NAME=PRODSBY
   [STANDBY] Listener và  tns
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
cat tnsnames.ora
PROD =
(DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = primary-host )(PORT = 1571)) (CONNECT_DATA = (SID = PROD)))
PRODSBY =
(DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = standby-host )(PORT = 1571)) (CONNECT_DATA = (SID = PRODSBY)))

cat listener.ora

LISTENER_PRODSBY =
   (address_list =
    (address =
           (protocol = tcp)
           (host     = standby-host)
           (port     = 1571)
      )
)
SID_LIST_LISTENER_PRODSBY =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = PRODSBY)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
      (SID_NAME = PRODSBY)
    )
)

lsnrctl start LISTENER_PRODSBY

[STANDBY]bắt đầu cơ sở dữ liệu dự phòng ở trạng thái  nomount :

1
2
3
4
5
6
7
8
9
10
11
SQL > startup nomount
ORACLE instance started.

Total System Global Area 6415597568 bytes
Fixed Size                  2170304 bytes
Variable Size             905970240 bytes
Database Buffers         5502926848 bytes
Redo Buffers                4530176 bytes

[STANDBY]
Bây giờ hãy kiểm tra kết nối giữa primary vàstandby dùng mật khẩu sys

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29


-----In primary:

sqlplus sys/prod1234@PRODSBY as sysdba

SQL*PlusRelease 11.2.0.3.0 Production on Sat Jul 25 15:17:56 2015

Copyright (c19822011Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the PartitioningOLAPData Mining and Real Application Testing options


----- IN STANDBY:

sqlplus sys/prod1234@PROD as sysdba

SQL*PlusRelease 11.2.0.3.0 Production on Sat Jul 25 15:17:56 2015

Copyright (c19822011Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the PartitioningOLAPData Mining and Real Application Testing options

STANDBY:
[STANDBY]Bây giờ kết nối với rman và chạy lệnh duplicate như được đề cập dưới đây.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40


rman target sys/prod1234@PROD auxiliary sys/prod1234@PRODSBY


Recovery ManagerRelease 11.2.0.3.0 - Production on Thu May 16 08:42:46 2013
Copyright (c19822011Oracle and/or its affiliatesAll rights reserved.
connected to target databasePROD (DBID=839852638)
connected to auxiliary databasePROD (not mounted)

rman >

run
{
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate channel prmy4 type disk;
allocate channel prmy5 type disk;
allocate channel prmy6 type disk;
allocate channel prmy7 type disk;
allocate auxiliary channel stby type disk;
DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
spfile
    set db_unique_name='PRODSBY'
    set control_files='/uv1249/data1/PROD/control1.ora','/uv1249/data2/PROD/control2.ora','/uv1249/undo/PROD/control3.ora'
    set fal_client='PRODSBY'
    set fal_server='PROD'
    set log_file_name_convert = ','
    set standby_file_management='AUTO'
    set log_archive_config='DG_CONFIG=(PROD,PRODSBY)'
    set log_archive_dest_1='LOCATION=/uv1249/arch/PROD VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRODSBY'
    set log_archive_dest_2='service=PROD ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=PROD'
  nofilenamecheck;
  }
[STANDBY]Sau khi sao chép xong. Bắt đầu phục hồi
1
2
3
4
5
6
7
8


SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

DATABASE ALTERED.

SQL > select process,status,sequence# from v$managed_standby:
Thiết lập dự phòng vật lý đã sẵn sàng để sử dụng.

---------------------------
* Dữ liệu trong thời đại 4.0 là "TRÁI TIM" của doanh nghiệp. Quản trị cơ sở dữ liệu (Database Administration - DBA) là ngành có lương cao nhất trong ngành IT và đầy tiềm năng trong thời đại 4.0. Oracle là cơ sở dữ liệu hàng đầu trên thế giới và được rất nhiều doanh nghiệp lớn trên thế giới và Việt Nam sử dụng.

* Bạn có mong muốn từng bước trở thành chuyên gia DBA không? Nếu câu trả lời là CÓ thì hãy nhanh chóng đăng ký sở hữu trọn đời khóa học online "Quản trị cơ sở dữ liệu cơ bản" của tôi tại Unica (bạn có thể xem trên điện thoại, máy tính bảng, PC vào bất kỳ lúc nào chỉ cần có mạng Internet). Hiện tại tôi đang khuyến mại cho 100 bạn đăng ký đầu tiên giảm giá từ 2400K còn 799K, CAM KẾT HOÀN TIỀN 100% nếu học xong không có kết quả:

* Môn 1: Quản trị Oracle 12 cơ bản, giảm giá 70% HÔM NAY cho 100 bạn đầu tiên từ 2tr4 còn 799K theo link:  https://bit.ly/3d2ofqZ (khoá này học ở Oracle hãng là 1.500$), chuyển khoản còn 699K

* Môn 2: Quản trị Linux trong 21h, cũng giảm giá 70% HÔM NAY  cho 100 bạn đầu tiên từ 2tr4 còn 799K theo link: https://bit.ly/3e7gwJw, chuyển khoản còn 699K

* Combo1: Cho 2 khóa  hc (Quản trị Oracle 12 cơ bản + Quản trị Linux trong 21h)  giá 1.200K chuyển khoản

--> Thông tin TÀI KHOẢN:

- Trần Văn Bình, STK 1920767736012, Ngân hàng Techcombank, chi nhánh Thăng Long


- Nội dung: Tên + (Môn 1 hoặc Môn 2 hoặc Combo) + Số tiền, sau đó chụp màn hình chuyển khoản gửi về email tranbinh48ca@gmail.com (ví dụ nội dung: TranVanBinh Combo1 1200K, TranVanBinh Mon1 799K, TranVanBinh Mon2 799K, 

---------------------------
* KT NI VI TRN VĂN BÌNH:
📧 Mail: tranbinh48ca@gmail.com
☎️ Mobile: 0902912888
🅿️ Website: http://www.tranvanbinh.vn
🎬 Youtube: http://bit.ly/2YIZKtc
👨‍👩‍👧‍👦 Group FB: https://www.facebook.com/groups/413698089218929
👨‍ Messenger: https://m.me/101036604657441
⚡️ Skype: tranbinh48ca

Đăng ký kênh ca Trn Văn Bình 🎬 Youtube: http://bit.ly/2YIZKtc đ cp nht nhng video mi nht

---------------------------
học oracle database 
Các tìm kiếm liên quan đến học oracle database
Tự học Oracle
Tài liệu Oracle 12c tiếng Việt
Hướng dẫn sử dụng Oracle Database
Oracle SQL cơ bản
Oracle SQL là gì
Khóa học Oracle Hà Nội
Học chứng chỉ Oracle ở đầu
Khóa học Oracle online
khóa học pl/sql
học dba
học dba ở việt nam
khóa học dba
khóa học dba sql
tài liệu học dba oracle
Khóa học Oracle online
học oracle sql
học oracle ở đâu tphcm
học oracle bắt đầu từ đâu
học oracle ở hà nội
oracle database tutorial
oracle database 12c
oracle database là gì
oracle database 11g
oracle download
oracle database 19c
oracle dba tutorial
Oracle GoldenGate
Oracle DataGuard
Oracle RAC
Oracle Tunning
Oracle Backup Recovery
Oracle Partitioning



ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master