重庆有哪些交通设计院:Oracle 10g for linux data guard安装手记

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 12:22:18

1.主数据库配置
  sid  primary
  ip   10.100.1.100

初始化参数
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=primary
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
export ORACLE_BASE ORACLE_SID ORACLE_HOME
PATH=$PATH:/u01/app/oracle/oracle/product/10.2.0/db_1/bin
export PATH 

数据库文件存放目录为
/u01/app/oracle/oradata/test/

2.备用数据库配置(注意系统时间需要和主数据库一致)
  sid  standby
  ip   10.100.1.101

初始化参数
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=standby
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
export ORACLE_BASE ORACLE_SID ORACLE_HOME
PATH=$PATH:/u01/app/oracle/oracle/product/10.2.0/db_1/bin
export PATH


数据库文件存放目录为
/u01/app/oracle/oradata/test/

3.物理data guard配置过程

主数据库:

》确定数据库为归档模式

》设置oracle为强制日志模式
SQL> alter database force logging;

》如果启动参数为spfile文件,则需要创建pfile
SQL> create pfile from spfile;

》修改dbs目录下的initprimary.ora
vi initprimary.ora
增加下面参数:
#################
#data guard#
#################
DB_UNIQUE_NAME=primary
LOG_ARCHIVE_CONFIG=
 'DG_CONFIG=(primary,standby)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/home/oracle/archive
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=primary'
LOG_ARCHIVE_DEST_2=
 'SERVICE=standby LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
STANDBY_ARCHIVE_DEST=/home/oracle/archive
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE


FAL_SERVER=standby
FAL_CLIENT=primary
STANDBY_FILE_MANAGEMENT=AUTO

》全备份主数据库
RMAN
RMAN>connect target
RMAN> backup database format='/home/oracle/%U_%s.bak';
RMAN> sql "Alter System Archive Log Current";
RMAN> Backup filesperset 10 ArchiveLog all format='/home/oracle/%U_%s.bak';


》拷贝备份文件到备份数据库主机
cd /home/oracle
scp *.bak 10.100.1.101:/home/oracle/


》准备备份数据库相应目录
mkdir -p /u01/app/oracle/admin/test/adump
mkdir -p /u01/app/oracle/admin/test/bdump
mkdir -p /u01/app/oracle/admin/test/cdump
mkdir -p /u01/app/oracle/admin/test/dpdump
mkdir -p /u01/app/oracle/admin/test/pfile
mkdir -p /u01/app/oracle/admin/test/udump
mddir -p /home/oracle/archive

》从主数据库拷贝相关文件到备份数据库
cd /u01/app/oracle/oracle/product/10.2.0/db_1/dbs/
scp initprimary.ora 10.100.1.101:/u01/app/oracle/oracle/product/10.2.0/db_1/dbs
scp orapwprimary 10.100.1.101:/u01/app/oracle/oracle/product/10.2.0/db_1/dbs

》修改备份数据库相关文件名
cd /u01/app/oracle/oracle/product/10.2.0/db_1/dbs/
mv initprimary.ora initstandby.ora
mv orapwprimary orapwstandby

》修改备份数据库初始化文件(修改data guard 部分)
vi initstandby.ora
#################
#data guard#
#################
DB_UNIQUE_NAME=standby
LOG_ARCHIVE_CONFIG=
 'DG_CONFIG=(primary,standby)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/home/oracle/archive
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_2=
 'SERVICE=primary LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=primary'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
STANDBY_ARCHIVE_DEST=/home/oracle/archive
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

FAL_SERVER=primary
FAL_CLIENT=standby
STANDBY_FILE_MANAGEMENT=AUTO

》修改主数据库和备数据库tnsname.ora
增加如下设置:
PRIMARY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.1.100)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = primary)
    )
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.1.101)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = standby)
    )
  )

》在主数据库上创建备用数据库控制文件
SQL> alter database create standby controlfile as '/home/oracle/standby.ctl';

scp standby.ctl 10.100.1.101:/u01/app/oracle/oradata/test/
》在备份数据库上建立控制文件
mv standby.ctl control01.ctl
cp control01.ctl control02.ctl
cp control01.ctl control03.ctl

》启动备数据库nomount状态准备恢复
startup nomount;
alter database mount standby database;
》恢复备用数据库
ramn target /
RMAN> restore database;
RMAN> restore archivelog all;

》备用数据库进入到后台管理恢复状态
SQL>alter database recover managed standby database disconnect from session;

4.验证datagu
》在主库上:
create user test identified by ftp123;
grant connect,resource to test;
conn test/ftp123@primary;
create table test(name varchar2(20));
insert into test values('hi, Data Guard');
commit;
conn / as sysdba;
alter system switch logfile;


》查看从库日志
以只读方式打开从库查看 insert into test values('hi, Data Guard'); 已经生效。
conn / as sysdba;
alter database recover managed standby database cancel;
alter database open read only;
conn test/ftp123
select * from test;

5.data guard日常管理
备用数据库
(1)启动到管理模式
shutdown immediate;
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;
(2)启动到只读方式
shutdown immediate;
startup nomount;
alter database mount standby database;
alter database open read only;

6.data guard切换
主数据库
(1)切换到备用方式
alter database commit to switchover to physical standby with session shutdown;
shutdown immediate;


备用数据库
(2)切换到主数据库方式
alter database commit to switchover to primary;
shutdown immediate;
startup

主数据库
(3)启动备用数据库方式
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;