update DG物理备库创建手册.docx

上传人:b****4 文档编号:4908543 上传时间:2022-12-11 格式:DOCX 页数:30 大小:33.04KB
下载 相关 举报
update DG物理备库创建手册.docx_第1页
第1页 / 共30页
update DG物理备库创建手册.docx_第2页
第2页 / 共30页
update DG物理备库创建手册.docx_第3页
第3页 / 共30页
update DG物理备库创建手册.docx_第4页
第4页 / 共30页
update DG物理备库创建手册.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

update DG物理备库创建手册.docx

《update DG物理备库创建手册.docx》由会员分享,可在线阅读,更多相关《update DG物理备库创建手册.docx(30页珍藏版)》请在冰豆网上搜索。

update DG物理备库创建手册.docx

updateDG物理备库创建手册

DATAGUARD物理备库的创建

一、dataguard介绍

Dataguard是ORACLE推出的一种高可用性(HIGHAVAILABLE)的数据库方案,RAC的技术是为了保护实例,rman的技术是为了保护数据,而DATAGUARD则是把实例和数据一起保护了。

在8i之前称之为standbydatabase,从9i开始,正式更名为Dataguard,它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现快速切换与灾难性恢复。

Dataguard只是在软件上对数据库进行设置,并不需要额外购买任何组件,它能在对主数据库影响很小的情况下,实现备数据库的同步,而主备机的数据差异只在在线日志部分(如果是在实时应用模式则理论上主备库的数据应该是一样的)。

所以如果在主库出现故障的情况下会丢失这部分未归档的数据。

当然这是最坏的一种情况。

本文档软件环境:

主备库处于不同的服务器上

主库

操作系统版本:

redhatas4.7

数据库版本:

Oracle10gEnterpriseEditionRelease10.2.0.1.0

Ip地址:

10.148.55.107

Oracle_sid=dgtest

Db_unique_name=dgtest

备库

操作系统版本:

redhatas4.7

数据库版本:

Oracle10gEnterpriseEditionRelease10.2.0.1.0

Ip地址:

10.148.55.108

Oracle_sid=standby

Db_unique_name=standby

主库已经安装好数据库软件和一个运行正常的数据库实例,备库只安装数据库软件,先不创建数据库和实例。

二、dataguard环境要求

2.1数据库版本必须为企业版,版本最好在9i以上,主备库数据库的版本必须一致。

2.2主备数据库所在操作系统版本以及位数要求一样。

2.3主备库硬件配置可以不一样,看具体应用。

2.4主数据库和备数据库都可以是单实例的,也可以是RAC。

2.5同一个dataguard环境中数据库名必须一样。

主备库的目录结构要求一样(逻辑备库可以不一样)。

三、对主库的修改

3.1修改归档方式

要使用dataguard做数据库容灾,主库必须处于归档模式下。

如果已经是归档模式则跳过此步。

修改归档模式步骤

SQL>archiveloglist;

DatabaselogmodeNoArchiveMode

AutomaticarchivalDisabled

Archivedestination/opt/arch

Oldestonlinelogsequence1

Currentlogsequence3

可见当前数据库处于非归档模式.

--关闭数据库

SQL>shutdownimmediate;

启动数据库到mount阶段

SQL>startupmount;

修改数据库为归档模式

SQL>alterdatabasearchivelog;

Databasealtered.

打开数据库

SQL>alterdatabaseopen;

查看当前数据库模式

SQL>archiveloglist;

DatabaselogmodeArchiveMode

AutomaticarchivalEnabled

Archivedestination/oracle/product/10.2/dbs/archive(altersystemsetdb_recovery_file_dest='';)

Altersystemsetlog_archvie_dest_1=’location=$PATH$’;

Oldestonlinelogsequence1

Nextlogsequencetoarchive3

Currentlogsequence3

可见数据库已经处于归档模式。

归档模式修改完成。

3.2打开ForcedLogging模式

查询当前日志模式

SQL>selectFORCE_LOGGINGfromv$database;

FOR

---

NO

