DataGuard安装手册.docx
《DataGuard安装手册.docx》由会员分享,可在线阅读,更多相关《DataGuard安装手册.docx(20页珍藏版)》请在冰点文库上搜索。
![DataGuard安装手册.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/b3b2fb7b-9eff-466b-96ac-69ec1967fa1a/b3b2fb7b-9eff-466b-96ac-69ec1967fa1a1.gif)
DataGuard安装手册
Oracle10GDataGuard安装手册
一、建立新Instance的相关dump目录
一般在%ORACLE_BASE\admin\[instancename]\目录下建立以下六个目录
adumpbdumpcdumpdpdumppfileudump
二、设置主数据库(Primarydatabase)为Archive模式
A、检查数据库当前Archive模式
SQL>archiveloglist;
DatabaselogmodeNoArchiveMode
AutomaticarchivalDisabled
ArchivedestinationUSE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence38
Currentlogsequence40
B、设置其为归档模式
从非归档模式转到归档模式,数据需在mount模式下
SQL>showparameterarchive(显示Archive_destc参数名称)
有三参数:
1、log_archive_dest_n[设置归档的路径名称]
2、log_archive_dest_state_n[设置归档为有效:
enable]
3、log_archive_format[设置归档生成文件名称格式]
SQL>altersystemsetlog_archive_dest_1='location=D:
\Oradata\joinu\Archive'scope=both;
Systemaltered.
其格式为:
’location=[归档存储的指定路径全称]’
SQL>shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SQL>startupmount;
ORACLEinstancestarted.
TotalSystemGlobalArea612368384bytes
FixedSize1292036bytes
VariableSize356518140bytes
DatabaseBuffers247463936bytes
RedoBuffers7094272bytes
Databasemounted.
SQL>alterdatabasearchivelog;
Databasealtered.
SQL>alterdatabaseopen;
Databasealtered.
SQL>archiveloglist;
DatabaselogmodeArchiveMode
AutomaticarchivalEnabled
ArchivedestinationD:
\Oradata\joinu\Archive
Oldestonlinelogsequence38
Nextlogsequencetoarchive40
Currentlogsequence40
SQL>
三、DataGuad必须使用forcelogging模式
检查是否启用了flashbackdatabase和force_logging
Forcelogging为一次性设置参数。
SQL>selectflashback_on,force_loggingfromv$database;
FLASHBACK_ONFOR
---------------------
NONO
如果没有修改数据库为"forcelogging"模式
SQL>alterdatabaseforcelogging
四、添加standbylogfile
为主数据库添加"备用联机日志文件",这里要保证备日志文件与主库联机日志文件相同大小。
添加备用日志文件是规则:
备用日志最少应该比redolog多一个。
推荐的备重做日志数依赖于主数据库上的线程数。
(每线程日志文件最大数目+1)*线程数
alterdatabaseaddstandbylogfile
group4('/oracle2/app/oracle/oradata/std_redo04a.log',
'/oracle2/app/oracle/oradata/std_redo04b.log')size50m,
group5('/oracle2/app/oracle/oradata/std_redo05a.log',
'/oracle2/app/oracle/oradata/std_redo05b.log')size50m,
group6('/oracle2/app/oracle/oradata/std_redo06a.log',
'/oracle2/app/oracle/oradata/std_redo06b.log')size50m,
group7('/oracle2/app/oracle/oradata/std_redo07a.log',
'/oracle2/app/oracle/oradata/std_redo08b.dbf')size50m;
否则备库在应用时报如下信息:
RFS[1]:
Nostandbyredologfilescreated
RFS[1]:
ArchivedLog:
'/oracle2/arch/1_30_633287861.dbf'
在主库添加完standbylogfile后,当主库切换后备库后会自动使用备库的redologfile,具体应用信息如下:
RFS[1]:
Successfullyopenedstandbylog4:
'/oracle2/app/oracle/oradata/10g/redo04.log'
RFS[1]:
Successfullyopenedstandbylog4:
'/oracle2/app/oracle/oradata/10g/redo04.log'
五、UNIX和Windows下参数设置方法
Windows:
set环境变量=Value
UNIX:
export环境变量=Value
六、创建密码文件
A、检查是否使用密码文件,以及具有SYSDBA权限的用户
SQL>select*fromv$pwfile_users;
USERNAMESYSDBSYSOP
----------------------------------------
SYSTRUETRUE
SQL>
B、密码文件相关的设置
1、设置初始化参数remote_login_passwordfile:
在oracle数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。
它可以有以下几个选项:
none:
指示oracle系统不使用密码文件,特权用户的登录通过操作系统进行身份验证;
exclusive:
指示只有一个数据库实例可以使用此密码文件。
只有在此设置下的密码文件可以包含有除internal/sys以外的用户信息,即允许将系统权限sysoper/sysdba授予除internal/sys以外的其他用户。
shared:
指示可有多个数据库实例可以使用此密码文件。
在此设置下只有internal/sys帐号能被密码文件识别,即使文件中存有其他用户的信息,也不允许他们以sysoper/sysdba的权限登录。
此设置为缺省值。
在remote_login_passwordfile参数设置为exclusive、shared情况下,oracle系统搜索密码文件的次序为:
在系统注册库中查找ora_sid_pwfile参数值(它为密码文件的全路径名);若未找到,则查找ora_pwfile参数值;若仍未找到,则使用缺省值oracle_home\database\pwdsid.ora;其中的sid代表相应的oracle数据库系统标识符。
2、收回权限和授予权限
grant sysdba to user_name;
revoke sysdba from user_name;
3、
C、创建密码文件
$orapwdfile=D:
\Oradata\joinustd\Parafile\PWDjoinustd.orapassword=passwordentries=20;
如果是Windowns下,需要输入以下命令创建Windows服务(必须用系统管理员权限)
$oradim-NEW-SIDjoinustd-INTPWDD:
\Oradata\joinustd\Parafile\PWDjoinustd.ora-STARTMODEmanual
Instancecreated.
需要注意的是,同一个DataGuard配置中所有数据库必须都拥有独立的密码文件,并且必须保证同一个DataGuard配置中所有数据库服务器的SYS用户拥有相同密码以保证redo数据的顺利传输,因为redo传输服务通过认证的网络会话来传输redo数据,而会话使用包含在密码文件中的SYS用户密码来认证。
七、创建主数据库(PrimaryDatabase)备份
A、备份数据库
RMAN>crosscheckbackup;
usingchannelORA_DISK_1
RMAN>deletenopromptbackupset;
usingchannelORA_DISK_1
RMAN>run{
2>allocatechannelt1typedisk;
3>backupformat'D:
\Oradata\joinu\Backup\DB\joinuUC_%d_S_%s_P_%p_T_%t'database;
4>}
releasedchannel:
ORA_DISK_1
allocatedchannel:
t1
channelt1:
sid=134devtype=DISK
Startingbackupat07-APR-10
channelt1:
startingfulldatafilebackupset
channelt1:
specifyingdatafile(s)inbackupset
inputdatafilefno=00002name=D:
\ORADATA\JOINU\UNDOTBS01.DBF
inputdatafilefno=00004name=D:
\ORADATA\JOINU\USERS01.DBF
inputdatafilefno=00006name=D:
\ORADATA\JOINU\USERS02.DBF
inputdatafilefno=00007name=D:
\ORADATA\JOINU\USERS03.DBF
inputdatafilefno=00008name=D:
\ORADATA\JOINU\USERS04.DBF
inputdatafilefno=00009name=D:
\ORADATA\JOINU\INDEX01.DBF
inputdatafilefno=00010name=D:
\ORADATA\JOINU\INDEX02.DBF
inputdatafilefno=00001name=D:
\ORADATA\JOINU\SYSTEM01.DBF
inputdatafilefno=00003name=D:
\ORADATA\JOINU\SYSAUX01.DBF
inputdatafilefno=00005name=D:
\ORADATA\JOINU\EXAMPLE01.DBF
channelt1:
startingpiece1at07-APR-10
channelt1:
finishedpiece1at07-APR-10
piecehandle=D:
\ORADATA\JOINU\BACKUP\DB
\JOINUUC_JOINU_S_14_P_1_T_715694707tag=TAG20100407T120507comment=NONE
channelt1:
backupsetcomplete,elapsedtime:
00:
00:
45
Finishedbackupat07-APR-10
StartingControlFileandSPFILEAutobackupat07-APR-10
Piecehandle=D:
\ORADATA\FLASH_RECOVERY_AREA\JOINU\AUTOBACKUP\2010_04_07\O1_MF_S_715694753_5VR1525W_.BKPcomment=NONE
FinishedControlFileandSPFILEAutobackupat07-APR-10
releasedchannel:
t1
RMAN>
B、备份归档文件
RMAN>listarchivelogall;
ListofArchivedLogCopies
KeyThrdSeqSLowTimeName
--------------------------------
1140A06-APR-10D:
\ORADATA\JOINU\ARCHIVE\ARC00040_0714235413.001
RMAN>crosscheckarchivelogall;
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=134devtype=DISK
validationsucceededforarchivedlog
archivelogfilename=D:
\ORADATA\JOINU\ARCHIVE\ARC00040_0714235413.001recid=1stamp=715683988
Crosschecked1objects
RMAN>run{
2>allocatechannelt1typedisk;
3>backupformat'D:
\Oradata\joinu\Backup\Archive\joinuARC_%d_S_%s_P_%p_T_%t'
4>archivelogalldeleteinput;
5>}
releasedchannel:
ORA_DISK_1
allocatedchannel:
t1
channelt1:
sid=134devtype=DISK
Startingbackupat07-APR-10
currentlogarchived
channelt1:
startingarchivelogbackupset
channelt1:
specifyingarchivelog(s)inbackupset
inputarchivelogthread=1sequence=40recid=1stamp=715683988
inputarchivelogthread=1sequence=41recid=2stamp=715701086
channelt1:
startingpiece1at07-APR-10
channelt1:
finishedpiece1at07-APR-10
piecehandle=D:
\ORADATA\JOINU\BACKUP\ARCHIVE
\JOINUARC_JOINU_S_16_P_1_T_715701086
tag=TAG20100407T135126comment=NONE
channelt1:
backupsetcomplete,elapsedtime:
00:
00:
02
channelt1:
deletingarchivelog(s)
archivelogfilename=D:
\ORADATA\JOINU\ARCHIVE
\ARC00040_0714235413.001recid=1stamp=715683988
archivelogfilename=D:
\ORADATA\JOINU\ARCHIVE
\ARC00041_0714235413.001recid=2stamp=715701086
Finishedbackupat07-APR-10
StartingControlFileandSPFILEAutobackupat07-APR-10
piecehandle=D:
\ORADATA\FLASH_RECOVERY_AREA\JOINU\AUTOBACKUP
\2010_04_07\O1_MF_S_715701089_5VR7C26X_.BKPcomment=NONE
FinishedControlFileandSPFILEAutobackupat07-APR-10
releasedchannel:
t1
RMAN>listarchivelogall;
specificationdoesnotmatchanyarchivelogintherecoverycatalog
RMAN>
七、编辑lsnrctl和tnsnames.ora文件
A.>lsnrctl文件
#listener.oraNetworkConfigurationFile:
C:
\Oracle\DB\network\admin\listener.ora
#GeneratedbyOracleconfigurationtools.
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=C:
\Oracle\DB)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBLE_NAME=joinu)
(ORACLE_HOME=C:
\Oracle\DB)
(sid_name=joinu)
)
(SID_DESC=
(GLOBLE_NAME=joinustd)
(ORACLE_HOME=C:
\Oracle\DB)
(sid_name=joinustd)
)
)
B.>tnsname.ora文件
#tnsnames.oraNetworkConfigurationFile:
C:
\Oracle\DB\network\admin\tnsnames.ora
#GeneratedbyOracleconfigurationtools.
JOINU=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=IPAdress)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=joinu)
)
)
JOINUSTD=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=IPAdress)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=joinustd)
)
)
八、在主数据库中为备用数据库创建控制文件
SQL>alterdatabasecreatestandbycontrolfileas
'D:
\Oradata\joinustd\Parafile\joinustdDG01.ctl';
Databasealtered.
SQL>
注:
控制文件通常需要有多份,你要么手工将上述文件复制几份,要么用命令多创建几个出来。
另外,创建完控制文件之后到standby数据库创建完成这段时间内,要保证primary数据库不再有结构性的变化(比如增加表空间等等),不然primary和standby同步时会有问题。
九、创建备用数据库的init的文件
A、从主数据库中创建备用数据库的init文件
SQL>createpfile='D:
\Oradata\joinustd\Parafile\SPFILEjoinustd.ora'fromspfile;
Filecreated.
SQL>
B、修改参数文件SPFILEjoinustd.ora内容
1、修改Standby数据库的相关的dump目录
*.audit_file_dest='C:
\Oracle\admin\joinu\adump'-->audit_file_dest='C:
\Oracle\admin\joinustd\adump'
*.background_dump_dest='C:
\Oracle\admin\joinu\bdump'-->background_dump_dest='C:
\Oracle\admin\joinustd\bdump'
*.core_dump_dest='C:
\Oracle\admin\joinu\cdump'-->core_dump_dest='C:
\Oracle\admin\joinustd\cdump'
*.user_dump_dest='C:
\Oracle\admin\joinu\udump'-->user_dump_dest='C:
\Oracle\admin\joinustd\udump'
2、修改Standby数据库的控制文件路径
*.control_files='D:
\Oradata\joinu\control01.ctl','D:
\Oradata\joinu\control02.ctl','D:
\Oradata\joinu\control03.ctl'-->*.control_files='D:
\Oradata\joinustd\Parafile\JOINUSTDDG01.ctl','D:
\Oradata\joinustd\Parafile\JOINUSTDDG02.ctl','D:
\Oradata\joinustd\Parafileu\JOINUSTDDG03.ctl'
3、修改FRA和归档参数
*.db_recovery_file_dest='D:
\Oradata\flash_recovery_area'
-->db_recovery_file