oracle 搭建 DG 模式详解

本贴最后更新于 2082 天前,其中的信息可能已经时移世易

oracle DG 搭建

安装环境

在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例,dg搭建之后数据会同步过去。

png

** 数据库参数优化(也可在spfile文件统一修改)**

注:scope=spfile 表示更改 spfile 文件的值,重启数据库后才能生效

sga,pga 配置

sga:(内存大小*80%)*80% = 128G * 80% * 80% = 82G;

pga:(内存大小*80%)*20% = 128G * 80% * 80% = 20G;

alter system set sga_max_size=82000m scope=spfile;

alter system set sga_target=82000m scope=spfile;

alter system set pga_aggregate_target=20000m scope=spfile;

JOB_QUEUE_PROCESSES 参数

JOB_QUEUE_PROCESSES 参数是 job 的进程个数,默认是 0;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=20;

共享池大小

Shared pool 是 SGA 中最关键的内存片段,共享池主要由库缓存(共享 SQL 区和 PL/SQL 区)和数据字典缓存组成。其中库缓存的作用是存放频繁使用的 sql,pl/sql 代码以及执行计划。数据字段缓存用于缓存数据字典。在内存空间有限的容量下,数据库系统根据一定的算法决定何时释放共享池中的 sql,pl/sql 代码以及数据字典信息。所以 shared_pool_size 不能太小,否则执行效率会很低。

alter system set shared_pool_size=15000m scope = spfile;

** 数据库最大连接数**

数据库的最大可支持的连接数,根据公司逻辑库的实际情况 1500 足够了

alter system set processes=1500 scope = spfile;

** 数据文件个数**

db_files 参数限制了数据库数据文件总的个数,datafiles 数目达到 db_files 指定后数据库不能添加新的数据文件

alter system set db_files=1000 scope=spfile;

** 游标参数**

OPEN_CURSORS 指定一个会话一次最多可以拥有的游标数,不够无法使用游标,过大不会增加系统开销

alter system set open_cursors=2000 scope=both;

alter system set session_cached_cursors=500 scope=spfile;

默认密码期限

Oracle 数据库密码期限是 180,把它改成无限制

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

** 数据库连接超时时间**

默认是 60 秒,60 秒没连接,会报错,把它设置成 0

LSNRCTL> set inbound_connect_timeout 0

LSNRCTL> set save_config_on_stop on 生效

关闭审计

oracle 11g 推出了审计功能,这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,考虑到实际情况,将审计功能关闭

alter system set audit_trail=none scope = spfile;

重启数据库

上述修改都需重启数据库生效

SQL>shutdown immediate

SQL>startup;

主数据库配置(192.168.8.173)

** 开启归档与强制 LOGGING**

Oracle dg 模式需要保证主从库一致,需要传输 archive log 和 redo log 到从库,如果不是归档模式无法保证主从库的数据一致。

SQL> select log_mode,force_logging from v$database;

LOG_MODE FOR


ARCHIVELOG NO

SQL> ALTER DATABASE FORCE LOGGING;

** 创建 redo 和 standy redo 日志**

根据公司平台情况创建6个redo日志组,每个大小1G,创建standby日志组的个数是原日志组个数+1再与thread的积,size不能小于原日志文件的大小,所以这里创建7个standby redo。

redo log 创建和删除

1:select * from v$log; 查看 redo 日志状态

2:alter system switch logfile; 将当前 redo 日志切到下一个执行

3:alter database add logfile group 6 ('/oracle/oradata/dbxxx/redo06.log') size 1024m reuse;

添加新的 redo 日志

4: alter database drop logfile group 1; 删除 redo 日志组(慎用)

standby redo log 的创建只是在 logfile 前加一个 standby

1.alter database add standby logfile group 7('/oracle/oradata/dbxxx/standyredo01.log') size 1024m reuse;

创建主库密码文件

Data Guard 配置中所有数据库必须都拥有独立的密码文件,并且必须保证同一个 Data Guard 配置中所有数据库服务器的 SYS 用户拥有相同密码以保证 redo 数据的顺利传输,因为 redo 传输服务通过认证的网络会话来传输 redo 数据,而会话使用包含在密码文件中的 SYS 用户密码来认证。

orapwd file=ORACLE_HOME/dbs/orapwORACLE_SID password=xxxx entries=1 force=y

SPFILE 文件配置(128G 内存数据库)

注:数据库启动时加载 spfile 文件,需对参数进行调整,以及主备配置

SQL> create pfile='/oracle/product/11.2/dbs/initdbxxx.ora' from spfile;

vi /oracle/product/11.2/dbs/initdbxxx.ora

dbxxx.__db_cache_size=66035122176

dbxxx.__java_pool_size=536870912

dbxxx.__large_pool_size=536870912

dbxxx.__oracle_base='/oracle'#ORACLE_BASE set from environment

dbxxx.__pga_aggregate_target=21474836480

dbxxx.__sga_target=83751862272

dbxxx.__shared_io_pool_size=0

dbxxx.__shared_pool_size=15569256448

dbxxx.__streams_pool_size=536870912

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

*.audit_trail='db'

*.compatible='11.2.0.0.0'

*.control_files='/oracle/oradata/dbxxx/control01.ctl','/oracle/flash_recovery_area/dbxxx/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_files=1000

*.db_name='dbxxx'

*.db_recovery_file_dest='/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=20971520000

*.DB_UNIQUE_NAME='dbxxxpr' *.diagnostic_dest='/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbxxxXDB)'

*.FAL_CLIENT='dbxxxpr'

*.FAL_SERVER='dbxxxdg'

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbxxxpr,dbxxxdg)'

