ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Data Guard安装过程

Data Guard安装过程

原创 Linux操作系统 作者:laojiu9 时间:2009-11-02 22:34:59 0 删除 编辑
Data Guard安装过程

一、首先安装Linux(略),本试验采用RedHat Linux9
  安装主机a ip 192.168.0.101,从机b 192.168.0.102
二、安装Oracle(略) 此次采用版本Oracle9.2.4
  (1)其中环境变量设置如下:主从两机设置一样
  export LD_ASSUME_KERNEL=2.4.1
  export ORACLE_BASE=/opt/oracle
  export ORACLE_HOME=/opt/oracle/product
  export ORACLE_SID=primary
  export ORACLE_TERM=xterm
  export NLS_LANG=AMERICAN;
  #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK";
  #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
  export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:usr/local/lib
  export LD_LIBRARY_PATH
  export PATH=$PATH:$ORACLE_HOME/bin
  CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
  LC_ALL=en_US
  #LC_ALL=zh_CN
  export LC_ALL
  LANG=en_US
  #LANG=zh_CN
  export LANG
  (2)在主机a上安装数据库,选择安装software,此时不建库 
  (3)打包主机a上$ORACLE_HOME下的所有内容并传到从机b相应的目录
    tar cvzf oracle.tgz oracle/
    从机 tar -zxvf oracle.tgz,同时将oracle目录所属用户和组设置正确
    chown -R oracle oracle chgrp -R oinstall oracle
   (4)在主机上创建数据库,通过dbca创建,在linux9下创建oracle9.2.4的库会处错,请查看解决方法
   (5)关闭库,将数据文件cp到从机
   以上是参考《Oracle数据库DBA专题技术精粹》专题13
   我认为(2)-(5)过程可以合并,一次性安装成功然后将安装生成的文件一次cp到从机(个人意见有待验证)
   (5)打开主机a数据库将其修改为归档模式
   [root@a root]# mkdir -p /opt/oracle/oradata/primary/archive
   [oracle@a root]$ sqlplus /nolog
  SQL*Plus: Release 9.2.0.4.0 - Production on Wed Jul 5 13:34:44 2006
  Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
  SQL> conn / as sysdba
  SQL> starup mount;
  ...
  SQL> archive log list;
  ...
   SQL> alter database archivelog;
   ...
   SQL> archive log list;
   ...
   SQL> alter database open;
   ...
   SQL> alter system set log_archive_dest_1='LOCATION=/opt/oracle/oradata/primary/archive' scope=spfile;
   ...
   SQL> alter system set log_archive_format='%t_%s.dbf' scope=spfile;
   ...
   SQL> alter system set log_archive_start=true scope=spfile;
   ...
   (6)在主机a创建从机b的控制文件
   SQL> alter database create standby controlfile as '/opt/oracle/standby.ctl';
   ...
   将standby.ctl cp到从机/opt/oracle/oradata/primary/下
   (7)配置主从机的linstener.ora和tnsnames.ora
   在我用以上方法安装的数据库结果没有产生这两个文件,不过没有关系我们可以有动生成
   路径是/opt/oracle/product/network/admin
   # Generated by Oracle configuration tools.
主机配置如下 listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521))
      )
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME =/opt/oracle/product)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = primary)
      (ORACLE_HOME = /opt/oracle/product)
      (SID_NAME = primary)
    )
  )
tnsnames.ora如下:
PRIMARY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = primary)
      (SERVER = DEDICATED)
    )
  )
 
STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = primary)
    )
  )
