物理dataguard傻瓜实战

一、环境
1、环境准备
虚拟机连接方式:注意连接方式虚拟机net,同时点击edit,查看虚拟机网段
操作系统:Red Hat Enterprise Linux Server release 5.1 (Tikanga)
主库地址:192.168.220.3--虚拟机,安装数据库
备库地址:192.168.220.4--虚拟机,未安装数据库,只安装软件
检查数据库版本必须一致:
select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
检查db_name、sid必须一致
select instance_name from v$instance;
INSTANCE_NAME
----------------
orcl
SQL>  show parameter db_name       
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      ice
二、主库配置
1、open数据库,
SQL> alter database force logging;
2、确认归档:
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
最早的联机日志序列     6
下一个存档日志序列   10
当前日志序列           10
3、修改主库tnsnames(增加备库服务命名
只修改ip,数据库名和主库一致)
# tnsnames.ora Network Configuration File: /home/app/oracle10/product/10.2.0.1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
orcl  =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.3)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
orcl2204  =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
4、监听配置:
# listener.ora Network Configuration File: /home/app/oracle10/product/10.2.0.1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/app/oracle10/product/10.2.0.1)
      (PROGRAM = extproc)
     )
      (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME =  /home/app/oracle10/product/10.2.0.1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.3)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )
5、虚拟机上测试是否能连主库,
注意连接方式虚拟机net,同时点击edit,查看虚拟机网段
本次虚拟机ip:192.168.220.3
[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 3 08:24:19 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn system/orcl@orcl1
Connected.

 

6、创建pfile--主库
SQL> conn sys/orcl@orcl1 as sysdba
已连接。
SQL> create pfile ='/home/app/oracle10/initorcl.ora' from spfile;
文件已创建。

7、修改参数文件:
[oracle@localhost dbs]$ cat initorcl.ora
orcl.__db_cache_size=92274688
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=62914560
orcl.__streams_pool_size=0
*.audit_file_dest='/home/app/oracle10/admin/ice/adump'
*.background_dump_dest='/home/app/oracle10/admin/ice/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/home/app/oracle10/oradata/ice/control01.ctl','/home/app/oracle10/oradata/ice/control02.ctl','/home/app/oracle10/oradata/ice/control03.ctl'
*.core_dump_dest='/home/app/oracle10/admin/ice/cdump'
*.db_block_size=8192
*.db_domain='orcl'
*.db_file_multiblock_read_count=16
*.db_name='ice'
*.db_recovery_file_dest='/home/app/oracle10/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/app/oracle10/admin/ice/udump'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl2204)'
log_archive_dest_1='LOCATION=/home/app/oracle10/archive01 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl '
log_archive_dest_state_1=enable
log_archive_dest_2='SERVICE=orcl2204 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl2204 '
log_archive_dest_state_2=enable
log_archive_start=true
log_archive_format='%t_%s_%r.arc'
log_archive_max_processes=2
fal_server=orcl2204
fal_client=orcl
db_unique_name=orcl
8、创建口令文件-主库
orapwd file=/home/app/oracle10/orapworcl password=oracle entries=5