可见当前数据库为非强制日志模式

修改数据库为强制日志模式

SQL>alterdatabaseforcelogging;

Databasealtered.

再次查询

SQL>selectFORCE_LOGGINGfromv$database;

FOR

---

Yes

提示:

关于FORCELOGGING

想必大家知道有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redolog(目的是提高速度,某些时候确实有效),指定数据库为FORCELOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。

如果在执行forcelogging时有nologging之类的语句在执行,则forcelogging会等待直到这类语句全部执行。

FORCELOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可),如果想取消,可以通过alterdatabasenoforcelogging语句关闭强制记录。

3.3创建密码文件

[oracle@localhost~]$orapwdfile=orapwdgtestpassword=123force=y

该密码文件默认生成位置为$ORACLE_HOME/dbs目录.主备库的密码必须一致,否则归档日志无法在主备库之间同步。

3.4修改初始化参数

增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。

1、与主库角色相关的初始化参数说明:

DB_NAME(db_name)(在/$ORACLE_HOME/dbs下的initdgtest.ora)

注意保持同一个DataGuard环境中所有数据库DB_NAME相同

DB_UNIQUE_NAME

为每一个数据库指定一个唯一的名称,以标示同一个dataguard环境中不同的数据库。

LOG_ARCHIVE_CONFIG

该参数通过DG_CONFIG属性罗列同一个DataGuard中所有DB_UNIQUE_NAME(含主库db及备库db),以逗号分隔。

例如:

LOG_ARCHIVE_CONFIG='DB_CONFIG=(dgtest,standby)'

LOG_ARCHIVE_DEST_n

归档文件的生成路径。

该参数非常重要,dataguard就是通过这里的设置传输日志的。

LOG_ARCHIVE_DEST_STATE_n

指定参数值为ENABLE,标示对应的LOG_ARCHIVE_DEST_n参数是否有效。

REMOTE_LOGIN_PASSWORDFILE

推荐设置参数值为EXCLUSIVE或者SHARED,注意保证相同DataGuard配置中所有db服务器sys密码相同。

如果不同日志传输会失败。

数据库默认是EXCLUSIVE,一般不用修改。

LOG_ARCHIVE_FORMAT

指定归档文件格式。

一般也不用修改,保持默认即可

2、以下参数为备库角色相关的参数,建议在主库的初始化参数中也进行设置,这样在主备库角色相互转换后不需要做修改dataguard也能正常运行。

FAL_SERVER

指定备库到主数据库的连接服务名,FAL_SERVER=standby日志所在服务器。

FAL_CLIENT

指定主库到备库的连接服务名,FAL_CLIENT=dgtest日志接收客户端。

STANDBY_FILE_MANAGEMENT

如果主库的数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改。

设为AUTO表示自动管理。

设为MANUAL表示需要手工管理。

例如:

STANDBY_FILE_MANAGEMENT=AUTO

下面开始修改主库的初始化参数。

db_name参数已经设置,不用修改

SQL>altersystemsetdb_unique_name=’dgtest’scope=spfile;

Systemaltered.

SQL>altersystemsetlog_archive_config='dg_config=(dgtest,standby)'scope=spfile;

Systemaltered.

---这里的dgtest和standby为db_unique_name

SQL>altersystemsetlog_archive_dest_1=

'location=/oracle/product/10.2/dbs/archive'scope=spfile;

Systemaltered.

--/opt/arch为本地的归档目录,需要手动创建该目录,当然也可以指定别的路径。

注意oracle账号对该目录又可读写的权限。

SQL>altersystemsetlog_archive_dest_state_1=enablescope=spfile;

Systemaltered.

--这个通常不用修改,系统默认的就是enable。

SQL>altersystemsetlog_archive_dest_2='service=standby

valid_for=(online_logfiles,primary_role)archasyncNOAFFIRM

db_unique_name=standby'scope=spfile;

Systemaltered.

-----这里的service为主库连接到备库的服务名,后面会在tnsnames.ora文件中配置

