zoukankan      html  css  js  c++  java
  • Oracle -- 记一次ADG库迁移过程小结 -- 上篇(ADG建库)

    背景:

      客户新采购一批机器,需要把原ADG库数据移到新机器上,操作系统不变,数据库版本不变。

      远程安装,采用xmanager软件连接搭建。

    环境:

      操作系统:Oracle Linux Server release 6.8 

      oracle数据库版本:11g r2  11.0.2.4

    搭建思路:

      1. Yum安装包,配ORACLE安装环境(主&从)

      2. 创建用户和组(主&从)

        --创建相关的  
        --创建oracle用户 & 改口令
        --修改oracle用户的系统环境变量 & 生效环境变量
        --创建oracle用户所需的目录并修改的属主和属组 & 权限
        
      3. 修改limits限制,编辑limits.conf 文件,增设oracle相关限制(主&从)
     
      4. 编辑sysctl.conf文件,调整相关内核参数,并生效(主&从)
     
      5. 给普通用户调用xserver的权利(主&从)
      
      6. 解压数据库安装包,图形化界面安装数据库软件。(主&从)
      
      7. dbca建实例(主)
        1. 建实例前准备,了解原ADG库情况
          -- 运行时间        # 了解原参数设置下,原数据库的稳定性情况
          -- 表空间数量(永久,临时,undo),数据文件数量,临时文件数量, 大小    # 便于后续核对新ADG库创建的准确与否
          -- 日志文件组数成员数大小,当前大小日志文件的切换频率     # 新库中日志文件大小可以根据需求进行调整
          -- 非默认的静态参数     # 静态参数需要停库后调整,应在建库之初考虑好;此外涉及文件路径的静态参数一旦设定,后续除了调整参数,还需要调整物理文件位置和指针相对麻烦,更应该小心谨慎
          -- 非默认的动态参数     # 如果方便,可以在建库之初提前预设好,实在是漏掉或改错,问题也不太大,后续可以在库运行时调整
          -- 查看原库字符集信息 # 新库字符集应与原库相同,可以避免各种错误,具体会有哪些错误,详见百度。
          
        2. dbca创建实例
          -- 由于业务需求,开启了OMF(Oracle-Managed Files)   # 开启OMF需要指定路径,默认是{ORACLE_BASE}/oradata下,可以根据数据文件规划的存放位置修改,特别注意,OMF会在设置的路径下,建立一个SID大写的文件夹,文件夹下在建立controlfile、datafile和onlinelog文件夹,自动管理的文件放于其下,我的sid为orcl,即有
              /.../ORCL/controlfile
                   /datafile
                   /onlinelog
          -- 原库未开启闪回区,新库保持风格也未开启   # 少了闪回区,控制文件数量减少为1,不符合安全需求,需后续增加
          -- 根据得到的原库字符集,调整新库实例的字符集   # 不要漏改,后续调整相当误事
          -- 修改最大processes   # 静态参数,默认150,按需调整
          -- 修改联机日志文件大小   # 参考原日志大小及切换情况
          -- 最后有一个create database summary,建议保存,以便后续查对,及供后人学习
     
      8. dbca生成实例的过程,部分参数无法修改,需要手动修改。(主)
        -- sqlplus / as sysdba   # 启动软件
        -- startup   # 启动实例,实例的sid已经提前改到oracle用户的环境变量
        
        # 增加控制文件
        -- show parameter control_files 或 select name from v$controlfile;   # 获取控制文件位置
        -- alter system set control_files='/.../xxx.ctl','/.../control02.ctl' scope=spfile;   # 修改控制文件在spfile里的指针,位置1的控制文件为上面查到的,位置2的为新建的,我是放在OMF自动管理的文件夹下的,应该可以放在不同的地方,自行测试。
        -- shut immediate   # 停库
        -- $ cp /.../xxx.ctl /.../control02.ctl   # 控制文件的物理文件复制,完成与指针的位置的一致
     
        # 调整dbca建库时未完成调整的参数
        -- create pfile from spfile   # 由spfile得到pfile,此时controlfile指针已修改
        -- 参照原库中的pfile文件,修改新库的pfile文件中的参数   # 特别关注各种设置的路径,启库之前,务必在操作系统中创建相应的真实路径,必要时修改权限
        -- $ cp spfile spfile.bak   # 备份现有spfile, pfile修改完毕后,会由pfile再次生成spfile,以便用spfile启库,若pfile修改错误,会无法启库,安全第一
        -- create spfile from pfile;   # 得到spfile
        -- 创建参数中提到,但实际没有的相关目录,并核对权限
        -- startup mount;   # 若参照原库设置的某些参数影响启库,可以先剔除,后续按需添加(通常为动态参数影响启库)
        -- alter database archivelog;  # 数据库开归档
        -- alter database open;  # 数据库开启
        -- alter database force logging;  # 数据库开增强日志模式
        -- 创建备用联机日志文件(数量:联机+1
     
      9. 配置从库
        -- 主库口令文件传给从库 # 口令文件的名字根据备库的SID相应修改
        -- 主库pfile文件传给从库 # pfile文件的名字根据备库的SID相应修改
        -- 从库修改pfile
          数据文件名转换
          日志名转换
          名称,路径等涉及SID的相应调整
          dg开关保持不变(主库,备库)的顺序
        -- 从库根据pfile里的路径建立相应目录,并修改相关权限
        -- create spfile from pfile;
        -- startup nomount
     
      10. 主从库都配置监听TNS
     
      11. 关闭防火墙
        -- 临时关闭 & 永久关闭,避免开机后主从库断开连接
     
      12. 测试主库是否能够ping通从库IP,以及是否能够tnsping通从库IP
     
      13. RMAN连接主库和从库,复制主库到从库
     
      14. 从库启动到open状态
        -- alter database open;
     
      15. 从库启动恢复进程,归档恢复 --> 日志实时恢复
     
      至此 ADG 配置完毕
  • 相关阅读:
    如何编写gitignore文件
    【转】three.js详解之入门篇
    【转】Nginx反向代理和负载均衡
    【转】使用nvm快速搭建 Node.js 开发环境
    【转】npm包管理器那些事
    【转】用systemJS+karma+Jasmine+babel环境去编写简单的ES6工程
    个人博客 总览
    【转】vscode: Visual Studio Code 常用快捷键
    【转】Cmder--Windows下命令行利器
    APScheduler+Flask
  • 原文地址:https://www.cnblogs.com/mihoke611/p/9955214.html
Copyright © 2011-2022 走看看