在做DataGuard 物理standby数据库创建之前这些工作要全部完成并配置正确能正常工作。一.软件部分:1.primary数据库,standby数据库服务器操作系统(我们公司用的是windows server 2003)安装好并且补丁打好,并且两台服务器操作系统版本等要完全一致,两台服务器网络配置正确,通信正常。2.oracle 10G正确安装完成(两台服务器的oracle安装目录要一致),并且补丁打好.3.两台服务器的用户名,密码设置一样。4.同步两台服务器的机器时间。二.硬件部分:两台服务器的硬盘,内存的大小,型号要完全一样.
1. 创建primary数据库(步骤略),设置sysdba密码(很重要)。
2. 在oracle的Net Manager中配置primary数据库服务,也可以在C:/oracle/product/10.2.0/db/NETWORK/ADMIN目录下通过tnsnames.ora文件配置。配置完成后用自己的机器,或者另一台服务器的oracle管理平台看是否能正常进入primary数据库(测试是否通畅).
3. 在C:/oracle/product/10.2.0/db/NETWORK/ADMIN目录下通过listener.ora文件配置primary数据库的监听,然后通过lsnrctl,reload重启监听.
4. 更改参数文件,应用参数文件:连接进入primary数据库,创建PFILE文件:sql>create pfile=’e:/lmis.ora’ from spfile;(数据库文件下) 最好用UltraEdit-32编辑lmis.ora文件增加并更改如下部分内容:
*.archive_lag_target=1800(同步时间)
*.db_unique_name='whprm'(数据库唯一标识,如syprm)
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(whprm,whstd)' (syprm,systd)
*.LOG_ARCHIVE_DEST_1='LOCATION=E:/LMISWH/ARCHIE(自己创建,归档路径) VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=whprm'
同步 |
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE' (表示允许传输服务)
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.log_archive_format='ARC%S_%R.%T'
*.FAL_CLIENT='whprm'
*.FAL_SERVER='whstd'
*.DB_FILE_NAME_CONVERT='E:/LMISWH/DATAFILE','E:/LMISWH/DATAFILE'
*.LOG_FILE_NAME_CONVERT='E:/lmiswh/LOGFILE','E:/lmiswh/LOGFILE'
*.standby_file_management='AUTO'
关闭primary数据库 (shutdown immediate) 后,应用更改过后的lmis.ora文件:SQL>create spfile from pfile=’e:/lmis.ora’(创建和应用的目录得根据实际情况而定),应用过后启动数据库sql>startup
5. 此处可以放在第6步更改数据库的归档模式,更改之前首先通过archive log list查看一下数据库原有的归档模式,然后关闭数据库,再启动数据库到mount状态,(如果启动不了,可采用此方法:shutdown immediate---startup restrict---shutdown---startup mount)接着改变数据库为归档模式:SQL>alter database archivelog ,然后启动数据库 startup open;
6.
升级oracle |
SQL>@C:/oracle/product/10.2.0/db/rdbms/admin/catupgrd.sql;完了之后,再以SYSDBA进入数据库(如果不以DBA进去的话,会报error number错误),再执行这句话
SQL> @C:/oracle/product/10.2.0/db/rdbms/admin/catalog.sql 光标停下来处于可编辑状态升级完毕。
7.配置primary,standby数据库的全局唯一名(服务)和创建普通服务一样有两种方法,不再重述。在tnsnames.ora文件中服务参数设置如下:
WHPRM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = jzt-tpaxqrzg3sl)(PORT = 1521))
)
(CONNECT_DATA =
(SID = lmiswh)
) )
WHSTD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = jzt-x6lzak9yshl)(PORT = 1521))
)
(CONNECT_DATA =
(SID = lmiswh)
)
)
7. 在primary数据库创建standby数据库控制文件:启动数据库,以sysdba进入数据库SQL>alter database create standby controlfile as ‘e:/control01.ctl’;关闭primary数据库,拷贝cotrol01.ctl这个控控制文件到standby数据库服务器e:/lmiswh/pfile/目录下,然后复制两份:cotrol02.ctl,cotrol03.ctl,在拷贝之前先删除这个目录下原有的三个控制文件。到此primary数据库的创建,参数设置已全部完成。
1. 关闭primary数据库,拷贝primary数据库服务器E:/lmiswh文件夹standby数据库服务器同样的目录下.
2. 拷贝primary数据库服务器c:/oracle/product/10.2.0/db/database/pwdlmiswh.ora, c:/oracle/product/10.2.0/db/database/spfilelmiswh.ora文件到standby数据库服务器相同的目录下.
3.在standby服务器上创建standby数据库服务:oradim –new –sid lmiwh –spfile;(若创建失败,可用下方法解决:cd/----oradim –new –sid –lmissy –startmode a –spfile,若还不行,则用oradim –new –sid –lmissy –startmode a –pfile C:/oracle/product/10.2.0/db/database/spfilelmis.ora) 启动服务: oradim –startup –sid lmiswh
4.通过net manager或者通过更改C:/oracle/product/10.2.0/db/NETWORK/ADMIN目录下tnsnames.ora文件,配置standby数据库服务和全局数据库名(服务) 在tnsnames.ora文件中服务参数设置如下: WHPRM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = jzt-tpaxqrzg3sl)(PORT = 1521))
)
(CONNECT_DATA =
(SID = lmiswh)
)
)
WHSTD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = jzt-x6lzak9yshl)(PORT = 1521))
)
(CONNECT_DATA =
(SID = lmiswh)
)
)
5在C:/oracle/product/10.2.0/db/NETWORK/ADMIN目录下通过listener.ora文件配置primary数据库的监听,然后通过lsnrctl,reload 重新载入监听.
6.更改参数文件并应用参数文件:启动数据库并以sysdba身份进入SQL>create pfile=’e:/lmis.ora’ from spfile; 然后用UltraEdit-32编辑lmis.ora文件,更加参数配置并加入以下内容:(若提示登陆不上,则先创建密码: cd------C:/>orapwd file=C:/oracle/product/10.2.0/db/database/PWDlmissy.ora password=lmissy entries=500))
*.db_name='lmiswh'
*.archive_lag_target=1800
*.db_unique_name='whstd'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(whprm,whstd)'
*.LOG_ARCHIVE_DEST_1='LOCATION=E:/LMISWH/ARCHIE VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=whstd'
*.log_archive_dest_2='SERVICE=whprm LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=whprm'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.log_archive_format='ARC%S_%R.%T'
*.LOG_FILE_NAME_CONVERT='E:/whlmis/LOGFILE','E:/whlmis/LOGFILE'
*.standby_file_management='AUTO'
*.FAL_CLIENT='whstd'
*.FAL_SERVER='whprm'
*.user_dump_dest='E:/LMISWH/PFILE/udump'
保存后,关闭standby数据库,应用更改过后的lmis.ora文件sql>create spfile from pfile=’e:/lmis.ora’;启动数据库,
7.创建standby数据库日志组文件,启动数据库到mount状态:在SQL>下执行以下语句: alter database add standby logfile group 4 ('E:/lmiswh/logfile/STANDBYRD01.LOG') size 50M;
alter database add standby logfile group 5 ('E:/lmiswh/logfile/STANDBYRD02.LOG') size 50M;
alter database add standby logfile group 6 ('E:/lmiswh/logfile/STANDBYRD03.LOG') size 50M;
alter database add standby logfile group 7 ('E:/lmiswh/logfile/STANDBYRD04.LOG') size 50M;
alter database add standby logfile group 8 ('E:/lmiswh/logfile/STANDBYRD05.LOG') size 50M;
alter database add standby logfile group 9 ('E:/lmiswh/logfile/STANDBYRD06.LOG') size 50M;
alter database add standby logfile group 10 ('E:/lmiswh/logfile/STANDBYRD07.LOG') size 50M;最后一个要回车一下;创建完后,用select group# from v$standby_log查看是否成功创建了日志组文件.
到此standby数据库的创建,配置全部完成.下面要启动同步应用.看归档日志同步传输情况.
1. 关闭primary数据库,重启数据库,改变primary数据库的保护模式为最高可用模式,SQL>alter database set standby database to maximize availability;
2. 启运standby数据库到mounted 状态,启动同步应用:SQL>alter database recover managed standby database disconnect from session;
接着取消同步应用:alter database recover managed standby database cancel;接着恢复数据库管理:recover managed standby database
查看E:/lmiswh/pfile/bdump/alert_lmiswh.log文件有没有报错信息,如果没有错误信息,文件停止增加的话,接着:取消恢复数据库管理SQl>recover managed standby database cancel(这句话要另开一个窗口)这时候另外一个cmd窗口变成可编辑,改变数据库到open状状.SQL>alter database open;
紧接着再次启动同步应用: SQL>alter database recover managed standby database disconnect from session;观窗日志文件同步情况;
1. 将RMAN_SCRIPT_PRIMARY文件夹中已写好的批处理脚文件拷贝到primary数据库服务器F盘目录下.编辑其中的set_env.bat批处文件内容如下:
@SET ORACLE_BASE=C:/oracle/product/10.2.0 (C:/oracle/ora92)
@SET ORACLE_HOME=C:/oracle/product/10.2.0/db
@SET ORACLE_SID=lmiswh
@SET ARCH_DEST=E:/lmiswh/ARCHIE
@SET DBS_SCRIPT_DIC=F:/RMAN_SCRIPT/PRIMARY(要是PRIMARY脚本存在的目录)
@SET DBS_BASE=F:/BACKUP
@SET DBS_IP=192.168.90.150(primaryIP)
@SET BS_IP=192.168.90.149(standby ip )
@SET BS_USER=administrator
@SET BS_PASSWORD=111111(计算机设定的密码)
2. 将RMAN_SCRIPT_STANDBY文件夹已写好的批理文件拷贝到standby数据库服器上的F盘目录下,编辑set_env.bat批处理文件内容如下:
@SET ORACLE_BASE=C:/oracle/product/10.2.0
@SET ORACLE_HOME=C:/oracle/product/10.2.0/db
@SET ORACLE_SID=lmiswh
@SET ARCH_DEST=E:/lmiswh/ARCHIE
@SET DBS_SCRIPT_DIC=F:/RMAN_SCRIPT/STANDBY
@SET DBS_BASE=F:/BACKUP
@SET DBS_IP=192.168.90.149
@SET BS_IP=192.168.90.150
@SET BS_USER=administrator
@SET BS_PASSWORD=111111
以上更改都要在F盘下创建backup文件夹,把RMAN_SCRIPT_PRIMARY, RMAN_SCRIPT_STANDBY更改为RMAN_SCRIPT文件夹.
3. 在primary数据库服务器上添加任务计划:任务计划一:中午12:00用dmp方式备份,任务计划名:exp_dmp_evenfall(这之前要写好导出的批处理文件,并放置合适的文件夹下)任务计划二:每天的凌晨1:00做RMAN全备份(计划任务文件:rman_db_all.bat),任务计划名为:rman_db_all_morning;
4. 在 standby数据库服务器上添加任务计划:任务计划一:每天中午12:00做RMAN全备份,取名为:rman_db_all_afternoon,任务计划二:每天的凌晨2:00钟做一次RMAN全备份,任务计划名:rman_db_all_morning ,任务计划三:每天的下午六点钟做exp导出dmp备份,任务计划名:exp_dmp_evening
由于RMAN备份对数据库性能影响比较大,所以一般放在公司业务停或者很小的时候做.
5. 手动运行任务计划,看F盘backup目录下的相关日志文件有无报错信息.
到此所有的dataguardDataGuard物理Standby数据库创建步骤完成.