*.log_archive_dest_1='location=/oracle/oradata/dbxxx/archivelog'

*.log_archive_dest_2='SERVICE=dbxxxdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbxxxdg'

*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

*.LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=1000

*.pga_aggregate_target=20971520000

*.processes=1500

*.remote_login_passwordfile='EXCLUSIVE'

*.session_cached_cursors=500

*.sessions=1655

*.sga_target=83751862272

*.STANDBY_FILE_MANAGEMENT='AUTO'

*.undo_tablespace='UNDOTBS1'

SPFILE 文件替换

spfiledbxxx.ora 复制 initdbxxx.ora

rm $ORACLE_HOME/dbs/spfiledbxxx.ora

SQL> create spfile from pfile='/oracle/product/11.2.0/dbs/initdbxxx.ora';

tns 文件配置

vi $ORACLE_HOME/network/admin/tnsnames.ora ,配置如下:

dbxxxpr =

(DESCRIPTION =

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

(CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = dbxxx)

)

)

dbxxxdg =

(DESCRIPTION =

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

(CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = dbxxx)  

)

)

listener 文件配置

vi $ORACLE_HOME/network/admin/tnsnames.ora ,配置如下:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

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

)

)

ADR_BASE_LISTENER = /oracle

SAVE_CONFIG_ON_STOP_LISTENER = ON

INBOUND_CONNECT_TIMEOUT_LISTENER = 0

备数据库配置(192.168.8.174)

文件复制

将主数据库/oracle/product/10.2/network/admin 下的网络配置文件(tnsnames.ora,listener.ora),和/oracle/product/10.2/dbs 下的密码文件 orapwdbxxx 和 initdbxxx.ora 拷贝 scp 到备数据库相同目录下,scp 不行的话用 sz 下载,rz 上传。

initdbxxx.ora 参数配置

注:主备切换对应的名称正好相反,其他配置一样

修改 initdbxxx.ora 文件:

dbxxx.__db_cache_size=66035122176

dbxxx.__java_pool_size=536870912

dbxxx.__large_pool_size=536870912

dbxxx.__oracle_base='/oracle'#ORACLE_BASE set from environment

dbxxx.__pga_aggregate_target=21474836480

dbxxx.__sga_target=83751862272

dbxxx.__shared_io_pool_size=0

dbxxx.__shared_pool_size=15569256448

dbxxx.__streams_pool_size=536870912

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

*.audit_trail='db'

*.compatible='11.2.0.0.0'

*.control_files='/oracle/oradata/dbxxx/control01.ctl','/oracle/flash_recovery_area/dbxxx/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_files=1000

*.db_name='dbxxx'

*.db_recovery_file_dest='/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=20971520000

*.DB_UNIQUE_NAME='dbxxxdg'

*.diagnostic_dest='/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbxxxXDB)'

*.FAL_CLIENT='dbxxxdg'

*.FAL_SERVER='dbxxxpr'

*.local_listener='for_db'

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbxxxpr,dbxxxdg)'

*.log_archive_dest_1='location=/oracle/oradata/dbxxx/archivelog'

*.log_archive_dest_2='SERVICE=dbxxxpr LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbxxxpr'

*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

*.LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=1000

*.pga_aggregate_target=20971520000

*.processes=1500

*.remote_login_passwordfile='EXCLUSIVE'

*.session_cached_cursors=500

*.sessions=1655

*.sga_target=83751862272

*.STANDBY_FILE_MANAGEMENT='AUTO'

*.undo_tablespace='UNDOTBS1'

创建相关目录

mkdir -p /oracle/fast_recovery_area/dbxxx

mkdir -p /oracle/admin/dbxxx

cd /oracle/admin/dbxxx

mkdir -p adump dpdump pfile

mkdir -p /oracle/oradata/dbxxx/

mkdir -p /oracle/oradata/dbxxx/archivelog

tns 文件配置

修改/oracle/product/10.2/network/admin 目录下的 tnsnames.ora 文件,配置如下:

dbxxxdg =

(DESCRIPTION =

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

(CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = dbxxx)

)

)

dbxxxpr =

(DESCRIPTION =

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

(CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = dbxxx)  

)

)

listener 文件配置

vi $ORACLE_HOME/network/admin/tnsnames.ora ,配置如下:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =  

  (GLOBAL_DBNAME = dbxxx)  

  (ORACLE_HOME = /oracle/product/10.2)  

  (SID_NAME = dbxxx)  

)  

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

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

)

)

ADR_BASE_LISTENER = /oracle

启动备库到 nomount

SQL> conn /as sysdba

SQL> create spfile from pfile='/oracle/product/11.2.0/dbs/initgdqxt.ora';

SQL> startup nomount

备数据库还原

[oracle@server174 ~]$ rman target sys/@dbxxxpr auxiliary sys/@dbxxxdg

RMAN> duplicate target database for standby nofilenamecheck from active database;

切换到同步模式

SQL> alter database open;

SQL> alter database recover managed standby database using current logfile disconnect from session;

  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    103 引用 • 126 回帖 • 447 关注
  • dbxxx
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 684 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 4 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    169 引用 • 799 回帖 • 1 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 346 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 491 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    27 引用 • 66 回帖 • 1 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 350 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    129 引用 • 793 回帖 • 1 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 521 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 23 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 395 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 684 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    85 引用 • 895 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 1 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 34 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 44 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    131 引用 • 1114 回帖 • 152 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    116 引用 • 99 回帖 • 267 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 588 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 626 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18680 引用 • 69695 回帖
  • 996
    13 引用 • 200 回帖 • 1 关注