10g-dataguard双机安装
- 格式:doc
- 大小:57.50 KB
- 文档页数:6
ORACLE10G DATAGUARD PHYISCAL STANDBY配置指导修订记录目录1、部署环境: (4)2、准备工作 (4)3、正式开始配置 (5)3.1 设置主数据库为 force logging 模式 (5)3.2 设置主数据库为归档模式 (5)3.3 数据文件拷贝 (5)3.31、拷贝主库的数据文件到备库中 (5)3.32、创建从库的控制文件 (6)3.33 从库创建admin 目录 (6)3.34 在从库上创建密码文件 (6)3.35 创建从库flash_recovery_area 目录 (7)3.4修改spfile 文件 (7)3.41、创建pfile 文件 (7)3.42、创建spfile 文件 (9)3.5创建备机redo日志 (10)3.6配置网络,修改listener.ora ,tnsnames.ora (10)3.61 配置 (10)3.62 测试网络配置 (14)3.7启动主备服务 (14)3.71 主库 (15)3.72 备库 (15)3.73 测试归档 (15)4、日常维护 (16)4.1 正确打开主库和备库 (16)4.2 正确关闭顺序 (16)4.3 备库Read-only模式打开 (16)4.4 日志传输状态监控 (17)4.5 备库归档目录维护 (17)5、主库正常切换 (18)5.1人工干预正常切换 (18)5.2 通过运行脚本实现主库正常切换 (19)6、主库灾难切换 (19)6.1 人工干预主库灾难切换 (19)6.2通过运行脚本实现主库灾难切换 (20)1、部署环境:Oracle 10G DataGuard主库:HOSTNAME: primary IP: 139.0.0.31 SID=ccpbs备库:HOSTNAME: standby IP: 139.0.0.32 SID=ccpbsoracle version:10.2.0.1OS platform : OEL5.4VMware 运行主备虚拟机Data Guard 默认是 maximize performance,可以用以下语句来进行模式间的切换。
Linux上实现oracle双机实时备份DataGuard更改机器名Hostname 机器名(自己启,两台机器不能一样,建议用dataguard1和dataguard2) vi /etc/sysconfig/network 文件里面的hostname 然后vi /etc/hosts 添加本地hosts安装数据库在RHEL5下安装oracle 10g1、添加组和用户# /usr/sbin/groupadd oinstall# /usr/sbin/groupadd dba# /usr/sbin/useradd -g oinstall -G dba oracle# passwd oracle2、添加以下内容到/etc/sysctl.confkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default = 1048576net.core.rmem_max = 1048576net.core.wmem_default = 262144net.core.wmem_max = 2621443、添加以下内容到/etc/security/limits.conforacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 655364、添加以下内容到/etc/pam.d/loginsession required /lib/security/pam_limits.sosession required pam_limits.so5、添加以下内容到/etc/profileif [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi6、创建安装目录# mkdir -p /u01/app/oracle# chown -R oracle:oinstall /u01/app/oracle# chmod -R 775 /u01/app/oracle7、修改oracle环境变量,首先进入oracle用户模式,vi ~/.bash_profile ,在里面加入以下内容export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1export ORACLE_SID=DB99export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/libexport LC_CTYPE=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LANG=AMERICAN_AMERICA.ZHS16GBKexport LC_ALL=C8、安装数据库# gunzip 10201_database_linux_x86_64.cpio.gz (64位)# cpio -idmv < 10201_database_linux_x86_64.cpio# vi database/install/oraparam.ini[Certified Versions]Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asi anux-2]再添加:[Linux-redhat-5.0-optional]TEMP_SPACE=80SWAP_SPACE=150MIN_DISPLAY_COLORS=256vi /etc/sysconfig/vncservers添加VNCSERVERS="1:oracle"VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost" 使用oracle用户(su –oracle)启动vnc服务(vncserver) 将.vnc/.xstart中的twm &改成gnome-session &,然后用vnc viewer连接服务器运行database 目录下的runinstaller 第一个界面选择Advanced Installation 第三个界面需要在语言选项中添加中文支持在提示是否创建新库时,选择install database software only 安装结束时注意安装程序会提示用root用户执行下面两条命令: /u01/app/oracle/oraInventory/orainstRoot.sh/u01/app/oracle/product/10.2.0/db_1/root.sh 主数据库(简称dbtest1)备用数据库(简称dbtest2) 在dbtest1上安装数据库环境并创建数据库(数据库sid为DB99,安装目录为/u01/app/) 在dbtest2上只安装数据库环境,不创建数据库。
Oracle 10g RAC for AIX6.1硬件环境:2台IBM P520 服务器,2台光纤交换机,1台IBM DS4700磁盘阵列(1.2TB)软件环境: Oracle 10g R2 (需升级到10.2.0.4), AIX6.11.IP规划:racdb1 公网:172.16.28.31VIP:172.16.28.33心跳: 192.168.100.1racdb2 公网: 172.16.28.32VIP: 172.16.28.34心跳:192.168.100.22.需要的软件包:bos.adt.libbos.adt.libmbos.perf.libperfstatbos.perf.perfstatbos.perf.proctoolsxlC.aix61.rte:9.0.0.1xlC.rte:9.0.0.1通过lslpp -l bos.adt.base 查看软件包是否已安装# lslpp -l bos.adt.baseFileset Level State Description---------------------------------------------------------------------------- Path: /usr/lib/objreposbos.adt.base 6.1.3.0 COMMITTED Base Application Development Toolkit需要的补丁:由于此次项目的系统是最新的AIX6.1,无法在网上确切查询到所需要的正确补丁,所以在安装过程中遇到很多问题,最终安装了p6613550_10203_AIX64-5L、p8705958_10204_AIX5L(CRS PSU补丁,解决升级后VIP起不来BUG)3.通过命令“# chfs -a size=30G /”调整文件系统,结果如下:# df -gFilesystem GB blocks Free %Used Iused %Iused Mounted on/dev/hd4 30.00 29.79 1% 13717 1% //dev/hd2 10.00 8.03 20% 45904 3% /usr/dev/hd9var 10.00 9.76 3% 7296 1% /var/dev/hd3 8.00 7.67 5% 608 1% /tmp/dev/fwdump 5.00 5.00 1% 4 1% /var/adm/ras/platform /dev/hd1 30.00 11.28 63% 53931 2% /home/dev/hd11admin 2.00 2.00 1% 5 1% /admin/proc - - - - - /proc/dev/hd10opt 10.00 9.54 5% 9610 1% /opt/dev/livedump 5.00 5.00 1% 4 1% /var/adm/ras/livedump /dev/lv00 0.25 0.24 4% 18 1% /var/adm/csd/dev/fslv00 0.25 0.25 1% 8 1% /audit4.在2个节点上分别建立oinstall、dba、hagsuser组,Oracle用户,并保持组ID和用户ID相同# smitty group# smitty user:Primary GROUP 为“oinstall”,Group SET 为“dba”和“hagsuser”改为“-1”(无限制)5.编辑/etc/hosts文件,添加以下内容:172.16.28.31 racdb1192.168.100.1 racdb1-priv172.16.28.33 racdb1-vip172.16.28.32 racdb2192.168.100.2 racdb2-priv172.16.28.34 racdb2-vip6.配置系统参数,配置每用户的最大进程数,调整water mark# smitty chgsys7.存储划分asm 400G hdisk4vote 2G hdisk5ocr 2G hdisk6arch 200G hdisk7# lspvhdisk0 00cbc154bde9ce42 rootvg active hdisk1 00cbc1a4cb987b44 rootvg active hdisk2 none Nonehdisk3 none Nonehdisk4 none Nonehdisk5 none Nonehdisk6 none Nonehdisk7 none None# cd /dev# chown root:oinstall hdisk6# chown oracle:oinstall hdisk4 hdisk5# chmod 664 hdisk4 hdisk5 hdisk6# chown root:oinstall rhdisk6# chown oracle:oinstall rhdisk4 rhdisk5# chmod 664 rhdisk4 rhdisk5 rhdisk68.配置.rhosts文件,用于节点间的通信认证和加密# cd /home/oracle# mkdir .rhosts# vi .rhostsracdb1 oracleracdb2 oracleracdb1-priv oracleracdb2-priv oracleracdb1-vip oracleracdb2-vip oracle9.配置NTP服务,用于2个节点的时间同步用date命令调整时间至1000秒以内,如果2个节点时间相差多于1000秒,NTP服务会失败如date 0508013030 表示 5月8日1点30分30秒racdb1# vi /etc/ntp.confbroadcastclientserver 127.127.1.0 (添加)driftfile /etc/ntp.drifttracefile /etc/ntp.trace# startsrc -s xntpdracdb2# vi/etc/ntp.confbroadcastclientserver 172.16.28.31 (添加)driftfile /etc/ntp.drifttracefile /etc/ntp.trace# startsrc -s xntpd10.配置环境变量# cd /home/oracle# vi .profileORACLE_BASE=/home/oracleexport ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/racdbexport ORACLE_HOMEORACLE_CRS_HOME=$ORACLE_BASE/product/10.2.0.1/crsexport ORACLE_CRS_HOMEORACLE_SID=rac1export ORACLE_SIDORACLE_TERM=xtermexport ORACLE_TERMNLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport NLS_LANGLD_LIBRARY_PATH=$ORACLE_CRS_HOME/lib:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/l ibexport LD_LIBRARY_PATHPATH=$PATH:$ORACLE_HOME/bin:$ORACLE_CRS_HOME/bin:/usr/bin:/etc:/usr/sbin:/usr/uc b:$HOME/bin:/usr/bin/X11:/sbin:.export PATH11.打补丁p6718715_10203_AIX64-5L.zip,然后以root用户执行补丁6718715里面的rootpre.sh文件;再用oracle用户执行CRS安装程序./runInstaller点击Next点击Next选择CRS安装的目录/home/oracle/product/10.2.0.1/crs,点击Nextoracle进行系统参数检查无问题,点击Next添加Cluster中两个节点及相关的公网、私网、VIP网络名称,点击Next选择ocr文件的位置为/dev/hdisk6,点击Next选择voting disk的位置为/dev/hdisk5,点击Next执行安装至完成。
AIX+Hacmp双机热备oracle10g安装环境说明系统部署:Unix AIX 6.1版本+HACMP 5.4版本+ORACLE 10g双机热备的方式是Oracle程序安装在各自的主机上,只把数据库实例安装的共享存储上双机热备原理:通过Hacmp实现双机热备,a、b两台小机中,同一时刻只有一台机器对外提供服务,另一台机器处于待命状态。
A为主机,b为备机,正常情况下是a机对外提供服务,当a机发生故障无法提供服务时,b机会自动接管,将系统和oracle服务切换到b机上。
这个自动切换的过程大概需要3分钟的样子。
当a机故障修改之后,启动a机上的hacmp,这时系统又会自动从备机b上自动切换回主机a上。
小机a、b都有各自的IP地址,不管是a在提供服务,还是b在提供服务,他们对外提供的服务IP地址是不变的,即客户端在连接的时候,不会因为两台小机之间的切换而需要改变配置。
Oracle实例安装步骤1、安装前的准备1.1 修改root用户下的fsize资源限制:# vi /etc/security/limitsroot:fsize = -11.2 修改用户允许的最大进程数:# smit chgsys1.3 修改root用户在命令行中使用backspace键:# cd# vi .profilesmit erase ^![注] ^! 代表backspace键。
1.4 在每个节点上检查网络配置1.5 编辑hosts文件,把主备节点相应的主机名和IP写入1.6在每个节点上建立dba,hagsuser,oinstall组和oracle用户建立用户组:dba用户组:其中:hagsuser组ID:502oinstall组ID:503[注]可以通过命令smit或smitty操作。
1.7 建立oracle用户:oracle用户:[注]oracle的primary group为dba,Group Set为hagsuser和oinstall。
运行解压缩出的 Oracle 10g 安装程序。
打开oracle10g的安装目录,找到setup.exe,双击即可进入安装状态。
出现安装初始界面。
选择高级安装,并按下一步按钮根据你的需求进行选择安装,这里我们选择标准版,并按下一步按钮指定主目录的目标名称与目标路径(一般无需更改),并按下一步按钮产品特定的先决条件检查通过(如果总体结果不是“通过”,请检查您的先决配置),按下一步按钮如果不是通过,如遇到网络配置需求未执行问题,解决如下:错误:正在检查网络配置需求...检查完成。
此次检查的总体结果为: 未执行 <<<<建议案: orcle支持在具有 DHCP 分配的 IP 地址的系统上进行安装。
但在安装之前,必须将 Microsoft LoopBack Adapter 配置为系统的主网络适配器。
有关在配置有 DHCP 的系统上安装软件的详细信息, 请参阅 Installation Guide。
===================================================================== ==解决办法:1、检查计算机名是否为英文,如果不是改成英文的再试一次。
2、尝试了上面的方法后,还是不行再进行这步操作控制面板->添加硬件->是,我也经连接了此硬件->添加新硬件设备->安装我手动列表选择硬件(高级)->网络适配器->厂商:Microsoft 网卡:Microsoft Loopback Adapter 然后就行了。
操作之后你会发现你的网上邻居里面又两个网络连接。
选择新建立的那个网络连接,随便为它配个IP地址就行了。
选择创建数据库,并按下一步按钮选择一般用途,并按下一步按钮填写全局数据库名:对于未使用目录服务(如 Active Directory)的独立服务器,全局数据库名不必包含域名后缀(默认为 orcl)对于使用了目录服务(如 Active Directory)的域服务器,全局数据库名需要包含域名后缀(如 )上述要求设置妥当后,按下一步按钮按下一步按钮指定数据库存储选项(使用默认选项文件系统即可),按下一步按钮指定备份和恢复选项(使用默认选项不启用自动备份即可),按下一步按钮为简化评估用数据库的密码设定,选择所有的帐户都使用同一个口令,输入 SYSTEM 等用户的口令(口令不要以数字开头),并按下一步按钮这是安装配置后的摘要信息,按安装按钮开始安装经过数分钟的文件安装过程之后,开始执行数据库配置助手数据库创建完毕,按确定按钮配置助手运行完毕安装结束,按退出按钮完成!按是按钮,退出安装程序三、测试安装是否成功要测试数据安装是否成功,可按顺序执行以下两个步骤:测试步骤1:请执行操作系统级的命令:tnsping orcl上述命令假定全局数据库名是 orcl。
主库配置standby redolog(最佳性能模式可以忽略,如果将来变成备库且要转换为其它两种模式则要建立)alter database add standby logfilegroup 4 ('/home/oracle/app/oradata/dg/standby_redo04.log ') size 50m,group 5 ('/home/oracle/app/oradata/dg/standby_redo05.log ') size 50m,group 6 ('/home/oracle/app/oradata/dg/standby_redo06.log ') size 50m,group 7 ('/home/oracle/app/oradata/dg/standby_redo07.log ') size 50m;standby redolog 的数据参考公式:(online redolog 数组+1)*数据库线程数;单机线程数为1,rac线程数为2;standby redolog 的数据成员数和大小也尽量和online redolog 一样。
查询onlone redolog日志大小select bytes/1024/1024 from v$log where rownum<2;设置主库初始化参数create pfile='/home/oracle/app/oracle/product/10.2.0/db_1/dbs/initdb1.ora' from spfile;(备份参数文件)alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2)' SCOPE=SPFILE;(启动db接受或发送redo data,包括所有库的db_unique_name)alter system set LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/app/archivelog V ALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1' SCOPE=SPFILE; (主库归档目的地)alter system set LOG_ARCHIVE_DEST_2='SERVICE=db_dataguard2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg2' scop e=spfile;(当该库充当主库角色时,设置物理备库redo data 的传输目的地)alter system set LOG_ARCHIVE_MAX_PROCESSES=5 SCOPE=SPFILE;(最大ARCn 归档进程)alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE SCOPE=SPFILE;(允许redo传输服务传输数据到目的地,默认是enable)alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=SPFILE;(同上)alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE; (exclusive or shared,所有库sys密码要一致,默认是exclusive)alter system set FAL_SERVER=dataguard2 scope=spfile;(配置网路服务名,假如转换为备库角色时,从这里获取丢失的归档文件)alter system set FAL_CLIENT=dataguard1 scope=spfile;(配置网络服务名,fal_server拷贝丢失的归档文件到这里)alter system set db_file_name_convert='dg2', 'dg1' scope=spfile;(前为切换后的主库路径,后为切换后的备库路径,如果主备库目录结构完全一样,则无需设定)alter system set log_file_name_convert='dg2', 'dg1' scope=spfile;(同上,这两个名字转换参数是主备库的路径映射关系,可能是路径全名,看情况而定)alter system set STANDBY_FILE_MANAGEMENT=auto scope=spfile;(auto 后当主库的datafiles 增删时备库也同样自动操作,且会把日志传送到备库standby_archive_dest 参数指定的目录下,确保该目录存在,如果你的存储采用文件系统没有问题,但是如果采用了裸设备,你就必须将该参数设置为manual)alter system set standby_archive_dest='LOCATION=/home/oracle/app/archivelog' SCO PE=SPFILE;(一般和log_archive_dest_1的位置一样,如果备库采用arch传输方式,那么主库会把归档日志传到该目录下)有了以上参数设置,则无论该库充当主库角色还是备库角色都无需在修改了。
oracle10g数据库安装ORACLE10G数据库的安装注意:此教程分为四部分,第一部分教你安装数据库,比较简单。
第二部分教你如何在安装好的数据库上创建新的数据库,过程比较复杂,请认真完成,掌握每一步操作的实际内涵。
第三部分教你创建一个数据库监听器和oracle服务的管理。
第四部分教你使用数据库管理工具SQLDeveloper连接数据库。
第一部分:安装数据库单击“开始安装”,就可以安装ORACLE10g,一般会检查系统配置是否符合要求,然后出现“OracleDataBae10g安装”对话框,如下图所示:在安装OracleDataBae10g时可以选择“基本安装”和“高级安装”两种方法。
选择“基本安装”时,“Oracle主目录位置”用于指定OracleDataBae10g软件的存放位置;“安装类型”用于指定Oracle产品的安装类型(企业版、标准版和个人版)。
如果选择“创建启动数据库”,那就要指定全局数据库名称和数据库用户的口令。
注意我们不选择创建数据库:然后一直默认点击下一步,下一步,最后就安装完成了。
注意:如果对ORACLE比较熟悉的同学可以选择高级安装。
但是在安装的时候建议不添加数据库,建议在安装完成后再创建数据库。
第二部分:创建数据库(一些基本概念:数据库名(databaename):就是数据库的名称标识,如myOracle,这种叫法一般只适用于单机;全局数据库名(globaldatabaename):就是数据库处于一个网络中的名称标识。
比如数据库宿主机的域为mydomain,则数据库的全局数据库名为myOracle.mydomain;实际上myOracle和myOracle.mydomain两者指的是同一个数据库.即:全局数据库名=数据库名+"."+网络位置(宿主机所在的域)SID=Oracle实例SID是Oracle实例的唯一名称标识,用户去访问数据库,实际上是向某一个Oracle实例发送请求,oracle实例负责向数据库获取数据。
创建物理DataGuard步骤一基本概念Data Guard 是一个集合,由一个primary 数据库(生产数据库)及一个或多个standby 数据库(最多9 个)组成。
组成Data Guard 的数据库通过Oracle Net 连接,并且有可能分布于不同地域。
只要各库之间可以相互通信,它们的物理位置并没有什么限制,至于操作系统就更无所谓了(某些情况下),只要支持oracle 就行了。
你既可以通过命令行方式管理primary 数据库或standby 数据库,也可以通过Data Guard broker 提供的专用命令行界面(DGMGRL),或者通过OEM 图形化界面管理。
1.Primary数据库前面提到,Data Guard 包含一个primary 数据库即被大部分应用访问的生产数据库,该库即可以是单实例数据库,也可以是RAC。
2.Standby数据库Standby 数据库是primary 数据库的复制(事务上一致)。
在同一个Data Guard 中你可以最多创建9 个standby数据库。
一旦创建完成,Data Guard 通过应用primary 数据库的redo 自动维护每一个standby 数据库。
Standby数据库同样即可以是单实例数据库,也可以是RAC 结构。
关于standby 数据库,通常分两类:逻辑standby 和物理standby,如何区分,两类各有什么特点。
逻辑standby就像你请人帮你素描画像,基本器官是都会有的,这点你放心,但是各器官位置啦大小啦肤色啦就不一定跟你本人一致了。
物理standby就像拿相机拍照,你长什么样出来的照片就是什么样,眼睛绝对在鼻子上头。
或者说就像你去照镜子,里外都是你,哇哈哈。
具体到数据库就是不仅文件的物理结构相同,甚至连块在磁盘上的存储位置都是一模一样的(默认情况下)。
二、物理datagurad创建步骤开始之前先要保证下面两个条件1、确保主从数据的操作系统,硬件配置一致2、主从数据上安装的oracle软件版本一致,补丁版本一致,从数据库服务器上不要建立数据库。
Oracle数据库异地容灾方案介绍2008年11月目录第一章需求分析........................................ 错误!未定义书签。
序言.............................................. 错误!未定义书签。
用户现状.......................................... 错误!未定义书签。
系统平台...................................... 错误!未定义书签。
数据库平台.................................... 错误!未定义书签。
用户需求.......................................... 错误!未定义书签。
日常功能...................................... 错误!未定义书签。
故障切换...................................... 错误!未定义书签。
基本要求...................................... 错误!未定义书签。
性能要求...................................... 错误!未定义书签。
数据一致性.................................... 错误!未定义书签。
系统兼容性.................................... 错误!未定义书签。
高可用性...................................... 错误!未定义书签。
健壮性要求.................................... 错误!未定义书签。
设备无关性.................................... 错误!未定义书签。
10g-dataguard配置前言:oracle -dg 在数据库容灾有着举足轻重的地位。
特别是对一些小投入的容灾。
现在容灾的技术的很多。
就不跑题了。
今天就只介绍一下10g的一个安装配置例子。
配置了好几次。
这次感觉收获做大。
把自己仅仅懂的一点东西贡献大家。
希望能给初学的提供点帮助。
错误的地方请指正。
第一次配置请读几次文档再去配置。
说明:配置模式:双机(可以单机)物理(可以逻辑)最大性能模式(默认模式,有三种模式。
一最大保护模式。
二:最大可用模式。
三:最大性能模式)。
单机配置数据库名不能一样,目录也不能一样,在后面配置可能跟双机有一些区别。
这里只讲述双机。
1.配置准备:硬件:两台机器。
512m内存以上。
网络:通内网数据库:10g 版本号最好完全一样。
2.安装设置主数据库。
数据库名:testdb实例名:testdb安装路径:oracle_home,oracle_base (为了方便。
两台数据库要一样。
因为不想做路径转换。
如果一样要转换)。
如果不清楚oracle_home,oracle_base含义的请网上查询他意义。
这个不再讲述。
Tnsname: dbstandby(保证相互的tns是通的tnsping dbstandby)Listener: port 1521安装设置备数据库数据库名:testdb实例名:testdb安装路径:oracle_home,oracle_base (为了方便。
两台数据库要一样。
如果不一样要转换)。
如果不清楚oracle_home,oracle_base含义的请网上查询他意义。
这个不再讲述。
Tnsname: dbprimary (两台数据库除了这个不一样其他完全一样)。
(保证相互的tns是通的tnsping dbstandby)Listener: port 1521在主数据库的操作步骤:(以下操作都在主数据库上操作)1.在数据库mount状态下更改数据库成归档模式sql>alter database archivelog;2.在数据库打开的状态更该主数据库为强制日志模式。
Sql> alter database force logging;3.生成一个pfile文本文件用来做主数据库pfile文件修改母本。
create pfile='路径/testdb.ora' from spfile;4.编辑pfile文件testdb.ora。
添加如下参数。
4.1db_unique_name='testdb' (唯一名可以自己随便取。
主备数据库不要一样)。
log_archive_dest_1='LOCATION=F:/oracle/archive valid_for=(all_logfiles,al_roles) db_unique_name=testdb'说明:F:/oracle/archive为主数据库归档路径.相互之间要空格。
4.2l og_archive_dest_2='SERVICE=dbstandby valid_for=(online_logfiles,primary_role) db_unique_name=stestdb'说明:dbstandby 是备库的tnsname 。
db_unique_name备库的db_unique_name。
4.2log_archive_config='dg_config=(testdb,stestdb)' 说明(test,demo 是db_unique_name) 4.3fal_server='dbprimary' 说明(dbprimary 是tnsname)(可以不设置,最好设置)4.4fal_client='dbstandby' 说明(dbstandby 是tnsname)不是实例名。
不是数据库名。
4.5standby_file_management='auto'主数据库pfile文件就只需要设置这个5个参数。
修改后保存。
实质pfile 文件前请加*. !5.关闭主数据库。
用更改过的pfile 文件启动。
5.1sql> shutdown immediatesql> Startup pfile=’$oracle_base/dbs/testdb.ora’(具体看自己的路径)5.2生成spfile 文件。
Sql> Create spfile from pfile.5.3关闭数据库用spfile启动。
再生成pfile文件为备用数据库用。
Sql>Shutdown immediate ;Sql>startupSql>create pfile=’…/stestdb.ora’ from spfile主数据库参数修改完毕。
开始为备用数据库备份文件。
用来恢复。
备份恢复的方法很多。
冷的,热的。
Rman.的。
我就说个热的。
其他的大同小异。
6.开启主数据库热备份模式。
备份。
61.Sql>alter database begin backup;6.2拷贝oradata目录下所有数据文件。
不需要日志文件。
和控制文件。
Windows下直接复制。
鼠标操作。
Linux 下Sql>host cp …/oradata/*.dbf …/backup/6.3结束热备份模式sql> alter database end backup;sql>ALTER SYSTEM ARCHIVE LOG CURRENT;切换到当前日志。
6.4生成备用数据库控制文件。
用来做备用数据库启动时候控制文件。
alter database create standby controlfile as '…../backup/control01.ctl';6.5复制密码文件到./backup目录。
如果两边数据库的sys用户密码一样就不用这个步骤了。
我一般设置成一样免得麻烦。
备份完成了主数据库操作告一段落。
以上步骤看起来很简单,一个小的错误可能7.以下步骤全部是相对备用数据库操作的:7.1关闭备用数据库。
Sql>Shutdown immediate7.2把主数据库的backup下的文件ftp到备用数据库。
7.3.把备用数据库的oradata/testdb目录下的文件删除。
复制backup下文件到oradata/testdb下.7.4.增加或者修改修改testdb.ora参数文件。
(有就修改没有增加)*.db_unique_name='stestdb'*.service_names='testdb'*.instance_name='testdb'*.control_files='F:\oracle\product\10.2.0/oradata/testdb/\control01.ctl','F:\oracle\product\ 10.2.0/oradata/testdb/\control02.ctl','F:\oracle\product\10.2.0/oradata/testdb/\control03.ct l'说明:拷贝过来只有一份请复制两份一样的改名跟以上名一样。
Control02.ctl.control03.ctl.你用一个控制文件也可以。
我喜欢用三个。
心里塌实。
*.db_unique_name='STESTDB'*.log_archive_dest_1='LOCATION=F:\oracle\archivelog valid_for=(all_logfiles,all_roles)db_unique_name=STESTDB'*.log_archive_config='dg_config=(TESTDB,STESTDB)'*.fal_server='DBPRIMARY'*.fal_client='DBSTANDBY'*.standby_file_management='auto'*.standby_archive_dest='f:\oracle\archivelog'以上参数在主数据库都有说明。
就不在说明了。
8.马上就要成功了。
现在开始最后一步骤。
启动备用数据库。
8.1用修该过的pfile文件启动到nomount.Sql>startup nomount pfile=’…./backup/testdb.ora’;8.2用备用控制文件启动到mount状态。
Sql>alter database mount standby database;8.3.启动备用数据库恢复进程。
Sql>alter database recover managed standby database disconnect from session;8.4不要忘记创建spfile文件了sql>create spfile from pfile.配置过程就算完成了。
9.检查主备数据库是否正常工作9.1检查备用数据库的standby进程。
select process,status from v$managed_standby;(应该有四个进程)ARCH CONNECTEDARCH CONNECTEDMRP0 W AIT_FOR_LOG(这个是日志恢复进程)RFS IDLE(最重要的进程)(这个是日志传送进程)这个进程经常出问题起不来。
造成的原因一般是tnsname的问题。
参数*.log_archive_config='dg_config=(TESTDB,STESTDB)' 和db_unique_name='STESTDB' 的问题。
注意检查。
查看主数据库的alert.log文件里的错误信息)9.2在主库执行日志切换查看日志是否传送。
SQL> alter system switch logfile 或ALTER SYSTEM ARCHIVE LOG CURRENT;在备库检查验证是否收到SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;验证是否新的归档Redo日志已经被应用SELECT sequence#, applied FROM v$archived_log ORDER BY sequence#;如果顺利的话。