Oracle DG搭建.docx

上传人:b****8 文档编号:9048180 上传时间:2023-02-02 格式:DOCX 页数:26 大小:325.14KB
下载 相关 举报
Oracle DG搭建.docx_第1页
第1页 / 共26页
Oracle DG搭建.docx_第2页
第2页 / 共26页
Oracle DG搭建.docx_第3页
第3页 / 共26页
Oracle DG搭建.docx_第4页
第4页 / 共26页
Oracle DG搭建.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Oracle DG搭建.docx

《Oracle DG搭建.docx》由会员分享,可在线阅读,更多相关《Oracle DG搭建.docx(26页珍藏版)》请在冰豆网上搜索。

Oracle DG搭建.docx

OracleDG搭建

 

*******学院

实习报告

(课程置换:

****实训)

 

姓名:

学号:

专业:

班级:

实习单位指导教师:

校内指导教师:

实习项目:

OracleDataGuard(数据卫士)环境搭建项目

实习单位名称:

实习起止时间:

自年月日至年月日

 

第一部分实习报告

1.项目描述

1.1DG的整体配置

DG是一个整体的配置环境,包含一个生产库和一个或者多个备库;在整个DG环境中,众多应用访问的生产库,也称之为primarydatabase即主库;primarydatabase可以个单实例的数据库,也可以是一个RAC环境;备库是一种主库事务级别的一致性副本;备库的类型有物理备库、逻辑备库和快照备库。

图1.1DG拓扑图

1.2DG的相关服务

1.2.1RedoTransportServices(日志传输服务)

负责自动将主库的redodata传输到备库上去的服务;

职责:

A.传输日志到备库;

B.管理有可能发生的日志gap;

C.自动获取missing的redo数据;

1.2.2ApplyServices(应用服务)

物理备库采用的是redoapply;

图1.2物理备库拓扑图

逻辑备库采用的是sqlapply即将日志转化成SQL;

图1.3逻辑备库拓扑图

1.2.3RoleTransitions(角色转换服务)

Switchover:

转换primary数据库与standby数据库,switchover可以确保不会丢失数据。

Failover:

当primary数据库出现故障并且不能被及时恢复时,会调用failover将一个standby数据库转换为新的primary数据库。

在最大保护模式或最高可用性模式下,failover可以保证不会丢失数据。

1.3DG的数据保护模式

(1)MAXIMIZEPERFORMANCE(最大性能模式):

这种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,无数据同步检查,可能丢失数据,但是能获得主节点的最大性能,在不影响主库性能的情况下,提供最高级别的数据保护模式。

(2)MAXIMIZEAVAILABILITY(最大可用模式):

无数据丢失模式,允许数据分歧,允许异步传送。

正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,主节点的操作还是可以继续的。

在网络不好的情况下有较大的性能影响。

(3)MAXIMIZEPROTECTION(最大保护模式):

最大数据保护与无数据分歧,LGWR将同时传送到备用节点,在主节点事务确认之前,备用节点也必须完全收到日志数据。

如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。

 

最大保护

最高可用

最高性能

REDO写进程

LGWR

LGWR

LGWR或ARCH

网络传输模式

SYNC

SYNC

LGWR进程时SYNC或ASYNC,ARCH进程时SYNC

磁盘写操作

AFFIRM

AFFIRM

AFFIRM或NOAFFIRM

是否需要standbyredologs

YES

YES

可没有但推荐有

1.4DG当中涉及的日志分类

onlineredolog:

--在线重做日志(主库生成在线重做日志,需要传递给备库)

archivedlog:

--归档日志(在线重做日志的归档)

standbyredolog:

--备库的重做日志(和日志传输模式与DG保护模式有关)

2.项目实习环境介绍

2.1硬件环境

服务器:

惠普ProLiantDL160Gen9(783366-AA5)-1U-机架式服务器

CPU:

INTELXeonE5-2603v3

AMD:

4核心CPU或以上

内存:

16GB

系统:

WIN764位

硬盘:

内置固态硬盘空间200G

2.2软件环境

生产环境均采用64位系统和数据库软件;

采用vmwareworkstation10虚拟机软件作为安装平台;

虚拟机系统:

OracleEnterpridbseLinux6(64位);

数据库版本:

Oracle11g_11204_x86_64(64位);

2.3基础要求

2.3.1基本配置:

系统要求最低配置内存2G,swap分区4G,根分区40G,装好系统后先配置好yum,IP地址,/etc/sysconfig/network文件中的主机名,以及/etc/hosts文件中的IP地址和主机名的对应关系。

主库IP:

172.16.66.253

主库主机名:

pridb

备库IP:

172.16.66.254

备库主机名:

stddb

 

3.搭建DataGuard

3.1将数据库改为强制日志模式

3.1.1查看当前是否强制日志模式:

SYS>selectname,log_mode,force_loggingfromv$database;

SYS>alterdatabaseforcelogging;

