創(chuàng)建物理備庫(kù)
?
| 機(jī)器名 ? ? ? ? ? ? ? ? ? ? | a1 ? ? ? ? ? ? ? ? ? ? | a2 ? ? ? ? ? ? ? ? ? ? |
| IP: ? ? ? ? ? ? ? ? ? ? | 192.168.1.10 ? ? ? ? ? ? ? ? ? ? | 192.168.1.20 ? ? ? ? ? ? ? ? ? ? |
| Net_Name ? ? ? ? ? ? ? ? ? ? | a1 ? ? ? ? ? ? ? ? ? ? | a2 ? ? ? ? ? ? ? ? ? ? |
| SID ? ? ? ? ? ? ? ? ? ? | a1 ? ? ? ? ? ? ? ? ? ? | a2 ? ? ? ? ? ? ? ? ? ? |
| DB_UNIQUE_NAME ? ? ? ? ? ? ? ? ? ? | a1 ? ? ? ? ? ? ? ? ? ? | a2 ? ? ? ? ? ? ? ? ? ? |
?
注:主節(jié)點(diǎn)上創(chuàng)建數(shù)據(jù)庫(kù)a1,備節(jié)點(diǎn)上只安裝oracle軟件不創(chuàng)建任何數(shù)據(jù)庫(kù);
1.配置listener.ora
主節(jié)點(diǎn)listener.ora:
?
SID_LIST_LISTENER=
?? (SID_LIST=
?????? (SID_DESC=
????????? (GLOBAL_DBNAME=a1)
????????? (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
????????? (SID_NAME=a1)
?????? )
?? )
LISTENER =
? (ADDRESS_LIST=
?????? (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.10)(PORT=1521))
?????? (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
? )
?
備節(jié)點(diǎn)listener.ora:
SID_LIST_LISTENER=
?? (SID_LIST=
?????? (SID_DESC=
????????? (GLOBAL_DBNAME=a1)
????????? (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
????????? (SID_NAME=a1)
?????? )
?? )
LISTENER =
? (ADDRESS_LIST=
?????? (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.20)(PORT=1521))
?????? (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
? )
?
2.配置tnsnames.ora(主備節(jié)點(diǎn)的tnsname.ora內(nèi)容一樣:)
?
?
a1=
?(DESCRIPTION =
??? (ADDRESS_LIST =
??? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
??? )
???? (CONNECT_DATA =
????? (SERVICE_NAME = a1)
???? )
?)
a2=
?(DESCRIPTION =
??? (ADDRESS_LIST =
??? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.20)(PORT = 1521))
??? )
???? (CONNECT_DATA =
????? (SERVICE_NAME = a2)
???? )
?)
?
?3.在主庫(kù)啟用歸檔并且啟用強(qiáng)制歸檔
? 步驟1:alter database force logging;
?????????????? archive log list;
? 步驟2:在mount狀態(tài)下
????????????? alter database archivelog;
? 步驟3:alter database open;
????????????? archive log list;
?
4.在主庫(kù)上創(chuàng)建密碼文件
?orapwd file='/u01/app/oracle/product/11.2.0/db_1/dbs/orapwa1.ora' password=xyc entries=10
?
5.創(chuàng)建standby redo log
alter database add standby logfile
group 4 ('/u01/app/oracle/oradata/a1/standby_redo04a.log','/u01/app/oracle/oradata/a1/standby_redo04b.log') size 50m,
group 5 ('/u01/app/oracle/oradata/a1/standby_redo05a.log','/u01/app/oracle/oradata/a1/standby_redo05b.log') size 50m,
group 6 ('/u01/app/oracle/oradata/a1/standby_redo06a.log','/u01/app/oracle/oradata/a1/standby_redo06b.log') size 50m,
group 7 ('/u01/app/oracle/oradata/a1/standby_redo07a.log','/u01/app/oracle/oradata/a1/standby_redo07b.log') size 50m;
?
注意:
Oracle 建議你在創(chuàng)建 standby 時(shí)就考慮 standby redolog 配置的問題。standby redologs 與 online redologs
非常類似,應(yīng)該說兩者只是服務(wù)對(duì)象不同,其它參數(shù)屬性甚至操作的命令格式幾乎都一樣,你在設(shè)計(jì) standby
redologs 的時(shí)候完全可以借鑒創(chuàng)建 online redologs 的思路,比如多個(gè)文件組啦,每組多個(gè)文件冗余之類的。
除些之外呢,oracle 提供了一些標(biāo)準(zhǔn)的建議如下:
? 確保 standby redo log 的文件大小與 primary 數(shù)據(jù)庫(kù) online redo log 文件大小相同。
這個(gè)很好理解的吧,就是為了接收和應(yīng)用方便嘛。
? 創(chuàng)建適當(dāng)?shù)娜罩窘M
一般而言, standby redo 日志文件組數(shù)要比 primary 數(shù)據(jù)庫(kù)的 online redo 日志文件組數(shù)至少多一個(gè)。
推薦 standby redo 日志組數(shù)量基于 primary 數(shù)據(jù)庫(kù)的線程數(shù)(這里的線程數(shù)可以理解為 rac 結(jié)構(gòu)中的 rac
節(jié)點(diǎn)數(shù))。
有一個(gè)推薦的公式可以做參考:(每線程的日志組數(shù)+1)*最大線程數(shù)
例如 primary 數(shù)據(jù)庫(kù)有兩個(gè)線程,每個(gè)線程分配兩組日志,則 standby 日志組數(shù)建議為 6 組,使用
這個(gè)公式可以降低 primary 數(shù)據(jù)庫(kù)實(shí)例 LGWR 進(jìn)程鎖住的可能性。
提示:邏輯 standby 數(shù)據(jù)庫(kù)有可能需要視工作量增加更多的 standby redo log 文件(或增加歸檔進(jìn)程),
因?yàn)檫壿?standby 需要同時(shí)寫 online redo log 文件。
?
?
6.在主庫(kù)創(chuàng)建pfile,然后修改:
create pfile from spfile;
?
修改pfile
主庫(kù):
DB_UNIQUE_NAME='a1'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(a1,a2)'
log_archive_dest_1='location=/archive1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=a1'
log_archive_dest_2='service=a2 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=a2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=a2
fal_client=a1
remote_login_passwordfile='EXCLUSIVE'
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
db_file_name_convert='/u01/app/oracle/oradata/a1','/u01/app/oracle/oradata/a1'
log_file_name_convert='/u01/app/oracle/oradata/a1/','/u01/app/oracle/oradata/a1'
STANDBY_FILE_MANAGEMENT=AUTO
備庫(kù):
DB_UNIQUE_NAME='a2'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(a1,a2)'
log_archive_dest_1='location=/archive1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=a2'
log_archive_dest_2='service=a1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=a1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=a1
fal_client=a2
remote_login_passwordfile='EXCLUSIVE'
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
db_file_name_convert='/u01/app/oracle/oradata/a1','/u01/app/oracle/oradata/a1'
log_file_name_convert='/u01/app/oracle/oradata/a1/','/u01/app/oracle/oradata/a1'
STANDBY_FILE_MANAGEMENT=AUTO
7.創(chuàng)建standby數(shù)據(jù)控制文件
alter database create standby controlfile as '/u01/app/oracle/oradata/a1/standby.ctl';
?8 8.
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/inita1.ora';
ORACLE instance started.
99
Total System Global Area? 417546240 bytes
Fixed Size????????????????? 2213936 bytes
Variable Size???????????? 335546320 bytes
Database Buffers?????????? 75497472 bytes
Redo Buffers??????????????? 4288512 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile;
?
File created.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
?
9.拷貝數(shù)據(jù)文件,standby controlfile,密碼文件,參數(shù)文件,至a2服務(wù)器上相關(guān)位置
10.,修改參數(shù)文件和修改standby controlfile名字做備庫(kù)控制文件?
a1.__db_cache_size=75497472
a1.__java_pool_size=16777216
a1.__large_pool_size=4194304
a1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
a1.__pga_aggregate_target=150994944
a1.__sga_target=268435456
a1.__shared_io_pool_size=0
a1.__shared_pool_size=155189248
a1.__streams_pool_size=8388608
*.audit_file_dest='/u01/app/oracle/admin/a1/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/a1/control01.ctl','/u01/app/oracle/oradata/a1/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='a1'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=a1XDB)'
*.memory_target=419430400
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
DB_UNIQUE_NAME='a2'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(a1,a2)'
log_archive_dest_1='location=/archive1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=a2'
log_archive_dest_2='service=a1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=a1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=a1
fal_client=a2
remote_login_passwordfile='EXCLUSIVE'
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
db_file_name_convert='/u01/app/oracle/oradata/a1','/u01/app/oracle/oradata/a1'
log_file_name_convert='/u01/app/oracle/oradata/a1/','/u01/app/oracle/oradata/a1'
STANDBY_FILE_MANAGEMENT=AUTO
?
?
[oracle@a2 a1]$ cp standby.ctl control01.ctl
[oracle@a2 a1]$ cp standby.ctl control02.ctl
[oracle@a2 a1]$ cp standby.ctl control03.ctl
?
?
11.確定監(jiān)聽,tns正常后,啟動(dòng)備庫(kù)到mount狀態(tài)
startup mount
12.
備庫(kù)上執(zhí)行以下命令使備庫(kù)自動(dòng)應(yīng)用已歸檔的日志
?ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
?
13.
驗(yàn)證:
.在主備庫(kù)上看當(dāng)前已歸檔日志
SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;
如果主庫(kù)的歸檔日志已傳送到備機(jī),并被備庫(kù)成功就用,表示DATAGUARD已配置成功.
?
?
?
?
?
?
?
?
?
?
?
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

