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