DataGuard环境搭建详细步骤(老方法).doc

上传人:最*** 文档编号:1546557 上传时间:2019-10-25 格式:DOC 页数:32 大小:390KB
返回 下载 相关 举报
DataGuard环境搭建详细步骤(老方法).doc_第1页
第1页 / 共32页
DataGuard环境搭建详细步骤(老方法).doc_第2页
第2页 / 共32页
DataGuard环境搭建详细步骤(老方法).doc_第3页
第3页 / 共32页
点击查看更多>>
资源描述
一:实验环境介绍*鉴于生产环境均采用64位系统和数据库软件,本实验也将采用这个标准*采用vmware workstation 10(版本随意,我用的10)虚拟机软件作为安装平台对于真机的要求:CPU:INTEL:CORE I3级别或以上(推荐) AMD :4核心CPU或以上(推荐)内存:建议4G以上系统:WIN7 /8 64位/WINDOWS SERVER 2003/2008 64位硬盘:虚拟机所在分区剩余空间50G以上,固态硬盘最好虚拟机系统:Oracle Enterprise Linux 5 update 5(64位)数据库版本:Oracle 11gR2 11.2.0.3 (64位)基础要求:(1)安装两台虚拟机分别作为主库和备库,硬盘大小随意。但要保证根分区有20G,别给太小了就行。物理内存1G,SWAP 2G 二:安装数据库软件前的系统配置(主库和备库端都要做下列操作)1基本配置:一定要用新装的系统(这里以红帽企业版5.5为例),系统要求最低配置1G内存,2Gswap分区,根分区20G以上,装好系统后先配置好yum,IP地址,/etc/sysconfig/network文件中的主机名,以及/etc/hosts文件中的IP地址和主机名的对应关系。主库IP:192.168.1.101主库主机名:pri.cty.compri备库IP:192.168.1.102备库主机名:std.cty.comstd2装包yum install compat-libstdc+-33 ksh gcc gcc-c+ libgomp elfutils-libelf-devel glibc-devel glibc-headers libaio-devel libstdc+-devel sysstat unixODBC unixODBC-devel -y 3查看共享内存大小,要求最低为1GB# df -h /dev/shmFilesystem Size Used Avail Use% Mounted ontmpfs 506M 0 506M 0% /dev/shm发现不够,修改# vim /etc/fstab如图,在tmpfs那一行的defaults后面加上,size=1024m保存退出后重新挂载:# mount -o remount /dev/shm再次查看共享内存:# df -h /dev/shmFilesystem Size Used Avail Use% Mounted ontmpfs 1.0G 0 1.0G 0% /dev/shm修改成功4创建相关的组与用户:groupadd oinstallgroupadd dbagroupadd operuseradd -g oinstall -G dba,oper oraclepasswd oracle5创建所需的目录并赋予特定的属主和属组mkdir /u01/app/oracle -pvchown oracle.oinstall /u01 -R建议:最好为单独分一个区,然后将u01挂载到该分区上(可不做,看情况)6编辑limits.conf 文件vim /etc/security/limits.conf添加下面5行内容:oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 102407编辑sysctl.conf文件,设置相关参数vim /etc/sysctl.conf添加/修改下列内容:(注意!下面的参数,若是已经存在,则直接修改数值,不要再添加同样的参数,相同的参数只能有一个!如果需要修改的参数已经大于下面的数字,则不用修改,请仔细核对!)kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096kernel.sem =250 32000 100 128fs.file-max = 6815744fs.aio-max-nr = 1048576net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576保存退出后,别忘了用sysctl -p命令使参数生效!8编辑vim /home/oracle/.bash_profile文件,配置相关环境变量添加下列几行:export TMP=/tmpexport TMPDIR=/tmpexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1export ORACLE_SID=pri(备库端设置为std)export PATH=$ORACLE_HOME/bin:$PATH至此,安装环境相关配置结束。三:开始安装oracle11g数据库软件(主库和备库端都要做下列操作)1.挂载oracle11g的镜像到/mnt/cdrom 目录下,并把3个包解压到/usr/local/src 目录下cd /mnt/cdrom/unzip p10404530_112030_LINUX_1of7.zip -d /usr/local/srcunzip p10404530_112030_LINUX_2of7.zip -d /usr/local/srcunzip p10404530_112030_LINUX_3of7.zip -d /usr/local/src(只装数据库的话,解压前两个包即可,第三个包是grid)2. root身份执行xhost +,然后切换到oracle用户进入/usr/local/src/database目录中,执行runInstaller 开始安装 (database是默认解压完的目录名)# xhost + # su - oracle$ ./runInstaller 注意:安装oracle11g要求分辨率最低为1024x768,不然无法完整显示安装过程安装过程:略注意:主库在安装完软件后需要进行DBCA建库操作,推荐不要启用归档模式,会节省时间,备库端不要建库!四:开始搭建Dataguard1:将数据库改为强制日志模式(此步骤只在主库上做)oraclepri $ sqlplus / as sysdba查看当前是否强制日志模式:SYSpri select name,log_mode,force_logging from v$database;NAME LOG_MODE FOR- - -PRI NOARCHIVELOG NOSYSpri alter database force logging;Database altered.SYSpri select name,log_mode,force_logging from v$database;NAME LOG_MODE FOR- - -PRI NOARCHIVELOG YES2:创建密码文件(此步骤只在主库上做)注意:两端分别创建自己的密码文件好像有问题,备库的密码文件需要跟主库一致,否则导致日志传输不到备库,有待验证。我最后是将主库的密码文件直接copy到备库,重命名后使用。oraclepri $ cd $ORACLE_HOME/dbsoraclepri dbs$ lshc_racdb1.dat init.ora initracdb1.ora orapwpri已经有一个密码文件了oraclepri dbs$ orapwd file=orapwpri password=oracle force=y这条命令可以手动生成密码文件,force=y的意思是强制覆盖当前已有的密码文件oraclepri dbs$ lshc_pri.dat init.ora initpri.ora lkPRI orapwpri spfilepri.ora将主库的密码文件copy给备库,并重命名oraclepri dbs$ scp orapwpri 192.168.1.102:$ORACLE_HOME/dbs/orapwstdorapwpri 100% 1536 1.5KB/s 00:00 3:创建standby redolog日志组(此步骤只在主库上做)原则:1:standby redo log的文件大小与primary 数据库online redo log 文件大小相同2:standby redo log日志文件组的个数依照下面的原则进行计算:Standby redo log组数公式=(每个instance日志组个数+1)*instance个数假如只有一个节点,这个节点有三组redolog,所以Standby redo log组数=(3+1)*1 = 4 所以至少需要创建4组Standby redo log查看当前线程与日志组的对应关系及日志组的大小:SYSpri select thread#,group#,bytes/1024/1024 from v$log; THREAD# GROUP# BYTES/1024/1024 - - - 1 1 50 1 2 50 1 3 50如上,我现在的环境有三组redolog,每个日志组的大小都是50M,所以Standby redo log组数=(3+1)*1= 4所以至少需要创建4组Standby redo log,大小均为50M(thread:线程,只有在多实例数据库才有用的参数,例如RAC环境,单实例不考虑)查看当前有哪些日志组及其成员:SYSpri col member for a50SYSpri select group#,member from v$logfile; GROUP# MEMBER- - 3 /u01/app/oracle/oradata/pri/redo03.log 2 /u01/app/oracle/oradata/pri/redo02.log 1 /u01/app/oracle/oradata/pri/redo01.log先手动创建standby log日志组所需的目录:(创建新目录只是为了便于区分,并非必须)oraclepri dbs$ cd /u01/app/oracle/oradata/oraclepri oradata$ lsprioraclepri oradata$ mkdir standbylogoraclepri oradata$ lspri standbylog新建4个日志组作为standby redolog日志组,大小与原来的日志组一致:由于已经存在group1-3,,所以group号只能从4开始SYSpri alter database add standby logfile group 4 2 /u01/app/oracle/oradata/standbylog/std_redo04.log 3 size 50m;Database altered.SYSpri alter database add standby logfile group 5 2 /u01/app/oracle/oradata/standbylog/std_redo05.log 3 size 50m;Database altered.SYSpri alter database add standby logfile group 6 2 /u01/app/oracle/oradata/standbylog/std_redo06.log 3 size 50m;Database altered.SYSpri alter database add standby logfile group7 2 /u01/app/oracle/oradata/standbylog/std_redo07.log 3 size 50m;Database altered.查看standby 日志组的信息:SYSpri select group#,sequence#,status, bytes/1024/1024 from v$standby_log; GROUP# SEQUENCE# STATUS BYTES/1024/1024- - - - 4 0 UNASSIGNED 50 5 0 UNASSIGNED 50 6 0 UNASSIGNED 50 7 0 UNASSIGNED 50查看当前有哪些日志组及其成员:SYSpri set pagesize 100 SYSpri col member for a60SYSpri select group#,member from v$logfile order by group#; GROUP# MEMBER - 1 /u01/app/oracle/oradata/pri/redo01.log 2 /u01/app/oracle/oradata/pri/redo02.log 3 /u01/app/oracle/oradata/pri/redo03.log 4 /u01/app/oracle/oradata/standbylog/std_redo04.log 5 /u01/app/oracle/oradata/standbylog/std_redo05.log 6 /u01/app/oracle/oradata/standbylog/std_redo06.log 7 /u01/app/oracle/oradata/standbylog/std_redo07.log4:修改主库的pfile参数文件(此步骤只在主库上做)查看spfile的路径:SYSpri show parameter spfile;NAME TYPE VALUE- - -spfile string /u01/app/oracle/product/11.2.0/db_1/dbs/spfilepri.ora用spfile创建一个pfile,用于修改:SYSpri create pfile from spfile; 修改主库的pfile:oraclepri $ cd $ORACLE_HOME/dbsoraclepri dbs$ vim initpri.orapri._db_cache_size=125829120pri._java_pool_size=4194304pri._large_pool_size=4194304pri._oracle_base=/u01/app/oracle#ORACLE_BASE set from environmentpri._pga_aggregate_target=146800640pri._sga_target=272629760pri._shared_io_pool_size=0pri._shared_pool_size=125829120pri._streams_pool_size=4194304*.audit_file_dest=/u01/app/oracle/admin/pri/adump*.audit_trail=db*.compatible=11.2.0.0.0*.control_files=/u01/app/oracle/oradata/pri/control01.ctl,/u01/app/oracle/fast_recovery_area/pri/control02.ctl*.db_block_size=8192*.db_domain=*.db_name=priDG主库和备库的db_name必须一致,db_unique_name不一致*.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=priXDB)*.memory_target=419430400*.open_cursors=300*.processes=150*.remote_login_passwordfile=EXCLUSIVE*.undo_tablespace=UNDOTBS1下面几行是需要手动添加的:*.db_unique_name=pri*.log_archive_config=dg_config=(pri,std)*.log_archive_dest_1=location=/u01/app/arch/pri valid_for=(all_logfiles,all_roles) db_unique_name=pri*.log_archive_dest_2=service=std valid_for=(online_logfiles,primary_role) db_unique_name=std*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enable*.log_archive_max_processes=4*.fal_server=std*.fal_client=pri*.db_file_name_convert=/u01/app/oracle/oradata/std,/u01/app/oracle/oradata/pri*.log_file_name_convert=/u01/app/oracle/oradata/std,/u01/app/oracle/oradata/pri*.standby_file_management=auto修改完毕,保存退出手工创建/u01/app/arch/pri:oraclepri dbs$ mkdir /u01/app/arch/pri -pvmkdir: created directory /u01/app/archmkdir: created directory /u01/app/arch/pri5:用修改过的pfile重新创建一个spfile,用于启动数据库(此步骤只在主库上做)关闭数据库:SYSpri shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SYSpri create spfile from pfile;此时把数据库改为归档模式:(如果当初建库时选择了启用归档,则此步骤忽略)由于当前数据库已关闭,首先需要把数据库启动到mount状态SYSpri startup mount;ORACLE instance started.Database mounted.SYSpri alter database archivelog;启用归档模式Database altered.SYSpri alter database open;OPEN数据库Database altered.SYSpri archive log list;查看是否启用归档模式Database log mode Archive ModeAutomatic archival EnabledArchive destination /u01/app/arch/priOldest online log sequence 6Next log sequence to archive 8Current log sequence 8如上,归档路径已经改为/u01/app/arch/pri,证明对pfile的修改已生效查看当前数据库是否使用spfile启动:SYSpri show parameter spfile;NAME TYPE VALUE- - -spfile string /u01/app/oracle/product/11.2.0/db_1/dbs/spfilepri.ora如上,若能看到spfile的路径,则证明数据库是使用spfile启动的,若没有值,则说明是用pfile启动的。确认数据库已经启用归档模式和强制日志模式:SYSpri select name,log_mode,force_logging from v$database;NAME LOG_MODE FOR- - -PRI ARCHIVELOG YES5:对主库进行RMAN全备创建备份所需的目录并赋予相应权限:(主库和备库端都要创建)rootpri # mkdir /rman_backuprootpri # chown oracle.oinstall /rman_backup/rootstd # mkdir /rman_backuprootstd # chown oracle.oinstall /rman_backup/以oracle用户身份登录,进行备份操作:(只在主库上做)rootpri # su - oracleoraclepri $ rman target /RMAN backup database format /rman_backup/Full_%T_%U.bak;备份数据库Starting backup at 14-JAN-14using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=41 device type=DISKchannel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/pri/system01.dbfinput datafile file number=00002 name=/u01/app/oracle/oradata/pri/sysaux01.dbfinput datafile file number=00005 name=/u01/app/oracle/oradata/pri/example01.dbfinput datafile file number=00003 name=/u01/app/oracle/oradata/pri/undotbs01.dbfinput datafile file number=00004 name=/u01/app/oracle/oradata/pri/users01.dbfchannel ORA_DISK_1: starting piece 1 at 14-JAN-14channel ORA_DISK_1: finished piece 1 at 14-JAN-14piece handle=/rman_backup/Full_20140114_01ou2791_1_1.bak tag=TAG20140114T143721 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:45channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 14-JAN-14channel ORA_DISK_1: finished piece 1 at 14-JAN-14piece handle=/rman_backup/Full_20140114_02ou27ae_1_1.bak tag=TAG20140114T143721 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 14-JAN-14RMAN list archivelog all;查看当前的归档日志有哪些List of Archived Log Copies for database with db_unique_name PRI=Key Thrd Seq S Low Time - - - - -1 1 6 A 13-JAN-14 Name: /u01/app/arch/pri/1_6_836760649.dbf2 1 7 A 14-JAN-14 Name: /u01/app/arch/pri/1_7_836760649.dbfRMAN backup archivelog all format/rman_backup/ARC_%T_%U.bak;备份归档日志Starting backup at 14-JAN-14current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=6 RECID=1 STAMP=836835599input archived log thread=1 sequence=7 RECID=2 STAMP=836835600input archived log thread=1 sequence=8 RECID=3 STAMP=836836802channel ORA_DISK_1: starting piece 1 at 14-JAN-14channel ORA_DISK_1: finished piece 1 at 14-JAN-14piece handle=/rman_backup/ARC_20140114_03ou27e3_1_1.bak tag=TAG20140114T144002 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 14-JAN-14RMAN backup current controlfile for standby format/rman_backup/std_con.ctl;备份standby控制文件并命名为std_con.ctlStarting backup at 14-JAN-14using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding standby control file in backup setchannel ORA_DISK_1: starting piece 1 at 14-JAN-14channel ORA_DISK_1: finished piece 1 at 14-JAN-14piece handle=/rman_backup/std_con.ctl tag=TAG20140114T144036 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 14-JAN-14RMAN list backup;查看都有哪些备份List of Backup Sets=BS Key Type LV Size Device Type Elapsed Time Completion Time- - - - - - -1 Full 1.04G DISK 00:00:35 14-JAN-14 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20140114T143721 Piece Name: /rman_backup/Full_20140114_01ou2791_1_1.bak List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time Name - - - - - - 1 Full 1064545 14-JAN-14 /u01/app/oracle/oradata/pri/system01.dbf 2 Full 1064545 14-JAN-14 /u01/app/oracle/oradata/pri/sysaux01.dbf 3 Full 1064545 14-JAN-14 /u01/app/oracle/oradata/pri/undotbs01.dbf 4 Full 1064545 14-JAN-14 /u01/app/oracle/oradata/pri/users01.dbf 5 Full 1064545 14-JAN-14 /u01/app/oracle/oradata/pri/example01.dbfBS Key Type LV Size Device Type Elapsed Time Completion Time- - - - - - -2 Full 9.36M DISK 00:00:01 14-JAN-14 BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20140114T143721 Piece Name: /rman_backup/Full_20140114_02ou27ae_1_1.bak SPFILE Included: Modification time: 14-JAN-14 SPFILE db_unique_name: PRI Control File Included: Ckp SCN: 1064580 Ckp time: 14-JAN-14BS Key Size Device Type Elapsed Time Completion Time- - - - -3 16.06M DISK 00:00:00 14-JAN-14 BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20140114T144002 Piece Name: /rman_backup/ARC_20140114_03ou27e3_1_1.bak List of Archived Logs in backup set 3 Thrd Seq Low SCN Low Time Next SCN Next Time - - - - - - 1 6 1051084 13-JAN-14 1062515 14-JAN-14 1 7 1062515 14-JAN-14 1062557 14-JAN-14 1 8 1062557 14-JAN-14 1064725 14-JAN-14BS Key Type LV Size Device Type Elapsed Time Completion Time- - - - - - -4 Full 9.33M DISK 00:00:02 14-JAN-14 BP Key: 4 Status: AVAILABLE Compressed: NO Tag: TAG20140114T144036 Piece Name: /rman_backup/std_con.ctl Standby Control File Included: Ckp SCN: 1064792 Ckp time: 14-JAN-14RMANquit6:修改监听文件,添加静态监听(主库、备库都要做)主库:oraclepri $ cd $ORACLE_HOME/network/adminoraclepri admin$ vim listener.ora 添加如下内容:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = pri) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = pri) ) )主库修改后最终效果如下图:备库:oraclepri $ cd $ORACLE_HOME/network/adminoraclepri admin$ vim listener.ora 添加如下内容:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = std) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = std) ) )备库修改后最终效果如下图:使新增加的监听生效:(主库和备库端都要做)oraclepri admin$ lsnrctl stoporaclepri admin$ lsnrctl start 确认新增加的静态监听有效:主库:oraclepri $ lsnrctl status.(N行省略)Service pri has 2 instance(s). Instance pri, status UNKNOWN, has 1 handler(s) for this service. Instance pri, status READY, has 1 handler(s) for this service.Service priXDB has 1 instance(s). Instance pri, status READY, has 1 handler(s) for this service.The command completed successfully备库:oraclestd $ lsnrctl status.(N行省略)Service std has 1 instance(s). Instance std, status UNKNOWN, has 1 handler(s) for this service.The command completed successfully如上,静态监听添加成功7:编辑网络服务名配置文件tnsnames.ora(主库和备库端都要做)oraclepri admin$ cd $ORACLE_HOME/network/adminoraclepri admin$ pwd/u01/app/oracle/product/11.2.0/db_1/network/adminoraclepri admin$ lslistener.ora samples shrept.lst tnsnames.oraoraclepri admin$ vim tnsnames.ora编辑结果如下图:保证主库和备库的tnsnames.ora文件中的内容完全相同,可以把修改后的文件直接传给备库。oraclepri admin$ scp tnsnames.ora 192.168.1.102:$ORACLE_HOME/network/admintnsnames.ora 100% 925 0.9KB/s 00:00 配置完后,确保在任意一端上都能tnsping通对方:oraclepri admin$ tnsping stdoraclestd admin$ tnsping pri8:在备库上恢复主库之前的准备工作(主库和备库端分别有各自的操作,仔细看)首先把主库的pfile参数文件拷贝到/rman_backup/目录中去,并重命名:oraclepri dbs$ cd $ORACLE_HOME/dbsoraclepri dbs$ cp initpri.ora /rman_backup/initstd.ora oraclepri dbs$ cd /rman_backup/ oraclepri rman_backup$ ll -htotal 1.1G-rw-r- 1 oracle oinstall 17M Jan 14 14:40 ARC_20140114_03ou27e3_1_1.bak-rw-r- 1 oracle oinstall 1.1G Jan 14 14:37 Full_20140114_01ou2791_1_1.bak-rw-r- 1 oracle oinstall 9.4M Jan 14 14:38 Full_20140114_02ou27ae_1_1.bak-rw-r-r- 1 oracle oinstall 1.5K Jan 14 15:22 initstd.ora-rw-r- 1 oracle oinstall 9.4M Jan 14 14:40 std_con.ctl然后把主库上的这些备份的文件拷贝到备库上的对应目录中去:oraclepri rman_backup$ scp * 192.168.1.102:/rman_backup/oracle192.168.1.102s password: ARC_20140114_03ou27e3_1_1.bak 100% 16MB 16.1MB/s 00:00 Full_20140114_01ou2791_1_1.bak 100% 1070MB 41.1MB/s 00:26 Full_20140114_02ou27ae_1_1.bak 100% 9600KB 9.4MB/s 00:00 initstd.or
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!