<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>阿标在线</title>
  
  <subtitle>技术学习永远不过时。</subtitle>
  <link href="http://hexo.abasp.com/atom.xml" rel="self"/>
  
  <link href="http://hexo.abasp.com/"/>
  <updated>2025-10-06T09:43:43.000Z</updated>
  <id>http://hexo.abasp.com/</id>
  
  <author>
    <name>标哥</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Markdown深入学习</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Markdown%E6%B7%B1%E5%85%A5%E5%AD%A6%E4%B9%A0.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Markdown%E6%B7%B1%E5%85%A5%E5%AD%A6%E4%B9%A0.html</id>
    <published>2025-10-06T09:32:08.000Z</published>
    <updated>2025-10-06T09:43:43.000Z</updated>
    
    <content type="html"><![CDATA[<p>[TOC]</p><p>Markdown写博客比较简单，之前专门做了一个博客网站，用的hexo，直接上传MD格式文件即可。为了对Markdown有更深入的了解，看哪些工具更适合MD编辑，于是又进行了一番探索。</p><h1 id="Texts"><a href="#Texts" class="headerlink" title="Texts"></a>Texts</h1><p>免费，安装后还需要补装一个Paddoc的插件。用Texts打开已写完的一个md文档，发现其将原有格式都改了，改的更加复杂了。</p><h1 id="Typora"><a href="#Typora" class="headerlink" title="Typora"></a>Typora</h1><p>被很多大神举荐，但是要收费。破解不好搞，尝试下一个试试。</p><h1 id="Markdown-的应用场景"><a href="#Markdown-的应用场景" class="headerlink" title="Markdown 的应用场景"></a>Markdown 的应用场景</h1><h2 id="技术文档编写"><a href="#技术文档编写" class="headerlink" title="技术文档编写"></a>技术文档编写</h2><p>在软件开发领域，Markdown 已成为技术文档的标准格式。它特别适合：</p><ul><li><strong>API 文档</strong>：清晰的标题层次和代码块展示，让 API 说明既专业又易读。许多 API 文档生成工具（如 Swagger）都支持 Markdown 格式的描述。</li><li><strong>项目说明</strong>：从安装指南到使用手册，Markdown 能够有效组织技术信息。代码示例、配置文件、命令行操作都能得到恰当的展示。</li><li><strong>开发规范</strong>：团队的编码规范、设计准则、工作流程等都可以用 Markdown 编写，方便团队成员查阅和更新。</li></ul><h2 id="博客文章创作"><a href="#博客文章创作" class="headerlink" title="博客文章创作"></a>博客文章创作</h2><p>现代的博客平台和静态网站生成器大多支持 Markdown：</p><ul><li><strong>内容管理</strong>：博主可以专注于内容创作，而不必担心复杂的 HTML 编码。文章的格式化通过简单的标记即可完成。</li><li><strong>平台迁移</strong>：使用 Markdown 编写的文章可以轻松在不同平台间迁移，不会因为平台特有的格式而被锁定。</li><li><strong>离线编写</strong>：可以在任何文本编辑器中离线编写文章，然后批量发布，提高了写作的灵活性。</li></ul><h2 id="GitHub-README-文件"><a href="#GitHub-README-文件" class="headerlink" title="GitHub README 文件"></a>GitHub README 文件</h2><p>GitHub 平台广泛使用 Markdown，特别是项目的 README 文件：</p><ul><li><strong>项目介绍</strong>：清晰展示项目的目的、特性、使用方法等关键信息。</li><li><strong>安装指南</strong>：通过代码块和列表，提供详细的安装和配置步骤。</li><li><strong>贡献指南</strong>：说明如何参与项目开发，包括代码规范、提交流程等。</li><li><strong>问题跟踪</strong>：在 Issues 和 Pull Requests 中，开发者使用 Markdown 来描述问题、提供解决方案。</li></ul><h2 id="笔记记录和知识管理"><a href="#笔记记录和知识管理" class="headerlink" title="笔记记录和知识管理"></a>笔记记录和知识管理</h2><p>Markdown 正成为数字笔记的首选格式：</p><ul><li><strong>学习笔记</strong>：支持数学公式、代码高亮、图表等多种内容类型，适合技术学习和知识整理。</li><li><strong>会议记录</strong>：清晰的标题结构和列表格式，让会议要点一目了然。</li><li><strong>知识库建设</strong>：企业和个人都在使用 Markdown 构建知识库，通过链接和标签组织信息。</li></ul><h2 id="在线写作平台"><a href="#在线写作平台" class="headerlink" title="在线写作平台"></a>在线写作平台</h2><p>越来越多的写作平台开始支持 Markdown：</p><ul><li><strong>GitHub、简书、知乎</strong>：这些平台的编辑器支持 Markdown 语法，让创作者能够快速格式化文章。</li><li><strong>GitBook、Notion</strong>：专业的文档和笔记平台，原生支持 Markdown，提供强大的组织和协作功能。</li><li><strong>静态博客生成器</strong>：Jekyll、Hugo、Hexo 等工具让用户能够用 Markdown 创建专业的网站。</li></ul><hr><h2 id="有用的书籍"><a href="#有用的书籍" class="headerlink" title="有用的书籍"></a>有用的书籍</h2><p>《了不起的Markdown》</p><h1 id="Markdown-编辑器"><a href="#Markdown-编辑器" class="headerlink" title="Markdown 编辑器"></a>Markdown 编辑器</h1><p>工欲善其事，必先利其器，选择一个合适的编辑器对学习 Markdown 至关重要：</p><h2 id="1、专业代码编辑器"><a href="#1、专业代码编辑器" class="headerlink" title="1、专业代码编辑器"></a>1、专业代码编辑器</h2><p><em>Visual Studio Code</em>：微软开发的免费编辑器，通过安装 Markdown 相关扩展，可以获得强大的编辑和预览功能。</p><p><strong>VScode 安装教程：</strong><a href="https://www.runoob.com/vscode/vscode-tutorial.html">https://www.runoob.com/vscode/vscode-tutorial.html</a></p><p>VScode 支持 Markdown 的扩展包括：</p><ul><li>Markdown All in One：提供快捷键、目录生成、数学公式支持</li><li>Markdown Preview Enhanced：增强的预览功能，支持图表和演示模式</li><li>markdownlint：语法检查和格式规范</li></ul><p><em>Sublime Text</em>：轻量级但功能强大的编辑器，通过包管理器可以安装 Markdown 相关插件。</p><p><em>Atom</em>：GitHub 开发的编辑器（已停止维护），但仍有丰富的 Markdown 插件生态。</p><h2 id="2、专门的-Markdown-编辑器"><a href="#2、专门的-Markdown-编辑器" class="headerlink" title="2、专门的 Markdown 编辑器"></a>2、专门的 Markdown 编辑器</h2><ul><li><em>Mark Text</em>：开源的实时预览 Markdown 编辑器，界面简洁，功能完整。下载地址：<a href="https://github.com/marktext/marktext/">https://github.com/marktext/marktext/</a></li><li><em>Zettlr</em>：学术写作导向的 Markdown 编辑器，支持引用管理和论文写作功能。下载地址：<a href="https://github.com/Zettlr/Zettlr">https://github.com/Zettlr/Zettlr</a></li><li><em>Joplin</em>：免费开源的支持 markdown 免费的笔记应用 – <a href="https://joplinapp.org/">https://joplinapp.org/</a></li></ul><h2 id="3、在线编辑器"><a href="#3、在线编辑器" class="headerlink" title="3、在线编辑器"></a>3、在线编辑器</h2><ul><li><em>Markdown 在线编辑器</em>：<a href="https://www.jyshare.com/front-end/712/%E3%80%82">https://www.jyshare.com/front-end/712/。</a></li><li><em>Dillinger</em>：<a href="https://dillinger.io/%EF%BC%8C%E5%8A%9F%E8%83%BD%E9%BD%90%E5%85%A8%E7%9A%84%E5%9C%A8%E7%BA%BF">https://dillinger.io/，功能齐全的在线</a> Markdown 编辑器，支持云同步和多种导出格式。</li><li><em>StackEdit</em>：<a href="https://stackedit.io/%EF%BC%8C%E5%9F%BA%E4%BA%8E%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E7%BC%96%E8%BE%91%E5%99%A8%EF%BC%8C%E4%B8%8E">https://stackedit.io/，基于浏览器的编辑器，与</a> Google Drive、Dropbox 等云服务集成。</li><li><em>简书、语雀编辑器</em>：国内平台提供的在线 Markdown 编辑环境。</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;[TOC]&lt;/p&gt;
&lt;p&gt;Markdown写博客比较简单，之前专门做了一个博客网站，用的hexo，直接上传MD格式文件即可。为了对Markdown有更深入的了解，看哪些工具更适合MD编辑，于是又进行了一番探索。&lt;/p&gt;
&lt;h1 id=&quot;Texts&quot;&gt;&lt;a href=&quot;#Te</summary>
      
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="Markdown, md" scheme="http://hexo.abasp.com/tags/Markdown-md/"/>
    
  </entry>
  
  <entry>
    <title>Linux 查看端口命令</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Linux%20%E6%9F%A5%E7%9C%8B%E7%AB%AF%E5%8F%A3%E5%91%BD%E4%BB%A4.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Linux%20%E6%9F%A5%E7%9C%8B%E7%AB%AF%E5%8F%A3%E5%91%BD%E4%BB%A4.html</id>
    <published>2025-10-04T16:23:09.000Z</published>
    <updated>2025-10-06T04:06:46.714Z</updated>
    
    <content type="html"><![CDATA[<p>在 Linux系统中，查看端口使用情况是运维和故障排查的常见操作。</p><p>以下是几种常用的命令和方法：</p><h1 id="1-使用-netstat-命令（经典方法）"><a href="#1-使用-netstat-命令（经典方法）" class="headerlink" title="1 使用 netstat 命令（经典方法）"></a>1 使用 netstat 命令（经典方法）</h1><p>⚠️ 注意：netstat 已逐渐被 ss 取代，但在大多数系统上仍可用。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#查看所有监听的TCP/UDP端口</span></span><br><span class="line">netstat -tuln</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看所有连接（包括监听和已建立的连接）</span></span><br><span class="line">netstat -tunlp</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看特定端口（如80）</span></span><br><span class="line">netstat -tunlp | grep :80</span><br></pre></td></tr></table></figure><p>参数说明：</p><p>-t：显示 TCP 端口 -u：显示 UDP 端口 -l：仅显示监听状态的端口（LISTEN）<br>-n：以数字形式显示地址和端口（不解析域名） -p：显示占用端口的进程（需 root<br>权限）</p><h1 id="2-使用-ss-命令（推荐，更高效）"><a href="#2-使用-ss-命令（推荐，更高效）" class="headerlink" title="2 使用 ss 命令（推荐，更高效）"></a>2 使用 ss 命令（推荐，更高效）</h1><p>ss 是 netstat 的现代替代品，速度更快。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#查看所有监听的TCP端口</span></span><br><span class="line">ss -tuln</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看所有连接</span></span><br><span class="line">ss -tunlp</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看特定端口（如3306）</span></span><br><span class="line">ss -tunlp | grep :3306</span><br></pre></td></tr></table></figure><p>参数与 netstat 类似，但执行效率更高。</p><h1 id="3-使用-lsof-命令（功能强大）"><a href="#3-使用-lsof-命令（功能强大）" class="headerlink" title="3 使用 lsof 命令（功能强大）"></a>3 使用 lsof 命令（功能强大）</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#查看所有监听端口</span></span><br><span class="line">lsof -i -P -n | grep LISTEN</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看特定端口（如22）</span></span><br><span class="line">lsof -i :22</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看特定协议（如TCP）</span></span><br><span class="line">lsof -i tcp</span><br></pre></td></tr></table></figure><p>优点： 可以精确查看某个端口被哪个进程占用。</p><h1 id="4-查看端口是否被占用（快速检查）"><a href="#4-查看端口是否被占用（快速检查）" class="headerlink" title="4 查看端口是否被占用（快速检查）"></a>4 查看端口是否被占用（快速检查）</h1><p>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#检查80端口是否被占用</span></span><br><span class="line">lsof -i :80</span><br><span class="line"></span><br><span class="line"><span class="comment">#或使用 netstat/ss</span></span><br><span class="line">ss -tuln | grep :80</span><br></pre></td></tr></table></figure><h1 id="5-查看防火墙开放的端口（系统级）"><a href="#5-查看防火墙开放的端口（系统级）" class="headerlink" title="5 查看防火墙开放的端口（系统级）"></a>5 查看防火墙开放的端口（系统级）</h1><p>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;</p><p>对于 firewalld（CentOS&#x2F;RHEL 7+）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#查看已开放的端口</span></span><br><span class="line">firewall-cmd --list-ports</span><br><span class="line">firewall-cmd --list-all</span><br></pre></td></tr></table></figure><p>对于 ufw（Ubuntu）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ufw status</span><br></pre></td></tr></table></figure><p>对于 iptables</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">iptables -L -n</span><br></pre></td></tr></table></figure><h1 id="6-使用-nmap-扫描本地或远程端口（需安装）"><a href="#6-使用-nmap-扫描本地或远程端口（需安装）" class="headerlink" title="6 使用 nmap 扫描本地或远程端口（需安装）"></a>6 使用 nmap 扫描本地或远程端口（需安装）</h1><p>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#扫描本机开放端口</span></span><br><span class="line">nmap localhost</span><br><span class="line"></span><br><span class="line"><span class="comment">#扫描远程服务器</span></span><br><span class="line">nmap 192.168.1.100</span><br><span class="line"></span><br><span class="line"><span class="comment">#扫描特定端口范围</span></span><br><span class="line">nmap -p 1-1000 localhost</span><br></pre></td></tr></table></figure><p>实用示例</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#查看谁在占用3000端口</span></span><br><span class="line">lsof -i :3000</span><br><span class="line"></span><br><span class="line"><span class="comment">#查看所有监听端口及对应进程（需root）</span></span><br><span class="line">sudo ss -tulnp</span><br><span class="line"></span><br><span class="line"><span class="comment">#仅查看TCP监听端口</span></span><br><span class="line">ss -tnl</span><br></pre></td></tr></table></figure><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><table><thead><tr><th>命令</th><th>推荐场景</th></tr></thead><tbody><tr><td>ss -tuln</td><td>✅ 推荐：查看监听端口，速度快</td></tr><tr><td>netstat -tuln</td><td>兼容旧系统</td></tr><tr><td>lsof -i :端口</td><td>✅ 精确查找某个端口的占用进程</td></tr><tr><td>firewall-cmd –list-ports</td><td>查看防火墙放行的端口</td></tr></tbody></table><p>🔐 提示：部分命令（如显示进程信息）需要 root 或 sudo 权限。</p><p>通过这些命令，你可以轻松掌握 Linux 系统中端口的使用情况。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;在 Linux系统中，查看端口使用情况是运维和故障排查的常见操作。&lt;/p&gt;
&lt;p&gt;以下是几种常用的命令和方法：&lt;/p&gt;
&lt;h1 id=&quot;1-使用-netstat-命令（经典方法）&quot;&gt;&lt;a href=&quot;#1-使用-netstat-命令（经典方法）&quot; class=&quot;header</summary>
      
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="Linux" scheme="http://hexo.abasp.com/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>网络设备故障应急预案</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E6%95%85%E9%9A%9C%E5%BA%94%E6%80%A5%E9%A2%84%E6%A1%88.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E6%95%85%E9%9A%9C%E5%BA%94%E6%80%A5%E9%A2%84%E6%A1%88.html</id>
    <published>2025-08-27T07:54:00.000Z</published>
    <updated>2025-08-27T07:57:51.439Z</updated>
    
    <content type="html"><![CDATA[<h1 id="网络设备故障应急预案"><a href="#网络设备故障应急预案" class="headerlink" title="网络设备故障应急预案"></a>网络设备故障应急预案</h1><p><strong>文档版本：</strong> 1.0<br><strong>生效日期：</strong> 2025年8月27日<br><strong>最后修订：</strong> 2025年8月27日<br><strong>编制部门：</strong> IT运维部 &#x2F; 网络安全部<br><strong>审核：</strong> [相关负责人姓名&#x2F;职位]<br><strong>批准：</strong> [相关负责人姓名&#x2F;职位]</p><h2 id="1-目的"><a href="#1-目的" class="headerlink" title="1. 目的"></a>1. 目的</h2><p>本预案旨在建立一套系统化、标准化的响应流程，以应对核心网络设备（包括但不限于核心&#x2F;汇聚&#x2F;接入交换机、路由器、防火墙、负载均衡器）发生故障时的紧急情况。通过快速、有序地响应，最大限度地减少网络中断时间，保障关键业务系统的连续性，降低对业务运营和用户的影响，并确保故障得到有效诊断和恢复。</p><h2 id="2-适用范围"><a href="#2-适用范围" class="headerlink" title="2. 适用范围"></a>2. 适用范围</h2><p>本预案适用于公司内部所有核心网络设备（交换机、路由器、防火墙、负载均衡器）发生的计划外故障、性能严重下降或安全事件导致的网络中断或服务不可用。</p><h2 id="3-应急原则"><a href="#3-应急原则" class="headerlink" title="3. 应急原则"></a>3. 应急原则</h2><ul><li><strong>业务优先：</strong> 优先恢复对关键业务系统和用户影响最大的网络服务。</li><li><strong>快速响应：</strong> 建立7x24小时响应机制，确保故障被及时发现和处理。</li><li><strong>最小影响：</strong> 在故障处理过程中，采取措施将对正常业务的影响降至最低。</li><li><strong>安全第一：</strong> 所有操作需符合安全规范，避免引入新的安全风险。</li><li><strong>信息透明：</strong> 及时、准确地向相关方通报故障状态和处理进展。</li><li><strong>持续改进：</strong> 故障解决后进行复盘，总结经验教训，优化预案和预防措施。</li></ul><h2 id="4-组织与职责"><a href="#4-组织与职责" class="headerlink" title="4. 组织与职责"></a>4. 组织与职责</h2><ul><li><strong>应急指挥小组 (EIC - Emergency Incident Command):</strong><ul><li><strong>成员：</strong> IT总监&#x2F;CTO、网络主管、系统主管、安全主管、关键业务部门代表。</li><li><strong>职责：</strong> 负责应急响应的总体指挥、资源协调、重大决策（如是否切换至灾备、是否对外发布信息）、对外沟通。在重大故障时启动。</li></ul></li><li><strong>网络应急响应小组 (NER - Network Emergency Response Team):</strong><ul><li><strong>成员：</strong> 网络工程师（主责）、系统工程师（支持）、安全工程师（支持）、值班工程师。</li><li><strong>职责：</strong> 负责故障的初步诊断、定位、执行恢复操作、信息收集与上报、执行预案步骤。是故障处理的核心执行团队。</li></ul></li><li><strong>支持与沟通组：</strong><ul><li><strong>成员：</strong> IT服务台、行政&#x2F;公关部门。</li><li><strong>职责：</strong> 负责接收用户报障、内部信息通报、对外（客户、合作伙伴）沟通协调、发布公告。</li></ul></li></ul><h2 id="5-预警与监测"><a href="#5-预警与监测" class="headerlink" title="5. 预警与监测"></a>5. 预警与监测</h2><ul><li><strong>监控系统：</strong><ul><li>部署专业的网络监控系统（如 Zabbix, Nagios, PRTG, SolarWinds, 或云厂商监控服务），对所有核心网络设备的：<ul><li><strong>连通性 (Ping&#x2F;ICMP)</strong></li><li><strong>CPU&#x2F;内存利用率</strong></li><li><strong>端口状态 (Up&#x2F;Down)</strong></li><li><strong>端口流量 (In&#x2F;Out)</strong></li><li><strong>关键进程&#x2F;服务状态 (如 BGP, OSPF, HSRP&#x2F;VRRP, 防火墙策略引擎)</strong></li><li><strong>日志告警 (Syslog)</strong></li><li><strong>设备温度、电源、风扇状态</strong></li></ul></li><li>设置合理的阈值告警（如 CPU &gt; 80% 持续5分钟，端口Down，关键进程停止）。</li></ul></li><li><strong>日志审计：</strong><ul><li>集中收集所有网络设备的系统日志(Syslog)和安全日志，进行分析，识别潜在异常模式。</li></ul></li><li><strong>用户报障：</strong><ul><li>建立清晰的用户报障渠道（如IT服务台电话、邮箱、工单系统）。</li></ul></li></ul><h2 id="6-应急响应流程"><a href="#6-应急响应流程" class="headerlink" title="6. 应急响应流程"></a>6. 应急响应流程</h2><h3 id="6-1-故障发现与报告"><a href="#6-1-故障发现与报告" class="headerlink" title="6.1 故障发现与报告"></a>6.1 故障发现与报告</h3><ol><li><strong>监控告警：</strong> 监控系统触发告警，自动通知NER成员（短信、邮件、电话）。</li><li><strong>用户报障：</strong> 用户通过服务台报障，服务台记录详细信息（现象、影响范围、时间）并立即升级至NER。</li><li><strong>主动巡检：</strong> 值班工程师在巡检中发现异常。</li><li><strong>NER确认：</strong> NER成员收到信息后，立即登录监控系统和设备，<strong>初步确认故障属实</strong>。</li></ol><h3 id="6-2-初步评估与分级"><a href="#6-2-初步评估与分级" class="headerlink" title="6.2 初步评估与分级"></a>6.2 初步评估与分级</h3><ul><li>NER根据故障影响范围、业务关键性、持续时间进行<strong>初步故障分级</strong>：<ul><li><strong>一级（重大）：</strong> 核心设备（如核心交换机、出口路由器、主防火墙）完全宕机或关键链路中断，导致<strong>大部分或全部</strong>业务中断，影响范围广，业务损失巨大。<strong>立即启动最高级别响应。</strong></li><li><strong>二级（严重）：</strong> 汇聚&#x2F;重要接入交换机、关键业务区域防火墙&#x2F;负载均衡故障，导致<strong>关键业务系统</strong>部分或全部中断。<strong>立即响应。</strong></li><li><strong>三级（一般）：</strong> 接入层设备故障、非关键链路中断、性能下降，影响<strong>局部用户或非核心业务</strong>。<strong>尽快响应。</strong></li><li><strong>四级（轻微）：</strong> 设备单板&#x2F;电源故障但冗余正常、端口误码率高但未中断，有潜在风险。<strong>记录并安排后续处理。</strong></li></ul></li><li><strong>评估内容：</strong> 影响哪些业务系统？影响哪些用户群体？预计恢复时间？是否有备用&#x2F;冗余路径？</li></ul><h3 id="6-3-应急处置-按设备类型"><a href="#6-3-应急处置-按设备类型" class="headerlink" title="6.3 应急处置 (按设备类型)"></a>6.3 应急处置 (按设备类型)</h3><h4 id="通用步骤-所有设备"><a href="#通用步骤-所有设备" class="headerlink" title="通用步骤 (所有设备)"></a><strong>通用步骤 (所有设备)</strong></h4><ol><li><strong>信息收集：</strong><ul><li>记录故障发生时间、现象。</li><li>登录设备（Console口优先，或管理口&#x2F;跳板机），查看系统状态 (<code>show version</code>, <code>show inventory</code>, <code>show environment</code>)。</li><li>检查关键进程&#x2F;服务状态 (<code>show processes cpu/memory</code>, <code>show ip bgp summary</code> 等)。</li><li>查看系统日志 (<code>show logging</code>)，寻找故障前后的错误、告警信息。</li><li>检查配置变更历史（确认近期是否有变更）。</li><li>检查物理连接（光纤&#x2F;网线、指示灯）。</li></ul></li><li><strong>隔离与保护：</strong><ul><li>如果怀疑是配置错误导致，<strong>立即备份当前配置</strong>。</li><li>如有必要且安全，将故障设备或端口从网络中隔离（如关闭端口），防止问题扩散。</li></ul></li><li><strong>尝试快速恢复：</strong><ul><li><strong>重启服务&#x2F;进程：</strong> 尝试重启故障相关的服务或进程（谨慎操作）。</li><li><strong>切换主备&#x2F;冗余：</strong> 如果设备是HA集群（如防火墙、负载均衡、堆叠&#x2F;虚拟化交换机、双机热备路由器），<strong>立即执行主备切换</strong>。这是最快速的恢复手段。</li><li><strong>重启设备：</strong> <strong>作为最后手段</strong>，在确认无更好办法且业务急需恢复时，可尝试重启设备。<strong>务必先备份配置！</strong> 重启前评估风险（如无状态切换的设备重启可能导致短暂中断）。</li></ul></li></ol><h4 id="特定设备补充措施"><a href="#特定设备补充措施" class="headerlink" title="特定设备补充措施"></a><strong>特定设备补充措施</strong></h4><ul><li><strong>交换机 (Switch):</strong><ul><li>检查端口状态 (<code>show interface status</code>, <code>show interface &lt;int&gt;</code>)，看是否有大量CRC错误、冲突、丢包。</li><li>检查STP状态 (<code>show spanning-tree</code>)，看是否有根桥切换或阻塞端口异常。</li><li>检查VLAN配置和Trunk状态。</li><li>检查堆叠&#x2F;虚拟化状态 (<code>show stack</code>, <code>show virtual-chassis</code>)。</li><li>如果是接入层，检查是否环路（端口大量流量、CPU飙升）。</li></ul></li><li><strong>路由器 (Router):</strong><ul><li>检查路由表 (<code>show ip route</code>)，看关键路由是否丢失。</li><li>检查邻居状态 (<code>show ip bgp neighbors</code>, <code>show ip ospf neighbor</code>)。</li><li>检查NAT、ACL配置是否正确。</li><li>检查WAN链路状态和协议（如PPPoE, MPLS）。</li></ul></li><li><strong>防火墙 (Firewall):</strong><ul><li><strong>安全第一！</strong> 任何操作需评估安全影响。</li><li>检查安全策略、NAT规则是否生效。</li><li>检查会话表 (<code>show conn</code>, <code>show session</code>)，看是否有异常连接或耗尽。</li><li>检查IPS&#x2F;IDS、防病毒等安全引擎状态。</li><li>检查HA同步状态和主备切换。</li><li><strong>严禁在故障排查中随意放宽安全策略！</strong></li></ul></li><li><strong>负载均衡器 (Load Balancer):</strong><ul><li>检查虚拟服务（Virtual Server）状态。</li><li>检查池（Pool）和池成员（Pool Member）的健康状态。</li><li>检查监控（Monitor）是否正常。</li><li>检查SSL证书状态（是否过期）。</li><li>检查HA状态和主备切换。</li><li>检查连接数、并发数是否达到上限。</li></ul></li></ul><h3 id="6-4-升级与协作"><a href="#6-4-升级与协作" class="headerlink" title="6.4 升级与协作"></a>6.4 升级与协作</h3><ul><li>如果NER在规定时间内（如30分钟内）无法定位或恢复一级&#x2F;二级故障，<strong>立即升级</strong>至应急指挥小组(EIC)。</li><li>EIC协调更多资源（如厂商技术支持、高级专家）、决策是否启动灾备方案、批准高风险操作。</li><li>需要系统、安全团队配合时，及时沟通协作。</li></ul><h3 id="6-5-信息通报"><a href="#6-5-信息通报" class="headerlink" title="6.5 信息通报"></a>6.5 信息通报</h3><ul><li><strong>内部通报：</strong><ul><li>NER及时向EIC和支持沟通组通报故障状态、影响、处理进展。</li><li>支持沟通组（IT服务台）向受影响的用户&#x2F;部门发布简明扼要的故障通告（避免过多技术细节）。</li><li>重大故障需向管理层定期汇报。</li></ul></li><li><strong>外部通报 (如适用)：</strong><ul><li>由公关&#x2F;行政部根据EIC决策，向客户、合作伙伴发布官方声明（如SaaS服务中断）。</li></ul></li></ul><h3 id="6-6-恢复验证"><a href="#6-6-恢复验证" class="headerlink" title="6.6 恢复验证"></a>6.6 恢复验证</h3><ul><li>故障处理后，<strong>必须进行验证</strong>：<ul><li>确认监控系统显示设备状态正常。</li><li>从不同位置测试关键业务系统访问是否正常。</li><li>检查网络性能（延迟、丢包）是否恢复正常。</li><li>确认所有冗余&#x2F;HA机制已恢复正常状态。</li></ul></li><li><strong>只有验证通过，才能宣布故障解决。</strong></li></ul><h3 id="6-7-后续处理"><a href="#6-7-后续处理" class="headerlink" title="6.7 后续处理"></a>6.7 后续处理</h3><ol><li><strong>故障关闭：</strong> 在工单系统中关闭故障工单，记录最终解决方案。</li><li><strong>根本原因分析 (RCA - Root Cause Analysis):</strong> 组织相关工程师进行深入分析，查明根本原因（硬件故障？软件Bug？配置错误？外部攻击？环境问题？）。</li><li><strong>撰写报告：</strong> 编写详细的故障报告，包含：时间线、现象、影响、处理过程、根本原因、解决方案、经验教训。</li><li><strong>预案修订：</strong> 根据RCA结果，修订本应急预案，补充新的处理步骤或预防措施。</li><li><strong>预防措施：</strong> 实施改进措施，如：<ul><li>更新设备固件&#x2F;软件。</li><li>优化配置。</li><li>增加监控项。</li><li>补充备件。</li><li>加强变更管理流程。</li><li>组织培训或演练。</li></ul></li><li><strong>知识库更新：</strong> 将故障案例和解决方案更新到IT知识库。</li></ol><h2 id="7-预防措施"><a href="#7-预防措施" class="headerlink" title="7. 预防措施"></a>7. 预防措施</h2><ul><li><strong>冗余设计：</strong> 关键设备（核心、防火墙、负载均衡）必须部署高可用（HA）方案（主备、主主、堆叠、虚拟化）。</li><li><strong>定期维护：</strong><ul><li>定期进行设备健康检查（巡检）。</li><li>定期备份配置文件（自动化脚本）。</li><li>制定并执行设备固件&#x2F;软件升级计划（在维护窗口进行）。</li></ul></li><li><strong>变更管理：</strong> 严格执行变更管理流程，所有配置变更需审批、测试、备份、记录。</li><li><strong>备件管理：</strong> 建立关键设备的备件库（如电源、风扇、主控板、整机）。</li><li><strong>环境保障：</strong> 确保机房环境（温度、湿度、电力、UPS）符合要求。</li><li><strong>文档完善：</strong> 维护最新的网络拓扑图、IP地址规划、设备清单、配置文档、联系人列表。</li><li><strong>培训与演练：</strong> 定期对NER成员进行技术培训和应急预案演练（如模拟主备切换、断电恢复），确保熟练掌握流程。</li></ul><h2 id="8-附录"><a href="#8-附录" class="headerlink" title="8. 附录"></a>8. 附录</h2><ul><li><strong>附录A：关键网络设备清单及位置</strong></li><li><strong>附录B：网络拓扑图</strong></li><li><strong>附录C：联系人列表 (内部 &amp; 厂商技术支持)</strong></li><li><strong>附录D：常用诊断命令速查表 (按厂商：Cisco, H3C, Huawei, Juniper, F5, Palo Alto等)</strong></li><li><strong>附录E：配置备份脚本&#x2F;工具说明</strong></li><li><strong>附录F：故障报告模板</strong></li></ul><hr><p><strong>重要提示：</strong></p><ul><li><strong>定制化：</strong> 此预案为通用框架，<strong>必须</strong>根据您组织的实际网络架构、设备型号、业务流程和人员结构进行详细填充和调整。特别是附录部分。</li><li><strong>演练：</strong> 预案的有效性依赖于定期的演练。至少每年进行一次桌面推演或实战演练。</li><li><strong>更新：</strong> 网络环境是动态变化的，预案需要定期（如每年）审查和更新，确保其时效性。</li><li><strong>权限：</strong> 明确各角色的操作权限，特别是涉及高风险操作（如重启核心设备、修改防火墙策略）的授权流程。</li></ul><p>通过实施和不断完善此预案，可以显著提升组织应对网络设备故障的能力，保障业务的稳定运行。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;网络设备故障应急预案&quot;&gt;&lt;a href=&quot;#网络设备故障应急预案&quot; class=&quot;headerlink&quot; title=&quot;网络设备故障应急预案&quot;&gt;&lt;/a&gt;网络设备故障应急预案&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;文档版本：&lt;/strong&gt; 1.0&lt;br&gt;&lt;strong&gt;</summary>
      
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="网络, 应急" scheme="http://hexo.abasp.com/tags/%E7%BD%91%E7%BB%9C-%E5%BA%94%E6%80%A5/"/>
    
  </entry>
  
  <entry>
    <title>Linux Oracle19C静默安装</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Linux%20Oracle19C%E9%9D%99%E9%BB%98%E5%AE%89%E8%A3%85.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Linux%20Oracle19C%E9%9D%99%E9%BB%98%E5%AE%89%E8%A3%85.html</id>
    <published>2024-06-25T01:36:26.000Z</published>
    <updated>2024-06-25T02:41:53.400Z</updated>
    
    <content type="html"><![CDATA[<p>安装包下载路径<br><a href="https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c">https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c</a></p><h1 id="一、安装前准备"><a href="#一、安装前准备" class="headerlink" title="一、安装前准备"></a>一、安装前准备</h1><h2 id="1-关闭防火墙，禁止防火墙开机自启"><a href="#1-关闭防火墙，禁止防火墙开机自启" class="headerlink" title="1.关闭防火墙，禁止防火墙开机自启"></a>1.关闭防火墙，禁止防火墙开机自启</h2><pre><code>systemctl stop firewalld.service --关闭防火墙systemctl disable firewalld.service -- 禁止防火墙开机启动systemctl status firewalld.service  -- 查看防火墙状态</code></pre><p><img src="/images/19c01.png" alt="关闭防火墙" title="Oracle19C安装"></p><h2 id="2-关闭selinux"><a href="#2-关闭selinux" class="headerlink" title="2.关闭selinux"></a>2.关闭selinux</h2><pre><code>vi /etc/selinux/config -- 编辑文件SELINUX=disabled  --修改</code></pre><span id="more"></span><p><img src="/images/19c02.png" alt="关闭selinux" title="Oracle19C安装"></p><h2 id="3-yum安装必要安装包"><a href="#3-yum安装必要安装包" class="headerlink" title="3.yum安装必要安装包"></a>3.yum安装必要安装包</h2><h3 id="若执行一遍失败则执行第二遍"><a href="#若执行一遍失败则执行第二遍" class="headerlink" title="若执行一遍失败则执行第二遍"></a>若执行一遍失败则执行第二遍</h3><pre><code>yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686</code></pre><h3 id="检查是否安装成功（31个安装包）"><a href="#检查是否安装成功（31个安装包）" class="headerlink" title="检查是否安装成功（31个安装包）"></a>检查是否安装成功（31个安装包）</h3><pre><code>rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel</code></pre><h1 id="二、创建用户组"><a href="#二、创建用户组" class="headerlink" title="二、创建用户组"></a>二、创建用户组</h1><h2 id="1-创建oinstall和dba组"><a href="#1-创建oinstall和dba组" class="headerlink" title="1.创建oinstall和dba组"></a>1.创建oinstall和dba组</h2><pre><code>/usr/sbin/groupadd oinstall/usr/sbin/groupadd dba</code></pre><h2 id="2-创建oracle用户"><a href="#2-创建oracle用户" class="headerlink" title="2.创建oracle用户"></a>2.创建oracle用户</h2><pre><code>/usr/sbin/useradd -g oinstall -G dba oracle</code></pre><h2 id="3-设置oracle密码"><a href="#3-设置oracle密码" class="headerlink" title="3.设置oracle密码"></a>3.设置oracle密码</h2><pre><code>passwd oracle</code></pre><h2 id="4-查看创建结果"><a href="#4-查看创建结果" class="headerlink" title="4.查看创建结果"></a>4.查看创建结果</h2><pre><code>id oracle</code></pre><h1 id="三、修改内核参数"><a href="#三、修改内核参数" class="headerlink" title="三、修改内核参数"></a>三、修改内核参数</h1><h2 id="1-编辑配置文件"><a href="#1-编辑配置文件" class="headerlink" title="1.编辑配置文件"></a>1.编辑配置文件</h2><pre><code>vi /etc/sysctl.conf</code></pre><h2 id="2-文件内容添加"><a href="#2-文件内容添加" class="headerlink" title="2.文件内容添加"></a>2.文件内容添加</h2><pre><code>fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 4294967296kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576</code></pre><p><img src="/images/19c03.png" alt="修改内核参数" title="Oracle19C安装"></p><h2 id="3-使配置生效"><a href="#3-使配置生效" class="headerlink" title="3.使配置生效"></a>3.使配置生效</h2><pre><code>/sbin/sysctl -p</code></pre><h1 id="四、修改配置"><a href="#四、修改配置" class="headerlink" title="四、修改配置"></a>四、修改配置</h1><h2 id="1-修改用户限制"><a href="#1-修改用户限制" class="headerlink" title="1.修改用户限制"></a>1.修改用户限制</h2><h3 id="1-编辑文件"><a href="#1-编辑文件" class="headerlink" title="1)编辑文件"></a>1)编辑文件</h3><pre><code>vi  /etc/security/limits.conf</code></pre><h3 id="2-在文件末尾添加以下内容"><a href="#2-在文件末尾添加以下内容" class="headerlink" title="2)在文件末尾添加以下内容"></a>2)在文件末尾添加以下内容</h3><pre><code>oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240oracle hard stack 10240</code></pre><p><img src="/images/19c04.png" title="Oracle19C安装"></p><h2 id="2-修改-etc-pam-d-login"><a href="#2-修改-etc-pam-d-login" class="headerlink" title="2.修改 &#x2F;etc&#x2F;pam.d&#x2F;login"></a>2.修改 &#x2F;etc&#x2F;pam.d&#x2F;login</h2><pre><code>vi  /etc/pam.d/login</code></pre><h3 id="添加以下内容"><a href="#添加以下内容" class="headerlink" title="添加以下内容"></a>添加以下内容</h3><pre><code>session required /lib64/security/pam_limits.sosession required pam_limits.so</code></pre><p><img src="/images/19c05.png" title="Oracle19C安装"></p><h2 id="3-修改-etc-profile"><a href="#3-修改-etc-profile" class="headerlink" title="3.修改&#x2F;etc&#x2F;profile"></a>3.修改&#x2F;etc&#x2F;profile</h2><pre><code>vi /etc/profile</code></pre><h3 id="添加以下内容-1"><a href="#添加以下内容-1" class="headerlink" title="添加以下内容"></a>添加以下内容</h3><pre><code>if [ $USER = &quot;oracle&quot; ]; then    if [ $SHELL = &quot;/bin/ksh&quot; ]; then        ulimit -p 16384        ulimit -n 65536    else        ulimit -u 16384 -n 65536    fifi</code></pre><p><img src="/images/19c06.png" title="Oracle19C安装"></p><h3 id="使配置生效"><a href="#使配置生效" class="headerlink" title="使配置生效"></a>使配置生效</h3><pre><code>source /etc/profile</code></pre><h2 id="4-创建目录"><a href="#4-创建目录" class="headerlink" title="4.创建目录"></a>4.创建目录</h2><p>如何linux曾经安装过oracle，通过 echo $ORACLE_HOME 查看是否有环境变量目录，如果有根据环境变量目录来创建文件夹。</p><pre><code>mkdir -p /u01/app/oracle/product/12/db_1chown -R oracle:oinstall /u01/app/chmod -R 775 /u01/app/mkdir -p /home/oracle/etcchown -R oracle:oinstall /home/oracle/etcchmod -R 775 /home/oracle/etcmkdir -p /home/datachown -R oracle:oinstall /home/datachmod -R 775 /home/data</code></pre><h2 id="5-配置oracle环境变量"><a href="#5-配置oracle环境变量" class="headerlink" title="5.配置oracle环境变量"></a>5.配置oracle环境变量</h2><pre><code>vi /home/oracle/.bash_profile   </code></pre><p>如果没有找到&#x2F;home&#x2F;oracle&#x2F;.bash_profile 执行下面命令</p><pre><code>cp /etc/skel/.bash_logout  /home/oracle/    cp /etc/skel/.bash_profile /home/oracle/cp /etc/skel/.bashrc  /home/oracle/</code></pre><p>在末尾添加以下内容：</p><pre><code>export ORACLE_SID=orcl    #数据库database.rsp中的SID export ORACLE_BASE=/u01/app/oracle                   #BASE目录export ORACLE_HOME=$ORACLE_BASE/product/12/db_1   #oracle安装包的目录export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib/usr/lib:/usr/local/libexport TEMP=/tmpexport TMP=/tmpexport LC_ALL=en_US.UTF-8export LANG=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKset -o vistty erase ^hif [ -t 0 ]; then   stty intr ^Cfiumask 022</code></pre><p>使用 source &#x2F;home&#x2F;oracle&#x2F;.base_profile 使oracle的环境变量生效。</p><h1 id="五、ORACLE-19c-静默安装"><a href="#五、ORACLE-19c-静默安装" class="headerlink" title="五、ORACLE 19c 静默安装"></a>五、ORACLE 19c 静默安装</h1><h2 id="1-上传ORACLE-19C-的安装包至-u01-app-oracle-product-12-db-1目录下并解压。"><a href="#1-上传ORACLE-19C-的安装包至-u01-app-oracle-product-12-db-1目录下并解压。" class="headerlink" title="1.上传ORACLE 19C 的安装包至&#x2F;u01&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12&#x2F;db_1目录下并解压。"></a>1.上传ORACLE 19C 的安装包至&#x2F;u01&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12&#x2F;db_1目录下并解压。</h2><h3 id="1-切换至oracle用户"><a href="#1-切换至oracle用户" class="headerlink" title="1)切换至oracle用户"></a>1)切换至oracle用户</h3><pre><code>su - oracle</code></pre><h3 id="2-解压安装包"><a href="#2-解压安装包" class="headerlink" title="2)解压安装包"></a>2)解压安装包</h3><pre><code>cd /u01/app/oracle/product/12/db_1unzip LINUX.X64_193000_db_home.zip</code></pre><h2 id="2-拷贝ORCALE程序安装和数据库创建的rsp响应文件。"><a href="#2-拷贝ORCALE程序安装和数据库创建的rsp响应文件。" class="headerlink" title="2.拷贝ORCALE程序安装和数据库创建的rsp响应文件。"></a>2.拷贝ORCALE程序安装和数据库创建的rsp响应文件。</h2><h3 id="1-把ORCALE程序安装文件拷贝至-orcale-etc-目录下"><a href="#1-把ORCALE程序安装文件拷贝至-orcale-etc-目录下" class="headerlink" title="1).把ORCALE程序安装文件拷贝至&#x2F;orcale&#x2F;etc&#x2F;目录下"></a>1).把ORCALE程序安装文件拷贝至&#x2F;orcale&#x2F;etc&#x2F;目录下</h3><pre><code>  cp /u01/app/oracle/product/12/db_1/install/response/db_install.rsp  /home/oracle/etc/  cp /u01/app/oracle/product/12/db_1/assistants/netca/netca.rsp  /home/oracle/etc/  cp /u01/app/oracle/product/12/db_1assistants/dbca/dbca.rsp  /home/oracle/etc/</code></pre><h2 id="3-修改db-install-rsp配置文件"><a href="#3-修改db-install-rsp配置文件" class="headerlink" title="3.修改db_install.rsp配置文件"></a>3.修改db_install.rsp配置文件</h2><pre><code>vi /home/orcale/etc/db_install.rsp</code></pre><p>修改以下内容：</p><pre><code>oracle.install.option=INSTALL_DB_SWONLY  #安装类型UNIX_GROUP_NAME=oinstall #安装组INVENTORY_LOCATION=/u01/app/oraInventory #INVENTORY目录ORACLE_BASE=/u01/app/oracleoracle.install.db.InstallEdition=EE  #ORCALE版本oracle.install.db.OSDBA_GROUP=dba  #dba用户组oracle.install.db.OSOPER_GROUP=dba     #dba用户组oracle.install.db.OSBACKUPDBA_GROUP=dba #dba用户组oracle.install.db.OSDGDBA_GROUP=dba #dba用户组oracle.install.db.OSKMDBA_GROUP=dba #dba用户组oracle.install.db.OSRACDBA_GROUP=dba #dba用户组oracle.install.db.config.starterdb.type=GENERAL_PURPOSE  //数据库类型oracle.install.db.config.starterdb.SID=orcl</code></pre><h2 id="4-安装ORCALE程序"><a href="#4-安装ORCALE程序" class="headerlink" title="4.安装ORCALE程序"></a>4.安装ORCALE程序</h2><h3 id="1-切换用户"><a href="#1-切换用户" class="headerlink" title="1)切换用户"></a>1)切换用户</h3><pre><code>su - oracle</code></pre><h3 id="2-切换目录"><a href="#2-切换目录" class="headerlink" title="2)切换目录"></a>2)切换目录</h3><pre><code>cd  /u01/app/oracle/product/12/db_1</code></pre><h3 id="3-执行安装命令"><a href="#3-执行安装命令" class="headerlink" title="3)执行安装命令"></a>3)执行安装命令</h3><pre><code>./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq</code></pre><p><img src="/images/19c07.png" title="Oracle19C安装"></p><h2 id="5-使用root用户执行以上所提示的脚本："><a href="#5-使用root用户执行以上所提示的脚本：" class="headerlink" title="5.使用root用户执行以上所提示的脚本："></a>5.使用root用户执行以上所提示的脚本：</h2><pre><code> su - root/u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/12/db_1/root.sh</code></pre><p><img src="/images/19c08.png" title="Oracle19C安装"></p><p>如果以上执行没有&#x2F;orainstRoot.sh脚本,解决办法：</p><p>原因因为&#x2F;etc&#x2F;ora文件存在，删除该文件，在重新执行一次。</p><pre><code>./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq</code></pre><h2 id="6-静默建库配置文件修改"><a href="#6-静默建库配置文件修改" class="headerlink" title="6.静默建库配置文件修改"></a>6.静默建库配置文件修改</h2><pre><code>su - oraclevi /home/oracle/etc/dbca.rsp</code></pre><p>创建数据库，修改相应文件，有些参数有默认值就不需要</p><pre><code>GDBNAME = &quot;orcl&quot;SID = &quot;orcl&quot;templateName=General_Purpose.dbc</code></pre><h2 id="7-执行静默建库-如果第一遍安装过，没有卸载干净。这边可能会报错"><a href="#7-执行静默建库-如果第一遍安装过，没有卸载干净。这边可能会报错" class="headerlink" title="7.执行静默建库 (如果第一遍安装过，没有卸载干净。这边可能会报错)"></a>7.执行静默建库 (如果第一遍安装过，没有卸载干净。这边可能会报错)</h2><pre><code>dbca -silent -createDatabase  -responseFile  /home/oracle/etc/dbca.rsp </code></pre><p><img src="/images/19c09.png" title="Oracle19C安装"></p><p>输入口令：</p><p>sys——sys<br>system—system</p><p><img src="/images/19c10.png" title="Oracle19C安装"></p><p>查看进程</p><pre><code>ps -ef | grep ora_ | grep -v grep</code></pre><h2 id="8-配置监听过程"><a href="#8-配置监听过程" class="headerlink" title="8.配置监听过程"></a>8.配置监听过程</h2><h3 id="1-切换用户-1"><a href="#1-切换用户-1" class="headerlink" title="1)切换用户"></a>1)切换用户</h3><pre><code>su - orcale</code></pre><h3 id="2-切换目录-1"><a href="#2-切换目录-1" class="headerlink" title="2)切换目录"></a>2)切换目录</h3><pre><code>cd /u01/app/oracle/product/12/db_1/bin</code></pre><h3 id="3-使用命令配置监听过程"><a href="#3-使用命令配置监听过程" class="headerlink" title="3)使用命令配置监听过程"></a>3)使用命令配置监听过程</h3><pre><code>netca /silent/responsefile   /u01/app/oracle/product/12/db_1/assistants/netca/netca.rsp</code></pre><p><img src="/images/19c11.png" title="Oracle19C安装"></p><h3 id="4-启动监听"><a href="#4-启动监听" class="headerlink" title="4)启动监听"></a>4)启动监听</h3><p>查看监听端口 netstat -tnpl | grep 1521<br>启动 lsnrctl start<br>查看状态 lsnrctl status<br><img src="/images/19c12.png" title="Oracle19C安装"></p><h3 id="5-激活数据库"><a href="#5-激活数据库" class="headerlink" title="5)激活数据库"></a>5)激活数据库</h3><pre><code>sqlplus / as sysdba;alter system register;</code></pre><h3 id="6-创建oracle-用户"><a href="#6-创建oracle-用户" class="headerlink" title="6)创建oracle 用户"></a>6)创建oracle 用户</h3><pre><code>create user 用户名 identified by 口令[即密码]；grant connect, resource，dba to 用户名;</code></pre><h1 id="六、开机自启动"><a href="#六、开机自启动" class="headerlink" title="六、开机自启动"></a>六、开机自启动</h1><h2 id="1-修改-etc-oratab文件"><a href="#1-修改-etc-oratab文件" class="headerlink" title="1.修改&#x2F;etc&#x2F;oratab文件"></a>1.修改&#x2F;etc&#x2F;oratab文件</h2><pre><code>vi /etc/oratab</code></pre><p>将页末的N改为Y。</p><p>##2. 建立自启动脚本</p><pre><code>[root@localhost init.d]# vim /etc/rc.d/init.d/oracle</code></pre><p>添加以下内容（有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改）：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br></pre></td><td class="code"><pre><span class="line">#!/bin/bash</span><br><span class="line">#oracle: Start/Stop Oracle Database 19c</span><br><span class="line">#chkconfig: 345 90 10</span><br><span class="line">#description: The Oracle Database is an Object-Relational Database Management System.</span><br><span class="line">#</span><br><span class="line">. /etc/rc.d/init.d/functions</span><br><span class="line">LOCKFILE=/var/lock/subsys/oracle</span><br><span class="line">ORACLE_HOME=/u01/app/oracle/product/12/db_1</span><br><span class="line">ORACLE_USER=oracle</span><br><span class="line">case &quot;$1&quot; in</span><br><span class="line">&#x27;start&#x27;)</span><br><span class="line">if [ -f $LOCKFILE ]; then</span><br><span class="line">      echo $0 already running.</span><br><span class="line">      exit 1</span><br><span class="line">   fi</span><br><span class="line">   echo -n $&quot;Starting Oracle Database:&quot;</span><br><span class="line">   su - $ORACLE_USER -c &quot;$ORACLE_HOME/bin/lsnrctl start&quot;</span><br><span class="line">   su - $ORACLE_USER -c &quot;$ORACLE_HOME/bin/dbstart $ORACLE_HOME&quot;</span><br><span class="line">   su - $ORACLE_USER -c &quot;$ORACLE_HOME/bin/emctl start dbconsole&quot;</span><br><span class="line">   touch $LOCKFILE</span><br><span class="line">   ;;</span><br><span class="line">&#x27;stop&#x27;)</span><br><span class="line">   if [ ! -f $LOCKFILE ]; then</span><br><span class="line">      echo $0 already stopping.</span><br><span class="line">      exit 1</span><br><span class="line">   fi</span><br><span class="line">   echo -n $&quot;Stopping Oracle Database:&quot;</span><br><span class="line">   su - $ORACLE_USER -c &quot;$ORACLE_HOME/bin/lsnrctl stop&quot;</span><br><span class="line">   su - $ORACLE_USER -c &quot;$ORACLE_HOME/bin/dbshut&quot;</span><br><span class="line">   su - $ORACLE_USER -c &quot;$ORACLE_HOME/bin/emctl stop dbconsole&quot;</span><br><span class="line">   rm -f $LOCKFILE</span><br><span class="line">   ;;</span><br><span class="line">&#x27;restart&#x27;)</span><br><span class="line">   $0 stop</span><br><span class="line">   $0 start</span><br><span class="line">   ;;</span><br><span class="line">&#x27;status&#x27;)</span><br><span class="line">   if [ -f $LOCKFILE ]; then</span><br><span class="line">      echo $0 started.</span><br><span class="line">      else</span><br><span class="line">      echo $0 stopped.</span><br><span class="line">   fi</span><br><span class="line">   ;;</span><br><span class="line">*)</span><br><span class="line">   echo &quot;Usage: $0 [start|stop|status]&quot;</span><br><span class="line">   exit 1</span><br><span class="line">esac</span><br><span class="line">exit 0</span><br></pre></td></tr></table></figure><h2 id="3-修改-etc-init-d-oracle服务文件权限"><a href="#3-修改-etc-init-d-oracle服务文件权限" class="headerlink" title="3.修改&#x2F;etc&#x2F;init.d&#x2F;oracle服务文件权限"></a>3.修改&#x2F;etc&#x2F;init.d&#x2F;oracle服务文件权限</h2><pre><code>[root@localhost bin]# chmod 755 /etc/init.d/oracle</code></pre><h2 id="4-设置为开机启动"><a href="#4-设置为开机启动" class="headerlink" title="4.设置为开机启动"></a>4.设置为开机启动</h2><pre><code>[root@seiang11g ~]# chkconfig oracle on</code></pre><h2 id="4-进行测试"><a href="#4-进行测试" class="headerlink" title="4.进行测试"></a>4.进行测试</h2><p>start:</p><pre><code>[root@localhost bin]# service oracle start</code></pre><p>stop:</p><pre><code>[root@localhost bin]# service oracle stop</code></pre><p>restart:</p><pre><code>[root@localhost bin]# service oracle restart</code></pre><p>status:</p><pre><code>[root@localhost bin]# service oracle status</code></pre><p>Reboot重启linux。</p><pre><code>[root@localhost bin]# reboot</code></pre><p>————————————————</p><p>原文链接：<a href="https://blog.csdn.net/qq_44831069/article/details/120039639">https://blog.csdn.net/qq_44831069/article/details/120039639</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;安装包下载路径&lt;br&gt;&lt;a href=&quot;https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c&quot;&gt;https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&quot;一、安装前准备&quot;&gt;&lt;a href=&quot;#一、安装前准备&quot; class=&quot;headerlink&quot; title=&quot;一、安装前准备&quot;&gt;&lt;/a&gt;一、安装前准备&lt;/h1&gt;&lt;h2 id=&quot;1-关闭防火墙，禁止防火墙开机自启&quot;&gt;&lt;a href=&quot;#1-关闭防火墙，禁止防火墙开机自启&quot; class=&quot;headerlink&quot; title=&quot;1.关闭防火墙，禁止防火墙开机自启&quot;&gt;&lt;/a&gt;1.关闭防火墙，禁止防火墙开机自启&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;systemctl stop firewalld.service --关闭防火墙
systemctl disable firewalld.service -- 禁止防火墙开机启动
systemctl status firewalld.service  -- 查看防火墙状态
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/19c01.png&quot; alt=&quot;关闭防火墙&quot; title=&quot;Oracle19C安装&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;2-关闭selinux&quot;&gt;&lt;a href=&quot;#2-关闭selinux&quot; class=&quot;headerlink&quot; title=&quot;2.关闭selinux&quot;&gt;&lt;/a&gt;2.关闭selinux&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;vi /etc/selinux/config -- 编辑文件
SELINUX=disabled  --修改
&lt;/code&gt;&lt;/pre&gt;</summary>
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="Oracle19" scheme="http://hexo.abasp.com/tags/Oracle19/"/>
    
  </entry>
  
  <entry>
    <title>Oracle12C--DG搭建配置</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Oracle12C--DG%E6%90%AD%E5%BB%BA%E9%85%8D%E7%BD%AE.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Oracle12C--DG%E6%90%AD%E5%BB%BA%E9%85%8D%E7%BD%AE.html</id>
    <published>2024-06-24T03:18:21.000Z</published>
    <updated>2024-06-25T02:25:42.021Z</updated>
    
    <content type="html"><![CDATA[<h1 id="一-主库前期操作"><a href="#一-主库前期操作" class="headerlink" title="一,主库前期操作"></a>一,主库前期操作</h1><p>两台服务器,一台主库,一台从库</p><h2 id="01-配置主库hosts"><a href="#01-配置主库hosts" class="headerlink" title="01,配置主库hosts"></a>01,配置主库hosts</h2><pre><code>cat /etc/hosts192.168.0.31 node12c01192.168.0.32 node12c02</code></pre><span id="more"></span><h2 id="02-主库启动FORCE-LOGGING"><a href="#02-主库启动FORCE-LOGGING" class="headerlink" title="02,主库启动FORCE LOGGING"></a>02,主库启动FORCE LOGGING</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">SQL&gt;  select name,open_mode from v$pdbs;</span><br><span class="line"></span><br><span class="line">NAME</span><br><span class="line">--------------------------------------------------------------------------------</span><br><span class="line">OPEN_MODE</span><br><span class="line">----------</span><br><span class="line">PDB$SEED</span><br><span class="line">READ ONLY</span><br><span class="line"></span><br><span class="line">ORCLPDB</span><br><span class="line">MOUNTED</span><br><span class="line"></span><br><span class="line">SQL&gt;  select force_logging from v$database;</span><br><span class="line"></span><br><span class="line">FORCE_LOGGING</span><br><span class="line">---------------------------------------</span><br><span class="line">NO</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database force logging;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; select force_logging from v$database;</span><br><span class="line"></span><br><span class="line">FORCE_LOGGING</span><br><span class="line">---------------------------------------</span><br><span class="line">YES</span><br></pre></td></tr></table></figure><h2 id="03-启动归档模式"><a href="#03-启动归档模式" class="headerlink" title="03,启动归档模式"></a>03,启动归档模式</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br></pre></td><td class="code"><pre><span class="line">SQL&gt;  archive log list;</span><br><span class="line">Database log mode       No Archive Mode</span><br><span class="line">Automatic archival       Disabled</span><br><span class="line">Archive destination       USE_DB_RECOVERY_FILE_DEST</span><br><span class="line">Oldest online log sequence     1</span><br><span class="line">Current log sequence       3</span><br><span class="line">SQL&gt; show pdbs</span><br><span class="line"></span><br><span class="line">    CON_ID CON_NAME  OPEN MODE  RESTRICTED</span><br><span class="line">---------- ------------------------------ ---------- ----------</span><br><span class="line"> 2 PDB$SEED  READ ONLY  NO</span><br><span class="line"> 3 ORCLPDB  MOUNTED</span><br><span class="line">SQL&gt; shutdown immediate</span><br><span class="line">Database closed.</span><br><span class="line">Database dismounted.</span><br><span class="line">ORACLE instance shut down.</span><br><span class="line">SQL&gt; startup mount;</span><br><span class="line">ORACLE instance started.</span><br><span class="line"></span><br><span class="line">Total System Global Area 2516582400 bytes</span><br><span class="line">Fixed Size    8795904 bytes</span><br><span class="line">Variable Size  671090944 bytes</span><br><span class="line">Database Buffers 1828716544 bytes</span><br><span class="line">Redo Buffers    7979008 bytes</span><br><span class="line">Database mounted.</span><br><span class="line">SQL&gt;  alter database archivelog;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt;oh /orcl/app/oracle/oradata/orcl/archivelog</span><br><span class="line"></span><br><span class="line">SQL&gt; alter system set log_archive_dest_1=&#x27;location=/orcl/app/oracle/oradata/orcl/archivelog&#x27;;</span><br><span class="line"></span><br><span class="line">SQL&gt; archive log list</span><br><span class="line">Database log mode       Archive Mode</span><br><span class="line">Automatic archival       Enabled</span><br><span class="line">Archive destination       /orcl/app/oracle/oradata/orcl/archivelog</span><br><span class="line">Oldest online log sequence     1</span><br><span class="line">Next log sequence to archive   3</span><br><span class="line">Current log sequence       3</span><br><span class="line"></span><br><span class="line">SQL&gt; show parameter recovery;</span><br><span class="line"></span><br><span class="line">NAME     TYPE VALUE</span><br><span class="line">------------------------------------ ----------- ------------------------------</span><br><span class="line">db_recovery_file_dest     string /orcl/app/oracle/fast_recovery</span><br><span class="line"> _area/orcl</span><br><span class="line">db_recovery_file_dest_size     big integer 12780M</span><br><span class="line">recovery_parallelism     integer 0</span><br><span class="line">remote_recovery_file_dest     string</span><br><span class="line">SQL&gt; alter system set db_recovery_file_dest_size=1G;</span><br><span class="line"></span><br><span class="line">System altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; show parameter recovery;</span><br><span class="line"></span><br><span class="line">NAME     TYPE VALUE</span><br><span class="line">------------------------------------ ----------- ------------------------------</span><br><span class="line">db_recovery_file_dest     string /orcl/app/oracle/fast_recovery</span><br><span class="line"> _area/orcl</span><br><span class="line">db_recovery_file_dest_size     big integer 1G</span><br><span class="line">recovery_parallelism     integer 0</span><br><span class="line">remote_recovery_file_dest     string</span><br><span class="line">SQL&gt;  select name,open_mode from v$pdbs;</span><br><span class="line"></span><br><span class="line">NAME</span><br><span class="line">--------------------------------------------------------------------------------</span><br><span class="line">OPEN_MODE</span><br><span class="line">----------</span><br><span class="line">PDB$SEED</span><br><span class="line">MOUNTED</span><br><span class="line"></span><br><span class="line">ORCLPDB</span><br><span class="line">MOUNTED</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database open;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; select name,open_mode from v$pdbs;</span><br><span class="line"></span><br><span class="line">NAME</span><br><span class="line">--------------------------------------------------------------------------------</span><br><span class="line">OPEN_MODE</span><br><span class="line">----------</span><br><span class="line">PDB$SEED</span><br><span class="line">READ ONLY</span><br><span class="line"></span><br><span class="line">ORCLPDB</span><br><span class="line">MOUNTED</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">SQL&gt;  alter pluggable database all open;</span><br><span class="line"></span><br><span class="line">Pluggable database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; select name ,open_mode from v$pdbs;</span><br><span class="line"></span><br><span class="line">NAME</span><br><span class="line">--------------------------------------------------------------------------------</span><br><span class="line">OPEN_MODE</span><br><span class="line">----------</span><br><span class="line">PDB$SEED</span><br><span class="line">READ ONLY</span><br><span class="line"></span><br><span class="line">ORCLPDB</span><br><span class="line">READ WRITE</span><br></pre></td></tr></table></figure><h2 id="04-添加redo日志"><a href="#04-添加redo日志" class="headerlink" title="04,添加redo日志"></a>04,添加redo日志</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><span class="line">SQL&gt; show con_name</span><br><span class="line"></span><br><span class="line">CON_NAME</span><br><span class="line">------------------------------</span><br><span class="line">CDB$ROOT</span><br><span class="line">SQL&gt; select  group#, members,  bytes  from v$log;</span><br><span class="line"></span><br><span class="line">    GROUP#    MEMBERS   BYTES</span><br><span class="line">---------- ---------- ----------</span><br><span class="line"> 1    1  209715200</span><br><span class="line"> 2    1  209715200</span><br><span class="line"> 3    1  209715200</span><br><span class="line"></span><br><span class="line">SQL&gt;  select  member from  v$logfile;</span><br><span class="line"></span><br><span class="line">MEMBER</span><br><span class="line">--------------------------------------------------------------------------------</span><br><span class="line">/orcl/app/oracle/oradata/orcl/redo03.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/redo02.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/redo01.log</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database add standby logfile &#x27;/orcl/app/oracle/oradata/orcl/stdredo01.log&#x27; size 50M;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database add standby logfile &#x27;/orcl/app/oracle/oradata/orcl/stdredo02.log&#x27; size 50M;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database add standby logfile &#x27;/orcl/app/oracle/oradata/orcl/stdredo03.log&#x27; size 50M;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database add standby logfile &#x27;/orcl/app/oracle/oradata/orcl/stdredo04.log&#x27; size 50M;</span><br><span class="line"></span><br><span class="line">Database altered.</span><br><span class="line"></span><br><span class="line">SQL&gt; select member from v$logfile;</span><br><span class="line"></span><br><span class="line">MEMBER</span><br><span class="line">--------------------------------------------------------------------------------</span><br><span class="line">/orcl/app/oracle/oradata/orcl/redo03.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/redo02.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/redo01.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/stdredo01.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/stdredo02.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/stdredo03.log</span><br><span class="line">/orcl/app/oracle/oradata/orcl/stdredo04.log</span><br><span class="line"></span><br><span class="line">7 rows selected.</span><br></pre></td></tr></table></figure><h2 id="05-备份主库"><a href="#05-备份主库" class="headerlink" title="05,备份主库"></a>05,备份主库</h2><p>创建备份目录</p><pre><code>SQL&gt; ho mkdir /home/oracle/dgback/</code></pre><p>备份</p><pre><code>RMAN&gt; configure channel device type disk format &#39;/home/oracle/dgback/%d_%I_%s_%p.bkp&#39;;RMAN&gt; backup as compressed backupset database include current controlfile for standby plus archivelog;</code></pre><h2 id="06-配置监听"><a href="#06-配置监听" class="headerlink" title="06,配置监听"></a>06,配置监听</h2><p>主库和从库配置并且能ping 通</p><p>主库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c01 ~]$ cat /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># listener.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line">SID_LIST_LISTENER =</span><br><span class="line">  (SID_LIST =</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (SID_NAME = PLSExtProc)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">      (PROGRAM = extproc)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = node12c01)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = ORCL)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = node12c01_dgmgrl)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = ORCL)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = node12c)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = ORCL)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">LISTENER =</span><br><span class="line">  (DESCRIPTION_LIST =</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = node12c01)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">ADR_BASE_LISTENER = /orcl/app/oracle/</span><br><span class="line">[oracle@node12c01 ~]$ cat /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># tnsnames.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">LISTENER_ORCL =</span><br><span class="line">  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line"></span><br><span class="line">ORCL =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c01 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c02 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br></pre></td></tr></table></figure><p>从库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c02 ~]$ cat /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># listener.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line">SID_LIST_LISTENER =</span><br><span class="line">  (SID_LIST =</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (SID_NAME = PLSExtProc)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">      (PROGRAM = extproc)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = node12c02)</span><br><span class="line">      (SID_NAME = ORCL)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = node12c01)</span><br><span class="line">      (SID_NAME = ORCL)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">LISTENER =</span><br><span class="line">  (DESCRIPTION_LIST =</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">[oracle@node12c02 ~]$ cat /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># tnsnames.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">LISTENER_ORCL =</span><br><span class="line">  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">ORCL =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME =  node12c02)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">ORCL =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = node12c01)</span><br><span class="line">    )</span><br><span class="line">  )</span><br></pre></td></tr></table></figure><p>相互ping </p><pre><code>tnsping node12c01tnsping node12c02</code></pre><h2 id="07-配置连接"><a href="#07-配置连接" class="headerlink" title="07, 配置连接"></a>07, 配置连接</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br></pre></td><td class="code"><pre><span class="line">SQL&gt; show parameter name</span><br><span class="line"></span><br><span class="line">NAME     TYPE VALUE</span><br><span class="line">------------------------------------ ----------- ------------------------------</span><br><span class="line">cdb_cluster_name     string NODE12C01</span><br><span class="line">cell_offloadgroup_name     string</span><br><span class="line">db_file_name_convert     string</span><br><span class="line">db_name      string orcl</span><br><span class="line">db_unique_name     string NODE12C01</span><br><span class="line">global_names     boolean FALSE</span><br><span class="line">instance_name     string orcl</span><br><span class="line">lock_name_space      string</span><br><span class="line">log_file_name_convert     string</span><br><span class="line">pdb_file_name_convert     string</span><br><span class="line">processor_group_name     string</span><br><span class="line"></span><br><span class="line">NAME     TYPE VALUE</span><br><span class="line">------------------------------------ ----------- ------------------------------</span><br><span class="line">service_names     string NODE12C01</span><br><span class="line"></span><br><span class="line">这些配置的话需要一 一对应</span><br><span class="line">配置操作命令有下:</span><br><span class="line"></span><br><span class="line">alter system set service_names=&#x27;NODE12C02&#x27;; ---更改服务名</span><br><span class="line">alter system set db_unique_name=&#x27;NODE12C02&#x27; scope=spfile;</span><br><span class="line">create spfile from pfile=&#x27;/orcl/app/oracle/product/12.1.0/db_1/dbs/initorcl.ora&#x27;; --创建spfile</span><br><span class="line">startup nomount pfile=&#x27;/orcl/app/oracle/product/12.1.0/db_1/dbs/initorcl.ora&#x27;; --指定启动</span><br><span class="line">要相互能连接上</span><br><span class="line"></span><br><span class="line">[oracle@node12c02 admin]$ sqlplus sys/123456@NODE12C01 as sysdba</span><br><span class="line"></span><br><span class="line">SQL*Plus: Release 12.2.0.1.0 Production on Tue Apr 2 22:42:25 2019</span><br><span class="line"></span><br><span class="line">Copyright (c) 1982, 2016, Oracle.  All rights reserved.</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">Connected to:</span><br><span class="line">Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production</span><br><span class="line"></span><br><span class="line">[oracle@node12c01 admin]$ sqlplus sys/123456@NODE12C02 as sysdba</span><br></pre></td></tr></table></figure><h2 id="8-备库生成数据"><a href="#8-备库生成数据" class="headerlink" title="8,备库生成数据"></a>8,备库生成数据</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c02 admin]$ rman target sys/123456@NODE12C01 auxiliary sys/123456@NODE12C02</span><br><span class="line"></span><br><span class="line">Recovery Manager: Release 12.2.0.1.0 - Production on Tue Apr 2 23:15:51 2019</span><br><span class="line"></span><br><span class="line">Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.</span><br><span class="line"></span><br><span class="line">connected to target database: ORCL (DBID=1532278336)</span><br><span class="line">connected to auxiliary database: ORCL (not mounted)</span><br><span class="line"></span><br><span class="line">RMAN&gt;  </span><br><span class="line">RMAN&gt; duplicate target database for standby from active database nofilenamecheck;</span><br></pre></td></tr></table></figure><p>没有错误显示就成功了</p><h2 id="9-dgbroker"><a href="#9-dgbroker" class="headerlink" title="9,dgbroker"></a>9,dgbroker</h2><p>主备都开启</p><pre><code>alter system set dg_broker_start=true   </code></pre><p>尝试进入主库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c01 ecpect]$ dgmgrl sys/123456</span><br><span class="line">DGMGRL for Linux: Release 12.2.0.1.0 - Production on Tue Apr 2 23:22:55 2019</span><br><span class="line"></span><br><span class="line">Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.</span><br><span class="line"></span><br><span class="line">Welcome to DGMGRL, type &quot;help&quot; for information.</span><br><span class="line">Connected to &quot;NODE12C01&quot;</span><br><span class="line">Connected as SYSDG.</span><br><span class="line">DGMGRL&gt;</span><br><span class="line"></span><br><span class="line">把主库添加进dg配置 ---&gt;具体操作查看往期文章</span><br><span class="line"></span><br><span class="line">DGMGRL&gt; help create</span><br><span class="line"></span><br><span class="line">Creates a broker configuration</span><br><span class="line"></span><br><span class="line">Syntax:</span><br><span class="line"></span><br><span class="line">  CREATE CONFIGURATION &lt;configuration name&gt; [AS]</span><br><span class="line">    PRIMARY DATABASE IS &lt;database name&gt;</span><br><span class="line">    CONNECT IDENTIFIER IS &lt;connect identifier&gt;;</span><br><span class="line"></span><br><span class="line">DGMGRL&gt; CREATE CONFIGURATION node12c as primary database is node12c01 connect identifier is node12c01;</span><br><span class="line"></span><br><span class="line">Configuration &quot;node12c&quot; created with primary database &quot;node12c01&quot;</span><br><span class="line"></span><br><span class="line">把备库添加进dg配置</span><br><span class="line"></span><br><span class="line">DGMGRL&gt; add database node12c02 as connect identifier is node12c02 maintained as physical;</span><br><span class="line">DGMGRL&gt; enable configuration  --启动配置</span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;一-主库前期操作&quot;&gt;&lt;a href=&quot;#一-主库前期操作&quot; class=&quot;headerlink&quot; title=&quot;一,主库前期操作&quot;&gt;&lt;/a&gt;一,主库前期操作&lt;/h1&gt;&lt;p&gt;两台服务器,一台主库,一台从库&lt;/p&gt;
&lt;h2 id=&quot;01-配置主库hosts&quot;&gt;&lt;a href=&quot;#01-配置主库hosts&quot; class=&quot;headerlink&quot; title=&quot;01,配置主库hosts&quot;&gt;&lt;/a&gt;01,配置主库hosts&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;cat /etc/hosts
192.168.0.31 node12c01
192.168.0.32 node12c02
&lt;/code&gt;&lt;/pre&gt;</summary>
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="Oracle12,DG" scheme="http://hexo.abasp.com/tags/Oracle12-DG/"/>
    
  </entry>
  
  <entry>
    <title>Oracle12C--DG Far Sync部署</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Oracle12C--DG_Far_Sync%E9%83%A8%E7%BD%B2.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Oracle12C--DG_Far_Sync%E9%83%A8%E7%BD%B2.html</id>
    <published>2024-06-24T00:52:07.000Z</published>
    <updated>2024-06-24T04:09:32.389Z</updated>
    
    <content type="html"><![CDATA[<p>Oracle12C–DG Far Sync 部署(前提为搭建好12C的DG)</p><h1 id="一-理解同步异步模式"><a href="#一-理解同步异步模式" class="headerlink" title="一,理解同步异步模式"></a>一,理解同步异步模式</h1><h2 id="01-使用LGWR-进程的SYNC-方式"><a href="#01-使用LGWR-进程的SYNC-方式" class="headerlink" title="01, 使用LGWR 进程的SYNC 方式"></a>01, 使用LGWR 进程的SYNC 方式</h2><p>1）Primary Database 产生的Redo 日志要同时写到日志文件和网络。也就是说LGWR进程把日志写到本地日志文件的同时还要发送给本地的LNSn进程（Network Server Process），再由LNSn（LGWR Network Server process）进程把日志通过网络发送给远程的目的地，每个远程目的地对应一个LNS进程，多个LNS进程能够并行工作。</p><p>2）LGWR 必须等待写入本地日志文件操作和通过LNSn进程的网络传送都成功，Primary Database 上的事务才能提交，这也是SYNC的含义所在。</p><p>3）Standby Database的RFS进程把接收到的日志写入到Standby Redo Log日志中。</p><p>4）Primary Database的日志切换也会触发Standby Database 上的日志切换，即Standby Database 对Standby Redo Log的归档，然后触发Standby Database 的MRP或者LSP 进程恢复归档日志。</p><span id="more"></span><p>因为Primary Database 的Redo 是实时传递的，于是Standby Database 端可以使用两种恢复方法： </p><p>实时恢复（Real-Time Apply）： 只要RFS把日志写入Standby Redo Log 就会立即进行恢复；</p><p>归档恢复： 在完成对Standby Redo Log 归档才触发恢复。</p><p>Primary Database默认使用ARCH进程，如果使用LGWR进程必须明确指定。使用LGWR SYNC方式时，可以同时使用NET_TIMEOUT参数，这个参数单位是秒，代表如果多长时间内网络发送没有响应，LGWR 进程会抛出错误。 示例如下：</p><pre><code>alter system set log_archive_dest_2 = &#39;SERVICE=ST  LGWR  SYNC  NET_TIMEOUT=30&#39; scope=both;</code></pre><h2 id="02-使用LGWR进程的ASYNC-方式"><a href="#02-使用LGWR进程的ASYNC-方式" class="headerlink" title="02, 使用LGWR进程的ASYNC 方式"></a>02, 使用LGWR进程的ASYNC 方式</h2><p>使用LGWR SYNC方法的可能问题在于，如果日志发送给Standby Database过程失败，LGWR进程就会报错。也就是说Primary Database的LGWR 进程依赖于网络状况，有时这种要求可能过于苛刻，这时就可以使用LGWR ASYNC方式。 它的工作机制如下：</p><p>1） Primary Database 一端产生Redo 日志后，LGWR 把日志同时提交给日志文件和本地LNS 进程，但是LGWR进程只需成功写入日志文件就可以，不必等待LNSn进程的网络传送成功。</p><p>2） LNSn进程异步地把日志内容发送到Standby Database。多个LNSn进程可以并发发送。</p><p>3） Primary Database的Online Redo Log 写满后发生Log Switch，触发归档操作，也触发Standby Database对Standby Database对Standby Redo Log 的归档；然后触发MRP或者LSP 进程恢复归档日志。</p><p>因为LGWR进程不会等待LNSn进程的响应结果，所以配置LGWR ASYNC方式时不需要NET_TIMEOUT参数。示例如下：</p><pre><code>alter system set log_archive_dest_2 = &#39;SERVICE=ST  LGWR  ASYNC &#39; scope=both; </code></pre><h1 id="二-理解DG三大保护模式"><a href="#二-理解DG三大保护模式" class="headerlink" title="二,理解DG三大保护模式"></a>二,理解DG三大保护模式</h1><table><thead><tr><th>Maximum Availability</th><th>Maximum Performance</th><th>Maximum Protection</th></tr></thead><tbody><tr><td>AFFIRM</td><td>NOAFFIRM</td><td>AFFIRM</td></tr><tr><td>SYNC</td><td>ASYNC</td><td>SYNC</td></tr></tbody></table><h2 id="1-最大可用性模式（Maximum-Availability）"><a href="#1-最大可用性模式（Maximum-Availability）" class="headerlink" title="1.最大可用性模式（Maximum Availability）"></a>1.最大可用性模式（Maximum Availability）</h2><p>　　1）该模式提供了仅次于“最大保护模式”的数据保护能力；</p><p>　　2）要求至少一个物理备库收到重做日志后，主库的事务才能够提交；</p><p>　　3）主库找不到合适的备库写入时，主库不会关闭，而是临时降低到“最大性能模式”模式，直到问题得到处理；</p><p>　　4）优点：该模式可以在没有问题出现的情况下，保证备库没有数据丢失，是一种折中的方法；</p><p>　　5）缺点：在正常运行的过程中缺点是主库的性能受到诸多因素的影响。</p><h2 id="2-最大性能模式（Maximum-Performance）"><a href="#2-最大性能模式（Maximum-Performance）" class="headerlink" title="2.最大性能模式（Maximum Performance）"></a>2.最大性能模式（Maximum Performance）</h2><p>　　1）该模式是默认模式，可以保证主数据库的最高可用性；</p><p>　　2）保证主库运行过程中不受备库的影响，主库事务正常提交，不因备库的任何问题影响到主库的运行；</p><p>　　3）优点：避免了备库对主数据库的性能和可用性影响；</p><p>　　4）缺点：如果与主库提交的事务相关的恢复数据没有发送到备库，这些事务数据将被丢失，不能保证数据无损失。</p><h2 id="3-最大保护模式（Maximum-Protection）"><a href="#3-最大保护模式（Maximum-Protection）" class="headerlink" title="3.最大保护模式（Maximum Protection）"></a>3.最大保护模式（Maximum Protection）</h2><p>　　1）这种模式提供了最高级别的数据保护能力；</p><p>　　2）要求至少一个物理备库收到重做日志后，主库的事务才能够提交；</p><p>　　3）主库找不到合适的备库写入时，主库会自动关闭，防止未受保护的数据出现；</p><p>　　4）优点：该模式可以保证备库没有数据丢失；</p><p>　　5）缺点：主库的自动关闭会影响到主库的可用性，同时需要备库恢复后才能提交，对网络等客观条件要求非常的高，主库的性能会因此受到非常大的冲击。</p><h1 id="三-了解FAR-SYNC"><a href="#三-了解FAR-SYNC" class="headerlink" title="三,了解FAR SYNC"></a>三,了解FAR SYNC</h1><p>Active Data Guard Far Sync是Oracle 12c的新功能（也称为Far Sync Standby），Far Sync功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync实例，主库(Primary Database) 同步(synchronous)传输redo到Far Sync实例，然后Far Sync实例再将redo异步(asynchronous)传输到终端备库(Standby Database)。这样既可以保证零数据丢失又可以降低主库压力。Far Sync实例只有密码文件，init参数文件和控制文件，而没有数据文件。</p><p>如果redo 传输采用Maximum Availability模式，我们可以在距离生产中心(Primary Database)相对较近的地点配置Far Sync实例，主库(Primary Database)同步(synchronous)传输redo到Far Sync实例，保证零数据丢失（zero data loss），同时主库和Far Sync距离较近，网络延时很小，因此对主库性能影响很小。然后Far Sync实例再将redo异步(asynchronous)发送到终端备库(Standby Database)。</p><p>如果redo 传输采用Maximum Performance模式，我们可以在距离生产中心(Primary Database)相对较近的地点配置Far Sync实例，主库(Primary Database) 异步传输redo到Far Sync实例，然后Far Sync实例再负责传输redo到其他多个终端备库(Standby Database)。这样可以减少主库向多个终端备库(Standby Database)传输redo的压力（offload）。</p><p>Far Sync配置对于Data Guard 角色转换(role transitions)是透明的，即switchover&#x2F;failover命令方式与12c之前相同。<br>考虑到可能发生Data Guard 角色转换，即switchover&#x2F;failover，可以在距离备库较近的地方也配置Far Sync实例，这个Far Sync实例只有在当前的备库切换为主库后才启用。</p><p>考虑到Far Sync实例的单点故障，可以在距离主库较近的地点配置2个Far Sync实例，起到备用的作用</p><h1 id="四-配置FAR-SYNC"><a href="#四-配置FAR-SYNC" class="headerlink" title="四,配置FAR SYNC"></a>四,配置FAR SYNC</h1><h2 id="01-系统描述"><a href="#01-系统描述" class="headerlink" title="01, 系统描述"></a>01, 系统描述</h2><table><thead><tr><th>角色</th><th>主库</th><th>备库</th><th>far sync节点一</th><th>far sync节点二</th></tr></thead><tbody><tr><td>IP地址</td><td>192.168.0.31</td><td>192.168.0.32</td><td>192.168.0.33</td><td>192.168.0.34</td></tr><tr><td>hostsname</td><td>node12c01</td><td>node12c02</td><td>node12c03</td><td>node12c04</td></tr><tr><td>DB_unique_name</td><td>node12c01</td><td>node12c02</td><td>node12c03</td><td>node12c04</td></tr><tr><td>实例名</td><td>orcl</td><td>orcl</td><td>orcl</td><td>orcl</td></tr><tr><td>监听服务</td><td>见下</td><td>见下</td><td>见下</td><td>见下</td></tr><tr><td>控制文件</td><td>&#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;oradata&#x2F;orcl&#x2F;control01.ctl,</br>&#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;fast_recovery_area&#x2F;orcl&#x2F;control02.ctl</td><td>见左</td><td>见左</td><td>见左</td></tr></tbody></table><h3 id="主库监听"><a href="#主库监听" class="headerlink" title="主库监听:"></a>主库监听:</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c01 admin]$ cat listener.ora   --- 主库与备库DG状态,这个是不需要更改的</span><br><span class="line"># listener.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">SID_LIST_LISTENER =</span><br><span class="line">  (SID_LIST =</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (SID_NAME = PLSExtProc)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">      (PROGRAM = extproc)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = NODE12C01)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = orcl)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = NODE12C01_DGMGRL)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = orcl)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = node12c)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = ORCL)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">LISTENER =</span><br><span class="line">  (DESCRIPTION_LIST =</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = node12c01)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">ADR_BASE_LISTENER = /orcl/app/oracle/</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line"># tnsnames.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">LISTENER_ORCL =</span><br><span class="line">  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line"></span><br><span class="line">ORCL =              //---DG配置的</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c01 =   //--需要tnsping 互通的节点都写上</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)   这个对应着服务的名字DB_unique_name的</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c02 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c03 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.33)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C03)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c04 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.34)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C04)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br></pre></td></tr></table></figure><h3 id="备库监听"><a href="#备库监听" class="headerlink" title="备库监听:"></a>备库监听:</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c02 admin]$ cat listener.ora</span><br><span class="line"># listener.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">SID_LIST_LISTENER =</span><br><span class="line">  (SID_LIST =</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (SID_NAME = PLSExtProc)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">      (PROGRAM = extproc)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = NODE12C02)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = orcl)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = NODE12C02_DGMGRL)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = orcl)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">LISTENER =</span><br><span class="line">  (DESCRIPTION_LIST =</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))</span><br><span class="line">    )</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">ADR_BASE_LISTENER = /orcl/app/oracle</span><br><span class="line"></span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c02 admin]$ cat tnsnames.ora</span><br><span class="line"># tnsnames.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">LISTENER_ORCL =</span><br><span class="line">  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line"></span><br><span class="line">node12c01 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c02 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">ORCL =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c03 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.33)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C03)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c04 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.34)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C04)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br></pre></td></tr></table></figure><h3 id="FS节点一监听"><a href="#FS节点一监听" class="headerlink" title="FS节点一监听:"></a>FS节点一监听:</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c03 admin]$ cat listener.ora</span><br><span class="line"># listener.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">SID_LIST_LISTENER =</span><br><span class="line">  (SID_LIST =</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (SID_NAME = PLSExtProc)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">      (PROGRAM = extproc)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = NODE12C03)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = orcl)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">LISTENER =</span><br><span class="line">  (DESCRIPTION_LIST =</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))</span><br><span class="line">    )</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.33)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">ADR_BASE_LISTENER = /orcl/app/oracle</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c03 admin]$ cat tnsnames.ora</span><br><span class="line"># tnsnames.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">LISTENER_ORCL =</span><br><span class="line">  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.33)(PORT = 1521))</span><br><span class="line">ORCL =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c01 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c02 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c03 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.33)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C03)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c04 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.34)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C04)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br></pre></td></tr></table></figure><h3 id="FS节点二监听"><a href="#FS节点二监听" class="headerlink" title="FS节点二监听:"></a>FS节点二监听:</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c04 admin]$ cat listener.ora</span><br><span class="line"># listener.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/listener.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">SID_LIST_LISTENER =</span><br><span class="line">  (SID_LIST =</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (SID_NAME = PLSExtProc)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1/)</span><br><span class="line">      (PROGRAM = extproc)</span><br><span class="line">    )</span><br><span class="line">    (SID_DESC =</span><br><span class="line">      (GLOBAL_DBNAME = NODE12C04)</span><br><span class="line">      (ORACLE_HOME = /orcl/app/oracle/product/12.1.0/db_1)</span><br><span class="line">      (SID_NAME = orcl)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">LISTENER =</span><br><span class="line">  (DESCRIPTION_LIST =</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))</span><br><span class="line">    )</span><br><span class="line">    (DESCRIPTION =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.34)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line"></span><br><span class="line">ADR_BASE_LISTENER = /orcl/app/oracle</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c04 admin]$ cat tnsnames.ora</span><br><span class="line"># tnsnames.ora Network Configuration File: /orcl/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora</span><br><span class="line"># Generated by Oracle configuration tools.</span><br><span class="line"></span><br><span class="line">LISTENER_ORCL =</span><br><span class="line">  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line"></span><br><span class="line">node12c01 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVER = DEDICATED)</span><br><span class="line">      (SERVICE_NAME = NODE12C01)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c02 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">ORCL =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C02)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c03 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.33)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C03)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br><span class="line">node12c04 =</span><br><span class="line">  (DESCRIPTION =</span><br><span class="line">    (ADDRESS_LIST =</span><br><span class="line">      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.34)(PORT = 1521))</span><br><span class="line">    )</span><br><span class="line">    (CONNECT_DATA =</span><br><span class="line">      (SERVICE_NAME = NODE12C04)</span><br><span class="line">      (UR=A)</span><br><span class="line">    )</span><br><span class="line">  )</span><br></pre></td></tr></table></figure><p>每个节点配置好后tnsping 能互通。</p><h2 id="02-环境框架部署"><a href="#02-环境框架部署" class="headerlink" title="02,环境框架部署"></a>02,环境框架部署</h2><h3 id="001-必须搭建好12C的DG为基础-搭设Oracle12C参考这篇文章-。"><a href="#001-必须搭建好12C的DG为基础-搭设Oracle12C参考这篇文章-。" class="headerlink" title="001,必须搭建好12C的DG为基础, 搭设Oracle12C参考这篇文章&gt;&gt;&gt;。"></a>001,必须搭建好12C的DG为基础, <a href="/pages/%E6%8A%80%E6%9C%AF/oracle12C--DG%E6%90%AD%E5%BB%BA%E9%85%8D%E7%BD%AE">搭设Oracle12C参考这篇文章&gt;&gt;&gt;</a>。</h3><p>FAR SYNC的两台服务器的话直接克隆的备库主机,克隆后删除数据文件即可,重新搭建的话只需要ORACLE软件,不需要建立数据库。</p><h3 id="002-主-创建文件"><a href="#002-主-创建文件" class="headerlink" title="002,(主)创建文件"></a>002,(主)创建文件</h3><pre><code>SQL&gt; alter database create far sync instance controlfile as &#39;/orcl/app/fs01.ctl&#39;; --创建控制文件SQL&gt;  create pfile=&#39;/orcl/app/initorcl.ora&#39; from spfile; --创建pfile文件SQL&gt;exit[oracle@node12c01 admin]$ ll /orcl/app/total 18388-rw-r-----  1 oracle oinstall 18825216 Apr  8 03:15 fs01.ctl-rw-r--r--  1 oracle oinstall     1888 Apr  8 03:16 initorcl.oradrwxrwxr-x 11 oracle oinstall      173 Apr  2 05:28 oracledrwxrwx---  5 oracle oinstall       89 Apr  2 02:54 oraInventory</code></pre><h3 id="003-主-传输文件"><a href="#003-主-传输文件" class="headerlink" title="003,(主)传输文件"></a>003,(主)传输文件</h3><pre><code>scp /orcl/app/fs01.ctl 192.168.0.33:/orcl/app/oracle/product/12.1.0/db_1/dbs/scp /orcl/app/initorcl.ora 192.168.0.33:/orcl/app/oracle/product/12.1.0/db_1/dbs/scp /orcl/app/oracle/product/12.1.0/db_1/dbs/orapworcl 192.168.0.33:/orcl/app/oracle/product/12.1.0/db_1/dbs/--拷贝密码文件scp /orcl/app/fs01.ctl 192.168.0.34:/orcl/app/oracle/product/12.1.0/db_1/dbs/scp /orcl/app/initorcl.ora192.168.0.34:/orcl/app/oracle/product/12.1.0/db_1/dbs/scp /orcl/app/oracle/product/12.1.0/db_1/dbs/orapworcl 192.168.0.34:/orcl/app/oracle/product/12.1.0/db_1/dbs/--拷贝密码文件</code></pre><h3 id="004-FAR-SRNC节点一"><a href="#004-FAR-SRNC节点一" class="headerlink" title="004,FAR SRNC节点一"></a>004,FAR SRNC节点一</h3><p>配置listener.ora和tnsnames.ora<br>配置内容见上文表格内容配置<br>同配置可直接拷贝,不同的话,更改对应名字IP即可</p><h3 id="005-FAR-SRNC节点二"><a href="#005-FAR-SRNC节点二" class="headerlink" title="005,FAR SRNC节点二"></a>005,FAR SRNC节点二</h3><p>配置listener.ora和tnsnames.ora<br>配置内容见上文表格内容配置<br>同配置可直接拷贝,不同的话,更改对应名字IP即</p><h2 id="03-主库部署"><a href="#03-主库部署" class="headerlink" title="03,主库部署"></a>03,主库部署</h2><p>配置参数项:</p><p>成功后的配置项</p><details><summary>展开看详情</summary>SQL> show parameter<p>NAME                     TYPE     VALUE</p><hr><p>DBFIPS_140                 boolean     FALSE<br>O7_DICTIONARY_ACCESSIBILITY         boolean     FALSE<br>active_instance_count             integer<br>allow_global_dblinks             boolean     FALSE<br>allow_group_access_to_sga         boolean     FALSE<br>approx_for_aggregation             boolean     FALSE<br>approx_for_count_distinct         boolean     FALSE<br>approx_for_percentile             string     none<br>aq_tm_processes              integer     1<br>archive_lag_target             integer     0<br>asm_diskgroups                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>asm_diskstring                 string<br>asm_io_processes             integer     20<br>asm_power_limit              integer     1<br>asm_preferred_read_failure_groups    string<br>audit_file_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;admin&#x2F;orcl&#x2F;ad<br>                         ump<br>audit_sys_operations             boolean     TRUE<br>audit_syslog_level             string<br>audit_trail                 string     DB<br>autotask_max_active_pdbs         integer     2<br>awr_pdb_autoflush_enabled         boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>awr_snapshot_time_offset         integer     0<br>background_core_dump             string     partial<br>background_dump_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>backup_tape_io_slaves             boolean     FALSE<br>bitmap_merge_area_size             integer     1048576<br>blank_trimming                 boolean     FALSE<br>buffer_pool_keep             string<br>buffer_pool_recycle             string<br>cdb_cluster                 boolean     FALSE<br>cdb_cluster_name             string     NODE12C01</p><p>NAME                     TYPE     VALUE</p><hr><p>cell_offload_compaction          string     ADAPTIVE<br>cell_offload_decryption          boolean     TRUE<br>cell_offload_parameters          string<br>cell_offload_plan_display         string     AUTO<br>cell_offload_processing          boolean     TRUE<br>cell_offloadgroup_name             string<br>circuits                 integer<br>client_result_cache_lag          big integer 3000<br>client_result_cache_size         big integer 0<br>clonedb                  boolean     FALSE<br>clonedb_dir                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>cluster_database             boolean     FALSE<br>cluster_database_instances         integer     1<br>cluster_interconnects             string<br>commit_logging                 string<br>commit_point_strength             integer     1<br>commit_wait                 string<br>commit_write                 string<br>common_user_prefix             string     C##<br>compatible                 string     12.2.0<br>connection_brokers             string     ((TYPE&#x3D;DEDICATED)(BROKERS&#x3D;1)),<br>                          ((TYPE&#x3D;EMON)(BROKERS&#x3D;1))</p><p>NAME                     TYPE     VALUE</p><hr><p>containers_parallel_degree         integer     65535<br>control_file_record_keep_time         integer     7<br>control_files                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;oradata&#x2F;orcl&#x2F;<br>                         control01.ctl, &#x2F;orcl&#x2F;app&#x2F;oracl<br>                         e&#x2F;fast_recovery_area&#x2F;orcl&#x2F;cont<br>                         rol02.ctl<br>control_management_pack_access         string     DIAGNOSTIC+TUNING<br>core_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;diag&#x2F;rdbms&#x2F;no<br>                         de12c01&#x2F;orcl&#x2F;cdump<br>cpu_count                 integer     2<br>create_bitmap_area_size          integer     8388608</p><p>NAME                     TYPE     VALUE</p><hr><p>create_stored_outlines             string<br>cursor_bind_capture_destination      string     memory+disk<br>cursor_invalidation             string     IMMEDIATE<br>cursor_sharing                 string     EXACT<br>cursor_space_for_time             boolean     FALSE<br>data_guard_sync_latency          integer     0<br>data_transfer_cache_size         big integer 0<br>db_16k_cache_size             big integer 0<br>db_2k_cache_size             big integer 0<br>db_32k_cache_size             big integer 0<br>db_4k_cache_size             big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>db_8k_cache_size             big integer 0<br>db_big_table_cache_percent_target    string     0<br>db_block_buffers             integer     0<br>db_block_checking             string     FALSE<br>db_block_checksum             string     TYPICAL<br>db_block_size                 integer     8192<br>db_cache_advice              string     ON<br>db_cache_size                 big integer 0<br>db_create_file_dest             string<br>db_create_online_log_dest_1         string<br>db_create_online_log_dest_2         string</p><p>NAME                     TYPE     VALUE</p><hr><p>db_create_online_log_dest_3         string<br>db_create_online_log_dest_4         string<br>db_create_online_log_dest_5         string<br>db_domain                 string<br>db_file_multiblock_read_count         integer     128<br>db_file_name_convert             string<br>db_files                 integer     200<br>db_flash_cache_file             string<br>db_flash_cache_size             big integer 0<br>db_flashback_retention_target         integer     1440<br>db_index_compression_inheritance     string     NONE</p><p>NAME                     TYPE     VALUE</p><hr><p>db_keep_cache_size             big integer 0<br>db_lost_write_protect             string     NONE<br>db_name                  string     orcl<br>db_performance_profile             string<br>db_recovery_file_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;fast_recovery<br>                         _area&#x2F;orcl<br>db_recovery_file_dest_size         big integer 1G<br>db_recycle_cache_size             big integer 0<br>db_securefile                 string     PREFERRED<br>db_ultra_safe                 string     OFF<br>db_unique_name                 string     NODE12C01</p><p>NAME                     TYPE     VALUE</p><hr><p>db_unrecoverable_scn_tracking         boolean     TRUE<br>db_writer_processes             integer     1<br>dbwr_io_slaves                 integer     0<br>ddl_lock_timeout             integer     0<br>default_sharing              string     metadata<br>deferred_segment_creation         boolean     TRUE<br>dg_broker_config_file1             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr1NODE12C01.dat<br>dg_broker_config_file2             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr2NODE12C01.dat<br>dg_broker_start              boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>diagnostic_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle<br>disable_pdb_feature             big integer 0<br>disk_asynch_io                 boolean     TRUE<br>dispatchers                 string     (PROTOCOL&#x3D;TCP) (SERVICE&#x3D;orclXD<br>                         B)<br>distributed_lock_timeout         integer     60<br>dml_locks                 integer     2076<br>dnfs_batch_size              integer     4096<br>dst_upgrade_insert_conv          boolean     TRUE<br>enable_automatic_maintenance_pdb     boolean     TRUE<br>enable_ddl_logging             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>enable_dnfs_dispatcher             boolean     FALSE<br>enable_goldengate_replication         boolean     FALSE<br>enable_pluggable_database         boolean     TRUE<br>enabled_PDBs_on_standby          string     *<br>encrypt_new_tablespaces          string     CLOUD_ONLY<br>event                     string<br>exafusion_enabled             integer     1<br>external_keystore_credential_locatio string<br>n<br>fal_client                 string<br>fal_server                 string     node12c02,node12c03,node12c04</p><p>NAME                     TYPE     VALUE</p><hr><p>fast_start_io_target             integer     0<br>fast_start_mttr_target             integer     0<br>fast_start_parallel_rollback         string     LOW<br>file_mapping                 boolean     FALSE<br>fileio_network_adapters          string<br>filesystemio_options             string     none<br>fixed_date                 string<br>gcs_server_processes             integer     0<br>global_names                 boolean     FALSE<br>global_txn_processes             integer     1<br>hash_area_size                 integer     131072</p><p>NAME                     TYPE     VALUE</p><hr><p>heat_map                 string     OFF<br>hi_shared_memory_address         integer     0<br>hs_autoregister              boolean     TRUE<br>ifile                     file<br>inmemory_adg_enabled             boolean     TRUE<br>inmemory_clause_default          string<br>inmemory_expressions_usage         string     ENABLE<br>inmemory_force                 string     DEFAULT<br>inmemory_max_populate_servers         integer     0<br>inmemory_query                 string     ENABLE<br>inmemory_size                 big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>inmemory_trickle_repopulate_servers_ integer     1<br>percent<br>inmemory_virtual_columns         string     MANUAL<br>instance_abort_delay_time         integer     0<br>instance_groups              string<br>instance_mode                 string     READ-WRITE<br>instance_name                 string     orcl<br>instance_number              integer     0<br>instance_type                 string     RDBMS<br>instant_restore              boolean     FALSE<br>java_jit_enabled             boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>java_max_sessionspace_size         integer     0<br>java_pool_size                 big integer 0<br>java_restrict                 string     none<br>java_soft_sessionspace_limit         integer     0<br>job_queue_processes             integer     10<br>large_pool_size              big integer 0<br>ldap_directory_access             string     NONE<br>ldap_directory_sysauth             string     no<br>license_max_sessions             integer     0<br>license_max_users             integer     0<br>license_sessions_warning         integer     0</p><p>NAME                     TYPE     VALUE</p><hr><p>listener_networks             string<br>local_listener                 string     LISTENER_ORCL<br>lock_name_space              string<br>lock_sga                 boolean     FALSE<br>log_archive_config             string     dg_config&#x3D;(NODE12C01,NODE12C02<br>                         ,NODE12C03,NODE12C04)<br>log_archive_dest             string<br>log_archive_dest_1             string     location&#x3D;&#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;orad<br>                         ata&#x2F;orcl&#x2F;archivelog valid_for&#x3D;<br>                         (online_logfile,primary_role)<br>                         db_unique_name&#x3D;NODE12C01</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_10             string<br>log_archive_dest_11             string<br>log_archive_dest_12             string<br>log_archive_dest_13             string<br>log_archive_dest_14             string<br>log_archive_dest_15             string<br>log_archive_dest_16             string<br>log_archive_dest_17             string<br>log_archive_dest_18             string<br>log_archive_dest_19             string<br>log_archive_dest_2             string     service&#x3D;NODE12C03 sync affirm</p><p>NAME                     TYPE     VALUE</p><hr><pre><code>                     max_failure=1 alternate=log_ar                     chive_dest_3 valid_for=(online                     _logfiles,primary_role) db_uni                     que_name=node12c03</code></pre><p>log_archive_dest_20             string<br>log_archive_dest_21             string<br>log_archive_dest_22             string<br>log_archive_dest_23             string<br>log_archive_dest_24             string<br>log_archive_dest_25             string<br>log_archive_dest_26             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_27             string<br>log_archive_dest_28             string<br>log_archive_dest_29             string<br>log_archive_dest_3             string     service&#x3D;NODE12C04 async altern<br>                         ate&#x3D;log_archive_dest_2 valid_f<br>                         or&#x3D;(online_logfiles,primary_ro<br>                         le) db_unique_name&#x3D;NODE12C04<br>log_archive_dest_30             string<br>log_archive_dest_31             string<br>log_archive_dest_4             string<br>log_archive_dest_5             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_6             string<br>log_archive_dest_7             string<br>log_archive_dest_8             string<br>log_archive_dest_9             string<br>log_archive_dest_state_1         string     ENABLE<br>log_archive_dest_state_10         string     enable<br>log_archive_dest_state_11         string     enable<br>log_archive_dest_state_12         string     enable<br>log_archive_dest_state_13         string     enable<br>log_archive_dest_state_14         string     enable<br>log_archive_dest_state_15         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_16         string     enable<br>log_archive_dest_state_17         string     enable<br>log_archive_dest_state_18         string     enable<br>log_archive_dest_state_19         string     enable<br>log_archive_dest_state_2         string     ENABLE<br>log_archive_dest_state_20         string     enable<br>log_archive_dest_state_21         string     enable<br>log_archive_dest_state_22         string     enable<br>log_archive_dest_state_23         string     enable<br>log_archive_dest_state_24         string     enable<br>log_archive_dest_state_25         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_26         string     enable<br>log_archive_dest_state_27         string     enable<br>log_archive_dest_state_28         string     enable<br>log_archive_dest_state_29         string     enable<br>log_archive_dest_state_3         string     ENABLE<br>log_archive_dest_state_30         string     enable<br>log_archive_dest_state_31         string     enable<br>log_archive_dest_state_4         string     ENABLE<br>log_archive_dest_state_5         string     enable<br>log_archive_dest_state_6         string     enable<br>log_archive_dest_state_7         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_8         string     enable<br>log_archive_dest_state_9         string     enable<br>log_archive_duplex_dest          string<br>log_archive_format             string     %t_%s_%r.dbf<br>log_archive_max_processes         integer     4<br>log_archive_min_succeed_dest         integer     1<br>log_archive_start             boolean     FALSE<br>log_archive_trace             integer     0<br>log_buffer                 big integer 7456K<br>log_checkpoint_interval          integer     0<br>log_checkpoint_timeout             integer     1800</p><p>NAME                     TYPE     VALUE</p><hr><p>log_checkpoints_to_alert         boolean     FALSE<br>log_file_name_convert             string<br>long_module_action             boolean     TRUE<br>max_datapump_jobs_per_pdb         integer     100<br>max_dispatchers              integer<br>max_dump_file_size             string     unlimited<br>max_idle_time                 integer     0<br>max_iops                 integer     0<br>max_mbps                 integer     0<br>max_pdbs                 integer     4098<br>max_shared_servers             integer</p><p>NAME                     TYPE     VALUE</p><hr><p>max_string_size              string     STANDARD<br>memory_max_target             big integer 0<br>memory_target                 big integer 0<br>nls_calendar                 string<br>nls_comp                 string     BINARY<br>nls_currency                 string<br>nls_date_format              string<br>nls_date_language             string<br>nls_dual_currency             string<br>nls_iso_currency             string<br>nls_language                 string     AMERICAN</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_length_semantics             string     BYTE<br>nls_nchar_conv_excp             string     FALSE<br>nls_numeric_characters             string<br>nls_sort                 string<br>nls_territory                 string     AMERICA<br>nls_time_format              string<br>nls_time_tz_format             string<br>nls_timestamp_format             string<br>nls_timestamp_tz_format          string<br>noncdb_compatible             boolean     FALSE<br>object_cache_max_size_percent         integer     10</p><p>NAME                     TYPE     VALUE</p><hr><p>object_cache_optimal_size         integer     10240000<br>ofs_threads                 integer     4<br>olap_page_pool_size             big integer 0<br>one_step_plugin_for_pdb_with_tde     boolean     FALSE<br>open_cursors                 integer     300<br>open_links                 integer     4<br>open_links_per_instance          integer     4<br>optimizer_adaptive_plans         boolean     TRUE<br>optimizer_adaptive_reporting_only    boolean     FALSE<br>optimizer_adaptive_statistics         boolean     FALSE<br>optimizer_capture_sql_plan_baselines boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>optimizer_dynamic_sampling         integer     2<br>optimizer_features_enable         string     12.2.0.1<br>optimizer_index_caching          integer     0<br>optimizer_index_cost_adj         integer     100<br>optimizer_inmemory_aware         boolean     TRUE<br>optimizer_mode                 string     ALL_ROWS<br>optimizer_secure_view_merging         boolean     TRUE<br>optimizer_use_invisible_indexes      boolean     FALSE<br>optimizer_use_pending_statistics     boolean     FALSE<br>optimizer_use_sql_plan_baselines     boolean     TRUE<br>os_authent_prefix             string     ops$</p><p>NAME                     TYPE     VALUE</p><hr><p>os_roles                 boolean     FALSE<br>outbound_dblink_protocols         string     ALL<br>parallel_adaptive_multi_user         boolean     FALSE<br>parallel_degree_limit             string     CPU<br>parallel_degree_policy             string     MANUAL<br>parallel_execution_message_size      integer     16384<br>parallel_force_local             boolean     FALSE<br>parallel_instance_group          string<br>parallel_max_servers             integer     80<br>parallel_min_percent             integer     0<br>parallel_min_servers             integer     8</p><p>NAME                     TYPE     VALUE</p><hr><p>parallel_min_time_threshold         string     AUTO<br>parallel_servers_target          integer     32<br>parallel_threads_per_cpu         integer     2<br>pdb_file_name_convert             string<br>pdb_lockdown                 string<br>pdb_os_credential             string<br>permit_92_wrap_format             boolean     TRUE<br>pga_aggregate_limit             big integer 2G<br>pga_aggregate_target             big integer 799M<br>plscope_settings             string     IDENTIFIERS:NONE<br>plsql_ccflags                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>plsql_code_type              string     INTERPRETED<br>plsql_debug                 boolean     FALSE<br>plsql_optimize_level             integer     2<br>plsql_v2_compatibility             boolean     FALSE<br>plsql_warnings                 string     DISABLE:ALL<br>pre_page_sga                 boolean     TRUE<br>processes                 integer     300<br>processor_group_name             string<br>query_rewrite_enabled             string     TRUE<br>query_rewrite_integrity          string     enforced<br>rdbms_server_dn              string</p><p>NAME                     TYPE     VALUE</p><hr><p>read_only_open_delayed             boolean     FALSE<br>recovery_parallelism             integer     0<br>recyclebin                 string     on<br>redo_transport_user             string<br>remote_dependencies_mode         string     TIMESTAMP<br>remote_listener              string<br>remote_login_passwordfile         string     EXCLUSIVE<br>remote_os_authent             boolean     FALSE<br>remote_os_roles              boolean     FALSE<br>remote_recovery_file_dest         string<br>replication_dependency_tracking      boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>resource_limit                 boolean     TRUE<br>resource_manage_goldengate         boolean     FALSE<br>resource_manager_cpu_allocation      integer     2<br>resource_manager_plan             string<br>result_cache_max_result          integer     5<br>result_cache_max_size             big integer 12M<br>result_cache_mode             string     MANUAL<br>result_cache_remote_expiration         integer     0<br>resumable_timeout             integer     0<br>rollback_segments             string<br>sec_case_sensitive_logon         boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>sec_max_failed_login_attempts         integer     3<br>sec_protocol_error_further_action    string     (DROP,3)<br>sec_protocol_error_trace_action      string     TRACE<br>sec_return_server_release_banner     boolean     FALSE<br>serial_reuse                 string     disable<br>service_names                 string     NODE12C01<br>session_cached_cursors             integer     50<br>session_max_open_files             integer     10<br>sessions                 integer     472<br>sga_max_size                 big integer 2400M<br>sga_min_size                 big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>sga_target                 big integer 2400M<br>shadow_core_dump             string     partial<br>shared_memory_address             integer     0<br>shared_pool_reserved_size         big integer 24M<br>shared_pool_size             big integer 0<br>shared_server_sessions             integer<br>shared_servers                 integer     1<br>shrd_dupl_table_refresh_rate         integer     60<br>skip_unusable_indexes             boolean     TRUE<br>smtp_out_server              string<br>sort_area_retained_size          integer     0</p><p>NAME                     TYPE     VALUE</p><hr><p>sort_area_size                 integer     65536<br>spatial_vector_acceleration         boolean     FALSE<br>spfile                     string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;spfileorcl.ora<br>sql92_security                 boolean     TRUE<br>sql_trace                 boolean     FALSE<br>sqltune_category             string     DEFAULT<br>standby_archive_dest             string     ?#&#x2F;dbs&#x2F;arch<br>standby_db_preserve_states         string     NONE<br>standby_file_management          string     MANUAL<br>star_transformation_enabled         string     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>statistics_level             string     TYPICAL<br>streams_pool_size             big integer 0<br>tape_asynch_io                 boolean     TRUE<br>target_pdbs                 integer     4<br>temp_undo_enabled             boolean     FALSE<br>thread                     integer     0<br>threaded_execution             boolean     FALSE<br>timed_os_statistics             integer     0<br>timed_statistics             boolean     TRUE<br>trace_enabled                 boolean     TRUE<br>tracefile_identifier             string</p><p>NAME                     TYPE     VALUE</p><hr><p>transactions                 integer     519<br>transactions_per_rollback_segment    integer     5<br>undo_management              string     AUTO<br>undo_retention                 integer     900<br>undo_tablespace              string     UNDOTBS1<br>unified_audit_sga_queue_size         integer     1048576<br>uniform_log_timestamp_format         boolean     TRUE<br>use_dedicated_broker             boolean     FALSE<br>use_large_pages              string     TRUE<br>user_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log</p><p>NAME                     TYPE     VALUE</p><hr><p>utl_file_dir                 string<br>workarea_size_policy             string     AUTO<br>xml_db_events                 string     enable</p></details><h3 id="001-DB-UNIQUE-NAME配置"><a href="#001-DB-UNIQUE-NAME配置" class="headerlink" title="001,DB_UNIQUE_NAME配置"></a>001,DB_UNIQUE_NAME配置</h3><pre><code>alter system set db_unique_name=&#39;NODE12C01&#39;;</code></pre><h3 id="002-FAL-SERVER配置"><a href="#002-FAL-SERVER配置" class="headerlink" title="002,FAL_SERVER配置"></a>002,FAL_SERVER配置</h3><pre><code>alter system set fal_server=&#39;node12c02,node12c03,node12c04&#39;;</code></pre><p>fal_server的值写的是tnsname中的服务名，这里主库上设置的fs的服务名是小写的就小写</p><h3 id="003-LOG-ARCHIVE-CONFIG配置"><a href="#003-LOG-ARCHIVE-CONFIG配置" class="headerlink" title="003,LOG_ARCHIVE_CONFIG配置"></a>003,LOG_ARCHIVE_CONFIG配置</h3><p>dg_config是写db_unique_name的值。</p><pre><code>alter system set log_archive_config=&#39;dg_config=(node12c01,node12c02,node12c03,node12c04)&#39;;</code></pre><h3 id="004-log-archive-dest-配置"><a href="#004-log-archive-dest-配置" class="headerlink" title="004,log_archive_dest 配置"></a>004,log_archive_dest 配置</h3><p>dest_1还是指向本地归档路径</p><pre><code>alter system set log_archive_dest_1=&#39;location=/orcl/app/oracle/oradata/orcl/archivelog valid_for=(online_logfile,primary_role) db_unique_name=node12c01&#39;;</code></pre><p>dest_2原来是指向备库的，现在指向fs机器，使用sync</p><pre><code>alter system set log_archive_dest_2=&#39;service=node12c03 sync affirm max_failure=1 alternate=log_archive_dest_3 valid_for=(online_logfiles,primary_role) db_unique_name=node12c03&#39;;</code></pre><p>dest_3这个就设置成指向FS2服务器的，使用async</p><pre><code>alter system set log_archive_dest_3=&#39;service=node12c04 async alternate=log_archive_dest_2 valid_for=(online_logfiles,primary_role) db_unique_name=node12c04&#39;;</code></pre><p>本步骤的意思就是先归档到自己本地，然后传输归档给fs，dest3是备用的，当dest2正常使用的时候，dest3不启用。当dest2挂了，dest3才会自动启用，dest2好了，dest3会自动关闭。主到fs是sync，fs到备库是使用async同步模式来传输归档给备库。</p><h3 id="005-log-archive-dest-state配置"><a href="#005-log-archive-dest-state配置" class="headerlink" title="005, log_archive_dest_state配置"></a>005, log_archive_dest_state配置</h3><pre><code>alter system set log_archive_dest_state_3=&#39;alternate&#39; scope=spfile;</code></pre><p>这里要把dest3，改成备用的模式。　　</p><h2 id="04-备库配置"><a href="#04-备库配置" class="headerlink" title="04,备库配置"></a>04,备库配置</h2><p>所有配置:</p><details><summary>展开看详情</summary>SQL> show parameter<p>NAME                     TYPE     VALUE</p><hr><p>DBFIPS_140                 boolean     FALSE<br>O7_DICTIONARY_ACCESSIBILITY         boolean     FALSE<br>active_instance_count             integer<br>allow_global_dblinks             boolean     FALSE<br>allow_group_access_to_sga         boolean     FALSE<br>approx_for_aggregation             boolean     FALSE<br>approx_for_count_distinct         boolean     FALSE<br>approx_for_percentile             string     none<br>aq_tm_processes              integer     1<br>archive_lag_target             integer     0<br>asm_diskgroups                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>asm_diskstring                 string<br>asm_io_processes             integer     20<br>asm_power_limit              integer     1<br>asm_preferred_read_failure_groups    string<br>audit_file_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;admin&#x2F;orcl&#x2F;ad<br>                         ump<br>audit_sys_operations             boolean     TRUE<br>audit_syslog_level             string<br>audit_trail                 string     OS<br>autotask_max_active_pdbs         integer     2<br>awr_pdb_autoflush_enabled         boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>awr_snapshot_time_offset         integer     0<br>background_core_dump             string     partial<br>background_dump_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>backup_tape_io_slaves             boolean     FALSE<br>bitmap_merge_area_size             integer     1048576<br>blank_trimming                 boolean     FALSE<br>buffer_pool_keep             string<br>buffer_pool_recycle             string<br>cdb_cluster                 boolean     FALSE<br>cdb_cluster_name             string     NODE12C02</p><p>NAME                     TYPE     VALUE</p><hr><p>cell_offload_compaction          string     ADAPTIVE<br>cell_offload_decryption          boolean     TRUE<br>cell_offload_parameters          string<br>cell_offload_plan_display         string     AUTO<br>cell_offload_processing          boolean     TRUE<br>cell_offloadgroup_name             string<br>circuits                 integer<br>client_result_cache_lag          big integer 3000<br>client_result_cache_size         big integer 0<br>clonedb                  boolean     FALSE<br>clonedb_dir                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>cluster_database             boolean     FALSE<br>cluster_database_instances         integer     1<br>cluster_interconnects             string<br>commit_logging                 string<br>commit_point_strength             integer     1<br>commit_wait                 string<br>commit_write                 string<br>common_user_prefix             string     C##<br>compatible                 string     12.2.0<br>connection_brokers             string     ((TYPE&#x3D;DEDICATED)(BROKERS&#x3D;1)),<br>                          ((TYPE&#x3D;EMON)(BROKERS&#x3D;1))</p><p>NAME                     TYPE     VALUE</p><hr><p>containers_parallel_degree         integer     65535<br>control_file_record_keep_time         integer     7<br>control_files                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;oradata&#x2F;orcl&#x2F;<br>                         control01.ctl, &#x2F;orcl&#x2F;app&#x2F;oracl<br>                         e&#x2F;fast_recovery_area&#x2F;orcl&#x2F;cont<br>                         rol02.ctl<br>control_management_pack_access         string     DIAGNOSTIC+TUNING<br>core_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;diag&#x2F;rdbms&#x2F;no<br>                         de12c02&#x2F;orcl&#x2F;cdump<br>cpu_count                 integer     2<br>create_bitmap_area_size          integer     8388608</p><p>NAME                     TYPE     VALUE</p><hr><p>create_stored_outlines             string<br>cursor_bind_capture_destination      string     memory+disk<br>cursor_invalidation             string     IMMEDIATE<br>cursor_sharing                 string     EXACT<br>cursor_space_for_time             boolean     FALSE<br>data_guard_sync_latency          integer     0<br>data_transfer_cache_size         big integer 0<br>db_16k_cache_size             big integer 0<br>db_2k_cache_size             big integer 0<br>db_32k_cache_size             big integer 0<br>db_4k_cache_size             big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>db_8k_cache_size             big integer 0<br>db_big_table_cache_percent_target    string     0<br>db_block_buffers             integer     0<br>db_block_checking             string     FALSE<br>db_block_checksum             string     TYPICAL<br>db_block_size                 integer     8192<br>db_cache_advice              string     ON<br>db_cache_size                 big integer 0<br>db_create_file_dest             string<br>db_create_online_log_dest_1         string<br>db_create_online_log_dest_2         string</p><p>NAME                     TYPE     VALUE</p><hr><p>db_create_online_log_dest_3         string<br>db_create_online_log_dest_4         string<br>db_create_online_log_dest_5         string<br>db_domain                 string<br>db_file_multiblock_read_count         integer     128<br>db_file_name_convert             string<br>db_files                 integer     200<br>db_flash_cache_file             string<br>db_flash_cache_size             big integer 0<br>db_flashback_retention_target         integer     1440<br>db_index_compression_inheritance     string     NONE</p><p>NAME                     TYPE     VALUE</p><hr><p>db_keep_cache_size             big integer 0<br>db_lost_write_protect             string     NONE<br>db_name                  string     orcl<br>db_performance_profile             string<br>db_recovery_file_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;fast_recovery<br>                         _area&#x2F;orcl<br>db_recovery_file_dest_size         big integer 1G<br>db_recycle_cache_size             big integer 0<br>db_securefile                 string     PREFERRED<br>db_ultra_safe                 string     OFF<br>db_unique_name                 string     NODE12C02</p><p>NAME                     TYPE     VALUE</p><hr><p>db_unrecoverable_scn_tracking         boolean     TRUE<br>db_writer_processes             integer     1<br>dbwr_io_slaves                 integer     0<br>ddl_lock_timeout             integer     0<br>default_sharing              string     metadata<br>deferred_segment_creation         boolean     TRUE<br>dg_broker_config_file1             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr1NODE12C02.dat<br>dg_broker_config_file2             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr2NODE12C02.dat<br>dg_broker_start              boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>diagnostic_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle<br>disable_pdb_feature             big integer 0<br>disk_asynch_io                 boolean     TRUE<br>dispatchers                 string     (PROTOCOL&#x3D;TCP) (SERVICE&#x3D;orclXD<br>                         B)<br>distributed_lock_timeout         integer     60<br>dml_locks                 integer     2076<br>dnfs_batch_size              integer     4096<br>dst_upgrade_insert_conv          boolean     TRUE<br>enable_automatic_maintenance_pdb     boolean     TRUE<br>enable_ddl_logging             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>enable_dnfs_dispatcher             boolean     FALSE<br>enable_goldengate_replication         boolean     FALSE<br>enable_pluggable_database         boolean     TRUE<br>enabled_PDBs_on_standby          string     *<br>encrypt_new_tablespaces          string     CLOUD_ONLY<br>event                     string<br>exafusion_enabled             integer     1<br>external_keystore_credential_locatio string<br>n<br>fal_client                 string<br>fal_server                 string     node12c01,node12c03,node12c04</p><p>NAME                     TYPE     VALUE</p><hr><p>fast_start_io_target             integer     0<br>fast_start_mttr_target             integer     0<br>fast_start_parallel_rollback         string     LOW<br>file_mapping                 boolean     FALSE<br>fileio_network_adapters          string<br>filesystemio_options             string     none<br>fixed_date                 string<br>gcs_server_processes             integer     0<br>global_names                 boolean     FALSE<br>global_txn_processes             integer     1<br>hash_area_size                 integer     131072</p><p>NAME                     TYPE     VALUE</p><hr><p>heat_map                 string     OFF<br>hi_shared_memory_address         integer     0<br>hs_autoregister              boolean     TRUE<br>ifile                     file<br>inmemory_adg_enabled             boolean     TRUE<br>inmemory_clause_default          string<br>inmemory_expressions_usage         string     ENABLE<br>inmemory_force                 string     DEFAULT<br>inmemory_max_populate_servers         integer     0<br>inmemory_query                 string     ENABLE<br>inmemory_size                 big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>inmemory_trickle_repopulate_servers_ integer     1<br>percent<br>inmemory_virtual_columns         string     MANUAL<br>instance_abort_delay_time         integer     0<br>instance_groups              string<br>instance_mode                 string     READ-WRITE<br>instance_name                 string     orcl<br>instance_number              integer     0<br>instance_type                 string     RDBMS<br>instant_restore              boolean     FALSE<br>java_jit_enabled             boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>java_max_sessionspace_size         integer     0<br>java_pool_size                 big integer 0<br>java_restrict                 string     none<br>java_soft_sessionspace_limit         integer     0<br>job_queue_processes             integer     10<br>large_pool_size              big integer 0<br>ldap_directory_access             string     NONE<br>ldap_directory_sysauth             string     no<br>license_max_sessions             integer     0<br>license_max_users             integer     0<br>license_sessions_warning         integer     0</p><p>NAME                     TYPE     VALUE</p><hr><p>listener_networks             string<br>local_listener                 string     LISTENER_ORCL<br>lock_name_space              string<br>lock_sga                 boolean     FALSE<br>log_archive_config             string     dg_config&#x3D;(node12c01,node12c03<br>                         ,node12c04,node12c02)<br>log_archive_dest             string<br>log_archive_dest_1             string     location&#x3D;&#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;orad<br>                         ata&#x2F;orcl&#x2F;archivelog VALID_FOR&#x3D;<br>                         (ALL_LOGFILES,ALL_ROLES) DB_UN<br>                         IQUE_NAME&#x3D;NODE12C02</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_10             string<br>log_archive_dest_11             string<br>log_archive_dest_12             string<br>log_archive_dest_13             string<br>log_archive_dest_14             string<br>log_archive_dest_15             string<br>log_archive_dest_16             string<br>log_archive_dest_17             string<br>log_archive_dest_18             string<br>log_archive_dest_19             string<br>log_archive_dest_2             string     service&#x3D;node12c01 ASYNC valid_</p><p>NAME                     TYPE     VALUE</p><hr><pre><code>                     for=(online_logfiles,primary_r                     ole) db_unique_name=node12c01</code></pre><p>log_archive_dest_20             string<br>log_archive_dest_21             string<br>log_archive_dest_22             string<br>log_archive_dest_23             string<br>log_archive_dest_24             string<br>log_archive_dest_25             string<br>log_archive_dest_26             string<br>log_archive_dest_27             string<br>log_archive_dest_28             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_29             string<br>log_archive_dest_3             string<br>log_archive_dest_30             string<br>log_archive_dest_31             string<br>log_archive_dest_4             string<br>log_archive_dest_5             string<br>log_archive_dest_6             string<br>log_archive_dest_7             string<br>log_archive_dest_8             string<br>log_archive_dest_9             string<br>log_archive_dest_state_1         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_10         string     enable<br>log_archive_dest_state_11         string     enable<br>log_archive_dest_state_12         string     enable<br>log_archive_dest_state_13         string     enable<br>log_archive_dest_state_14         string     enable<br>log_archive_dest_state_15         string     enable<br>log_archive_dest_state_16         string     enable<br>log_archive_dest_state_17         string     enable<br>log_archive_dest_state_18         string     enable<br>log_archive_dest_state_19         string     enable<br>log_archive_dest_state_2         string     ENABLE</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_20         string     enable<br>log_archive_dest_state_21         string     enable<br>log_archive_dest_state_22         string     enable<br>log_archive_dest_state_23         string     enable<br>log_archive_dest_state_24         string     enable<br>log_archive_dest_state_25         string     enable<br>log_archive_dest_state_26         string     enable<br>log_archive_dest_state_27         string     enable<br>log_archive_dest_state_28         string     enable<br>log_archive_dest_state_29         string     enable<br>log_archive_dest_state_3         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_30         string     enable<br>log_archive_dest_state_31         string     enable<br>log_archive_dest_state_4         string     enable<br>log_archive_dest_state_5         string     enable<br>log_archive_dest_state_6         string     enable<br>log_archive_dest_state_7         string     enable<br>log_archive_dest_state_8         string     enable<br>log_archive_dest_state_9         string     enable<br>log_archive_duplex_dest          string<br>log_archive_format             string     %t_%s_%r.dbf<br>log_archive_max_processes         integer     4</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_min_succeed_dest         integer     1<br>log_archive_start             boolean     FALSE<br>log_archive_trace             integer     0<br>log_buffer                 big integer 7456K<br>log_checkpoint_interval          integer     0<br>log_checkpoint_timeout             integer     1800<br>log_checkpoints_to_alert         boolean     FALSE<br>log_file_name_convert             string<br>long_module_action             boolean     TRUE<br>max_datapump_jobs_per_pdb         integer     100<br>max_dispatchers              integer</p><p>NAME                     TYPE     VALUE</p><hr><p>max_dump_file_size             string     unlimited<br>max_idle_time                 integer     0<br>max_iops                 integer     0<br>max_mbps                 integer     0<br>max_pdbs                 integer     4098<br>max_shared_servers             integer<br>max_string_size              string     STANDARD<br>memory_max_target             big integer 0<br>memory_target                 big integer 0<br>nls_calendar                 string<br>nls_comp                 string     BINARY</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_currency                 string<br>nls_date_format              string<br>nls_date_language             string<br>nls_dual_currency             string<br>nls_iso_currency             string<br>nls_language                 string     AMERICAN<br>nls_length_semantics             string     BYTE<br>nls_nchar_conv_excp             string     FALSE<br>nls_numeric_characters             string<br>nls_sort                 string<br>nls_territory                 string     AMERICA</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_time_format              string<br>nls_time_tz_format             string<br>nls_timestamp_format             string<br>nls_timestamp_tz_format          string<br>noncdb_compatible             boolean     FALSE<br>object_cache_max_size_percent         integer     10<br>object_cache_optimal_size         integer     10240000<br>ofs_threads                 integer     4<br>olap_page_pool_size             big integer 0<br>one_step_plugin_for_pdb_with_tde     boolean     FALSE<br>open_cursors                 integer     300</p><p>NAME                     TYPE     VALUE</p><hr><p>open_links                 integer     4<br>open_links_per_instance          integer     4<br>optimizer_adaptive_plans         boolean     TRUE<br>optimizer_adaptive_reporting_only    boolean     FALSE<br>optimizer_adaptive_statistics         boolean     FALSE<br>optimizer_capture_sql_plan_baselines boolean     FALSE<br>optimizer_dynamic_sampling         integer     2<br>optimizer_features_enable         string     12.2.0.1<br>optimizer_index_caching          integer     0<br>optimizer_index_cost_adj         integer     100<br>optimizer_inmemory_aware         boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>optimizer_mode                 string     ALL_ROWS<br>optimizer_secure_view_merging         boolean     TRUE<br>optimizer_use_invisible_indexes      boolean     FALSE<br>optimizer_use_pending_statistics     boolean     FALSE<br>optimizer_use_sql_plan_baselines     boolean     TRUE<br>os_authent_prefix             string     ops$<br>os_roles                 boolean     FALSE<br>outbound_dblink_protocols         string     ALL<br>parallel_adaptive_multi_user         boolean     FALSE<br>parallel_degree_limit             string     CPU<br>parallel_degree_policy             string     MANUAL</p><p>NAME                     TYPE     VALUE</p><hr><p>parallel_execution_message_size      integer     16384<br>parallel_force_local             boolean     FALSE<br>parallel_instance_group          string<br>parallel_max_servers             integer     80<br>parallel_min_percent             integer     0<br>parallel_min_servers             integer     8<br>parallel_min_time_threshold         string     AUTO<br>parallel_servers_target          integer     32<br>parallel_threads_per_cpu         integer     2<br>pdb_file_name_convert             string<br>pdb_lockdown                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>pdb_os_credential             string<br>permit_92_wrap_format             boolean     TRUE<br>pga_aggregate_limit             big integer 2G<br>pga_aggregate_target             big integer 799M<br>plscope_settings             string     IDENTIFIERS:NONE<br>plsql_ccflags                 string<br>plsql_code_type              string     INTERPRETED<br>plsql_debug                 boolean     FALSE<br>plsql_optimize_level             integer     2<br>plsql_v2_compatibility             boolean     FALSE<br>plsql_warnings                 string     DISABLE:ALL</p><p>NAME                     TYPE     VALUE</p><hr><p>pre_page_sga                 boolean     TRUE<br>processes                 integer     300<br>processor_group_name             string<br>query_rewrite_enabled             string     TRUE<br>query_rewrite_integrity          string     enforced<br>rdbms_server_dn              string<br>read_only_open_delayed             boolean     FALSE<br>recovery_parallelism             integer     0<br>recyclebin                 string     on<br>redo_transport_user             string<br>remote_dependencies_mode         string     TIMESTAMP</p><p>NAME                     TYPE     VALUE</p><hr><p>remote_listener              string<br>remote_login_passwordfile         string     EXCLUSIVE<br>remote_os_authent             boolean     FALSE<br>remote_os_roles              boolean     FALSE<br>remote_recovery_file_dest         string<br>replication_dependency_tracking      boolean     TRUE<br>resource_limit                 boolean     TRUE<br>resource_manage_goldengate         boolean     FALSE<br>resource_manager_cpu_allocation      integer     2<br>resource_manager_plan             string<br>result_cache_max_result          integer     5</p><p>NAME                     TYPE     VALUE</p><hr><p>result_cache_max_size             big integer 12M<br>result_cache_mode             string     MANUAL<br>result_cache_remote_expiration         integer     0<br>resumable_timeout             integer     0<br>rollback_segments             string<br>sec_case_sensitive_logon         boolean     TRUE<br>sec_max_failed_login_attempts         integer     3<br>sec_protocol_error_further_action    string     (DROP,3)<br>sec_protocol_error_trace_action      string     TRACE<br>sec_return_server_release_banner     boolean     FALSE<br>serial_reuse                 string     disable</p><p>NAME                     TYPE     VALUE</p><hr><p>service_names                 string     NODE12C02<br>session_cached_cursors             integer     50<br>session_max_open_files             integer     10<br>sessions                 integer     472<br>sga_max_size                 big integer 2400M<br>sga_min_size                 big integer 0<br>sga_target                 big integer 2400M<br>shadow_core_dump             string     partial<br>shared_memory_address             integer     0<br>shared_pool_reserved_size         big integer 24M<br>shared_pool_size             big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>shared_server_sessions             integer<br>shared_servers                 integer     1<br>shrd_dupl_table_refresh_rate         integer     60<br>skip_unusable_indexes             boolean     TRUE<br>smtp_out_server              string<br>sort_area_retained_size          integer     0<br>sort_area_size                 integer     65536<br>spatial_vector_acceleration         boolean     FALSE<br>spfile                     string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;spfileorcl.ora<br>sql92_security                 boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>sql_trace                 boolean     FALSE<br>sqltune_category             string     DEFAULT<br>standby_archive_dest             string     ?#&#x2F;dbs&#x2F;arch<br>standby_db_preserve_states         string     NONE<br>standby_file_management          string     MANUAL<br>star_transformation_enabled         string     FALSE<br>statistics_level             string     TYPICAL<br>streams_pool_size             big integer 0<br>tape_asynch_io                 boolean     TRUE<br>target_pdbs                 integer     4<br>temp_undo_enabled             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>thread                     integer     0<br>threaded_execution             boolean     FALSE<br>timed_os_statistics             integer     0<br>timed_statistics             boolean     TRUE<br>trace_enabled                 boolean     TRUE<br>tracefile_identifier             string<br>transactions                 integer     519<br>transactions_per_rollback_segment    integer     5<br>undo_management              string     AUTO<br>undo_retention                 integer     900<br>undo_tablespace              string     UNDOTBS1</p><p>NAME                     TYPE     VALUE</p><hr><p>unified_audit_sga_queue_size         integer     1048576<br>uniform_log_timestamp_format         boolean     TRUE<br>use_dedicated_broker             boolean     FALSE<br>use_large_pages              string     TRUE<br>user_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>utl_file_dir                 string<br>workarea_size_policy             string     AUTO<br>xml_db_events                 string     enable</p></details><h3 id="001-DB-UNIQUE-NAME配置-1"><a href="#001-DB-UNIQUE-NAME配置-1" class="headerlink" title="001,DB_UNIQUE_NAME配置"></a>001,DB_UNIQUE_NAME配置</h3><pre><code>alter system set db_unique_name=&#39;NODE12C02&#39;;</code></pre><h3 id="002-FAL-SERVER配置-1"><a href="#002-FAL-SERVER配置-1" class="headerlink" title="002,FAL_SERVER配置"></a>002,FAL_SERVER配置</h3><pre><code>alter system set fal_server=&#39;node12c01,node12c03,node12c04&#39;;</code></pre><h3 id="003-LOG-ARCHIVE-CONFIG配置-1"><a href="#003-LOG-ARCHIVE-CONFIG配置-1" class="headerlink" title="003,LOG_ARCHIVE_CONFIG配置"></a>003,LOG_ARCHIVE_CONFIG配置</h3><p>dg_config是写db_unique_name的值。</p><pre><code>alter system set log_archive_config=&#39;dg_config=(node12c01,node12c02,node12c03,node12c04)&#39;;</code></pre><h3 id="004-log-archive-dest-配置-1"><a href="#004-log-archive-dest-配置-1" class="headerlink" title="004,log_archive_dest 配置"></a>004,log_archive_dest 配置</h3><p>log_archive_dest_1   这里指向本地</p><pre><code>alter system set log_archive_dest_1=&#39;location=/orcl/app/oracle/oradata/orcl/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=node12c02&#39;;</code></pre><p>log_archive_dest_2   这里指向主库</p><pre><code>alter system set log_archive_dest_2=&#39;service=node12c01 async valid_for=(online_logfiles,primary_role) db_unique_name=node12c01&#39;;</code></pre><h2 id="05-FAR-SYNC节点一配置"><a href="#05-FAR-SYNC节点一配置" class="headerlink" title="05,FAR SYNC节点一配置"></a>05,FAR SYNC节点一配置</h2><p>总配置:</p><details><summary>展开看更多详情</summary><p>SQL&gt; show parameter</p><p>NAME                     TYPE     VALUE</p><hr><p>DBFIPS_140                 boolean     FALSE<br>O7_DICTIONARY_ACCESSIBILITY         boolean     FALSE<br>active_instance_count             integer<br>allow_global_dblinks             boolean     FALSE<br>allow_group_access_to_sga         boolean     FALSE<br>approx_for_aggregation             boolean     FALSE<br>approx_for_count_distinct         boolean     FALSE<br>approx_for_percentile             string     none<br>aq_tm_processes              integer     1<br>archive_lag_target             integer     0<br>asm_diskgroups                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>asm_diskstring                 string<br>asm_io_processes             integer     20<br>asm_power_limit              integer     1<br>asm_preferred_read_failure_groups    string<br>audit_file_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;admin&#x2F;orcl&#x2F;ad<br>                         ump<br>audit_sys_operations             boolean     TRUE<br>audit_syslog_level             string<br>audit_trail                 string     DB<br>autotask_max_active_pdbs         integer     2<br>awr_pdb_autoflush_enabled         boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>awr_snapshot_time_offset         integer     0<br>background_core_dump             string     partial<br>background_dump_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>backup_tape_io_slaves             boolean     FALSE<br>bitmap_merge_area_size             integer     1048576<br>blank_trimming                 boolean     FALSE<br>buffer_pool_keep             string<br>buffer_pool_recycle             string<br>cdb_cluster                 boolean     FALSE<br>cdb_cluster_name             string     NODE12C03</p><p>NAME                     TYPE     VALUE</p><hr><p>cell_offload_compaction          string     ADAPTIVE<br>cell_offload_decryption          boolean     TRUE<br>cell_offload_parameters          string<br>cell_offload_plan_display         string     AUTO<br>cell_offload_processing          boolean     TRUE<br>cell_offloadgroup_name             string<br>circuits                 integer<br>client_result_cache_lag          big integer 3000<br>client_result_cache_size         big integer 0<br>clonedb                  boolean     FALSE<br>clonedb_dir                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>cluster_database             boolean     FALSE<br>cluster_database_instances         integer     1<br>cluster_interconnects             string<br>commit_logging                 string<br>commit_point_strength             integer     1<br>commit_wait                 string<br>commit_write                 string<br>common_user_prefix             string     C##<br>compatible                 string     12.2.0<br>connection_brokers             string     ((TYPE&#x3D;DEDICATED)(BROKERS&#x3D;1)),<br>                          ((TYPE&#x3D;EMON)(BROKERS&#x3D;1))</p><p>NAME                     TYPE     VALUE</p><hr><p>containers_parallel_degree         integer     65535<br>control_file_record_keep_time         integer     7<br>control_files                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;oradata&#x2F;orcl&#x2F;<br>                         control01.ctl, &#x2F;orcl&#x2F;app&#x2F;oracl<br>                         e&#x2F;fast_recovery_area&#x2F;orcl&#x2F;cont<br>                         rol02.ctl<br>control_management_pack_access         string     DIAGNOSTIC+TUNING<br>core_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;diag&#x2F;rdbms&#x2F;no<br>                         de12c03&#x2F;orcl&#x2F;cdump<br>cpu_count                 integer     2<br>create_bitmap_area_size          integer     8388608</p><p>NAME                     TYPE     VALUE</p><hr><p>create_stored_outlines             string<br>cursor_bind_capture_destination      string     memory+disk<br>cursor_invalidation             string     IMMEDIATE<br>cursor_sharing                 string     EXACT<br>cursor_space_for_time             boolean     FALSE<br>data_guard_sync_latency          integer     0<br>data_transfer_cache_size         big integer 0<br>db_16k_cache_size             big integer 0<br>db_2k_cache_size             big integer 0<br>db_32k_cache_size             big integer 0<br>db_4k_cache_size             big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>db_8k_cache_size             big integer 0<br>db_big_table_cache_percent_target    string     0<br>db_block_buffers             integer     0<br>db_block_checking             string     FALSE<br>db_block_checksum             string     TYPICAL<br>db_block_size                 integer     8192<br>db_cache_advice              string     ON<br>db_cache_size                 big integer 0<br>db_create_file_dest             string<br>db_create_online_log_dest_1         string<br>db_create_online_log_dest_2         string</p><p>NAME                     TYPE     VALUE</p><hr><p>db_create_online_log_dest_3         string<br>db_create_online_log_dest_4         string<br>db_create_online_log_dest_5         string<br>db_domain                 string<br>db_file_multiblock_read_count         integer     128<br>db_file_name_convert             string<br>db_files                 integer     200<br>db_flash_cache_file             string<br>db_flash_cache_size             big integer 0<br>db_flashback_retention_target         integer     1440<br>db_index_compression_inheritance     string     NONE</p><p>NAME                     TYPE     VALUE</p><hr><p>db_keep_cache_size             big integer 0<br>db_lost_write_protect             string     NONE<br>db_name                  string     orcl<br>db_performance_profile             string<br>db_recovery_file_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;fast_recovery<br>                         _area&#x2F;orcl<br>db_recovery_file_dest_size         big integer 1G<br>db_recycle_cache_size             big integer 0<br>db_securefile                 string     PREFERRED<br>db_ultra_safe                 string     OFF<br>db_unique_name                 string     NODE12C03</p><p>NAME                     TYPE     VALUE</p><hr><p>db_unrecoverable_scn_tracking         boolean     TRUE<br>db_writer_processes             integer     1<br>dbwr_io_slaves                 integer     0<br>ddl_lock_timeout             integer     0<br>default_sharing              string     metadata<br>deferred_segment_creation         boolean     TRUE<br>dg_broker_config_file1             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr1NODE12C03.dat<br>dg_broker_config_file2             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr2NODE12C03.dat<br>dg_broker_start              boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>diagnostic_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle<br>disable_pdb_feature             big integer 0<br>disk_asynch_io                 boolean     TRUE<br>dispatchers                 string     (PROTOCOL&#x3D;TCP) (SERVICE&#x3D;orclXD<br>                         B)<br>distributed_lock_timeout         integer     60<br>dml_locks                 integer     2076<br>dnfs_batch_size              integer     4096<br>dst_upgrade_insert_conv          boolean     TRUE<br>enable_automatic_maintenance_pdb     boolean     TRUE<br>enable_ddl_logging             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>enable_dnfs_dispatcher             boolean     FALSE<br>enable_goldengate_replication         boolean     FALSE<br>enable_pluggable_database         boolean     TRUE<br>enabled_PDBs_on_standby          string     *<br>encrypt_new_tablespaces          string     CLOUD_ONLY<br>event                     string<br>exafusion_enabled             integer     1<br>external_keystore_credential_locatio string<br>n<br>fal_client                 string<br>fal_server                 string     node12c01</p><p>NAME                     TYPE     VALUE</p><hr><p>fast_start_io_target             integer     0<br>fast_start_mttr_target             integer     0<br>fast_start_parallel_rollback         string     LOW<br>file_mapping                 boolean     FALSE<br>fileio_network_adapters          string<br>filesystemio_options             string     none<br>fixed_date                 string<br>gcs_server_processes             integer     0<br>global_names                 boolean     FALSE<br>global_txn_processes             integer     1<br>hash_area_size                 integer     131072</p><p>NAME                     TYPE     VALUE</p><hr><p>heat_map                 string     OFF<br>hi_shared_memory_address         integer     0<br>hs_autoregister              boolean     TRUE<br>ifile                     file<br>inmemory_adg_enabled             boolean     TRUE<br>inmemory_clause_default          string<br>inmemory_expressions_usage         string     ENABLE<br>inmemory_force                 string     DEFAULT<br>inmemory_max_populate_servers         integer     0<br>inmemory_query                 string     ENABLE<br>inmemory_size                 big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>inmemory_trickle_repopulate_servers_ integer     1<br>percent<br>inmemory_virtual_columns         string     MANUAL<br>instance_abort_delay_time         integer     0<br>instance_groups              string<br>instance_mode                 string     READ-WRITE<br>instance_name                 string     orcl<br>instance_number              integer     0<br>instance_type                 string     RDBMS<br>instant_restore              boolean     FALSE<br>java_jit_enabled             boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>java_max_sessionspace_size         integer     0<br>java_pool_size                 big integer 0<br>java_restrict                 string     none<br>java_soft_sessionspace_limit         integer     0<br>job_queue_processes             integer     10<br>large_pool_size              big integer 0<br>ldap_directory_access             string     NONE<br>ldap_directory_sysauth             string     no<br>license_max_sessions             integer     0<br>license_max_users             integer     0<br>license_sessions_warning         integer     0</p><p>NAME                     TYPE     VALUE</p><hr><p>listener_networks             string<br>local_listener                 string     LISTENER_ORCL<br>lock_name_space              string<br>lock_sga                 boolean     FALSE<br>log_archive_config             string     dg_config&#x3D;(NODE12C01,NODE12C02<br>                         ,NODE12C03,NODE12C04)<br>log_archive_dest             string<br>log_archive_dest_1             string     location&#x3D;&#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;orad<br>                         ata&#x2F;orcl&#x2F;archivelog VALID_FOR&#x3D;<br>                         (ALL_LOGFILES,ALL_ROLES) DB_UN<br>                         IQUE_NAME&#x3D;node12c03</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_10             string<br>log_archive_dest_11             string<br>log_archive_dest_12             string<br>log_archive_dest_13             string<br>log_archive_dest_14             string<br>log_archive_dest_15             string<br>log_archive_dest_16             string<br>log_archive_dest_17             string<br>log_archive_dest_18             string<br>log_archive_dest_19             string<br>log_archive_dest_2             string     service&#x3D;”NODE12C02”, ASYNC  db</p><p>NAME                     TYPE     VALUE</p><hr><pre><code>                     _unique_name=&quot;node12c02&quot; net_t                     imeout=30, valid_for=(standby_                     logfiles,standby_role)</code></pre><p>log_archive_dest_20             string<br>log_archive_dest_21             string<br>log_archive_dest_22             string<br>log_archive_dest_23             string<br>log_archive_dest_24             string<br>log_archive_dest_25             string<br>log_archive_dest_26             string<br>log_archive_dest_27             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_28             string<br>log_archive_dest_29             string<br>log_archive_dest_3             string<br>log_archive_dest_30             string<br>log_archive_dest_31             string<br>log_archive_dest_4             string<br>log_archive_dest_5             string<br>log_archive_dest_6             string<br>log_archive_dest_7             string<br>log_archive_dest_8             string<br>log_archive_dest_9             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_1         string     enable<br>log_archive_dest_state_10         string     enable<br>log_archive_dest_state_11         string     enable<br>log_archive_dest_state_12         string     enable<br>log_archive_dest_state_13         string     enable<br>log_archive_dest_state_14         string     enable<br>log_archive_dest_state_15         string     enable<br>log_archive_dest_state_16         string     enable<br>log_archive_dest_state_17         string     enable<br>log_archive_dest_state_18         string     enable<br>log_archive_dest_state_19         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_2         string     ENABLE<br>log_archive_dest_state_20         string     enable<br>log_archive_dest_state_21         string     enable<br>log_archive_dest_state_22         string     enable<br>log_archive_dest_state_23         string     enable<br>log_archive_dest_state_24         string     enable<br>log_archive_dest_state_25         string     enable<br>log_archive_dest_state_26         string     enable<br>log_archive_dest_state_27         string     enable<br>log_archive_dest_state_28         string     enable<br>log_archive_dest_state_29         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_3         string     enable<br>log_archive_dest_state_30         string     enable<br>log_archive_dest_state_31         string     enable<br>log_archive_dest_state_4         string     enable<br>log_archive_dest_state_5         string     enable<br>log_archive_dest_state_6         string     enable<br>log_archive_dest_state_7         string     enable<br>log_archive_dest_state_8         string     enable<br>log_archive_dest_state_9         string     enable<br>log_archive_duplex_dest          string<br>log_archive_format             string     %t_%s_%r.dbf</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_max_processes         integer     4<br>log_archive_min_succeed_dest         integer     1<br>log_archive_start             boolean     FALSE<br>log_archive_trace             integer     0<br>log_buffer                 big integer 7456K<br>log_checkpoint_interval          integer     0<br>log_checkpoint_timeout             integer     1800<br>log_checkpoints_to_alert         boolean     FALSE<br>log_file_name_convert             string<br>long_module_action             boolean     TRUE<br>max_datapump_jobs_per_pdb         integer     100</p><p>NAME                     TYPE     VALUE</p><hr><p>max_dispatchers              integer<br>max_dump_file_size             string     unlimited<br>max_idle_time                 integer     0<br>max_iops                 integer     0<br>max_mbps                 integer     0<br>max_pdbs                 integer     4098<br>max_shared_servers             integer<br>max_string_size              string     STANDARD<br>memory_max_target             big integer 0<br>memory_target                 big integer 0<br>nls_calendar                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_comp                 string     BINARY<br>nls_currency                 string<br>nls_date_format              string<br>nls_date_language             string<br>nls_dual_currency             string<br>nls_iso_currency             string<br>nls_language                 string     AMERICAN<br>nls_length_semantics             string     BYTE<br>nls_nchar_conv_excp             string     FALSE<br>nls_numeric_characters             string<br>nls_sort                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_territory                 string     AMERICA<br>nls_time_format              string<br>nls_time_tz_format             string<br>nls_timestamp_format             string<br>nls_timestamp_tz_format          string<br>noncdb_compatible             boolean     FALSE<br>object_cache_max_size_percent         integer     10<br>object_cache_optimal_size         integer     10240000<br>ofs_threads                 integer     4<br>olap_page_pool_size             big integer 0<br>one_step_plugin_for_pdb_with_tde     boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>open_cursors                 integer     300<br>open_links                 integer     4<br>open_links_per_instance          integer     4<br>optimizer_adaptive_plans         boolean     TRUE<br>optimizer_adaptive_reporting_only    boolean     FALSE<br>optimizer_adaptive_statistics         boolean     FALSE<br>optimizer_capture_sql_plan_baselines boolean     FALSE<br>optimizer_dynamic_sampling         integer     2<br>optimizer_features_enable         string     12.2.0.1<br>optimizer_index_caching          integer     0<br>optimizer_index_cost_adj         integer     100</p><p>NAME                     TYPE     VALUE</p><hr><p>optimizer_inmemory_aware         boolean     TRUE<br>optimizer_mode                 string     ALL_ROWS<br>optimizer_secure_view_merging         boolean     TRUE<br>optimizer_use_invisible_indexes      boolean     FALSE<br>optimizer_use_pending_statistics     boolean     FALSE<br>optimizer_use_sql_plan_baselines     boolean     TRUE<br>os_authent_prefix             string     ops$<br>os_roles                 boolean     FALSE<br>outbound_dblink_protocols         string     ALL<br>parallel_adaptive_multi_user         boolean     FALSE<br>parallel_degree_limit             string     CPU</p><p>NAME                     TYPE     VALUE</p><hr><p>parallel_degree_policy             string     MANUAL<br>parallel_execution_message_size      integer     16384<br>parallel_force_local             boolean     FALSE<br>parallel_instance_group          string<br>parallel_max_servers             integer     80<br>parallel_min_percent             integer     0<br>parallel_min_servers             integer     8<br>parallel_min_time_threshold         string     AUTO<br>parallel_servers_target          integer     32<br>parallel_threads_per_cpu         integer     2<br>pdb_file_name_convert             string</p><p>NAME                     TYPE     VALUE</p><hr><p>pdb_lockdown                 string<br>pdb_os_credential             string<br>permit_92_wrap_format             boolean     TRUE<br>pga_aggregate_limit             big integer 2G<br>pga_aggregate_target             big integer 799M<br>plscope_settings             string     IDENTIFIERS:NONE<br>plsql_ccflags                 string<br>plsql_code_type              string     INTERPRETED<br>plsql_debug                 boolean     FALSE<br>plsql_optimize_level             integer     2<br>plsql_v2_compatibility             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>plsql_warnings                 string     DISABLE:ALL<br>pre_page_sga                 boolean     TRUE<br>processes                 integer     300<br>processor_group_name             string<br>query_rewrite_enabled             string     TRUE<br>query_rewrite_integrity          string     enforced<br>rdbms_server_dn              string<br>read_only_open_delayed             boolean     FALSE<br>recovery_parallelism             integer     0<br>recyclebin                 string     on<br>redo_transport_user             string</p><p>NAME                     TYPE     VALUE</p><hr><p>remote_dependencies_mode         string     TIMESTAMP<br>remote_listener              string<br>remote_login_passwordfile         string     EXCLUSIVE<br>remote_os_authent             boolean     FALSE<br>remote_os_roles              boolean     FALSE<br>remote_recovery_file_dest         string<br>replication_dependency_tracking      boolean     TRUE<br>resource_limit                 boolean     TRUE<br>resource_manage_goldengate         boolean     FALSE<br>resource_manager_cpu_allocation      integer     2<br>resource_manager_plan             string</p><p>NAME                     TYPE     VALUE</p><hr><p>result_cache_max_result          integer     5<br>result_cache_max_size             big integer 12M<br>result_cache_mode             string     MANUAL<br>result_cache_remote_expiration         integer     0<br>resumable_timeout             integer     0<br>rollback_segments             string<br>sec_case_sensitive_logon         boolean     TRUE<br>sec_max_failed_login_attempts         integer     3<br>sec_protocol_error_further_action    string     (DROP,3)<br>sec_protocol_error_trace_action      string     TRACE<br>sec_return_server_release_banner     boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>serial_reuse                 string     disable<br>service_names                 string     NODE12C03<br>session_cached_cursors             integer     50<br>session_max_open_files             integer     10<br>sessions                 integer     472<br>sga_max_size                 big integer 2400M<br>sga_min_size                 big integer 0<br>sga_target                 big integer 2400M<br>shadow_core_dump             string     partial<br>shared_memory_address             integer     0<br>shared_pool_reserved_size         big integer 24M</p><p>NAME                     TYPE     VALUE</p><hr><p>shared_pool_size             big integer 0<br>shared_server_sessions             integer<br>shared_servers                 integer     1<br>shrd_dupl_table_refresh_rate         integer     60<br>skip_unusable_indexes             boolean     TRUE<br>smtp_out_server              string<br>sort_area_retained_size          integer     0<br>sort_area_size                 integer     65536<br>spatial_vector_acceleration         boolean     FALSE<br>spfile                     string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;spfileorcl.ora</p><p>NAME                     TYPE     VALUE</p><hr><p>sql92_security                 boolean     TRUE<br>sql_trace                 boolean     FALSE<br>sqltune_category             string     DEFAULT<br>standby_archive_dest             string     ?#&#x2F;dbs&#x2F;arch<br>standby_db_preserve_states         string     NONE<br>standby_file_management          string     MANUAL<br>star_transformation_enabled         string     FALSE<br>statistics_level             string     TYPICAL<br>streams_pool_size             big integer 0<br>tape_asynch_io                 boolean     TRUE<br>target_pdbs                 integer     4</p><p>NAME                     TYPE     VALUE</p><hr><p>temp_undo_enabled             boolean     FALSE<br>thread                     integer     0<br>threaded_execution             boolean     FALSE<br>timed_os_statistics             integer     0<br>timed_statistics             boolean     TRUE<br>trace_enabled                 boolean     TRUE<br>tracefile_identifier             string<br>transactions                 integer     519<br>transactions_per_rollback_segment    integer     5<br>undo_management              string     AUTO<br>undo_retention                 integer     900</p><p>NAME                     TYPE     VALUE</p><hr><p>undo_tablespace              string     UNDOTBS1<br>unified_audit_sga_queue_size         integer     1048576<br>uniform_log_timestamp_format         boolean     TRUE<br>use_dedicated_broker             boolean     FALSE<br>use_large_pages              string     TRUE<br>user_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>utl_file_dir                 string<br>workarea_size_policy             string     AUTO<br>xml_db_events                 string     enable<br>SQL&gt;</p></details><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c03 admin]$ cd $ORACLE_HOME/dbs  --文件存放处[oracle@node12c03 dbs]$ pwd</span><br><span class="line">/orcl/app/oracle/product/12.1.0/db_1/dbs</span><br><span class="line">更改pfile文件见下</span><br><span class="line">[oracle@node12c03 dbs]$ pwd</span><br><span class="line">/orcl/app/oracle/product/12.1.0/db_1/dbs</span><br><span class="line">[oracle@node12c03 dbs]$ cat initorcl.ora</span><br><span class="line">*.audit_file_dest=&#x27;/orcl/app/oracle/admin/orcl/adump&#x27;</span><br><span class="line">*.audit_trail=&#x27;db&#x27;</span><br><span class="line">*.compatible=&#x27;12.2.0&#x27;</span><br><span class="line">*.control_files=&#x27;/orcl/app/oracle/oradata/orcl/control01.ctl&#x27;,&#x27;/orcl/app/oracle/fast_recovery_area/orcl/control02.ctl&#x27;</span><br><span class="line">*.data_guard_sync_latency=0</span><br><span class="line">*.db_block_size=8192</span><br><span class="line">*.db_name=&#x27;orcl&#x27;     ---实例名字这里写的是主库的实力名字</span><br><span class="line">*.db_recovery_file_dest=&#x27;/orcl/app/oracle/fast_recovery_area/orcl&#x27;</span><br><span class="line">*.db_recovery_file_dest_size=1073741824</span><br><span class="line">*.db_unique_name=&#x27;NODE12C03&#x27;  ----改为自己的db_unique_name,不能与其他同集群db_unique_name 一致</span><br><span class="line">*.dg_broker_start=TRUE</span><br><span class="line">*.diagnostic_dest=&#x27;/orcl/app/oracle&#x27;</span><br><span class="line">*.dispatchers=&#x27;(PROTOCOL=TCP) (SERVICE=orclXDB)&#x27;</span><br><span class="line">*.enable_pluggable_database=true</span><br><span class="line">*.fal_server=&#x27;node12c01&#x27;  --目标服务器</span><br><span class="line">*.job_queue_processes=10</span><br><span class="line">*.local_listener=&#x27;LISTENER_ORCL&#x27;</span><br><span class="line">*.log_archive_config=&#x27;dg_config=(NODE12C01,NODE12C02,NODE12C03,NODE12C04)&#x27;</span><br><span class="line">*.log_archive_dest_1=&#x27;location=/orcl/app/oracle/oradata/orcl/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=node12c03&#x27;</span><br><span class="line">*.log_archive_dest_2=&#x27;service=&quot;NODE12C02&quot;&#x27;,&#x27;ASYNC  db_unique_name=&quot;node12c02&quot;&#x27;,&#x27;valid_for=(standby_logfiles,standby_role)&#x27;</span><br><span class="line">---dest可以先这个配置成我这样,也可以稍等会oracle 命令配置*.log_archive_dest_state_2=&#x27;ENABLE&#x27;</span><br><span class="line">orcl.log_archive_format=&#x27;%t_%s_%r.dbf&#x27;</span><br><span class="line">*.log_archive_max_processes=4</span><br><span class="line">*.log_archive_min_succeed_dest=1</span><br><span class="line">orcl.log_archive_trace=0</span><br><span class="line">*.nls_language=&#x27;AMERICAN&#x27;</span><br><span class="line">*.nls_territory=&#x27;AMERICA&#x27;</span><br><span class="line">*.open_cursors=300</span><br><span class="line">*.pga_aggregate_target=799m</span><br><span class="line">*.processes=300</span><br><span class="line">*.remote_login_passwordfile=&#x27;EXCLUSIVE&#x27;</span><br><span class="line">*.sga_target=2394m</span><br><span class="line">*.standby_file_management=&#x27;MANUAL&#x27;</span><br><span class="line">*.undo_tablespace=&#x27;UNDOTBS1&#x27;</span><br></pre></td></tr></table></figure><p>　　</p><h3 id="恢复控制文件"><a href="#恢复控制文件" class="headerlink" title="恢复控制文件"></a>恢复控制文件</h3><p>启动数据库到nomount状态–由于启动弄mount需要pfile, 假如pfile位置更改或者识别不到可以使用指定pfile启动</p><pre><code>SQL&gt; startup nomount</code></pre><p>或者</p><pre><code>SQL&gt; startup nomount file=&#39;/orcl/app/oracle/product/12.1.0/db_1/dbs/initorcl.ora&#39;SQL&gt; exit</code></pre><p>进入rman 恢复控制文件</p><pre><code>rman target /RMAN&gt; restore controlfile from &#39;/orcl/app/oracle/product/12.1.0/db_1/dbs/fs01.ctl&#39;;RMAN&gt; exit</code></pre><p>启动到mount</p><pre><code>SQL&gt; startup mount</code></pre><p>— 恢复后再后续的启动中就只需要启动到mount状态即可</p><p>设置启动为spfile</p><pre><code>SQL&gt; create spfile from pfile;SQL&gt; shutdown immediateSQL&gt; startup</code></pre><h3 id="设置参数"><a href="#设置参数" class="headerlink" title="设置参数"></a>设置参数</h3><p>db_unique_name 参数配置</p><pre><code>alter system set db_unique_name=&#39;node12c03&#39;;</code></pre><p>fal_server配置</p><pre><code>alter system set fal_server=&#39;node12c01&#39;;</code></pre><p>这个为主数据库, 配置log_archive_config</p><pre><code>alter system set log_archive_config=&#39;dg_config=(node12c01,node12c02,node12c03,node12c04)&#39;;</code></pre><p>写所有集群机器配置dest</p><p>log_archive_dest_1，写归档到本地归档路径</p><pre><code>alter system set log_archive_dest_1=&#39;location=/orcl/app/oracle/oradata/orcl/archivelog valid_for=(all_logfile,all_roles) db_unique_name=node12c03&#39; scope=spfile;</code></pre><p>log_archive_dest_2，写归档到备库，用async的方式，因为主到fs是sync，fs到备库是async。</p><pre><code>alter system set log_archive_dest_2=&#39;service=node12c02 async valid_for=(standby_logfiles,standby_role) db_unique_name=node12c02&#39;;</code></pre><p>log_archive_dest_3, 不用写dest3。</p><h2 id="05-FAR-SYNC节点二配置"><a href="#05-FAR-SYNC节点二配置" class="headerlink" title="05,FAR SYNC节点二配置"></a>05,FAR SYNC节点二配置</h2><p>总配置:</p><details><summary>展开看更多详情</summary>SQL> show parameter<p>NAME                     TYPE     VALUE</p><hr><p>DBFIPS_140                 boolean     FALSE<br>O7_DICTIONARY_ACCESSIBILITY         boolean     FALSE<br>active_instance_count             integer<br>allow_global_dblinks             boolean     FALSE<br>allow_group_access_to_sga         boolean     FALSE<br>approx_for_aggregation             boolean     FALSE<br>approx_for_count_distinct         boolean     FALSE<br>approx_for_percentile             string     none<br>aq_tm_processes              integer     1<br>archive_lag_target             integer     0<br>asm_diskgroups                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>asm_diskstring                 string<br>asm_io_processes             integer     20<br>asm_power_limit              integer     1<br>asm_preferred_read_failure_groups    string<br>audit_file_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;admin&#x2F;orcl&#x2F;ad<br>                         ump<br>audit_sys_operations             boolean     TRUE<br>audit_syslog_level             string<br>audit_trail                 string     DB<br>autotask_max_active_pdbs         integer     2<br>awr_pdb_autoflush_enabled         boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>awr_snapshot_time_offset         integer     0<br>background_core_dump             string     partial<br>background_dump_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>backup_tape_io_slaves             boolean     FALSE<br>bitmap_merge_area_size             integer     1048576<br>blank_trimming                 boolean     FALSE<br>buffer_pool_keep             string<br>buffer_pool_recycle             string<br>cdb_cluster                 boolean     FALSE<br>cdb_cluster_name             string     NODE12C04</p><p>NAME                     TYPE     VALUE</p><hr><p>cell_offload_compaction          string     ADAPTIVE<br>cell_offload_decryption          boolean     TRUE<br>cell_offload_parameters          string<br>cell_offload_plan_display         string     AUTO<br>cell_offload_processing          boolean     TRUE<br>cell_offloadgroup_name             string<br>circuits                 integer<br>client_result_cache_lag          big integer 3000<br>client_result_cache_size         big integer 0<br>clonedb                  boolean     FALSE<br>clonedb_dir                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>cluster_database             boolean     FALSE<br>cluster_database_instances         integer     1<br>cluster_interconnects             string<br>commit_logging                 string<br>commit_point_strength             integer     1<br>commit_wait                 string<br>commit_write                 string<br>common_user_prefix             string     C##<br>compatible                 string     12.2.0<br>connection_brokers             string     ((TYPE&#x3D;DEDICATED)(BROKERS&#x3D;1)),<br>                          ((TYPE&#x3D;EMON)(BROKERS&#x3D;1))</p><p>NAME                     TYPE     VALUE</p><hr><p>containers_parallel_degree         integer     65535<br>control_file_record_keep_time         integer     7<br>control_files                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;oradata&#x2F;orcl&#x2F;<br>                         control01.ctl, &#x2F;orcl&#x2F;app&#x2F;oracl<br>                         e&#x2F;fast_recovery_area&#x2F;orcl&#x2F;cont<br>                         rol02.ctl<br>control_management_pack_access         string     DIAGNOSTIC+TUNING<br>core_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;diag&#x2F;rdbms&#x2F;no<br>                         de12c04&#x2F;orcl&#x2F;cdump<br>cpu_count                 integer     2<br>create_bitmap_area_size          integer     8388608</p><p>NAME                     TYPE     VALUE</p><hr><p>create_stored_outlines             string<br>cursor_bind_capture_destination      string     memory+disk<br>cursor_invalidation             string     IMMEDIATE<br>cursor_sharing                 string     EXACT<br>cursor_space_for_time             boolean     FALSE<br>data_guard_sync_latency          integer     0<br>data_transfer_cache_size         big integer 0<br>db_16k_cache_size             big integer 0<br>db_2k_cache_size             big integer 0<br>db_32k_cache_size             big integer 0<br>db_4k_cache_size             big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>db_8k_cache_size             big integer 0<br>db_big_table_cache_percent_target    string     0<br>db_block_buffers             integer     0<br>db_block_checking             string     FALSE<br>db_block_checksum             string     TYPICAL<br>db_block_size                 integer     8192<br>db_cache_advice              string     ON<br>db_cache_size                 big integer 0<br>db_create_file_dest             string<br>db_create_online_log_dest_1         string<br>db_create_online_log_dest_2         string</p><p>NAME                     TYPE     VALUE</p><hr><p>db_create_online_log_dest_3         string<br>db_create_online_log_dest_4         string<br>db_create_online_log_dest_5         string<br>db_domain                 string<br>db_file_multiblock_read_count         integer     128<br>db_file_name_convert             string<br>db_files                 integer     200<br>db_flash_cache_file             string<br>db_flash_cache_size             big integer 0<br>db_flashback_retention_target         integer     1440<br>db_index_compression_inheritance     string     NONE</p><p>NAME                     TYPE     VALUE</p><hr><p>db_keep_cache_size             big integer 0<br>db_lost_write_protect             string     NONE<br>db_name                  string     orcl<br>db_performance_profile             string<br>db_recovery_file_dest             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;fast_recovery<br>                         _area&#x2F;orcl<br>db_recovery_file_dest_size         big integer 1G<br>db_recycle_cache_size             big integer 0<br>db_securefile                 string     PREFERRED<br>db_ultra_safe                 string     OFF<br>db_unique_name                 string     NODE12C04</p><p>NAME                     TYPE     VALUE</p><hr><p>db_unrecoverable_scn_tracking         boolean     TRUE<br>db_writer_processes             integer     1<br>dbwr_io_slaves                 integer     0<br>ddl_lock_timeout             integer     0<br>default_sharing              string     metadata<br>deferred_segment_creation         boolean     TRUE<br>dg_broker_config_file1             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr1NODE12C04.dat<br>dg_broker_config_file2             string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;dr2NODE12C04.dat<br>dg_broker_start              boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>diagnostic_dest              string     &#x2F;orcl&#x2F;app&#x2F;oracle<br>disable_pdb_feature             big integer 0<br>disk_asynch_io                 boolean     TRUE<br>dispatchers                 string     (PROTOCOL&#x3D;TCP) (SERVICE&#x3D;orclXD<br>                         B)<br>distributed_lock_timeout         integer     60<br>dml_locks                 integer     2076<br>dnfs_batch_size              integer     4096<br>dst_upgrade_insert_conv          boolean     TRUE<br>enable_automatic_maintenance_pdb     boolean     TRUE<br>enable_ddl_logging             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>enable_dnfs_dispatcher             boolean     FALSE<br>enable_goldengate_replication         boolean     FALSE<br>enable_pluggable_database         boolean     TRUE<br>enabled_PDBs_on_standby          string     *<br>encrypt_new_tablespaces          string     CLOUD_ONLY<br>event                     string<br>exafusion_enabled             integer     1<br>external_keystore_credential_locatio string<br>n<br>fal_client                 string<br>fal_server                 string     node12c01</p><p>NAME                     TYPE     VALUE</p><hr><p>fast_start_io_target             integer     0<br>fast_start_mttr_target             integer     0<br>fast_start_parallel_rollback         string     LOW<br>file_mapping                 boolean     FALSE<br>fileio_network_adapters          string<br>filesystemio_options             string     none<br>fixed_date                 string<br>gcs_server_processes             integer     0<br>global_names                 boolean     FALSE<br>global_txn_processes             integer     1<br>hash_area_size                 integer     131072</p><p>NAME                     TYPE     VALUE</p><hr><p>heat_map                 string     OFF<br>hi_shared_memory_address         integer     0<br>hs_autoregister              boolean     TRUE<br>ifile                     file<br>inmemory_adg_enabled             boolean     TRUE<br>inmemory_clause_default          string<br>inmemory_expressions_usage         string     ENABLE<br>inmemory_force                 string     DEFAULT<br>inmemory_max_populate_servers         integer     0<br>inmemory_query                 string     ENABLE<br>inmemory_size                 big integer 0</p><p>NAME                     TYPE     VALUE</p><hr><p>inmemory_trickle_repopulate_servers_ integer     1<br>percent<br>inmemory_virtual_columns         string     MANUAL<br>instance_abort_delay_time         integer     0<br>instance_groups              string<br>instance_mode                 string     READ-WRITE<br>instance_name                 string     orcl<br>instance_number              integer     0<br>instance_type                 string     RDBMS<br>instant_restore              boolean     FALSE<br>java_jit_enabled             boolean     TRUE</p><p>NAME                     TYPE     VALUE</p><hr><p>java_max_sessionspace_size         integer     0<br>java_pool_size                 big integer 0<br>java_restrict                 string     none<br>java_soft_sessionspace_limit         integer     0<br>job_queue_processes             integer     10<br>large_pool_size              big integer 0<br>ldap_directory_access             string     NONE<br>ldap_directory_sysauth             string     no<br>license_max_sessions             integer     0<br>license_max_users             integer     0<br>license_sessions_warning         integer     0</p><p>NAME                     TYPE     VALUE</p><hr><p>listener_networks             string<br>local_listener                 string     LISTENER_ORCL<br>lock_name_space              string<br>lock_sga                 boolean     FALSE<br>log_archive_config             string     dg_config&#x3D;(NODE12C01,NODE12C02<br>                         ,NODE12C03,NODE12C04)<br>log_archive_dest             string<br>log_archive_dest_1             string     location&#x3D;&#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;orad<br>                         ata&#x2F;orcl&#x2F;archivelog VALID_FOR&#x3D;<br>                         (ALL_LOGFILES,ALL_ROLES) DB_UN<br>                         IQUE_NAME&#x3D;node12c04</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_10             string<br>log_archive_dest_11             string<br>log_archive_dest_12             string<br>log_archive_dest_13             string<br>log_archive_dest_14             string<br>log_archive_dest_15             string<br>log_archive_dest_16             string<br>log_archive_dest_17             string<br>log_archive_dest_18             string<br>log_archive_dest_19             string<br>log_archive_dest_2             string     service&#x3D;”NODE12C02”, ASYNC db_</p><p>NAME                     TYPE     VALUE</p><hr><pre><code>                     unique_name=&quot;node12c02&quot; , vali                     d_for=(standby_logfiles,standb                     y_role)</code></pre><p>log_archive_dest_20             string<br>log_archive_dest_21             string<br>log_archive_dest_22             string<br>log_archive_dest_23             string<br>log_archive_dest_24             string<br>log_archive_dest_25             string<br>log_archive_dest_26             string<br>log_archive_dest_27             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_28             string<br>log_archive_dest_29             string<br>log_archive_dest_3             string<br>log_archive_dest_30             string<br>log_archive_dest_31             string<br>log_archive_dest_4             string<br>log_archive_dest_5             string<br>log_archive_dest_6             string<br>log_archive_dest_7             string<br>log_archive_dest_8             string<br>log_archive_dest_9             string</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_1         string     enable<br>log_archive_dest_state_10         string     enable<br>log_archive_dest_state_11         string     enable<br>log_archive_dest_state_12         string     enable<br>log_archive_dest_state_13         string     enable<br>log_archive_dest_state_14         string     enable<br>log_archive_dest_state_15         string     enable<br>log_archive_dest_state_16         string     enable<br>log_archive_dest_state_17         string     enable<br>log_archive_dest_state_18         string     enable<br>log_archive_dest_state_19         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_2         string     ENABLE<br>log_archive_dest_state_20         string     enable<br>log_archive_dest_state_21         string     enable<br>log_archive_dest_state_22         string     enable<br>log_archive_dest_state_23         string     enable<br>log_archive_dest_state_24         string     enable<br>log_archive_dest_state_25         string     enable<br>log_archive_dest_state_26         string     enable<br>log_archive_dest_state_27         string     enable<br>log_archive_dest_state_28         string     enable<br>log_archive_dest_state_29         string     enable</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_dest_state_3         string     enable<br>log_archive_dest_state_30         string     enable<br>log_archive_dest_state_31         string     enable<br>log_archive_dest_state_4         string     enable<br>log_archive_dest_state_5         string     enable<br>log_archive_dest_state_6         string     enable<br>log_archive_dest_state_7         string     enable<br>log_archive_dest_state_8         string     enable<br>log_archive_dest_state_9         string     enable<br>log_archive_duplex_dest          string<br>log_archive_format             string     %t_%s_%r.dbf</p><p>NAME                     TYPE     VALUE</p><hr><p>log_archive_max_processes         integer     4<br>log_archive_min_succeed_dest         integer     1<br>log_archive_start             boolean     FALSE<br>log_archive_trace             integer     0<br>log_buffer                 big integer 7456K<br>log_checkpoint_interval          integer     0<br>log_checkpoint_timeout             integer     1800<br>log_checkpoints_to_alert         boolean     FALSE<br>log_file_name_convert             string<br>long_module_action             boolean     TRUE<br>max_datapump_jobs_per_pdb         integer     100</p><p>NAME                     TYPE     VALUE</p><hr><p>max_dispatchers              integer<br>max_dump_file_size             string     unlimited<br>max_idle_time                 integer     0<br>max_iops                 integer     0<br>max_mbps                 integer     0<br>max_pdbs                 integer     4098<br>max_shared_servers             integer<br>max_string_size              string     STANDARD<br>memory_max_target             big integer 0<br>memory_target                 big integer 0<br>nls_calendar                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_comp                 string     BINARY<br>nls_currency                 string<br>nls_date_format              string<br>nls_date_language             string<br>nls_dual_currency             string<br>nls_iso_currency             string<br>nls_language                 string     AMERICAN<br>nls_length_semantics             string     BYTE<br>nls_nchar_conv_excp             string     FALSE<br>nls_numeric_characters             string<br>nls_sort                 string</p><p>NAME                     TYPE     VALUE</p><hr><p>nls_territory                 string     AMERICA<br>nls_time_format              string<br>nls_time_tz_format             string<br>nls_timestamp_format             string<br>nls_timestamp_tz_format          string<br>noncdb_compatible             boolean     FALSE<br>object_cache_max_size_percent         integer     10<br>object_cache_optimal_size         integer     10240000<br>ofs_threads                 integer     4<br>olap_page_pool_size             big integer 0<br>one_step_plugin_for_pdb_with_tde     boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>open_cursors                 integer     300<br>open_links                 integer     4<br>open_links_per_instance          integer     4<br>optimizer_adaptive_plans         boolean     TRUE<br>optimizer_adaptive_reporting_only    boolean     FALSE<br>optimizer_adaptive_statistics         boolean     FALSE<br>optimizer_capture_sql_plan_baselines boolean     FALSE<br>optimizer_dynamic_sampling         integer     2<br>optimizer_features_enable         string     12.2.0.1<br>optimizer_index_caching          integer     0<br>optimizer_index_cost_adj         integer     100</p><p>NAME                     TYPE     VALUE</p><hr><p>optimizer_inmemory_aware         boolean     TRUE<br>optimizer_mode                 string     ALL_ROWS<br>optimizer_secure_view_merging         boolean     TRUE<br>optimizer_use_invisible_indexes      boolean     FALSE<br>optimizer_use_pending_statistics     boolean     FALSE<br>optimizer_use_sql_plan_baselines     boolean     TRUE<br>os_authent_prefix             string     ops$<br>os_roles                 boolean     FALSE<br>outbound_dblink_protocols         string     ALL<br>parallel_adaptive_multi_user         boolean     FALSE<br>parallel_degree_limit             string     CPU</p><p>NAME                     TYPE     VALUE</p><hr><p>parallel_degree_policy             string     MANUAL<br>parallel_execution_message_size      integer     16384<br>parallel_force_local             boolean     FALSE<br>parallel_instance_group          string<br>parallel_max_servers             integer     80<br>parallel_min_percent             integer     0<br>parallel_min_servers             integer     8<br>parallel_min_time_threshold         string     AUTO<br>parallel_servers_target          integer     32<br>parallel_threads_per_cpu         integer     2<br>pdb_file_name_convert             string</p><p>NAME                     TYPE     VALUE</p><hr><p>pdb_lockdown                 string<br>pdb_os_credential             string<br>permit_92_wrap_format             boolean     TRUE<br>pga_aggregate_limit             big integer 2G<br>pga_aggregate_target             big integer 799M<br>plscope_settings             string     IDENTIFIERS:NONE<br>plsql_ccflags                 string<br>plsql_code_type              string     INTERPRETED<br>plsql_debug                 boolean     FALSE<br>plsql_optimize_level             integer     2<br>plsql_v2_compatibility             boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>plsql_warnings                 string     DISABLE:ALL<br>pre_page_sga                 boolean     TRUE<br>processes                 integer     300<br>processor_group_name             string<br>query_rewrite_enabled             string     TRUE<br>query_rewrite_integrity          string     enforced<br>rdbms_server_dn              string<br>read_only_open_delayed             boolean     FALSE<br>recovery_parallelism             integer     0<br>recyclebin                 string     on<br>redo_transport_user             string</p><p>NAME                     TYPE     VALUE</p><hr><p>remote_dependencies_mode         string     TIMESTAMP<br>remote_listener              string<br>remote_login_passwordfile         string     EXCLUSIVE<br>remote_os_authent             boolean     FALSE<br>remote_os_roles              boolean     FALSE<br>remote_recovery_file_dest         string<br>replication_dependency_tracking      boolean     TRUE<br>resource_limit                 boolean     TRUE<br>resource_manage_goldengate         boolean     FALSE<br>resource_manager_cpu_allocation      integer     2<br>resource_manager_plan             string</p><p>NAME                     TYPE     VALUE</p><hr><p>result_cache_max_result          integer     5<br>result_cache_max_size             big integer 12M<br>result_cache_mode             string     MANUAL<br>result_cache_remote_expiration         integer     0<br>resumable_timeout             integer     0<br>rollback_segments             string<br>sec_case_sensitive_logon         boolean     TRUE<br>sec_max_failed_login_attempts         integer     3<br>sec_protocol_error_further_action    string     (DROP,3)<br>sec_protocol_error_trace_action      string     TRACE<br>sec_return_server_release_banner     boolean     FALSE</p><p>NAME                     TYPE     VALUE</p><hr><p>serial_reuse                 string     disable<br>service_names                 string     NODE12C04<br>session_cached_cursors             integer     50<br>session_max_open_files             integer     10<br>sessions                 integer     472<br>sga_max_size                 big integer 2400M<br>sga_min_size                 big integer 0<br>sga_target                 big integer 2400M<br>shadow_core_dump             string     partial<br>shared_memory_address             integer     0<br>shared_pool_reserved_size         big integer 24M</p><p>NAME                     TYPE     VALUE</p><hr><p>shared_pool_size             big integer 0<br>shared_server_sessions             integer<br>shared_servers                 integer     1<br>shrd_dupl_table_refresh_rate         integer     60<br>skip_unusable_indexes             boolean     TRUE<br>smtp_out_server              string<br>sort_area_retained_size          integer     0<br>sort_area_size                 integer     65536<br>spatial_vector_acceleration         boolean     FALSE<br>spfile                     string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;dbs&#x2F;spfileorcl.ora</p><p>NAME                     TYPE     VALUE</p><hr><p>sql92_security                 boolean     TRUE<br>sql_trace                 boolean     FALSE<br>sqltune_category             string     DEFAULT<br>standby_archive_dest             string     ?#&#x2F;dbs&#x2F;arch<br>standby_db_preserve_states         string     NONE<br>standby_file_management          string     MANUAL<br>star_transformation_enabled         string     FALSE<br>statistics_level             string     TYPICAL<br>streams_pool_size             big integer 0<br>tape_asynch_io                 boolean     TRUE<br>target_pdbs                 integer     4</p><p>NAME                     TYPE     VALUE</p><hr><p>temp_undo_enabled             boolean     FALSE<br>thread                     integer     0<br>threaded_execution             boolean     FALSE<br>timed_os_statistics             integer     0<br>timed_statistics             boolean     TRUE<br>trace_enabled                 boolean     TRUE<br>tracefile_identifier             string<br>transactions                 integer     519<br>transactions_per_rollback_segment    integer     5<br>undo_management              string     AUTO<br>undo_retention                 integer     900</p><p>NAME                     TYPE     VALUE</p><hr><p>undo_tablespace              string     UNDOTBS1<br>unified_audit_sga_queue_size         integer     1048576<br>uniform_log_timestamp_format         boolean     TRUE<br>use_dedicated_broker             boolean     FALSE<br>use_large_pages              string     TRUE<br>user_dump_dest                 string     &#x2F;orcl&#x2F;app&#x2F;oracle&#x2F;product&#x2F;12.1.<br>                         0&#x2F;db_1&#x2F;rdbms&#x2F;log<br>utl_file_dir                 string<br>workarea_size_policy             string     AUTO<br>xml_db_events                 string     enable<br>SQL&gt;</p></details><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line">[oracle@node12c04 admin]$ cd $ORACLE_HOME/dbs  --文件存放处</span><br><span class="line">[oracle@node12c04 dbs]$ pwd</span><br><span class="line">/orcl/app/oracle/product/12.1.0/db_1/dbs</span><br><span class="line">更改pfile文件见下</span><br><span class="line">[oracle@node12c04 dbs]$ pwd</span><br><span class="line">/orcl/app/oracle/product/12.1.0/db_1/dbs</span><br><span class="line">[oracle@node12c04 dbs]$ cat initorcl.ora --这个备用FAR SYNC的话和节点一的配置差不多,都是要传归档到备库,只是充当临时效果</span><br><span class="line">*.audit_file_dest=&#x27;/orcl/app/oracle/admin/orcl/adump&#x27;</span><br><span class="line">*.audit_trail=&#x27;db&#x27;</span><br><span class="line">*.compatible=&#x27;12.2.0&#x27;</span><br><span class="line">*.control_files=&#x27;/orcl/app/oracle/oradata/orcl/control01.ctl&#x27;,&#x27;/orcl/app/oracle/fast_recovery_area/orcl/control02.ctl&#x27;</span><br><span class="line">*.data_guard_sync_latency=0</span><br><span class="line">*.db_block_size=8192</span><br><span class="line">*.db_name=&#x27;orcl&#x27;     ---实例名字这里写的是主库的实力名字</span><br><span class="line">*.db_recovery_file_dest=&#x27;/orcl/app/oracle/fast_recovery_area/orcl&#x27;</span><br><span class="line">*.db_recovery_file_dest_size=1073741824</span><br><span class="line">*.db_unique_name=&#x27;NODE12C04&#x27;  ----改为自己的db_unique_name,不能与其他同集群db_unique_name 一致</span><br><span class="line">*.dg_broker_start=TRUE</span><br><span class="line">*.diagnostic_dest=&#x27;/orcl/app/oracle&#x27;</span><br><span class="line">*.dispatchers=&#x27;(PROTOCOL=TCP) (SERVICE=orclXDB)&#x27;</span><br><span class="line">*.enable_pluggable_database=true</span><br><span class="line">*.fal_server=&#x27;node12c01&#x27;  --目标服务器</span><br><span class="line">*.job_queue_processes=10</span><br><span class="line">*.local_listener=&#x27;LISTENER_ORCL&#x27;</span><br><span class="line">*.log_archive_config=&#x27;dg_config=(NODE12C01,NODE12C02,NODE12C03,NODE12C04)&#x27;</span><br><span class="line">*.log_archive_dest_1=&#x27;location=/orcl/app/oracle/oradata/orcl/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=node12c03&#x27;</span><br><span class="line">*.log_archive_dest_2=&#x27;service=&quot;NODE12C02&quot;&#x27;,&#x27;ASYNC  db_unique_name=&quot;node12c02&quot; net_timeout=30&#x27;,&#x27;valid_for=(standby_logfiles,standby_role)&#x27;</span><br><span class="line">---dest可以先这个配置成我这样,也可以稍等会oracle 命令配置</span><br><span class="line">*.log_archive_dest_state_2=&#x27;ENABLE&#x27;</span><br><span class="line">orcl.log_archive_format=&#x27;%t_%s_%r.dbf&#x27;</span><br><span class="line">*.log_archive_max_processes=4</span><br><span class="line">*.log_archive_min_succeed_dest=1</span><br><span class="line">orcl.log_archive_trace=0</span><br><span class="line">*.nls_language=&#x27;AMERICAN&#x27;</span><br><span class="line">*.nls_territory=&#x27;AMERICA&#x27;</span><br><span class="line">*.open_cursors=300</span><br><span class="line">*.pga_aggregate_target=799m</span><br><span class="line">*.processes=300</span><br><span class="line">*.remote_login_passwordfile=&#x27;EXCLUSIVE&#x27;</span><br><span class="line">*.sga_target=2394m</span><br><span class="line">*.standby_file_management=&#x27;MANUAL&#x27;</span><br><span class="line">*.undo_tablespace=&#x27;UNDOTBS1&#x27;</span><br></pre></td></tr></table></figure><h3 id="恢复控制文件-1"><a href="#恢复控制文件-1" class="headerlink" title="恢复控制文件"></a>恢复控制文件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line">启动数据库到nomount状态--由于启动弄mount需要pfile, 假如pfile位置更改或者识别不到可以使用指定pfile启动</span><br><span class="line"></span><br><span class="line">SQL&gt; startup nomount</span><br><span class="line"></span><br><span class="line">或者</span><br><span class="line"></span><br><span class="line">SQL&gt; startup nomount file=&#x27;/orcl/app/oracle/product/12.1.0/db_1/dbs/initorcl.ora&#x27;</span><br><span class="line">SQL&gt; exit</span><br><span class="line"></span><br><span class="line">进入rman 恢复控制文件</span><br><span class="line"></span><br><span class="line">rman target /</span><br><span class="line"></span><br><span class="line">RMAN&gt; restore controlfile from &#x27;/orcl/app/oracle/product/12.1.0/db_1/dbs/fs01.ctl&#x27;;</span><br><span class="line">RMAN&gt; exit</span><br><span class="line"></span><br><span class="line">启动到mount</span><br><span class="line">SQL&gt; startup mount</span><br><span class="line"></span><br><span class="line">--- 恢复后再后续的启动中就只需要启动到mount状态即可</span><br><span class="line"></span><br><span class="line">设置启动为spfile</span><br><span class="line">SQL&gt; create spfile from pfile;</span><br><span class="line">SQL&gt; shutdown immediate</span><br><span class="line">SQL&gt; startup</span><br></pre></td></tr></table></figure><h3 id="设置参数-1"><a href="#设置参数-1" class="headerlink" title="设置参数"></a>设置参数</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line">db_unique_name 参数配置</span><br><span class="line"></span><br><span class="line">alter system set db_unique_name=&#x27;node12c04&#x27;;</span><br><span class="line"></span><br><span class="line">fal_server配置</span><br><span class="line"></span><br><span class="line">alter system set fal_server=&#x27;node12c01&#x27;;</span><br><span class="line">这个为主数据库 </span><br><span class="line"></span><br><span class="line">配置log_archive_config</span><br><span class="line"></span><br><span class="line">alter system set log_archive_config=&#x27;dg_config=(node12c01,node12c02,node12c03,node12c04)&#x27;;</span><br><span class="line">写所有集群机器</span><br><span class="line"></span><br><span class="line">配置dest</span><br><span class="line">log_archive_dest_1，写归档到本地归档路径</span><br><span class="line">alter system set log_archive_dest_1=&#x27;location=/orcl/app/oracle/oradata/orcl/archivelog valid_for=(all_logfile,all_roles) db_unique_name=node12c03&#x27; scope=spfile;</span><br><span class="line"></span><br><span class="line">log_archive_dest_2，写归档到备库，用async的方式，因为主到fs是sync，fs到备库是async。</span><br><span class="line">alter system set log_archive_dest_2=&#x27;service=node12c02 async valid_for=(standby_logfiles,standby_role) db_unique_name=node12c02&#x27;;</span><br><span class="line">log_archive_dest_3, </span><br><span class="line">不用写dest3。</span><br></pre></td></tr></table></figure><h2 id="06-开始启动"><a href="#06-开始启动" class="headerlink" title="06,开始启动"></a>06,开始启动</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line">关闭所有FAR 服务的数据库!!</span><br><span class="line"></span><br><span class="line">重启主库 ---这里FS两个节点是并未启动的状态</span><br><span class="line"></span><br><span class="line">主库所有pdb都要启动</span><br><span class="line">SQL&gt;  shutdown immediate</span><br><span class="line">SQL&gt; startup </span><br><span class="line">read write 配置为读写模式</span><br><span class="line">SQL&gt; alter pluggable database all open read write;</span><br><span class="line"></span><br><span class="line">重启备库 --- ---这里FS两个节点是并未启动的状态</span><br><span class="line"></span><br><span class="line">SQL&gt; shutdown immediate</span><br><span class="line">SQL&gt;startup</span><br><span class="line">SQL&gt; alter pluggable database all open read only;  --启动到只读模式</span><br><span class="line">SQL&gt; alter database recover managed standby database using current logfile disconnect from session;</span><br><span class="line"></span><br><span class="line">启动FAR Sync 节点一</span><br><span class="line"></span><br><span class="line">SQL&gt; startup mount</span><br><span class="line"></span><br><span class="line">启动FAR Sync 节点二</span><br><span class="line"></span><br><span class="line">SQL&gt; startup mount--主库查看保护级别</span><br><span class="line">SQL&gt; select open_mode,protection_mode,protection_level,switchover_status from v$database;OPEN_MODE         PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATUS-------------------- -------------------- -------------------- --------------------READ WRITE         MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  TO STANDBY</span><br><span class="line"></span><br><span class="line">发现并不是最大可用模式,我们进行调整,语法:</span><br><span class="line"></span><br><span class="line">SQL&gt; alter database set standby database to maximize availability;Database altered.  </span><br><span class="line">SQL&gt; select open_mode,protection_mode,protection_level,switchover_status from v$database;OPEN_MODE         PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATUS-------------------- -------------------- -------------------- --------------------READ WRITE         MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY TO STANDBY</span><br><span class="line"></span><br><span class="line">一个 Far Sync 实例的话，如果出现问题，虽然能够保证 redo 直接传输到 standby 库，但是 primary 库保护模式从最大可用模式（MaximumAvailability）降为最大性能模式（Maximum Performance）。 因此我们可以在距离主库较近的地点设置 2 个 FarSync 实例保证高可用性。当一个 Far Sync实例不可用， primary 库自动使用备用 FarSync 库，并且 primary 库保护模式保持最大可用模式（Maximum Availability） 不变，零数据丢失。</span><br></pre></td></tr></table></figure><h2 id="07-节点启动状态"><a href="#07-节点启动状态" class="headerlink" title="07,节点启动状态"></a>07,节点启动状态</h2><h3 id="主库查看命令"><a href="#主库查看命令" class="headerlink" title="主库查看命令:"></a>主库查看命令:</h3><pre><code>set linesize 160select * from v$dataguard_config;</code></pre><p>理论上是未应用的那个unknown !!  状态的话主库认识到状态未FAR就会发送日志过去</p><h3 id="查看Far-Sync实例状态"><a href="#查看Far-Sync实例状态" class="headerlink" title="查看Far Sync实例状态"></a>查看Far Sync实例状态</h3><pre><code>select protection_mode,database_role,protection_level,open_mode from v$database;</code></pre><h3 id="查看日志有没有问题"><a href="#查看日志有没有问题" class="headerlink" title="查看日志有没有问题"></a>查看日志有没有问题</h3><p>手工切换日志,可在下方命令查询后切换此命令,再次查询,看是否由改变</p><pre><code>alter system archive log current;</code></pre><p>主库:</p><pre><code>SQL&gt; select max(sequence#) from v$archived_log;MAX(SEQUENCE#)--------------       279</code></pre><p>far sync:</p><pre><code>SQL&gt; select max(sequence#) from v$archived_log;MAX(SEQUENCE#)--------------       279</code></pre><p>备库:</p><pre><code>SQL&gt; select max(sequence#) from v$archived_log;MAX(SEQUENCE#)--------------       279</code></pre><p>FARsync2:</p><pre><code>SQL&gt; select max(sequence#) from v$archived_log;MAX(SEQUENCE#)--------------       276   ---这个日志没有与他们一样是因为没有应用,FAR1 宕机后就会通过这个来应用</code></pre><h2 id="08-FAR-SYNC-测试"><a href="#08-FAR-SYNC-测试" class="headerlink" title="08,FAR SYNC 测试"></a>08,FAR SYNC 测试</h2><p>查看alter日志</p><p><img src="/images/farsync08.png" alt="查看alter日志" title="查看alter日志"></p><p>配置listener.ora和tnsnames.ora 配置内容见上 同配置可直接拷贝,不同的话,更改对应名字IP即可。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;Oracle12C–DG Far Sync 部署(前提为搭建好12C的DG)&lt;/p&gt;
&lt;h1 id=&quot;一-理解同步异步模式&quot;&gt;&lt;a href=&quot;#一-理解同步异步模式&quot; class=&quot;headerlink&quot; title=&quot;一,理解同步异步模式&quot;&gt;&lt;/a&gt;一,理解同步异步模式&lt;/h1&gt;&lt;h2 id=&quot;01-使用LGWR-进程的SYNC-方式&quot;&gt;&lt;a href=&quot;#01-使用LGWR-进程的SYNC-方式&quot; class=&quot;headerlink&quot; title=&quot;01, 使用LGWR 进程的SYNC 方式&quot;&gt;&lt;/a&gt;01, 使用LGWR 进程的SYNC 方式&lt;/h2&gt;&lt;p&gt;1）Primary Database 产生的Redo 日志要同时写到日志文件和网络。也就是说LGWR进程把日志写到本地日志文件的同时还要发送给本地的LNSn进程（Network Server Process），再由LNSn（LGWR Network Server process）进程把日志通过网络发送给远程的目的地，每个远程目的地对应一个LNS进程，多个LNS进程能够并行工作。&lt;/p&gt;
&lt;p&gt;2）LGWR 必须等待写入本地日志文件操作和通过LNSn进程的网络传送都成功，Primary Database 上的事务才能提交，这也是SYNC的含义所在。&lt;/p&gt;
&lt;p&gt;3）Standby Database的RFS进程把接收到的日志写入到Standby Redo Log日志中。&lt;/p&gt;
&lt;p&gt;4）Primary Database的日志切换也会触发Standby Database 上的日志切换，即Standby Database 对Standby Redo Log的归档，然后触发Standby Database 的MRP或者LSP 进程恢复归档日志。&lt;/p&gt;</summary>
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="Oracle12, FarSync" scheme="http://hexo.abasp.com/tags/Oracle12-FarSync/"/>
    
  </entry>
  
  <entry>
    <title>Hey ChatGPT, can you write iRules?</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Hey_ChatGPT_can_you_write_iRules.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Hey_ChatGPT_can_you_write_iRules.html</id>
    <published>2024-06-23T03:18:00.000Z</published>
    <updated>2024-06-24T04:00:49.778Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Hey-ChatGPT-can-you-write-iRules"><a href="#Hey-ChatGPT-can-you-write-iRules" class="headerlink" title="Hey ChatGPT, can you write iRules?"></a>Hey ChatGPT, can you write iRules?</h1><p>iRules allow you to parse the payload of the data passing through the BIG-IP and, at wire speed, execute an entire script of commands on that traffic.<br>They allow you to log and redirecting traffic, modify the URI or port or to rewrite the payload itself.<br>iRules and their almost endless capabilities to customize the behavior of F5 Networks’ BIG-IP are one the unique selling point of BIG-IP.<br>Many users of devcentral ask for help with their iRules, consultants who can write or troubleshoot iRules are sought after by many of F5s’ customers.<br>I was wondering how well the new cool kid in town, ChatGPT, performs at writing iRules and how many of the most seen iRules questions on devcentral it can actually answer.<br>Find the most requested iRules<br>I tried to figure out what challenges devcentral users most often look for help with and came up with a list of usual iRule code questions.</p><span id="more"></span><p>iRule challenges I posed to ChatPGT.</p><ol><li>Redirect HTTP to HTTPS.</li><li>Rewrite the Host header in the request and response.</li><li>Do a loadbalancing decission based on the Host header.</li><li>Do a loadbalancing decission based on the URI.</li><li>Different ASM blocking pages based on the Host header.</li></ol><p>A recent example: <a href="https://community.f5.com/t5/technical-forum/need-help-for-irule/m-p/310444">https://community.f5.com/t5/technical-forum/need-help-for-irule/m-p/310444</a><br>Another recent example: <a href="https://community.f5.com/t5/technical-forum/irule-redirect-irule-help-required/m-p/304943">https://community.f5.com/t5/technical-forum/irule-redirect-irule-help-required/m-p/304943</a><br>Below are ChatGPTs solutions with my comments.</p><h2 id="Challenge-1-Redirect-HTTP-to-HTTPS"><a href="#Challenge-1-Redirect-HTTP-to-HTTPS" class="headerlink" title="Challenge 1: Redirect HTTP to HTTPS"></a>Challenge 1: Redirect HTTP to HTTPS</h2><p>Forwarding HTTP requests to HTTPS is a feature that every load balancer can handle and that is often asked for in the forum. The BIG-IP can meet this requirement with both iRules and Local Traffic Policies. Each BIG-IP comes with a collection of pre-installed iRules, an iRule that redirects HTTP to HTTPS is also included (IMHO not a great example, because it sends a 302 Found redirect response that indicates that the resource requested has been temporarily moved to a different URL, I prefer the 301 Moved Permanently redirect status).</p><p>The iRule ChatGPT suggests as a solution is the following:</p><pre><code>when HTTP_REQUEST &#123;  if &#123; [HTTP::header exists &quot;X-Forwarded-Proto&quot;] &amp;&amp; [HTTP::header value &quot;X-Forwarded-Proto&quot;] eq &quot;http&quot; &#125;  &#123;    HTTP::respond 301 Location &quot;https://[HTTP::host][HTTP::uri]&quot;  &#125;&#125;</code></pre><p>This iRule executes on the HTTP_REQUEST event and checks for the presence of an X-Forwarded-Proto header in the request. Such header would only be inserted from another upstream device in front of the BIG-IP, for example another loadbalancer or a CDN. I like that it uses HTTP status 301 (Moved Permanently) instead of HTTP::redirect. However, I would add the options version auto and noserver.</p><h2 id="Challenge-2-Rewrite-the-Host-header-in-the-request-and-response"><a href="#Challenge-2-Rewrite-the-Host-header-in-the-request-and-response" class="headerlink" title="Challenge 2: Rewrite the Host header in the request and response"></a>Challenge 2: Rewrite the Host header in the request and response</h2><p>A common use case for this functionality is when your application servers only accept specific Host headers, but you are publishing your application with a differen FQDN. You want to rewrite the Host header for incoming requests and the Location header for responses, so that the application continues to work with the public FQDN.</p><p>ChatGPTs answer:</p><pre><code>when HTTP_REQUEST &#123;  HTTP::header replace &quot;Host&quot; &quot;newhost.example.com&quot;&#125;when HTTP_RESPONSE &#123;  if &#123; [HTTP::header exists &quot;Location&quot;] &#125; &#123;    HTTP::header replace &quot;Location&quot; [string map &#123;&quot;oldhost.example.com&quot; &quot;newhost.example.com&quot;&#125; [HTTP::header value &quot;Location&quot;]]  &#125;&#125;</code></pre><p>No remarks here. Challenge completed.</p><h2 id="Challenge-3-Loadbalancing-based-on-the-Host-header"><a href="#Challenge-3-Loadbalancing-based-on-the-Host-header" class="headerlink" title="Challenge 3: Loadbalancing based on the Host header"></a>Challenge 3: Loadbalancing based on the Host header</h2><p>This function is commonly referred to as Layer 7 loadbalancing or content switching. Behind a VIP there are different web applications, the loadbalancing decision is made either on the basis of the host name or the path portion of the URL. The latter is Challenge 4.</p><pre><code>when HTTP_REQUEST &#123;  switch -glob [HTTP::host] &#123;    &quot;www.example.com&quot; &#123;      pool my_pool1    &#125;    &quot;api.example.com&quot; &#123;      pool my_pool2    &#125;    default &#123;      pool my_default_pool    &#125;  &#125;&#125;</code></pre><p>No remarks here either.</p><h2 id="Challenge-4-Loadbalancing-based-on-the-URI"><a href="#Challenge-4-Loadbalancing-based-on-the-URI" class="headerlink" title="Challenge 4: Loadbalancing based on the URI"></a>Challenge 4: Loadbalancing based on the URI</h2><pre><code>when HTTP_REQUEST &#123;  if &#123; [HTTP::uri] starts_with &quot;/app1/&quot; &#125;   &#123;    pool my_pool1  &#125;  elseif &#123; [HTTP::uri] starts_with &quot;/app2/&quot; &#125;  &#123;    pool my_pool2  &#125;  else &#123;    pool my_default_pool  &#125;&#125; </code></pre><p>Looking at the solution for example 4, I’d say that you should know, from experience, that a switch statement will be more performant than an if&#x2F;else clause at a certain scale. If you are just having 3 or 4 alternatives, the performance gain from using a switch statement won’t be significant. However, I asked ChatGPT to rewrite the same iRule using datagroups to map URLs to pools. This way the solution could easily scale. It did so and even gave a tmsh example to create a datagroup and populate some sample data.</p><p>tmsh create ltm data-group internal my_datagroup type string<br>tmsh modify ltm data-group my_datagroup records add { &#x2F;path1 pool1 &#x2F;path2 pool2 &#x2F;path3 pool3 }</p><h2 id="Challenge-5-Different-ASM-blocking-pages-based-on-the-Host-header"><a href="#Challenge-5-Different-ASM-blocking-pages-based-on-the-Host-header" class="headerlink" title="Challenge 5: Different ASM blocking pages based on the Host header."></a>Challenge 5: Different ASM blocking pages based on the Host header.</h2><p>Sometimes you want to show a custom blocking page, for example to add extra information like the URL or the client IP. Or to add some corporate identity to your blocking page.</p><pre><code>when ASM_REQUEST_DONE &#123;  if &#123; [ASM::blocking_active] &#125;   &#123;    switch -glob [HTTP::host] &#123;      &quot;www.example.com&quot; &#123;    HTTP::respond 403 content &quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Access to this site is blocked!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;      &#125;      &quot;www.example2.com&quot; &#123;    HTTP::respond 403 content &quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Sorry, this site is not available!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;      &#125;      default &#123;    HTTP::respond 403 content &quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Access to this site is blocked!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;      &#125;    &#125;  &#125;&#125;</code></pre><p>I have a few comments on this proposed solution. The command [ASM::blocking_active] does not exist. You could probably fix the iRule by using [ASM::status] equals “blocked” or when ASM_REQUEST_BLOCKING instead. Besides that, the usual HTTP response code ASM uses to send a blocking page is 200, also this solution does not include the support ID. I recommend taking a look at Support Solution K22017023 and combining the best of solutions. <a href="https://my.f5.com/manage/s/article/K22017023">https://my.f5.com/manage/s/article/K22017023</a></p><p>I have of course asked ChatGPT to adjust the iRule to take my suggestions into account. The new iRule that ChatGPT proposed was even worse.</p><pre><code>when ASM_REQUEST_BLOCKED &#123;  set block_type [ASM::block type]  set host_header [HTTP::header Host]    switch -glob $host_header &#123;    &quot;www.example.com&quot; &#123;      ASM::respond $block_type &quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Access blocked by ASM&lt;/h1&gt;&lt;p&gt;Your request has been blocked by ASM. Please contact support with the following ID:&lt;/p&gt;&lt;p&gt;ASM Block ID: [ASM::block id]&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;    &#125;    &quot;www.anotherexample.com&quot; &#123;      ASM::respond $block_type &quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Access blocked by ASM&lt;/h1&gt;&lt;p&gt;Your request has been blocked by ASM. Please contact support with the following ID:&lt;/p&gt;&lt;p&gt;ASM Block ID: [ASM::block id]&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;    &#125;    default &#123;      ASM::respond $block_type &quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Access blocked by ASM&lt;/h1&gt;&lt;p&gt;Your request has been blocked by ASM. Please contact support with the following ID:&lt;/p&gt;&lt;p&gt;ASM Block ID: [ASM::block id]&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;    &#125;  &#125;&#125;</code></pre><p>This iRule is supposed to execute on the ASM_REQUEST_BLOCKED event, which doesn’t exist. Also the commands [ASM::respond] and the [ASM::block] don’t exist. I think the AI got a little bit too creative here 🙂</p><h2 id="Challenge-6-Redirect-HTTP-request-matching-a-specific-path-and-add-a-query-parameter"><a href="#Challenge-6-Redirect-HTTP-request-matching-a-specific-path-and-add-a-query-parameter" class="headerlink" title="Challenge 6: Redirect HTTP request matching a specific path and add a query parameter"></a>Challenge 6: Redirect HTTP request matching a specific path and add a query parameter</h2><p>The author of this thread asks for an iRule that will redirect the user to a new URL and uses the subdomain portion of the FQDN a query parameter in the new URI. The thread is not marked as “solved”, so I cannot say whether this satisfies the requirements of the user. For the sake of brevity I removed all comments that ChatGTP added. It is worth mentioning, that the comments ChatGPT adds are indeed helpful.</p><p>Here is what ChatGPT suggests. </p><pre><code>when HTTP_REQUEST &#123;  if &#123;[string starts_with [HTTP::path] &quot;/age/signup&quot;]&#125;   &#123;    set xyz_value [string range [HTTP::host] 0 [expr &#123;[regexp -indices &quot;\\.test\\.com&quot; [HTTP::host]]-1&#125;]]    set redirect_url &quot;https://abc.test.com/#/inSign/invite?account=$xyz_value&amp;[HTTP::query]&quot;    HTTP::redirect $redirect_url 302  &#125;&#125;</code></pre><p>Here is again a lot that goes wrong. The if condition if {[string starts_with [HTTP::path] “&#x2F;age&#x2F;signup”]} is just wrong syntax. Correct syntax would be if {[HTTP::path] starts_with “&#x2F;age&#x2F;signup”}. Also the next line set xyz_value [string range [HTTP::host] 0 [expr {[regexp -indices “\.test\.com” [HTTP::host]]-1}]] won’t do what you’d expect it to do. If the FQDN is aaa.test.com this won’t extract the full subdomain portion of the FQDN, it will just take the first letter. And the [HTTP::redirect] command does not accept 302 as a flag. Furthermore, what might be missing here, is a check for the value of [HTTP::host] to ensure both conditions of matching the hostname and the URL path are matched. I already mentioned, I am not a fan of the HTTP::redirect command because it uses a 302 Found redirect response rather than a 301 Moved Permanently response. But what I like about this</p><p>Here is my working solution.</p><pre><code>when HTTP_REQUEST &#123;  if &#123;[string tolower [HTTP::path]] starts_with &quot;/age/signup&quot;&#125;  &#123;    HTTP::redirect &quot;https://abc.test.com/#/inSign/invite?account=[getfield [HTTP::host] &quot;.test.com&quot; 1]&amp;[HTTP::query]&quot;  &#125;&#125;</code></pre><p>Notice that I use string tolower here. I often use it to make sure my iRule can compare strings case-insensitive.</p><h2 id="Challenge-7-Redirect-users-from-one-URL-to-a-new-URL"><a href="#Challenge-7-Redirect-users-from-one-URL-to-a-new-URL" class="headerlink" title="Challenge 7: Redirect users from one URL to a new URL"></a>Challenge 7: Redirect users from one URL to a new URL</h2><p>Here the is quite similar, the author of this thread asks for an iRule that redirects from <a href="https://abc.xyz.com/Projectsite/">https://abc.xyz.com/Projectsite/</a>* to <a href="https://bbb.xyz.com/page/projectdocs-users/">https://bbb.xyz.com/page/projectdocs-users/</a>.</p><pre><code>when HTTP_REQUEST &#123;  if &#123;[string starts_with [HTTP::path] &quot;/Projectsite/&quot;]&#125;   &#123;    set redirect_url &quot;https://bbb.xyz.com/page/projectdocs-users/&quot;    append redirect_url [string range [HTTP::path] 11 end]    HTTP::redirect $redirect_url 302  &#125;&#125;</code></pre><p>ChatGPT makes the same syntax mistake here, the if condition will cause an error when saving the iRule. if {[string starts_with [HTTP::path] “&#x2F;age&#x2F;signup”]} is not valid tcl code, correct is if {[HTTP::path] starts_with “&#x2F;Projectsite&#x2F;“}. The string range is off by two characters. In order to remove the string “&#x2F;Projectsite&#x2F;“ from the HTTP::path you need to count 13 characters, not 11. I wonder how an AI can be bad at counting… Also here second check for matching the hostname as well as the URL Path would be useful, the use a variable for the redirect URL seems unnecessary and the HTTP::redirect command… enough said about that.</p><p>Here is my quick and dirty solution that will work.</p><pre><code>when HTTP_REQUEST &#123;  if &#123;[HTTP::path] starts_with &quot;/Projectsite/&quot;&#125;  &#123;    HTTP::redirect &quot;http://bbb.xyz.com/page/projectdocs-users/[string range [HTTP::path] 13 end]&amp;[HTTP::query]&quot;  &#125;&#125;</code></pre><h1 id="Conclusion"><a href="#Conclusion" class="headerlink" title="Conclusion"></a>Conclusion</h1><p>After ChatGPT had solved the first tasks I it quite convincingly, I was quite optimistic that it could also correctly answer the more complex tasks or questions from the devcentral forum. Unfortunately this was not the case, the AI was quite creative in finding solutions but often with wrong syntax and with wasteful use of variables. To correct the syntax errors, you need an F5 specialist again. He will then also have enough experience to develop iRules not only correctly but also in a performant and scalable way. Of course we can expect that the AI will improve over time and hopefully it will soon be able to solve more complex iRule questions for us - I will for sure test it again.</p><h1 id="Update"><a href="#Update" class="headerlink" title="Update"></a>Update</h1><p>JRahm hinted me to take a another look at the second solution ChatGPT provided. The AI made another mistake here, it reversed the order of the string map. Apologies, I should have noticed that.</p><h2 id="ChatGPT"><a href="#ChatGPT" class="headerlink" title="ChatGPT:"></a>ChatGPT:</h2><pre><code>[string map &#123;&quot;oldhost.example.com&quot; &quot;newhost.example.com&quot;&#125; [HTTP::header value &quot;Location&quot;]</code></pre><h2 id="Correct"><a href="#Correct" class="headerlink" title="Correct:"></a>Correct:</h2><pre><code>[string map &#123;&quot;newhost.example.com&quot; &quot;oldhost.example.com&quot;&#125; [HTTP::header value &quot;Location&quot;]</code></pre>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;Hey-ChatGPT-can-you-write-iRules&quot;&gt;&lt;a href=&quot;#Hey-ChatGPT-can-you-write-iRules&quot; class=&quot;headerlink&quot; title=&quot;Hey ChatGPT, can you write iRules?&quot;&gt;&lt;/a&gt;Hey ChatGPT, can you write iRules?&lt;/h1&gt;&lt;p&gt;iRules allow you to parse the payload of the data passing through the BIG-IP and, at wire speed, execute an entire script of commands on that traffic.&lt;br&gt;They allow you to log and redirecting traffic, modify the URI or port or to rewrite the payload itself.&lt;br&gt;iRules and their almost endless capabilities to customize the behavior of F5 Networks’ BIG-IP are one the unique selling point of BIG-IP.&lt;br&gt;Many users of devcentral ask for help with their iRules, consultants who can write or troubleshoot iRules are sought after by many of F5s’ customers.&lt;br&gt;I was wondering how well the new cool kid in town, ChatGPT, performs at writing iRules and how many of the most seen iRules questions on devcentral it can actually answer.&lt;br&gt;Find the most requested iRules&lt;br&gt;I tried to figure out what challenges devcentral users most often look for help with and came up with a list of usual iRule code questions.&lt;/p&gt;</summary>
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="TCP,F5" scheme="http://hexo.abasp.com/tags/TCP-F5/"/>
    
  </entry>
  
  <entry>
    <title>Accessing TCP Options from iRules</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Accessing_TCP_Options_from_iRules.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/Accessing_TCP_Options_from_iRules.html</id>
    <published>2024-06-23T03:12:00.000Z</published>
    <updated>2024-06-24T04:00:49.730Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Accessing-TCP-Options-from-iRules"><a href="#Accessing-TCP-Options-from-iRules" class="headerlink" title="Accessing TCP Options from iRules"></a>Accessing TCP Options from iRules</h1><p>I’ve written several articles on the TCP profile and enjoy digging into TCP.  It’s a beast, and I am constantly re-learning the inner workings.  Still etched in my visual memory map, however, is the TCP header format, shown in Figure 1 below.</p><p>Since 9.0 was released, TCP payload data (that which comes after the header) has been consumable in iRules via the TCP::payload and the port information has been available in the contextual commands TCP::local_port&#x2F;TCP::remote_port and of course TCP::client_port&#x2F;TCP::server_port.  Options, however, have been inaccessible.  But beginning with version 10.2.0-HF2, it is now possible to retrieve data from the options fields.</p><span id="more"></span><h2 id="Preparing-the-BIG-IP"><a href="#Preparing-the-BIG-IP" class="headerlink" title="Preparing the BIG-IP"></a>Preparing the BIG-IP</h2><p>Prior to version 11.0, it was necessary to set a bigpipe database key with the option (or options) of interest:</p><pre><code>bigpipe db Rules.Tcpoption.settings [option, first|last], [option, first|last]</code></pre><p>In version 11.0 and forward, the DB keys are no more and you need to create a tcp profile with the these options defined, like so:</p><pre><code>ltm profile tcp tcp_opt &#123;    app-service none    tcp-options &quot;&#123;option first|last&#125; &#123;option first|last&#125;&quot;&#125;</code></pre><p>The option is an integer between 2 and 255, and the first&#x2F;last setting indicates whether the system will retain the first or last instance of the specified option.  Once that key is set, you’ll need to do a bigstart restart for it to take (warning: service impacting).  Note also that the LTM only collects option data starting with the ACK of a connection.  The initial SYN is ignored even if you select the first keyword.  This is done to prevent a SYN flood attack (in keeping with SYN-cookies).</p><pre><code>A New iRules Command: TCP::optionThe TCP::option command has the following syntax:TCP::option get &lt;option&gt;v11 Additions/Changes:TCP::option set &lt;option number&gt; &lt;value&gt; &lt;next|all&gt;TCP::option noset &lt;option number&gt;</code></pre><p>Pretty simple, no? So now that you can access them, what fun can be had? </p><h2 id="Real-World-Scenario-Akamai"><a href="#Real-World-Scenario-Akamai" class="headerlink" title="Real World Scenario: Akamai"></a>Real World Scenario: Akamai</h2><p>In Akamai’s IPA and SXL product lines, they support client IP visibility by embedding a version number (one byte) and an IPv4 address (four bytes) as part of their overlay path feature in tcp option number 28.  To access this data, we first set the database key:</p><p>tmsh create ltm profile tcp tcp_opt tcp-options “{28 first}”<br>Now, the iRule utilizing the TCP::option command:</p><pre><code>when CLIENT_ACCEPTED &#123;  set opt28 [TCP::option get 28]  if &#123; [string length $opt28] == 5 &#125; &#123;    binary scan $opt28 cH8 ver addr    if &#123; $ver != 1 &#125; &#123;      log local0. &quot;Unsupported Akamai version: $ver&quot;    &#125; else &#123;    scan $addr &quot;%2x%2x%2x%2x&quot; ip1 ip2 ip3 ip4    set optaddr &quot;$ip1.$ip2.$ip3.$ip4&quot;    &#125;   &#125;&#125;when HTTP_REQUEST &#123;  if &#123; [info exists optaddr] &#125; &#123;    HTTP::header insert &quot;X-Forwarded-For&quot; $optaddr  &#125;&#125;</code></pre><p>The Akamai version should be one, so we log if not.  Otherwise, we take the address (stored in the variable addr in hex) and scan it to get the decimal equivalents to build the address for inserting in the X-Forwarded-For header.  Cool, right?  Also cool—along with the new TCP::option command , an extension was made to the IP::addr command to parse binary fields into a dotted decimal IP address.  This extension is also available beginning in 10.2.0-HF2, but extended in 11.0.  Here’s the syntax:</p><pre><code>IP::addr parse [-ipv4 | -ipv6 [swap]] &lt;binary field&gt; [&lt;offset&gt;]</code></pre><p>So for example, if you had an IPv6 address in option 28 with a 1 byte offset, you would parse that like:</p><pre><code>log local0. &quot;IP::addr parse IPv6 output: [IP::addr parse -ipv6 [TCP::option get 28] 1]&quot;</code></pre><h2 id="Log-Result"><a href="#Log-Result" class="headerlink" title="Log Result"></a>Log Result</h2><p>May 27 21:51:34 ltm13 info tmm[27207]: Rule &#x2F;Common&#x2F;tcpopt_test <CLIENT_ACCEPTED>: IP::addr parse IPv6 output: 2601:1930:bd51:a3e0:20cd:a50b:1cc1:ad13<br>But in the context of our TCP option, we have 5-bytes of data with the first byte not mattering in the context of an address, so we get at the address with this:</p><p>set optaddr [IP::addr parse -ipv4 [TCP::option get 28] 1]<br>This cleans up the rule a bit:</p><pre><code>when CLIENT_ACCEPTED &#123;  set opt28 [TCP::option get 28]  if &#123; [string length $opt28] == 5 &#125; &#123;    binary scan $opt c ver    if &#123; $ver != 1 &#125; &#123;      log local0. &quot;Unsupported Akamai version: $ver&quot;    &#125; else &#123;    set optaddr [IP::addr parse -ipv4 $opt28 1]    &#125;  &#125;&#125;when HTTP_REQUEST &#123;  if &#123; [info exists optaddr] &#125; &#123;    HTTP::header insert &quot;X-Forwarded-For&quot; $optaddr  &#125;&#125;</code></pre><p>No need to store the address in the first binary scan and no need for the scan command at all so I eliminated those.  Setting a forwarding header is not the only thing we can do with this data.  It could also be shipped off to a logging server, or used as a snat address (assuming the server had either a default route to the BIG-IP, or specific routes for the customer destinations, which is doubtful).  Logging is trivial, shown below with the log command.  The HSL commands could be used in lieu of log if sending off-box to a log server.</p><pre><code>when CLIENT_ACCEPTED &#123;  set opt28 [TCP::option get 28]  if &#123; [string length $opt28] == 5 &#125; &#123;    binary scan $opt c ver    if &#123; $ver != 1 &#125; &#123;      log local0. &quot;Unsupported Akamai version: $ver&quot;    &#125; else &#123;    set optaddr [IP::addr parse -ipv4 $opt28 1]    log local0. &quot;Client IP extracted from Akamai TCP option is $optaddr&quot;    &#125;  &#125;&#125;</code></pre><p>If setting the provided IP as a snat address, you’ll want to make sure it’s a valid IP address before doing so.  You can use the TCL catch command and IP::addr to perform this check as seen in the iRule below:</p><pre><code>when CLIENT_ACCEPTED &#123;  set addrs [list \    &quot;192.168.1.1&quot; \    &quot;256.168.1.1&quot; \    &quot;192.256.1.1&quot; \    &quot;192.168.256.1&quot; \    &quot;192.168.1.256&quot; \  ]  foreach x $addrs &#123;    if &#123; [catch &#123;IP::addr $x mask 255.255.255.255&#125;] &#125; &#123;      log local0. &quot;IP $x is invalid&quot;    &#125; else &#123; log local0. &quot;IP $x is valid&quot; &#125;  &#125;&#125;</code></pre><p>The output of this iRule:</p><p><CLIENT_ACCEPTED>: IP 192.168.1.1 is valid<br><CLIENT_ACCEPTED>: IP 256.168.1.1 is invalid<br><CLIENT_ACCEPTED>: IP 192.256.1.1 is invalid<br><CLIENT_ACCEPTED>: IP 192.168.256.1 is invalid<br><CLIENT_ACCEPTED>: IP 192.168.1.256 is invalid</p><p>Adding this logic into a functional rule with snat:</p><pre><code>when CLIENT_ACCEPTED &#123;  set opt28 [TCP::option get 28]  if &#123; [string length $opt28] == 5 &#125; &#123;    binary scan $opt c ver    if &#123; $ver != 1 &#125; &#123;      log local0. &quot;Unsupported Akamai version: $ver&quot;    &#125; else &#123;    set optaddr [IP::addr parse -ipv4 $opt28 1]    if &#123; [catch &#123;IP::addr $x mask 255.255.255.255&#125;] &#125; &#123;      log local0. &quot;$optaddr is not a valid address&quot;      snat automap    &#125; else &#123;        log local0. &quot;Akamai inserted Client IP is $optaddr.  Setting as snat address.&quot;        snat $optaddr    &#125;   &#125;&#125;</code></pre><h2 id="Alternative-TCP-Option-Use-Cases"><a href="#Alternative-TCP-Option-Use-Cases" class="headerlink" title="Alternative TCP Option Use Cases"></a>Alternative TCP Option Use Cases</h2><p>The Akamai solution shows an application implementation taking advantage of normally unused space in TCP headers.    There are, however, defined uses for several option “kind” numbers.  The list is available here: <a href="http://www.iana.org/assignments/tcp-parameters/tcp-parameters.xml">http://www.iana.org/assignments/tcp-parameters/tcp-parameters.xml</a>.  Some options that might be useful in troubleshooting efforts:</p><p>Opkind 2 – Max Segment Size<br>Opkind 3 – Window Scaling<br>Opkind 5 – Selective Acknowledgements<br>Opkind 8 – Timestamps<br>Of course, with tcpdump you get all this plus the context of other header information and data, but hey, another tool in the toolbox, right?</p><h2 id="Addendum"><a href="#Addendum" class="headerlink" title="Addendum"></a>Addendum</h2><p>I’ve been working with F5 SE Leonardo Simon on on additional examples I wanted to share here that uses option 28 or 253 to extract an IPv6 address if the version is 34 and otherwise extracts an IPv4 address if the version is 1 or 2.</p><p>Option 28</p><pre><code>when CLIENT_ACCEPTED &#123;  set opt28 [TCP::option get 28]  binary scan $opt28 c ver  #log local0. &quot;version: $ver&quot;    if &#123; $ver == 34 &#125; &#123;    set optaddr [IP::addr parse -ipv6 $opt28 1]    log local0. &quot;opt28 ipv6 address: $optaddr&quot;    &#125;    elseif &#123; $ver == 1 || $ver == 2 &#125; &#123;    set optaddr [IP::addr parse -ipv4 $opt28 1]    log local0. &quot;opt28 ipv4 address: $optaddr&quot;    &#125;&#125;</code></pre><p>Option 253</p><pre><code>when CLIENT_ACCEPTED &#123;  set opt253 [TCP::option get 253]  binary scan $opt253 c ver  #log local0. &quot;version: $ver&quot;    if &#123; $ver == 34 &#125; &#123;    set optaddr [IP::addr parse -ipv6 $opt253 1]    log local0. &quot;opt253 ipv6 address: $optaddr&quot;    &#125;    elseif &#123; $ver == 1 || $ver == 2 &#125; &#123;    set optaddr [IP::addr parse -ipv4 $opt253 1]    log local0. &quot;opt253 ipv4 address: $optaddr&quot;    &#125;&#125;</code></pre>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;Accessing-TCP-Options-from-iRules&quot;&gt;&lt;a href=&quot;#Accessing-TCP-Options-from-iRules&quot; class=&quot;headerlink&quot; title=&quot;Accessing TCP Options from iRules&quot;&gt;&lt;/a&gt;Accessing TCP Options from iRules&lt;/h1&gt;&lt;p&gt;I’ve written several articles on the TCP profile and enjoy digging into TCP.  It’s a beast, and I am constantly re-learning the inner workings.  Still etched in my visual memory map, however, is the TCP header format, shown in Figure 1 below.&lt;/p&gt;
&lt;p&gt;Since 9.0 was released, TCP payload data (that which comes after the header) has been consumable in iRules via the TCP::payload and the port information has been available in the contextual commands TCP::local_port&amp;#x2F;TCP::remote_port and of course TCP::client_port&amp;#x2F;TCP::server_port.  Options, however, have been inaccessible.  But beginning with version 10.2.0-HF2, it is now possible to retrieve data from the options fields.&lt;/p&gt;</summary>
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="TCP, F5" scheme="http://hexo.abasp.com/tags/TCP-F5/"/>
    
  </entry>
  
  <entry>
    <title>体验用Markdown来写一篇博客文章</title>
    <link href="http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/%E4%BD%93%E9%AA%8C%E4%B8%80%E4%B8%8BMarkdown.html"/>
    <id>http://hexo.abasp.com/pages/%E6%8A%80%E6%9C%AF/%E4%BD%93%E9%AA%8C%E4%B8%80%E4%B8%8BMarkdown.html</id>
    <published>2024-06-22T03:18:19.000Z</published>
    <updated>2024-06-24T04:00:49.577Z</updated>
    
    <content type="html"><![CDATA[<h1 id="体验用Markdown来写一篇博客文章"><a href="#体验用Markdown来写一篇博客文章" class="headerlink" title="体验用Markdown来写一篇博客文章"></a>体验用Markdown来写一篇博客文章</h1><p>安装完hexo后，这发布文章得用命令来操作，查了Markdown才知道这种简易格式。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;体验用Markdown来写一篇博客文章&quot;&gt;&lt;a href=&quot;#体验用Markdown来写一篇博客文章&quot; class=&quot;headerlink&quot; title=&quot;体验用Markdown来写一篇博客文章&quot;&gt;&lt;/a&gt;体验用Markdown来写一篇博客文章&lt;/h1&gt;&lt;p&gt;安装</summary>
      
    
    
    
    <category term="技术" scheme="http://hexo.abasp.com/categories/%E6%8A%80%E6%9C%AF/"/>
    
    
  </entry>
  
  <entry>
    <title>我的第一篇hexo博客</title>
    <link href="http://hexo.abasp.com/pages/%E9%9A%8F%E7%AC%94/%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E7%AF%87hexo%E5%8D%9A%E5%AE%A2.html"/>
    <id>http://hexo.abasp.com/pages/%E9%9A%8F%E7%AC%94/%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E7%AF%87hexo%E5%8D%9A%E5%AE%A2.html</id>
    <published>2024-06-22T03:11:19.000Z</published>
    <updated>2024-06-24T04:00:49.534Z</updated>
    
    
    
    
    <category term="随笔" scheme="http://hexo.abasp.com/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
</feed>
