网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle 10g第2版新特性之可管理性.
.Database 10g:忘掉我以前的功能.
.转贴 oracle的调优.
.10g新特性之-expdp与传统exp的速.
.关系型数据库:实现正规化.
.杜绝安全隐患 容易忽视Oracle安全.
.oracle sqlplus 格式化输出的命令.
.Oracle数据库联机日志文件丢失处.
.轻松掌握如何禁用 Oracle数据库的.
.Oracle9i初始化参数中文说明9.
.Oracle入门——SQL查看CHECK约束.
.oracle8i学习笔记(2).
.通过JDBC连接oracle数据库的技巧.
.rowscopy, 拷贝带有自增字段的表.
.教你如何彻底删除Windows上的 Or.
.Oracle数据直接导出到文本文件的.
.Oracle数据库维护常用SQL语句集合.
.Section 6. Solutions to common.
.Oracle的封锁机制分布式管理.
.用一个实例讲解如何生成autotrac.

创建一个ORACLEstandby database的全过程

发表日期:2008-2-9


OS:windows 2000 advanced server SP2
  Oracle:8.1.7.4
  假定主库与备用库不在同一个主机上,目录结构相同,并且配置一个自治理备用库(managed standby database):
  主库 备库
  主机IP 192.168.1.20 192.168.1.30
  主机名 PrimDB StbyDB
  SID Orcl Orcl
  数据库服务名 Orcl Orcl
  一 创建一个主库的数据文件备份:
  用冷备份方式,备份到e:\shared\back
  二 创建备用库的控制文件:
  冷备份之后,打开主库
  SQL> connect internal/oracle as sysdba;
  SQL>startup pfile=d:\oracle\admin\orcl\init.ora;
  SQL>alter database create standby controlfile as ‘e:\shared\back\stby_ctl.ctl’;
  三 通过网络复制备份的数据文件和备用控制文件到备库主机
  四 配置主库的tnsnames.ora文件,添加备库别名为stby1,即下面内容:
  stby1=(description=
  (address=
  (protocol=tcp)
  (port=1523)
  (host=192.168.1.30))
  (connect_data=
  (SID=orcl)))
  五 配置备用库的listener.ora文件,添加监听服务standby_listener,在相应的节里添加有关的内容
  假如原文件内已有,则修改之。
  standby_listener节:
  (address_list=
  (address=
  (protocol=tcp)
  (port=1523)
  (host=192.168.1.30)
  ) )
  SID_list_standby_listener节:
  (sid_list=
  (sid_desc=
  (sid_name=orcl)
  (oracle_home=d:\oracle\ora81)
  ) )
  这个文件中只能有这两节,不能有多个组,虽然可以定义监听的名字不同,但在启动监听服务的时候,都只启动一个监听服务。
  六 重新启动备库监听服务,以使更改生效:
  DOS>lsnrctl # 启动监听服务治理程序
  LSNRCTL>status # 查看监听服务状态
  LSNRCTL>stop # 停止监听服务
  LSNRCTL>start # 启动监听服务
  也可以在治理工具的服务治理里停止和启动服务。
  七 配置主库的初始化参数文件init.ora,修改归档目的地。
  本地归档只归档到一个目录e:\log。添加以下内容:
  # 定义本地归档路径,强制归档,重试时间2秒
  log_archive_dest_1 = “location=e:\log\ mandatory reopen=2”
  log_archive_dest_state_1 = enable
  # 定义归档到备用库,强制归档,重试时间15秒。
  # 假如定义为可选状态(optional),那么在归档失败后不会再次尝试归档的。定义
  # 为madatory状态后,假如本次归档失败,则在归档下一个日志时会再次尝试
  # 重传上一个未成功归档的日志。
  log_archive_dest_2 = “service=stby1 mandatory reopen=15”
  log_archive_dest_2 = enable
  # 定义必须成功归档的日志数,只需要本地成功归档即可
  log_archive_min_sUCceed_dest = 1
  八 使主库修改后的参数生效。
  以下操作是在未重启主库时使用。假如修改主库初始化参数文件后重新启动了主库,则可以不使用下列命令。下列命令只对当前实例有效。
  SQL>alter system set log_archive_dest_1 = “location=e:\log mandatory reopen=2”;
  SQL>alter system set log_archive_dest_state_1 = enabl;
  SQL>alter system set log_archive_dest_2 = “service=stby1 mandatory reopen=30”;
  SQL>alter system set log_archive_dest_2 = enable;
  SQL>alter system set log_archive_min_succeed_dest = 1;
  九 配置备用库的初始化参数文件:
  将主库的初始化参数文件复制到备库,删除原有的日志归档目录项,并添加以下内容:
  log_archive_dest = e:\log
  log_archive_trace = 6 #定义日志跟踪层次
  standby_archive_dest = e:\log
  # 更改控制文件名
  control_files = (“d:\oracle\oradata\orcl\stby_ctl.ctl”)
  十 启动备用库
  将从主库复制过来的数据文件、控制文件复制到相应的位置,然后在备库上操作(此时备库处于关闭状态):
  SQL>connect internal/oracle as sysdba
  SQL>startup nomount
  SQL>alter database mount standby database
  十一 假如有日志序列的缺失,则先将主库的日志复制到备库日志目录,进行手工恢复
  SQL>recover automatic standby database;
  或者:
  SQL>recover standby database until cancel;
  查看日志序列是否有缺失的SQL语句:
  SQL>SELECT high.thread#, "LowGap#", "HighGap#"
  FROM
  (
  SELECT thread#, MIN(sequence#)-1 "HighGap#"
  FROM
  ( SELECT a.thread#, a.sequence#
  FROM
  v$archived_log a,
  ( SELECT thread#, MAX(next_change#) gap1
  FROM v$log_history
  GROUP BY thread#
  ) b
  WHERE a.thread# = b.thread#
  AND a.next_change# > b.gap1
  )
  GROUP BY thread#
  ) high,
  (
  SELECT thread#, MIN(sequence#) "LowGap#"
  FROM
  ( SELECT thread#, sequence#
  FROM v$log_history, v$datafile
  WHERE checkpoint_change# <= next_change#
  AND checkpoint_change# >= first_change#
  )
  GROUP BY thread#
  ) low
  WHERE low.thread# = high.thread# ;
  假如备库有日志序列缺失,则同一个thread#的LowGap# 与 HighGap# 不等。假如没有日志序列缺失,那么选出空值或者是LowGap# 与 HighGap# 相同。
  十二 将备库置于自治理模式
  SQL>recover managed standby database;
  此时,SQLPLUS窗口停止响应,直到取消备库自治理模式。要取消备库的自治理模式的命令:
  SQL>recover managed standby database cancel;
  


上一篇:Oracle9i进程的内存占用问题的说明 人气:844
下一篇:Oracle 数据库安全策略的具体分析 人气:809
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