valid_for参数说明这个归档日志目的地在本数据库为主库的角色下才需要把online_logfile传输到备库去。

archasyncNOAFFIRM说明的是同步的方式,这个同步的方式有三种方式,最大保护,最大性能,最大可用。

每个方式有不同的设置,具体见第五项说明。

SQL>altersystemsetlog_archive_dest_state_2=enablescope=spfile;

Systemaltered.

以上修改的是作为主库角色需要的参数,为了方便以后主备库切换,建议在主库中也配置作为备库角色的相关参数。

SQL>altersystemsetfal_server=standbyscope=spfile;

Systemaltered.

SQL>altersystemsetfal_client=dgtestscope=spfile;

Systemaltered.

SQL>altersystemsetstandby_file_management=autoscope=spfile;

Systemaltered.

生成静态参数文件,以备后面给备库使用。

SQL>createpfilefromspfile;

Filecreated.

重新启动主库,使参数生效。

修改靜態文件pfile(添加如下內容)

*.DB_UNIQUE_NAME=’primary’

*.log_archive_config=’DG_CONFIG=(primary,standby)’

*.log_archive_dest_1=’location=/oracle/product/10.2/dbs/archive/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=primary’

*.log_archive_dest_2=’service=standbyarchASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby’

*.log_archive_dest_STATE_1=ENABLE

*.log_archive_dest_STATE_2=ENABLE

*.FAL_SERVER=’standby’

*.FAL_CLIENT=’primary’

3.5用rman工具备份主库

创建一个备份文件存放目录,本例为/opt/rmanbak,同时赋予oracle账号可读写该目录。

[root@localhostopt]#mkdirrmanbak

[root@localhostopt]#chownoracle:

oinstallrmanbak

--注意以上用root账号创建目录

开始备份数据库

[oracle@localhost~]$rmantarget/

RecoveryManager:

Release10.2.0.1.0-ProductiononTueAug1709:

40:

452010

Copyright(c)1982,2005,Oracle.Allrightsreserved.

connectedtotargetdatabase:

DGTEST(DBID=1564056489)

RMAN>backupfulldatabaseformat='/opt/rmanbak/%d_%s.dbf'plusarchivelogdeleteinput;

Startingbackupat17-AUG-10

currentlogarchived

usingtargetdatabasecontrolfileinsteadofrecoverycatalog

allocatedchannel:

ORA_DISK_1

channelORA_DISK_1:

sid=147devtype=DISK

channelORA_DISK_1:

startingarchivelogbackupset

channelORA_DISK_1:

specifyingarchivelog(s)inbackupset

inputarchivelogthread=1sequence=3recid=1stamp=727261781

inputarchivelogthread=1sequence=4recid=2stamp=727263902

channelORA_DISK_1:

startingpiece1at17-AUG-10

channelORA_DISK_1:

finishedpiece1at17-AUG-10

piecehandle=/opt/oracle/product/10.2.0/db_1/flash_recovery_area/DGTEST/backupset/2010_08_17/o1_mf_annnn_TAG20100817T094503_66mtf0qt_.bkptag=TAG20100817T094503comment=NONE

channelORA_DISK_1:

backupsetcomplete,elapsedtime:

00:

00:

04

channelORA_DISK_1:

deletingarchivelog(s)

archivelogfilename=/opt/arch/1_3_726573806.dbfrecid=1stamp=727261781

archivelogfilename=/opt/arch/1_4_726573806.dbfrecid=2stamp=727263902

Finishedbackupat17-AUG-10

Startingbackupat17-AUG-10

usingchannelORA_DISK_1

channelORA_DISK_1:

startingfulldatafilebackupset

channelORA_DISK_1:

specifyingdatafile(s)inbackupset

inputdatafilefno=00001name=/opt/oradata/dgtest/system01.dbf

inputdatafilefno=00003name=/opt/oradata/dgtest/sysaux01.dbf

inputdatafilefno=00002name=/opt/oradata/dgtest/undotbs01.dbf

inputdatafilefno=00004name=/opt/oradata/dgtest/users01.dbf