9、启动主库到mount,创建控制文件
SQL> startup mount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area  612368384 bytes
Fixed Size                  1292036 bytes
Variable Size             411044092 bytes
Database Buffers          192937984 bytes
Redo Buffers                7094272 bytes
数据库装载完毕。
SQL> alter database create standby controlfile as '/home/app/oracle10/oradata/ice/standby.ctl';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上主库工作配置结束!!!!!!!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
三、备库配置
开始拷贝主库文件到备库,并修改参数文件
[root@localhost ~]# service vsftpd restart
用oracle账户登录备库
1 上传oradata目录scp -r root@192.168.220.3:/home/app/oracle10/oradata/ice/*  /home/app/oracle10/oradata/ice
2 上传admim目录  scp -r root@192.168.220.3:/home/app/oracle10/admin/ice/*  /home/app/oracle10/admin/ice
3 上传上面创建的口令文件和参数文件到备库dbs目录
4、控制文件更名
   将standby.ctl复制3份,改名为control01.ctl、control02、control03
5、监听:
# listener.ora Network Configuration File: /home/app/oracle10/product/10.2.0.1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/app/oracle10/product/10.2.0.1)
      (PROGRAM = extproc)
     )
      (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME =  /home/app/oracle10/product/10.2.0.1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.4)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

6、tnsnames:
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.3)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

orcl2204 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
7、修改备库pfile文件,dbs目录下
[oracle@localhost admin]$ cd /home/app/oracle10/product/10.2.0.1/dbs
[oracle@localhost dbs]$ cat initorcl.ora
orcl.__db_cache_size=92274688
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=62914560
orcl.__streams_pool_size=0
*.audit_file_dest='/home/app/oracle10/admin/ice/adump'
*.background_dump_dest='/home/app/oracle10/admin/ice/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/home/app/oracle10/oradata/ice/control01.ctl','/home/app/oracle10/oradata/ice/control02.ctl','/home/app/oracle10/oradata/ice/control03.ctl'
*.core_dump_dest='/home/app/oracle10/admin/ice/cdump'
*.db_block_size=8192
*.db_domain='orcl'
*.db_file_multiblock_read_count=16
*.db_name='ice'
*.db_recovery_file_dest='/home/app/oracle10/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/app/oracle10/admin/ice/udump'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl2204)'
log_archive_dest_1='LOCATION=/home/app/oracle10/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl2204 '
log_archive_dest_state_1=enable
log_archive_dest_2='SERVICE=orcl2204 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
log_archive_dest_state_2=enable
log_archive_start=true
log_archive_format='%t_%s_%r.arc'
log_archive_max_processes=2
fal_server=orcl
fal_client=orcl2204
db_unique_name=orcl2204

四、收尾工作
主库:
1、删掉SPFILEORCL.ORA
2、SQL> conn / as sysdba
已连接到空闲例程。
SQL> create spfile from pfile;
文件已创建。
startup
备库:
[oracle@localhost dbs]$ lsnrctl start
[oracle@localhost dbs]$ sqlplus system/orcl@orcl1确保能连接主库,然后quit
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn /as sysdba
Connected to an idle instance.
SQL> create spfile from pfile;
File created.


五、启动dataguard
首先启动主库,直接open
参考下面几步启动备库:
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area  612368384 bytes
Fixed Size                  1220868 bytes
Variable Size             167775996 bytes
Database Buffers          440401920 bytes
Redo Buffers                2969600 bytes

SQL> alter database mount standby database ;
SQL> select name,database_role from v$database;

NAME      DATABASE_ROLE
--------- ----------------
ORCL      PHYSICAL STANDBY

开始接受日志;--physical standby database
SQL> alter database recover managed standby database disconnect from session;
      Database altered.

六、验证dataguard是否成功:
主库创建表并插1条数据,并提交
SQL> create table test(id int);

Table created.

SQL> insert into test values(1);

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> select sequence#,applied from v$archived_log order by sequence#;--查看日志状态

 SEQUENCE# APP
---------- ---
        36 NO
        36 NO
        37 NO
        37 NO

59 rows selected.

SQL> insert into test values(2);       

1 row created.

SQL> commit;

Commit complete.
备库:
SQL> select sequence#,applied from v$archived_log order by sequence#;--查看状态


 SEQUENCE# APP
---------- ---
        35 NO
        36 NO
        37 NO

36 rows selected.

SQL> alter database recover managed standby database cancel;--终止接收日志

Database altered.

SQL> alter database open read only;---------打开数据库

Database altered.

SQL> select * from test;

        ID
----------
         1
至此dataguard部署完成。

下面是常用命令:
1、启动---只读方式打开备库:
先启动主库:
备库:
startup nomount;
SQL> alter database recover managed standby database disconnect from session;----接收日志
SQL> select sequence#,applied from v$archived_log order by sequence#;--查看状态
SQL> alter database recover managed standby database cancel;--终止接收日志
SQL> alter database open read only;---------打开数据库
2、备库从打开状态切回恢复状态:
 alter database recover managed standby database disconnect from session;

3、备库:检查是否存在归档中断
SQL> select thread#,low_sequence#,high_sequence# from v$archive_gap;
      no rows selected

4、启动和关闭:
启动:先备库listener,在启动备库。然后主库listener,在启动主库
关闭:先关闭主库,再关闭备库

5、查看日志是否同步
大小一致说明已同步
select sequence#,applied from v$archived_log order by sequence#;

6、主库归档日志切换,(同步到备库)
alter system switch logfile;

7\查询DataGuard当前处于哪种日志传输方式:
SQL> select process,CLIENT_PROCESS from v$managed_standby;

PROCESS   CLIENT_P
--------- --------
ARCH      ARCH
ARCH      ARCH
RFS       LGWR
RFS       UNKNOWN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值