Dataguard_使用RMAN在本机创建一个standby_db

本文主要讨论使用rman工具,在线在同一台主机系统中创建一个standby database,因为两个数据库的db_name都相同,需要修改db_unique_name参数,否则在启动standby db实例的时候将会报错是失败.

本文讨论的是在同一台主机上使用rman创建standby db,如果您想了解如何在两台主机之间创建standby db的内容,请参看博客文章"使用RMAN在线创建DataGuard备用库(数据文件不同路径结构)",网址: http://djb1008.itpub.net/post/42280/505142;

[@more@]

. 基本情况

[root@ocmdb1 ~]# uname -a

Linux ocmdb1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux

[root@ocmdb1 ~]# hostname

ocmdb1

[root@ocmdb1 ~]# more /etc/hosts

192.168.182.129 ocmdb1

SQL> select * from v$version where rownum<2;

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

DB_NAME=gridctl

PRIMARY INSTANCE SID=gridctl

STANDBY INSTANCE SID=gridctl2

主库数据文件目录 /oracle/oradata/gridctl

备库数据文件目录 /oracle/oradata/gridctl2

. 环境及参数设置

$export ORACLE_SID=gridctl

$sqlplus / as sysdba

SQL>show parameter log_archive_dest_1

log_archive_dest_1 string LOCATION=/oracle/archivelog/primary

SQL>show parameter log_archive_dest_2

log_archive_dest_2 string service=standby mandatory reopen=60

SQL>show parameter standby_archive_dest

standby_archive_dest string /oracle/archivelog/standby

SQL>create pfile from spfile;

$export ORACLE_SID=gridctl2

$cd $ORACLE_HOME/dbs

$cp initgridctl.ora initgridctl2.ora

$cd /oracle/admin

$mkdir gridctl2

$cd gridctl2

$mkdir adump bdump cdump udump

编辑$ORACLE_HOME/dbs/initgridctl2.ora,主要是修改dump文件的目录,control_file参数;增加几个参数设置(db_file_name_convert,log_file_name_convert,standby_file_management,db_unique_name

$cat $ORACLE_HOME/dbs/initgridctl2.ora

*.audit_file_dest='/oracle/admin/gridctl2/adump'

*.background_dump_dest='/oracle/admin/gridctl2/bdump'

*.control_files='/oracle/oradata/gridctl2/std_control1.dbf','/oracle/oradata/gridctl2/std_control2.dbf'#Restore Controlfile

*.core_dump_dest='/oracle/admin/gridctl2/cdump'

*.db_create_file_dest='/oracle/oradata/gridctl2'

*.db_file_name_convert='/oracle/oradata/gridctl/','/oracle/oradata/gridctl2/'

*.db_name='gridctl'

*.db_unique_name='gridctl2'

*.log_archive_dest_1='LOCATION=/oracle/archivelog/standby'

*.log_file_name_convert='/oracle/oradata/gridctl/','/oracle/oradata/gridctl2/'

*.standby_archive_dest='/oracle/archivelog/primary'

*.standby_file_management='AUTO'

*.user_dump_dest='/oracle/admin/gridctl2/udump'

。。。。。。

创建备库的密码文件

$orapwd file=$ORACLE_HOME/dbs/orapwgridctl2 password=passofsys entries=5

启动备库到nomount状态

$sqlplus / as sysdba

SQL>startup nomount

SQL>create spfile from pfile;

SQL>shutdown immediate;

SQL>startup nomount;

SQL>exit

编辑$ORACLE_HOME/network/admin/listener.ora文件,将备库实例静态注册到监听器。

$more $ORACLE_HOME/network/admin/listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = gridctl)

(ORACLE_HOME = /oracle/product/10.2.0/db_1)

(SID_NAME = gridctl)

)

(SID_DESC =

(GLOBAL_DBNAME = gridctl2)

(ORACLE_HOME = /oracle/product/10.2.0/db_1)

(SID_NAME = gridctl2)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ocmdb1)(PORT = 1521))

)

启动监听器

$lsnrctl start

编辑$ORACLE_HOME/network/admin/tnsnames.ora,添加备库的连接定义。

$more $ORACLE_HOME/network/admin/tnsnames.ora

primary =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.182.129)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME =gridctl)

)

)

standby =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.182.129)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME =gridctl2)

)

)

. 使用rman进行备份与创建standby_db

使用rman对主库进行备份

$rman target /

RMAN>run{

Allocate channel d1 type disk;

Backup full database format '/oracle/oradata/db_%U.bak'

Plus archivelog format '/oracle/oradata/arc_%U.bak';

Sql 'alter system archive log current';

Release channel d1;}

RMAN>exit

$rman target / auxiliary sys/passofsys@standby

RMAN>run{

Duplicate target database for standby;}

RMAN>exit

$export ORACLE_SID=gridctl2

$sqlplus / as sysdba

SQL>select open_mode,database_role from v$database;

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

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

MOUNTED PHYSICAL STANDBY

SQL>alter database recover managed standby database disconnect from session;

SQL>exit

$export ORACLE_SID=gridctl

$sqlplus / as sysdba

SQL>alter system switch logfile;

SQL>exit

$tail -f /oracle/admin/gridctl2/bdump/alert_gridctl2.log

Fri Sep 10 12:27:57 2010

Media Recovery Log /oracle/archivelog/primary/1_62_725144026.dbf

Media Recovery Waiting for thread 1 sequence 63

在一个主机上就存在两个数据库实例,一个是主库,一个是备库;关于主库与备库的切换操作,请参看文章“

Step By Step Configure DataGuard (10g) Physical Standby Database On Linux X86_64(2/2)”,网址为:http://djb1008.itpub.net/post/42280/504948

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/32980/viewspace-1038160/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/32980/viewspace-1038160/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值