文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Dataguard物理standby创建步骤[RMAN copy]

Dataguard物理standby创建步骤[RMAN copy]

时间:2010-05-28  来源:dbconf

平台:Oracle 10.2.0.1 on CentOS 5.1
Primary主机配置:
1、安装生产库,实例名为orcl
2、hostname为primary
3、主机已开启归档
Standby备机配置:
1、只安装软件
2、hostname为standby


Primary主机配置:

开启logging:
alter database force logging;


编辑primary参数:
使用alter system set修改[斜体部分据实际情况而定,静态参数指定scope=spfile]:
DB_UNIQUE_NAME=primary
LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/arch
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=primary'
LOG_ARCHIVE_DEST_2=
 'SERVICE=standby_net LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30

LOG_FILE_NAME_CONVERT='/arch','/archlog'

FAL_SERVER=standby_net
FAL_CLIENT=primary_net
STANDBY_FILE_MANAGEMENT=AUTO


导出primary参数文件:
create pfile='/tmp/initorcl.ora' from spfile;


创建standby控制文件:
alter database create standby controlfile as '/tmp/standby.ctl';

RMAN copy数据文件出来,并对其打包:
mkdir -p /tmp/oradata/orcl
使用RMAN拷贝数据文件:
 select 'copy datafile '||file_id ||' to '|| '''/tmp/oradata/orcl'||substr(file_name,instr(file_name,'/',-1))||'''' ||';' from dba_data_files order by 1;
在RMAN中执行以上语句执行的结果
tar -cvf oradata.tar oradata/

为了方便,拷贝文件至同一目录下:
cp $ORACLE_HOME/dbs/orapworcl $ORACLE_BASE
cp $ORACLE_HOME/dbs/initorcl.ora $ORACLE_BASE
cp /tmp/oradata.tar $ORACLE_BASE
cp /tmp/standby.ctl $ORACLE_BASE
cp /tmp/initorcl.ctl $ORACLE_BASE




Standby备机配置:

ftp至primary,下载所有文件:
ftp> bin
200 Switching to Binary mode.
ftp> cd /u01/app/oracle
ftp> mget oradata.tar
ftp> mget orapworcl
ftp> mget initorcl.ora
ftp> mget standby.ctl

解压oradata.tar:
cp oradata.tar $ORACLE_BASE
cd $ORACLE_BASE
tar -xvf $ORACLE_BASE

使用standby.ctl覆盖oradata中的三个控制文件:
[oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control01.ctl 
[oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control02.ctl 
[oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control03.ctl

复制口令文件,pfile至dbs目录下:
cd
cp orapworcl $ORACLE_HOME/dbs
cp initorcl.ora $ORACLE_HOME/dbs

编辑从primary上拷贝过来的initorcl.ora文件[黑体为需要修改的地方]:

DB_NAME=orcl
DB_UNIQUE_NAME=standby
LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/archlog
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_2=
 'SERVICE=primary_net LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=primary'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30


LOG_FILE_NAME_CONVERT='/arch','/archlog'

FAL_SERVER=primary_net
FAL_CLIENT=standby_net
STANDBY_FILE_MANAGEMENT=AUTO

使参数文件生效:
create spfile from pfile;

创建必要的目录:
mkdir -p /u01/app/oracle/admin/orcl/adump
mkdir -p /u01/app/oracle/admin/orcl/bdump
mkdir -p /u01/app/oracle/admin/orcl/cdump
mkdir -p /u01/app/oracle/admin/orcl/udump
mkdir -p /u01/app/oracle/admin/orcl/dpdump
mkdir -p /archlog



-----------------------------------------------------------------------------------
主备机各自修改listener.ora,并重启监听,使用netca配置tnsname,并在主备机上各自使用sqlplus进行测试。
tnsname(Oracle Net Service Name)的配置:
primary和standby上相同:
primary_net/standby_net[注:Net Service Name和db_unique_name不能相同,否则会包DGID mismatch的错误]

-----------------------------------------------------------------------------------

备机数据库切换至standby角色:
shutdown abort
startup mount;
检查归档传输是否正常
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


测试:
在主备机上分别使用如下命令测试结果是否相同:
select max(sequence#) from v$archived_log;
在备机上使用如下命令测试日志是否被应用:
SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

参考:
Creating a Physical Standby Database
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载