channelORA_DISK_1:

startingpiece1at17-AUG-10

channelORA_DISK_1:

finishedpiece1at17-AUG-10

piecehandle=/opt/rmanbak/DGTEST_2.dbftag=TAG20100817T094507comment=NONE

channelORA_DISK_1:

backupsetcomplete,elapsedtime:

00:

01:

05

channelORA_DISK_1:

startingfulldatafilebackupset

channelORA_DISK_1:

specifyingdatafile(s)inbackupset

includingcurrentcontrolfileinbackupset

includingcurrentSPFILEinbackupset

channelORA_DISK_1:

startingpiece1at17-AUG-10

channelORA_DISK_1:

finishedpiece1at17-AUG-10

piecehandle=/opt/rmanbak/DGTEST_3.dbftag=TAG20100817T094507comment=NONE

channelORA_DISK_1:

backupsetcomplete,elapsedtime:

00:

00:

03

Finishedbackupat17-AUG-10

Startingbackupat17-AUG-10

currentlogarchived

usingchannelORA_DISK_1

channelORA_DISK_1:

startingarchivelogbackupset

channelORA_DISK_1:

specifyingarchivelog(s)inbackupset

inputarchivelogthread=1sequence=5recid=3stamp=727263976

channelORA_DISK_1:

startingpiece1at17-AUG-10

channelORA_DISK_1:

finishedpiece1at17-AUG-10

piecehandle=/opt/oracle/product/10.2.0/db_1/flash_recovery_area/DGTEST/backupset/2010_08_17/o1_mf_annnn_TAG20100817T094616_66mth9qz_.bkptag=TAG20100817T094616comment=NONE

channelORA_DISK_1:

backupsetcomplete,elapsedtime:

00:

00:

02

channelORA_DISK_1:

deletingarchivelog(s)

archivelogfilename=/opt/arch/1_5_726573806.dbfrecid=3stamp=727263976

Finishedbackupat17-AUG-10

主库备份完成

3.6创建备库控制文件

SQL>alterdatabasecreatestandbycontrolfileas'/opt/rmanbak/control01.ctl';

Databasealtered.

创建一个备库使用的控制文件。

到此我们已经为备库准备好了静态参数文件,备库控制文件,主库数据库备份。

在备库主机上建一目录,把上述文件通过scp命令传输到备库主机上。

其中备份目录要和主库上的备份目录路径一样,不然在用rman还原备库时候会找不到文件。

即在备库上也建一个目录/opt/rmanbak,我们把所有的文件都放在这个目录下。

[oracle@localhost~]$scp/opt/rmanbak/*oracle@10.148.55.108:

/opt/rmanbak/

Theauthenticityofhost'10.148.55.108(10.148.55.108)'can'tbeestablished.

RSAkeyfingerprintisde:

b4:

0e:

e6:

c5:

56:

71:

47:

e1:

69:

5e:

f1:

c5:

8b:

48:

b4.

Areyousureyouwanttocontinueconnecting(yes/no)?

yes

Warning:

Permanentlyadded'10.148.55.108'(RSA)tothelistofknownhosts.

oracle@10.148.55.108'spassword:

control01.ctl100%6896KB6.7MB/s00:

00

DGTEST_2.dbf100%523MB11.6MB/s00:

45

DGTEST_3.dbf100%6976KB6.8MB/s00:

00

上述已经传输了备份文件和备库的控制文件,下面把主库的静态参数文件传输到备库

[oracle@localhost~]$

scp$ORACLE_HOME/dbs/initdgtest.oraoracle@10.148.55.108:

/opt/rmanbak/

oracle@10.148.55.108'spassword:

initdgtest.ora100%14191.4KB/s00:

00

3.7修改listener.ora和tnsnames.ora

修改listener.ora文件,修改这部分内容,目的是使用oracle服务在监听器中静态注册。

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=PLSExtProc)

(ORACLE_HOME=/oracle/product/10.2.0)

(PROGRAM=extproc)

修改成(增加红色部分内容)

SID_L

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1