摘要:文章根據(jù)四川眉山車輛有限公司對(duì)IT應(yīng)用系統(tǒng)數(shù)據(jù)安全保護(hù)的技術(shù)研究,闡述了Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)安全保護(hù)的一種方法,并結(jié)合實(shí)例對(duì)應(yīng)用中的技術(shù)難點(diǎn)進(jìn)行了詳細(xì)分析。
關(guān)鍵詞:Data Guard數(shù)據(jù)安全;主數(shù)據(jù)庫(kù);備用數(shù)據(jù)庫(kù)
中圖分類號(hào):TM769 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-2374(2013)20-0042-02
Data Guard是管理、監(jiān)控和自動(dòng)化軟件的基礎(chǔ)架構(gòu),它創(chuàng)建、維護(hù)和監(jiān)控一個(gè)或多個(gè)備用數(shù)據(jù)庫(kù)。通過(guò)提供日志傳送服務(wù)、日志應(yīng)用服務(wù)和角色裝換服務(wù),Data Guard簡(jiǎn)化了備用數(shù)據(jù)庫(kù)的建立、維護(hù)和管理,并且Data Guard使用產(chǎn)品數(shù)據(jù)庫(kù)的事物變化來(lái)維護(hù)備用數(shù)據(jù)庫(kù)。如果因不可預(yù)計(jì)的故障導(dǎo)致產(chǎn)品數(shù)據(jù)庫(kù)宕機(jī),則Data Guard可以切換備用數(shù)據(jù)庫(kù),并將其轉(zhuǎn)變?yōu)楫a(chǎn)品數(shù)據(jù)庫(kù),以最小化故障停機(jī)
時(shí)間。
1 Data Guard配置環(huán)境
Data Guard由一個(gè)產(chǎn)品數(shù)據(jù)庫(kù)和一個(gè)或多個(gè)備用數(shù)據(jù)庫(kù)組成,數(shù)據(jù)庫(kù)之間的互聯(lián)通過(guò)Oracle Net來(lái)完成。
主數(shù)據(jù)庫(kù):主數(shù)據(jù)庫(kù)是指用于存放應(yīng)用系統(tǒng)數(shù)據(jù)庫(kù)的Oracle數(shù)據(jù)庫(kù)。
備用數(shù)據(jù)庫(kù):備用數(shù)據(jù)庫(kù)是主數(shù)據(jù)庫(kù)的事務(wù)一致性副本,是使用主數(shù)據(jù)庫(kù)備份建立的數(shù)據(jù)庫(kù)。
2 備用數(shù)據(jù)庫(kù)
備用數(shù)據(jù)庫(kù)通過(guò)應(yīng)用主數(shù)據(jù)庫(kù)的重做數(shù)據(jù),與主數(shù)據(jù)庫(kù)保持同步。在將歸檔日志傳送到備用數(shù)據(jù)庫(kù)之后,備用數(shù)據(jù)庫(kù)可以直接應(yīng)用這些事務(wù)變化,從而保持與主數(shù)據(jù)庫(kù)的同步性。
3 備用數(shù)據(jù)庫(kù)的建立
當(dāng)使用備用數(shù)據(jù)庫(kù)時(shí),要求必須激活主數(shù)據(jù)庫(kù)的強(qiáng)制日志特征,并且數(shù)據(jù)庫(kù)必須處在歸檔模式。
下面以我公司ERP系統(tǒng)數(shù)據(jù)庫(kù)為例,在不同服務(wù)器上使用RMAN備份建立備用數(shù)據(jù)庫(kù)的方法。
具體步驟如下:
(1)建立存放備用數(shù)據(jù)庫(kù)相關(guān)文件的OS目錄。
(2)建立例程服務(wù)。示例如下:
C:\oradim-new-sid msbakerp-intpwd oracle
(3)配置監(jiān)聽(tīng)程序和網(wǎng)絡(luò)服務(wù)。因?yàn)橹鲾?shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)的交互是通過(guò)Oracle Net來(lái)完成的,所以必須在主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)服務(wù)器上進(jìn)行網(wǎng)絡(luò)配置并配置監(jiān)聽(tīng)程序、網(wǎng)絡(luò)服務(wù)名。
(4)準(zhǔn)備主數(shù)據(jù)庫(kù)的參數(shù)文件。具體步驟如下:
建立參數(shù)文件。示例如下:
sql>create pfile from spfile;
編輯文本參數(shù)文件initcsrerp.ora。示例如下:
db_unique_name=ncmserp
log_archive_dest_1='location=d:\product\10.2.0\flash_recovery_area\ncmserp\archivelog
valid_for=(all_logfiles,all_roles)
db_unique_name=ncmserp'
log_archive_config='dg_config=(ncmserp,msbakerp)'
fal_server=msbakerp
fal_client=ncmserp
standby_file_management=auto
建立服務(wù)器參數(shù)文件。在編輯了文本參數(shù)文件之后,使用Create Spfile命令為主數(shù)據(jù)庫(kù)建立Spfile文件。示例
如下:
Sql>create spfile from
‘%oracle_home\database\initncmserp.ora%
Sql>startup
(5)準(zhǔn)備備用數(shù)據(jù)庫(kù)參數(shù)文件。具體步驟如下:
建立參數(shù)文本文件。示例如下:
C:\>Sqlplus /nolog
Sqlplus>connect /as sysdba
Sqlplus>create pfile=
%oralce_home\database\initmsbakerp.ora% from spfile;
編輯文本參數(shù)文件initmsbakerp.ora。如下所示:
db_unique_name=msbakerp
service_names=msbakerp
instance_name=msbakerp
fal_client=msbakerp
fal_server=ncmserp
db_file_name_convert='s:\oradata\ncmserp','D:\product\10.2.0\oradata\msbakerp'
log_file_name_convert='s:\oradata\ncmserp','D:\product\10.2.0\oradata\msbakerp'
log_archive_config='dg_config=(ncmserp,msbakerp)'
log_archive_dest_1='location=D:\product\10.2.0\flash_recovery_area\msbakerp\archivelog
valid_for=(all_logfiles,all_roles)
db_unique_name=msbakerp'
standby_file_management=auto
standby_archive_dest='d:\product\10.2.0\flash_recovery_area\msbakerp\archivelog'
建立服務(wù)器參數(shù)文件。示例如下:
Sql>create spfilemsbak.ora from
‘%oracle_home\database\initmsbakerp.ora%
(6)復(fù)制相關(guān)文件到備用主機(jī)。為了建立備用數(shù)據(jù)庫(kù),必須將主數(shù)據(jù)庫(kù)的數(shù)據(jù)文件備份集、控制文件備份集、參數(shù)文件復(fù)制到備用數(shù)據(jù)庫(kù)所在服務(wù)器。
(7)啟用備用例程,并建立備用數(shù)據(jù)庫(kù)。示例如下:
C:>Rman target sys/change_on_install@csrerp auxiliary sys/change_on_install@msbakerp
Rman>Duplicate target database for standby dorecover;
當(dāng)執(zhí)行了DUPLICATE命令之后,Rman會(huì)建立備用控制文件、裝載備用數(shù)據(jù)庫(kù)、轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件備份,并應(yīng)用歸檔日志恢復(fù)備用數(shù)據(jù)庫(kù)。
5 備用數(shù)據(jù)庫(kù)的管理
(1)啟動(dòng)備用數(shù)據(jù)庫(kù)。示例如下:
C:\>sqlplus/nolog sys/change_on_install@msbakerp as sysdba
Sql>startup mount
(2)開(kāi)始應(yīng)用歸檔日志。當(dāng)備用數(shù)據(jù)庫(kù)處于MOUNT狀態(tài)時(shí),為了使兩個(gè)數(shù)據(jù)庫(kù)保持同步,應(yīng)該使備用數(shù)據(jù)庫(kù)應(yīng)用歸檔1日志的事務(wù)變化。示例如下:
Sql>alter database recover managed standby database disconnect from session;
(3)關(guān)閉備用數(shù)據(jù)庫(kù)。當(dāng)備用數(shù)據(jù)庫(kù)處于重做應(yīng)用狀態(tài)時(shí),它不能被關(guān)閉,必須先取消重做應(yīng)用狀態(tài),然后才能關(guān)閉備用數(shù)據(jù)庫(kù)。示例如下:
Sql>alter database recover managed standby database cancel;
Sql>shutdown immediate;
(4)激活備用數(shù)據(jù)庫(kù)。當(dāng)主數(shù)據(jù)庫(kù)出現(xiàn)重大故障時(shí),可以激活備用數(shù)據(jù)庫(kù),并將其轉(zhuǎn)化為主數(shù)據(jù)庫(kù)。示例
如下:
C:\>sqlplus /nolog
Sql>connect /as sysdba
Sql>alter database activate standby database;
Sql>startup force.
參考文獻(xiàn)
[1] 精通Oracle10g備份與恢復(fù).
作者簡(jiǎn)介:楊勃(1972—),男,重慶榮昌人,四川眉山車輛有限公司工程師,研究方向:信息技術(shù)。