注:主机a与从机b的listener.ora区别就是所对应的HOST不同
  (8)在主从机上分别使用tnsping primary,tnsping standby
  [oracle@a root]$tnsping primary
  ...
  [oracle@a root]$tnsping standby
  ...
  经检验无误,注:在这里我们要注意不同编码会出现问题。
  (9)在主机上创建参数文件pfile
   SQL> create pfile from spfile;
   将主机a数据库的参数文件cp到从机上并做相应的修改
   *.aq_tm_processes=1
  *.background_dump_dest='/opt/oracle/admin/primary/bdump'
  *.compatible='9.2.0.0.0'
  *.control_files='/opt/oracle/oradata/primary/standby.ctl'
  *.core_dump_dest='/opt/oracle/admin/primary/cdump'
  *.db_block_size=8192
  *.db_cache_size=33554432
  *.db_domain=''
  *.db_file_multiblock_read_count=16
  *.db_name='primary'
  *.dispatchers='(PROTOCOL=TCP) (SERVICE=primaryXDB)'
  *.fast_start_mttr_target=300
  *.hash_join_enabled=TRUE
  *.instance_name='primary'
  *.java_pool_size=83886080
  *.job_queue_processes=10
  *.large_pool_size=16777216
  *.log_archive_dest_1='LOCATION=/opt/oracle/oradata/primary/archive'
  *.log_archive_format='%t_%s.dbf'
  *.log_archive_start=TRUE
  *.open_cursors=300
  *.pga_aggregate_target=25165824
  *.processes=150
  *.query_rewrite_enabled='FALSE'
  *.remote_login_passwordfile='EXCLUSIVE'
  *.shared_pool_size=83886080
  *.sort_area_size=524288
  *.star_transformation_enabled='FALSE'
  *.timed_statistics=TRUE
  *.undo_management='AUTO'
  *.undo_retention=10800
  *.undo_tablespace='UNDOTBS1'
  *.user_dump_dest='/opt/oracle/admin/primary/udump'
  *.standby_archive_dest='/opt/oracle/oradata/primary/standbyarchive'
  *.fal_server='PRIMARY'
  *.fal_client='CLIENT'
  *.standby_file_management='AUTO'
   注:从机b数据库的参数文件主要修改了control_files,standby_archive_dest,fal_server
   fal_client,standby_file_management,其中standby_file_management不是必须的但是为了后面主库
   添加文件,从库自动处理而加上这个参数,避免麻烦。
   建立从库的相关文档日志路径
    [root@b root]# mkdir -p /opt/oracle/oradata/primary/standbyarchive
    (10)将主机a数据库密码文件cp过来或者使用orapwd创建密码文件
    注:所有从主机a拷贝的数据库文件都必须将其所属用户设置为oracle,将其所属组设置为oinstall(或dba)
    (11)启动从库和在主机a数据库上设置到从库的归档
   SQL> startup nomount;
  ORACLE instance started.
  Total System Global Area  236000356 bytes
  Fixed Size                   451684 bytes
  Variable Size             201326592 bytes
  Database Buffers           33554432 bytes
  Redo Buffers                 667648 bytes
  SQL> alter database mount standby database;
  从库在mount状态下就可以
  设置主机a数据库上到从库的归档
   SQL> alter system set log_archive_dest_2='SERVICE=standby MANDATORY REOPEN=60';
   ...
   至此安装已经小有所成,可以使用
   SQL> alter system switch logfile;
   ...
   查看从机b中有没有对应的日志文件。
   下面我们就可以验证其安装正确与否
   可以在主机a库中创建一些测试数据然后切换日志
   [oracle@a root]$ sqlplus /nolog
  SQL*Plus: Release 9.2.0.4.0 - Production on Wed Jul 5 13:34:44 2006
  Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
  SQL> conn / as sysdba
  SQL> create user olivenan identified by olivenan;
  ...
  SQL> grant connect,resource,dba to olivenan;
  ...
  SQL> conn olivenan/olivenan
  ...
  SQL> create table test(name varchar2(100));
  ...
   SQL> insert into test values('Hi,Data Guard,Now I will succeed');
   ...
   SQL> insert into test values('I love Oracle very much!');
   ...
   SQL> commit;
   ...
   测试数据建立成功。
   
   从机b数据库检验数据,以下操作过程中出现的错误没有过虑,以后的过程中要研究其原因。
   
  SQL> alter database recover managed standby database cancel;
  alter database recover managed standby database cancel
  *
  ERROR at line 1:
  ORA-16136: Managed Standby Recovery not active

  SQL> alter database open read only;
  alter database open read only
  *
  ERROR at line 1:
  ORA-16004: backup database requires recovery
  ORA-01194: file 1 needs more recovery to be consistent
  ORA-01110: data file 1: '/opt/oracle/oradata/primary/system01.dbf'
  SQL> recover managed standby database cancel;
  ORA-16136: Managed Standby Recovery not active

  SQL> recover managed standby database disconnect;
  Media recovery complete.
  SQL> alter database open read only;
  alter database open read only
  *
  ERROR at line 1:
  ORA-01154: database busy. Open, close, mount, and dismount not allowed now

  SQL> recover managed standby database cancel;
  Media recovery complete.
  SQL> alter database open read only;
  Database altered.
  SQL> select * from olivenan.test;
  NAME
  --------------------------------------------------------------------------------
  Hi,Data Guard,Now I will succeed
  I love Oracle very much!
SQL>
至此小有成功,^_^
注:参考《Oracle数据库DBA专题技术精粹》专题13
(转)

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

下一篇: ORADEBUG使用详解
请登录后发表评论 登录
全部评论

注册时间:2008-08-17

  • 博文量
    30
  • 访问量
    75575