Databasealtered.

SYS>selectname,log_mode,force_loggingfromv$database;

3.2创建密码文件

将主库的密码文件直接copy到备库,重命名后使用,备库的密码文件需要跟主库一致,否则导致日志传输不到备库。

[oracledbs]$scporapwpridb172.16.66.254:

$ORACLE_HOME/dbs/orapwstddb

3.3创建standbyredolog日志组

原则:

A.standbyredolog的文件大小与primary数据库onlineredolog文件大小相同

B.standbyredolog日志文件组的个数依照下面的原则进行计算:

standbyredolog组数公式>=(每个instance日志组个数+1)*instance个数

3.3.1查看主库当前线程与日志组的对应关系及日志组的大小:

SYS>selectthread#,group#,bytes/1024/1024,statusfromv$log;

如上图所示,现在的环境有三组redolog,每个日志组的大小都是100M,

所以Standbyredolog组数>=(4+1)*1==5

所以至少需要创建5组Standbyredolog,大小均为100M

3.3.2查看主库当前有哪些日志组及其成员:

SYS>colmemberfora50

SYS>selectgroup#,memberfromv$logfile;

GROUP#MEMBER

------------------------------------------------------------

4/u01/app/oracle/oradata/pridb/redo04.log

3/u01/app/oracle/oradata/pridb/redo03.log

2/u01/app/oracle/oradata/pridb/redo02.log

1/u01/app/oracle/oradata/pridb/redo01.log

3.3.3手动创建standbylog日志组所需的目录:

由于已经存在group1-4,所以group号只能从5开始

SYS>alterdatabaseaddstandbylogfilegroup5

2'/u01/app/oracle/oradata/standbylog/stddb_redo05.log'

3size100m;

Databasealtered.

SYS>alterdatabaseaddstandbylogfilegroup6

2'/u01/app/oracle/oradata/standbylog/stddb_redo06.log'

3size100m;

Databasealtered.

SYS>alterdatabaseaddstandbylogfilegroup7

2'/u01/app/oracle/oradata/standbylog/stddb_redo07.log'

3size100m;

Databasealtered.

SYS>alterdatabaseaddstandbylogfilegroup8

2'/u01/app/oracle/oradata/standbylog/stddb_redo08.log'

3size100m;

Databasealtered.

SYS>alterdatabaseaddstandbylogfilegroup9

2'/u01/app/oracle/oradata/standbylog/stddb_redo09.log'

3size100m;

Databasealtered.

3.3.4查看standby日志组的信息:

SYS>selectgroup#,sequence#,status,bytes/1024/1024fromv$standby_log;

3.3.5查看当前有哪些日志组及其成员:

SYS>setpagesize100

SYS>colmemberfora60

SYS>selectgroup#,memberfromv$logfileorderbygroup#;

GROUP#MEMBER

------------------------------------------------------------------------

1/u01/app/oracle/oradata/pridb/redo01.log

2/u01/app/oracle/oradata/pridb/redo02.log

3/u01/app/oracle/oradata/pridb/redo03.log

4/u01/app/oracle/oradata/pridb/redo04.log

5/u01/app/oracle/oradata/standbylog/stddb_redo05.log

6/u01/app/oracle/oradata/standbylog/stddb_redo06.log

7/u01/app/oracle/oradata/standbylog/stddb_redo07.log

8/u01/app/oracle/oradata/standbylog/stddb_redo08.log

9/u01/app/oracle/oradata/standbylog/stddb_redo09.log

3.4修改主库的pfile参数文件

3.4.1查看spfile的路径:

SYS>showparameterspfile;

3.4.2用spfile创建一个pfile,用于修改:

SYS>createpfilefromspfile;

3.4.3修改主库的pfile:

[oracle~]$cd$ORACLE_HOME/dbs

[oracledbs]$viminitpridb.ora

pridb.__db_cache_size=125829120

pridb.__java_pool_size=4194304

pridb.__large_pool_size=4194304

pridb.__oracle_base='/u01/app/oracle'#ORACLE_BASEsetfromenvironment

pridb.__pga_aggregate_target=146800640

pridb.__sga_target=272629760

pridb.__shared_io_pool_size=0

pridb.__shared_pool_size=125829120

pridb.__streams_pool_size=4194304

*.audit_file_dest='/u01/app/oracle/admin/pridb/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/app/oracle/oradata/pridb/control01.ctl','/u01/app/oracle/fast_recovery_area/pridb/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='pridb'

*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4227858432

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP)(SERVICE=pridbXDB)'

*.memory_target=419430400

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

手动添加如下行:

*.db_unique_name='pridb'

*.log_archive_config='dg_config=(pridb,stddb)'

*.log_archive_dest_1='location=/u01/app/arch/pridbvalid_for=(all_logfiles,all_roles)db_unique_name=pridb'

