OS: 都是 [root@java3 ~]# uname -a
Linux java3 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
主库: 数据库版本:11.2.0.3.0 两个节点的RAC 节点一:192.168.15.26 节点二:192.168.15.27
standby 数据库版本: 11.2.0.3.0 IP 192.168.15.9
备库 只安装了数据库软件 没有建库
具体步骤:
一:在192.168.15.9 这台服务器上安装数据库软件,不多介绍。
二:修改主库参数
参数 可以11g官方手册 book list --DAT--Data Guard Concepts and Administration--3.1 Preparing the Primary Database for Standby Database Creation--3.1.4 中的例子中看到要在主库参数文件里面应该有的的参数(如果没有要添加),如下所示:
DB_NAME=chicago #主库的数据库名
DB_UNIQUE_NAME=chicago #主库的数据库名备库 也有属于自己的唯一数据库名
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)' #注意括号里主备库的位置
CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl' #这个参数主库不需要改,备库要改成自己存在的路径 LOG_ARCHIVE_DEST_1= #这个参数是制定本地(主库)归档日志文件的位置
'LOCATION=/arch1/chicago/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=chicago' # 这里是备库的数据库唯一名
LOG_ARCHIVE_DEST_2= #这个参数是说是作为主库的这一方要传递联机在线日志到数据库唯一名为boston的备库。
'SERVICE=boston ASYNC #异步传输
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=boston' #此处填写备库数据库名,
LOG_ARCHIVE_DEST_STATE_1=ENABLE #开启传输日志的服务
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE #远程登录口令文件用于验证管理用户或重做传输会话时,必须设置成exclusive或shared
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc #设置归档日志文件的格式
FAL_SERVER=boston #此处是填写备库的数据库名,该参数只是作为standby数据库时才有用,意思是说备库把这里指定的主库的数据库名作为服务器端,并获取请求。针对这个参数,如果不打算主备库转换,没必要在主库设该参数。
DB_FILE_NAME_CONVERT= '/backup/','+data/jlprojct/datafile/' #该参数是个静态参数,其作用是在主库执行duplicate时的recovere过程根据主库的数据文件位置转换成这里指定的备库合适的位置,经测试是根据备库的这个参数转变,和主库没有关系,也就是说在主库执行duplicate会根据备库的这个参数指定的位置在备库产生数据文件。如果你在主库添加一个新的数据文件,你必须在备库相应位置建立相应的数据文件。
LOG_FILE_NAME_CONVERT= #类似于上一个参数,注意修改这个参数时,如果你的主库的日志文件有若干个不同路径,你都要写进来,
'/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/'
STANDBY_FILE_MANAGEMENT=AUTO #这个参数是说当你设置成auto后,你在主库添加或删除数据文件,会自动在备库做相应的操作,要注意不要覆写已经存在的数据文件。别起一样的名。
如果要求主数据库不能停机(也就是不能重启的话),那么你可以通过以下这些命令修改主库的参数。修改完之后create pfile.ora ='/backup/pfile.ora from spfile='/Oracle/product/11.2.3/dbs/initJLPROJCT1.ora';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='location=+arch/jlprojct/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JLPROJCT';
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=JLPROJCT3 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JLPROJCT3';
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=spfile;
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=spfile;
System altered.
SQL> ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile; #静态参数,不重启,不起作用 ,所以不让重启可以不改它。
System altered.
SQL> ALTER SYSTEM SET FAL_CLIENT = JLPROJCT SCOPE=SPFILE; # fal_client也是设置本身,fal_server是对方
System altered.
SQL> ALTER SYSTEM SET FAL_SERVER = JLPROJCT3 SCOPE=SPFILE;
System altered.
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=SPFILE;
System altered.