*.log_archive_dest_2='service=stddbvalid_for=(online_logfiles,primary_role)db_unique_name=stddb'

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.log_archive_max_processes=4

*.fal_server='stddb'

*.fal_client='pridb'

*.db_file_name_convert='/u01/app/oracle/oradata/stddb','/u01/app/oracle/oradata/pridb'

*.log_file_name_convert='/u01/app/oracle/oradata/stddb','/u01/app/oracle/oradata/pridb'

*.standby_file_management='auto'

修改完毕,保存退出

3.4.4手工创建/u01/app/arch/pridb目录:

[oracledbs]$mkdir/u01/app/arch/pridb-pv

mkdir:

createddirectory`/u01/app/arch'

mkdir:

createddirectory`/u01/app/arch/pridb'

3.5创建spfile

3.5.1一致性关闭数据库:

SYS>shutdownimmediate;

Databaseclosed.

Databasedismounted.

ORACLEinstanceshutdown.

3.5.2生成动态参数文件spfile:

SYS>createspfilefrompfile;

3.5.3把数据库改为归档模式:

首先需要把数据库启动到mount状态

SYS>startupmount;

ORACLEinstancestarted.

Databasemounted.

SYS>alterdatabasearchivelog;启用归档模式

Databasealtered.

SYS>alterdatabaseopen;OPEN数据库

Databasealtered.

SYS>archiveloglist;查看是否启用归档模式

如上图,归档路径已经改为/u01/app/arch/pridb,证明对pfile的修改已生效

3.5.4查看当前数据库是否使用spfile启动:

SYS>showparameterspfile;

如上图,若能看到spfile的路径,则证明数据库是使用spfile启动的,若没有值,则说明是用pfile启动的。

3.6对主库进行RMAN全库备份

3.6.1创建备份所需的目录:

[oracle~]#mkdir/dgback

3.6.2进入RMAN进行全库备份:

[oracle~]#rmantarget/

RMAN>configurechanneldevicetypediskformat'/home/oracle/dgback/%d_%I_%s_%p.bkp';

RMAN>backupascompressedbackupsetdatabaseincludecurrentcontrolfileforstandbyplusarchivelog;

Startingbackupat05-NOV-16

usingtargetdatabasecontrolfileinsteadofrecoverycatalog

allocatedchannel:

ORA_DISK_1

channelORA_DISK_1:

SID=41devicetype=DISK

channelORA_DISK_1:

startingfulldatafilebackupset

channelORA_DISK_1:

specifyingdatafile(s)inbackupset

inputdatafilefilenumber=00001name=/u01/app/oracle/oradata/pridb/system01.dbf

inputdatafilefilenumber=00002name=/u01/app/oracle/oradata/pridb/sysaux01.dbf

inputdatafilefilenumber=00005name=/u01/app/oracle/oradata/pridb/example01.dbf

inputdatafilefilenumber=00003name=/u01/app/oracle/oradata/pridb/undotbs01.dbf

inputdatafilefilenumber=00004name=/u01/app/oracle/oradata/pridb/users01.dbf

channelORA_DISK_1:

startingpiece1at05-NOV-16

channelORA_DISK_1:

finishedpiece1at05-NOV-16

piecehandle=/rman_backup/Full_20161105_01ou2791_1_1.baktag=TAG20161105T143721comment=NONE

channelORA_DISK_1:

backupsetcomplete,elapsedtime:

00:

00:

45

channelORA_DISK_1:

startingfulldatafilebackupset

channelORA_DISK_1:

specifyingdatafile(s)inbackupset

includingcurrentcontrolfileinbackupset

includingcurrentSPFILEinbackupset

channelORA_DISK_1:

startingpiece1at05-NOV-16

channelORA_DISK_1:

finishedpiece1at05-NOV-16

piecehandle=/rman_backup/Full_20161105_02ou27ae_1_1.baktag=TAG20161105T143721comment=NONE

channelORA_DISK_1:

backupsetcomplete,elapsedtime:

00:

00:

01

Finishedbackupat05-NOV-16

3.6.3查看备份的归档日志:

RMAN>listarchivelogall;

3.6.4查看备份文件

RMAN>listbackup;

 

3.7修改监听文件

3.7.1添加静态注册信息

主库:

[oracle~]$cd$ORACLE_HOME/network/admin

[oracleadmin]$vimlistener.ora添加如下内容:

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=pridb)

(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1)

(SID_NAME=pridb)

主库修改后最终效果如下图:

图3.1主库配置静态注册信息

备库:

[oracle~]$cd$ORACLE_HOME/network/admin

[oracleadmin]$vimlistener.ora添加如下内容:

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=stddb)

(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1)

(SID_NAME=stddb)

(SID_DESC=

(GLOBAL_DBNAME=pridb)

(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1)

(SID_NAME=pridb)

备库修改后最终效果如下图:

图3.2备库配置静态注册信

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

当前位置:首页 > 工作范文 > 演讲主持

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

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