暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

一、Oracle数据库环境搭建

浅谈Oracle 2021-04-28
2246


数据库安装学习

 

 

 

 

 

 

 

 

 

 

 

 

目录

1. 说明

2.准备工作

2.1.Linux安装

2.2.基本环境配置

2.2.1.系统基本情况检查和调整

2.2.2.修改host

2.2.3.关闭不必要的系统服务

3.安装oracle软件

3.1.软件安装过程

4.安装PSU

4.1.什么是PSU

4.2.阅读PSU的安装须知

4.3.验证opatch版本

5.创建数据库

5.1.dbca模式创建数据库

5.2.手工模式创建数据库

6.配置监听

6.1.监听的作用

6.2.创建监听的方法

6.3.监听的几大要素

6.4.动态监听与静态监听的区别

6.5.如何清理监听日志文件

6.6.listener.log\tnsnames.ora\sqlnet.ora文件的作用

6.7.如何设置黑白名单

6.8.如何开启关闭监听日志

6.9.如何开启关闭监听日志

6.10.常见的监听问题

7.数据库相关配置调整

7.1.大页的设置

7.1.1.大页的作用

7.1.2.大页的设置方法

7.1.3.如何判断大页是否设置成功

7.1.4.设置大页应注意的问题

7.2.实例参数的修改

7.3.实例默认作业的调整

7.4.其他工作

8.总结

 

 

 

 

 

 

 

 

 

 

 

1. 说明

本文档为安装数据库阶段记录数据库在Linux上安装过程的记录,在虚拟机环境中安装 redhat6.4,在此基础上安装oracle 11.2.0.4.0软件以及创建数据库等内容.


2. 准备工作


2.1. Linux安装

 


 

2.2. 基本环境配置

2.2.1. 系统基本情况检查和调整

(1)cat proc/cpuinfo(看cpu


2cat proc/partitions(看分区)

 



2.2.2. 修改host文件

1命令vim etc/hosts(单机就只添加本机)

 

2.2.3. 关闭不必要的系统服务

(1)通过chkconfig --list 查看系统所有的系统服务是关闭还是打开。


2通过chkconfig iptables on 设置随机启动服务

3通过chkconfig iptables off 设置不随机启动服务

……

3. 安装oracle软件


3.1. 软件安装过程

1、解压缩

 unzip p13390677_112040_Linux-x86-64_1of2.zip

 unzip p13390677_112040_Linux-x86-64_2of2.zip

2、操作系统版本及补丁矩阵

3、调整内核参数及用户限制

1vim etc/sysctl.conf,编辑/etc/sysctl.conf文件,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行。


 

2)编辑/etc/security/limits.conf文件,修改操作系统对oracle用户资源的限制。vim etc/security/limits.conf

3)开启操作系统异步IOAIO

 


4、目录结构及空间规划

(1)存储设置

PC Server的数据库存储一般不会使用高端存储(vg物理分区推荐为32M),所以vg物理分区(PE Size)大小为操作系统安装时默认的32M,或者256M(中低端存储vg物理分区推荐值)均可。

(2)临时目录

/tmp:至少1GB空间,推荐5GB,用于存放Oracle软件安装时产生的日志。

(3)交换要求

交换区(SWAP):按照操作系统推荐配置,根据内存大小,为物理内存的1-1.5倍。推荐:创建2个大小相同、且分布在不同盘(pv)上的SWAP空间。

(4)数据库软件安装目录

Oracle软件安装目录建议设置为单独的文件系统,挂载的目录名定为/tpsys,实际安装的主目录为/tpsys/app/oracle,大小一般配置为20GB,目录的owner要求为oracle:oinstall

5)数据库空间规划

Oracle数据库空间用表空间(tablespace)表示,如默认的:SYSAUXSYSTEMTEMPUNDOTBS1USERS等;表空间的组成单位是数据文件(datafile)。我们定义基于文件系统的文件来创建Oracle的数据文件,并定义回滚表空间、临时表空间和数据表空间单个数据文件的大小为10G数据库使用的文件目录及相应用途和对应文件系统大小规划如下(假设数据库名称为test,在实际操作中,斜体的test需要替换为实际定义的数据库名):/data/oracle/data:系统及数据表空间对应数据文件存放路径;/data/oracle/redolog/  redo重做日志文件存放路径;/data/oracle/archive/  :归档日志文件存放路径;/data/oracle/tempfile/  tempfile文件存放路径(n为顺序中最后一个编号)。/data/oracle/backup/data:备份目录

……注意:以上文件系统挂载在二级目录上,即,挂载的目录是:/data/oracle/data/data/oracle/redolog//data/oracle/archive//data/oracle/tempfile/

另外,根据实际使用需要,还可能要有用于闪回区的文件目录和对应文件系统:/data/oracle/flashback:闪回区目录,建议100GB如果需要将数据库备份到硬盘,则要创建用于存放数据库备份的文件目录及文件系统:/data/oracle/backup:备份目录,根据将来数据量大小,建议大于数据表空间容量注意:以上文件系统挂载在二级目录上以上所有目录的owner要求为oracle:oinstall

5、数据库软件的安装和数据库创建的配置

(1)数据库安装的用户和组的创建

创建oinstall组:[root@localhost rpm]# groupadd  -g 5000 oinstall

创建dba组:groupadd  -g 502 dba

创建oracle用户:useradd -g oinstall  -G  dba  oracle

(2)数据库安装用户的profile(全局变量)文件的设置

假设数据库(实例)名为powerdes,使用oracle用户,编辑/home/oracle/.bash_profile,加入以下内容

(3)创建相应文件并赋予权限

[root@localhost oracle]# mkdir -p oracle/app/oracle

[root@localhost oracle]# chown -R oracle:oinstall oracle/app/oracle

[root@localhost oracle]# chmod -R 775 oracle/app/oracle

6、开始安装

(1)linux里键入su - oracle

(2)cd  /home/oracle/database

(3)./runInstaller

 

4去掉I wish to receive security updates via My Oracle Surrport选项,点击Next

 


5选择Install database software only,点击Next

6)选择Single instance database installation,点击Next

7)选择Single instance database installation,点击Next

 

(8)Available Languages中点选EnglishSimplified ChineseTraditional Chinese,点击两个框中间的>,将选中的语言加入到右边的Selected Languages中,然后点击Next

(9)选择企业版

(10)选择路径等基本配置


(11)选择dba

 


(12)继续下一步安装操作(第二个包需要自己从网上下)


 图中问题解决方法:

     
    [root@localhost rpm]# cat proc/sys/kernel/shmmax
    536870912
    [root@localhost rpm]# echo 976254976 > proc/sys/kernel/shmmax
    [root@localhost rpm]# cat proc/sys/kernel/shmmax
    976254976
    复制


    (13)继续安装

     


    (14)安装中(这步时间较长)


    (15)安装成功


     

     

    4. 安装PSU


    4.1. 什么是PSU?(打补丁)

    oracle 每个季度都会发布最新的补丁。对于生产运维人员来说,定期升级系统、打补丁是日常工作中不可缺少的部分。相对于过去的版本,Oracle打补丁的方式已经变得比较简单,处理PSU的方法也发生了一些变化。在11g中,对于一些小bug的修复,我们可以使用OPatch工具进行补丁修复。对于大的版本升级,Oracle的PSU实际上就是一系列全新的安装文件,从MOS上下载之后就可以直接进行安装。

    4.2. 阅读PSU的安装须知

     (1)关闭数据库(Oracle的PSU升级不更新数据字典,风险较小,但是还是需要停库进行升级操作。

    复制
      SQL> shutdown immediate
      Database closed.
      Database dismounted.
      ORACLE instance shut down.
      SQL> exit
      Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      停止监听服务。
      [oracle@localhost 20299015]$ lsnrctl stop
      检查服务进程
      [oracle@localhost ~]$ ps aux | grep ora_
      oracle 2604 0.0 0.0 103216 788 pts/1 S+ 01:35 0:00 grep ora_
      [oracle@localhost ~]$ ps aux | grep tns
      root 10 0.0 0.0 0 0 ? S Jan14 0:00 [netns]
      oracle 2607 0.0 0.0 103220 792 pts/1 S+ 01:36 0:00 grep tns
      复制

      复制
      2)关闭监听


      4.3. 验证opatch版本

       检查opatch版本,版本较低的话需要升级。

      复制
        [oracle@localhost OPatch]$ ./opatch version
        OPatch Version: 11.2.0.3.4


        OPatch succeeded.
        复制

        复制
        检查发现opatch版本较低,为默认版本,所以需要升级opatch。升级方法很简单,直接mv掉原来的opatch目录,然后解压最新版本的opatch软件到ORACLE_HOME下面即可。 
        复制
          [oracle@localhost OPatch]$ unzip p6880880_112000_Linux-x86-64-opatch .zip  -d $ORACLE_HOME
          再次检查版本,发现已经升级成功。
          [oracle@localhost OPatch]$ ./opatch version
          OPatch Version: 11.2.0.3.25


          OPatch succeeded.
          复制

          复制


          4.4. 了解opatch automanual方式

          (1)opatch auto:(自动模式)

          复制
            1)自动模式遇到的错误一、安装程序错误
            [[oracle@localhost OPatch]$ ./opatch apply ./28813878/
            Oracle Interim Patch Installer version 11.2.0.3.25
            Copyright (c) 2021, Oracle Corporation. All rights reserved.




            ZOP-51: The patch location is not valid for apply, because it doesn't have correct metadata, or it points to a patch directory.
            Argument(s) Error... Patch location is not valid for apply


            Please check the arguments and try again.


            OPatch failed with error code 135
            复制

            复制


            (2)manual(手工模式): 

            复制
              [oracle@localhost 28813878]$ oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch napply -skip_subset -skip_duplicate
              Oracle Interim Patch Installer version 11.2.0.3.25
              Copyright (c) 2021, Oracle Corporation. All rights reserved.




              Oracle Home : oracle/app/oracle/product/11.2.0/dbhome_1
              Central Inventory : oracle/app/oraInventory
              from : oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
              OPatch version : 11.2.0.3.25
              OUI version : 11.2.0.4.0
              Log file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-01-15_18-50-10PM_1.log


              Verifying environment and performing prerequisite checks...


              You are calling OPatch with -skip_duplicate and/or -skip_subset. These 2 CLI options are deprecated because the features are built-in, so there is no need to call OPatch with those options. Please remove those options.
              UtilSession failed: Patch 28729234 requires component(s) that are not installed in OracleHome. These not-installed components are oracle.crs:11.2.0.4.0,
              Log file location: oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-01-15_18-50-10PM_1.log


              OPatch failed with error code 73
              ##网上找解决办法,UtilSession failed: Patch 28729234 requires component(s) that are not installed in OracleHome. These not-installed components are oracle.crs:11.2.0.4.0,
              原来是路径错了
              [oracle@localhost server]$ oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch napply -skip_subset -skip_duplicate


              Oracle Interim Patch Installer version 11.2.0.3.25
              Copyright (c) 2021, Oracle Corporation. All rights reserved.




              Oracle Home : oracle/app/oracle/product/11.2.0/dbhome_1
              Central Inventory : oracle/app/oraInventory
              from : oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
              OPatch version : 11.2.0.3.25
              OUI version : 11.2.0.4.0
              Log file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-01-15_19-03-30PM_1.log


              Verifying environment and performing prerequisite checks...


              You are calling OPatch with -skip_duplicate and/or -skip_subset. These 2 CLI options are deprecated because the features are built-in, so there is no need to call OPatch with those options. Please remove those options.
              OPatch continues with these patches: 28729234


              Do you want to proceed? [y|n]
              Could not recognize input. Please re-enter.
              y
              User Responded with: Y
              All checks passed.


              Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
              (Oracle Home = '/oracle/app/oracle/product/11.2.0/dbhome_1')




              Is the local system ready for patching? [y|n]
              y
              User Responded with: Y
              Backing up files...
              Applying interim patch '28729234' to OH '/oracle/app/oracle/product/11.2.0/dbhome_1'


              Patching component oracle.rdbms, 11.2.0.4.0...
              Patch 28729234 successfully applied.
              OPatch Session completed with warnings.
              Log file location: oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-01-15_19-03-30PM_1.log


              OPatch completed with warnings.
              复制

              复制


              4.5. 安装PSU

              用命令opatch apply或者/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch napply -skip_subset -skip_duplicate

              检查应用之后的结果,代码如下

              复制
                [oracle@localhost OPatch]$ ./opatch lspatches
                28729234;OCW Patch Set Update : 11.2.0.4.190115 (28729234)


                OPatch succeeded.
                [oracle@localhost OPatch]$ ./opatch lsinventory
                Oracle Interim Patch Installer version 11.2.0.3.25
                Copyright (c) 2021, Oracle Corporation. All rights reserved.




                Oracle Home : oracle/app/oracle/product/11.2.0/dbhome_1
                Central Inventory : oracle/app/oraInventory
                from : oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
                OPatch version : 11.2.0.3.25
                OUI version : 11.2.0.4.0
                Log file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-01-15_19-10-57PM_1.log


                Lsinventory Output file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2021-01-15_19-10-57PM.txt
                --------------------------------------------------------------------------------
                Local Machine Information::
                Hostname: localhost
                ARU platform id: 226
                ARU platform description:: Linux x86-64


                Installed Top-level Products (1):


                Oracle Database 11g 11.2.0.4.0
                There are 1 products installed in this Oracle Home.




                Interim patches (1) :


                Patch 28729234 : applied on Fri Jan 15 19:05:33 CST 2021
                Unique Patch ID: 22546711
                Patch description: "OCW Patch Set Update : 11.2.0.4.190115 (28729234)"
                Created on 8 Nov 2018, 23:01:38 hrs PST8PDT
                Bugs fixed:
                18328800, 19270660, 18691572, 18508710, 20038451, 21251192, 22162062
                20365005, 21232394, 17336871, 17387214, 17750548, 17617807, 14497275
                20219458, 17733927, 18180541, 23757020, 18962892, 17292250, 17378618
                16759171, 20110156, 17843489, 17065496, 13991403, 21694632, 17273020
                22762046, 17336884, 17155238, 17336889, 18261183, 18053580, 20012766
                21245437, 20218012, 17013634, 17886392, 20995001, 24422155, 17039197
                16317771, 17947785, 10052729, 20340620, 22353346, 16237657, 20317221
                18199185, 15917869, 18399991, 20186278, 18024089, 17374271, 16849642
                20246071, 20746251, 14270845, 23621494, 20552947, 18414137, 18882642
                17001914, 17927970, 14378120, 16346413, 15986647, 17336898, 18068871
                21222147, 16206997, 18143836, 21982225, 25490238, 19168690, 18343490
                20235511, 21875360, 16613232, 19276791, 17722664, 20440643, 12928658
                18226143, 18520351, 16249829, 18952577, 17172091, 18229842, 16076412
                18265482, 20676340, 17818075, 20091753, 18231837, 14373486, 17483479
                20136892, 20551654, 18120545, 18729166, 13843841, 17405302, 21225209
                18709496, 18330979, 18744838, 14525998, 18187697, 17087371, 20531190
                20598625, 14385860, 18348155, 19479503, 12928592, 17516024, 18370031
                17764053, 19272663, 17551223, 14671408, 18272135, 14207615, 21255373
                17500165, 18875012, 14769643, 25656952, 19558324, 18464784, 18848125
                19241857, 17955615, 14851828, 14693336, 20315294, 16284825, 17352230
                20014326, 17238586, 17089344, 17405605, 17531342, 21327402, 26546632
                19398098, 17159489, 17640316, 13823394, 16543190, 22024217, 17983675
                20795241, 17481314, 18346135, 17598201, 16281493, 15986311, 17208793
                19601468, 18999857, 18700935, 14076173, 18428146, 16709532, 17435488
                18352845, 18352846, 20408163, 17592037, 19616601, 17387779, 17391726
                14777968, 15851860, 16206882, 20141091, 15832129, 17305100, 20175174
                21113068, 19885321, 16901346, 17985714, 25591658, 18536826, 17780903
                18752378, 18946768, 16876500, 16875342, 17769597, 19955755, 16429265
                18336452, 17273003, 17209968, 25484507, 16988311, 19319357, 20094984
                17046460, 17059927, 18053631, 16867761, 18774591, 21442094, 20235486
                19359787, 15869775, 17447588, 19642566, 21152052, 16798862, 15920201






                --------------------------------------------------------------------------------


                OPatch succeeded.


                SQL> select * from dba_registry_history;
                ACTION_TIME ACTION NAMESPAC VERSION ID BUNDL COMMENTS
                ------------------------------ -------- -------- ---------- ---------- ----- --------------------
                05-MAY-15 09.24.08.184589 AM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0
                13-MAY-15 05.17.48.578053 PM   APPLY    SERVER   11.2.0.4            6 CPU CPUApr2015
                复制


                 

                  4.6. 回退PSU

                数据库要安装新的补丁,发现新补丁中的某些包和原有补丁冲突,需要将原有补丁进行回退。 

                复制
                  1、进行新补丁安装前的冲突检查,发现与原有补丁冲突。
                  [oracle@localhost patch]$ cd 20760982/
                  [oracle@localhost 20760982]$ oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
                  Oracle Interim Patch Installer version 11.2.0.3.6
                  Copyright (c) 2013, Oracle Corporation. All rights reserved.




                  PREREQ session




                  Oracle Home : oracle/app/oracle/product/11.2.0/dbhome_1
                  Central Inventory : oracle/app/oraInventory
                  from : oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
                  OPatch version : 11.2.0.3.6
                  OUI version : 11.2.0.3.0
                  Log file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2015-11-23_16-11-26PM_1.log




                  Invoking prereq "checkconflictagainstohwithdetail"




                  ZOP-40: The patch(es) has conflicts with other patches installed in the Oracle Home (or) among themselves.




                  Prereq "checkConflictAgainstOHWithDetail" failed.




                  Summary of Conflict Analysis:




                  There are no patches that can be applied now.




                  Following patches have conflicts. Please contact Oracle Support and get the merged patch of the patches :
                  16902043, 20760982




                  Following patches will be rolled back from Oracle Home on application of the patches in the given list :
                  16902043




                  Conflicts/Supersets for each patch are:




                  Patch : 20760982




                  Bug Conflict with 16902043
                  Conflicting bugs are:
                  17332800




                  Conflict with 16619892






                  ##2 、查看安装补丁的补丁 ID。


                  [oracle@localhost OPatch]$ ./opatch lsinventory -patch_id
                  Oracle Interim Patch Installer version 11.2.0.3.6
                  Copyright (c) 2013, Oracle Corporation. All rights reserved.








                  Oracle Home : oracle/app/oracle/product/11.2.0/dbhome_1
                  Central Inventory : oracle/app/oraInventory
                  from : oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
                  OPatch version : 11.2.0.3.6
                  OUI version : 11.2.0.3.0
                  Log file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2015-11-23_14-19-55PM_1.log




                  Lsinventory Output file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2015-11-23_14-19-55PM.txt




                  --------------------------------------------------------------------------------
                  Installed Top-level Products (1):




                  Oracle Database 11g 11.2.0.3.0
                  There are 1 product(s) installed in this Oracle Home.








                  Interim patches (1) :




                  Patch 16902043 : applied on Sun Mar 02 11:41:20 CST 2014
                  Unique Patch ID: 16676143
                  Patch description: "Database Patch Set Update : 11.2.0.3.8 (16902043)"
                  Created on 24 Sep 2013, 23:20:58 hrs PST8PDT
                  Sub-patch 13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)"
                  Sub-patch 13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)"
                  Sub-patch 13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)"
                  Sub-patch 14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)"
                  Sub-patch 14727310; "Database Patch Set Update : 11.2.0.3.5 (14727310)"
                  Sub-patch 16056266; "Database Patch Set Update : 11.2.0.3.6 (16056266)"
                  Sub-patch  16619892; "
                  3、关闭数据库和监听。
                  4、将冲突的补丁包回退。
                  执行下面命令的时候报错,这是由于 oracle 的进程没有被关闭干净,需要把 oracle 进程关闭干净。
                  [oracle@localhost OPatch]$ oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch rollback -id 16619892
                  Oracle Interim Patch Installer version 11.2.0.3.6
                  Copyright (c) 2013, Oracle Corporation. All rights reserved.
                  Argument(s) Error... ERROR: OPatch would not rollback a sub-patch that is not active. The patch id 16619892 is a sub-patch of the active composite 16902043. OPatch will not rollback patch(es) 16619892 until you have rolled back 16902043.
                  Please check the arguments and try again.
                  OPatch failed with error code 135
                  找到没有关闭的 oracle 进程,使用 kill -9 将其杀掉。
                  [oracle@localhost OPatch]$ ps -ef |grep oracle
                  oracle 3466 9981 0 Sep11 ? 01:06:59 u01/app/oracle/product/11.2.0/db_1/bin/emagent
                  root 6481 1 0 2014 ? 00:00:01 usr/local/oracle/backup/.etc.linux86_64/observiced -b
                  oracle 9981 1 0 May13 ? 00:32:46 u01/app/oracle/product/11.2.0/db_1/perl/bin/perl u01/app/oracle/product/11.2.0/db_1/bin/emwd.pl dbconsole u01/app/oracle/product/11.2.0/db_1/PJKMISDB.localdomain_misdb/sysman/log/emdb.nohup
                  root 11189 6416 0 13:23 ? 00:00:00 sshd: oracle [priv]
                  oracle 11194 11189 0 13:23 ? 00:00:00 sshd: oracle@pts/2
                  oracle 11195 11194 0 13:23 pts/2 00:00:00 -bash
                  root 11379 6416 0 13:26 ? 00:00:00 sshd: oracle [priv]
                  oracle 11383 11379 0 13:26 ? 00:00:00 sshd: oracle@pts/3
                  oracle 11384 11383 0 13:26 pts/3 00:00:00 -bash
                  root 12726 6416 0 13:36 ? 00:00:00 sshd: oracle [priv]
                  oracle 12731 12726 0 13:36 ? 00:00:00 sshd: oracle@pts/4
                  oracle 12732 12731 0 13:36 pts/4 00:00:00 -bash
                  root 14545 6416 0 13:50 ? 00:00:00 sshd: oracle [priv]
                  oracle 14549 14545 0 13:50 ? 00:00:00 sshd: oracle@pts/1
                  oracle 14550 14549 0 13:50 pts/1 00:00:00 -bash
                  oracle 17234 14550 0 14:14 pts/1 00:00:00 vim 01.txt
                  root 17722 6416 0 14:18 ? 00:00:00 sshd: oracle [priv]
                  oracle 17726 17722 0 14:18 ? 00:00:00 sshd: oracle@pts/5
                  oracle 17727 17726 0 14:18 pts/5 00:00:00 -bash
                  oracle 19613 12732 0 14:25 pts/4 00:00:00 vim u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/16902043_Nov_23_2015_14_24_23/rollback2015-11-23_14-24-23PM_1.log
                  oracle 20088 9981 43 14:28 ? 00:00:20 u01/app/oracle/product/11.2.0/db_1/jdk/bin/java -server -Xmx384M -XX:MaxPermSize=400M -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -DORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 -Doracle.home=/u01/app/oracle/product/11.2.0/db_1/oc4j -Doracle.oc4j.localhome=/u01/app/oracle/product/11.2.0/db_1/PJKMISDB.localdomain_misdb/sysman -DEMSTATE=/u01/app/oracle/product/11.2.0/db_1/PJKMISDB.localdomain_misdb -Doracle.j2ee.dont.use.memory.archive=true -Djava.protocol.handler.pkgs=HTTPClient -Doracle.security.jazn.config=/u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_PJKMISDB.localdomain_misdb/config/jazn.xml -Djava.security.policy=/u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_PJKMISDB.localdomain_misdb/config/java2.policy -Djavax.net.ssl.KeyStore=/u01/app/oracle/product/11.2.0/db_1/sysman/config/OCMTrustedCerts.txt-Djava.security.properties=/u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/home/config/jazn.security.props -DEMDROOT=/u01/app/oracle/product/11.2.0/db_1/PJKMISDB.localdomain_misdb -Dsysman.md5password=true -Drepapi.oracle.home=/u01/app/oracle/product/11.2.0/db_1 -Ddisable.checkForUpdate=true -Doracle.sysman.ccr.ocmSDK.websvc.keystore=/u01/app/oracle/product/11.2.0/db_1/jlib/emocmclnt.ks -Dice.pilots.html4.ignoreNonGenericFonts=true -Djava.awt.headless=true -jar u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/home/oc4j.jar -config u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_PJKMISDB.localdomain_misdb/config/server.xml
                  kill -9 20088
                  之后再次执行回退命令。
                  [oracle@localhost OPatch]$ oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch rollback -id 16902043
                  Oracle Interim Patch Installer version 11.2.0.3.6
                  Copyright (c) 2013, Oracle Corporation. All rights reserved.
                  Oracle Home : oracle/app/oracle/product/11.2.0/dbhome_1
                  Central Inventory : oracle/app/oraInventory
                  from : oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
                  OPatch version : 11.2.0.3.6
                  OUI version : 11.2.0.3.0
                  Log file location : oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/16902043_Nov_23_2015_14_31_43/rollback2015-11-23_14-31-43PM_1.log
                  Patches will be rolled back in the following order:
                  16902043 16619892 16056266 14727310 14275605 13923374 13696216 13343438
                  The following patch(es) will be rolled back: 16902043 16619892 16056266 14727310 14275605 13923374 13696216 13343438
                  Sub-patches of a composite series are being rolled back. The system will be returned to a state where all subpatches are rolled back.
                  The following bug fixes will be removed: 14523004,16902043,14198511,12865902,14695377,14191508,16710324,17333197,13072654,13834065,11868640,13605839,14189694,16372203,14007968,13686047,13092220,14003090,14095982,16024441,17333200,12755231,9397635,13440516,13723052,17230530,12784406,15910002,17333202,16362358,13040943,12748538,13843646,12747437,17082364,14128555,14755945,14393728,14762511,17333198,14751895,14188650,13945708,13591624,12899768,12744759,13725395,13642044,16710363,12821418,17333203,12621588,13972394,14791477,16344758,13483354,12796518,12312133,13060271,14351566,16212405,17333199,12815057,17332800,9547706,16794239,14053457,16794240,13790109,12772404,13791364,9095696,16279211,13814739,12395918,12912137,16619892,14512189,16794238,13063120,13907462,16742095,15841373,12731940,16382448,12925089,14571027,16794244,16794241,13855490,16794242,14467061,16703112,15869211,14398795,13489024,13493847,13561750,16694777,12755116,16794243,12940620,14127231,6690853,13015379,7509451,13579992,16306019,16279401,13724193,16014985,15905421,14668670,14301592,13848402,16530565,13857111,13923995,13427062,12974860,11071989,14207317,16344871,16231699,14841558,14176879,14273397,13913630,16056266,13496884,13914613,16382353,16299830,14589750,16314469,14841812,13632809,11715084,16314466,13812031,10242202,13910420,14207163,14644185,13680405,14110275,13584130,16175381,16314467,14220725,14472647,13860201,13561951,16314468,8547978,16314470,14088346,16368108,13582702,9706792,13911821,13786142,13616375,13958038,16294378,12983611,13596521,14459552,14226599,13810393,13098318,15862019,10263668,14040433,13448206,13645875,15862023,15862017,14841409,13719081,13685544,15862016,14023636,12791981,13026410,12857027,14263073,13732226,12873183,13011409,13534412,12345082,13038684,12959852,9659614,13787482,12964067,15853081,14262913,13399435,13559697,15862018,13593999,14546575,13524899,14258925,15862021,14546638,15862020,14546673,15862022,14263036,14727310,14205448,14035825,15862024,14052474,13454210,13936424,13544396,13645917,13807411,14469008,14138130,13099577,14076523,13699124,13612575,13566938,13358781,13773133,13705338,14480675,14409183,13059165,14613900,14664355,13430938,12585543,13624984,12794305,14548763,12594032,13377816,13397104,13080778,13649031,13257247,11708510,14480676,13250244,13476583,12583611,14275605,14480674,13804294,13464002,13484963,13550185,13385346,12693626,13737746,12971775,13384182,13718279,14390252,13572659,13467683,14062793,14062794,14062795,12401111,14062796,13502183,14062797,12797420,12913474,10133521,12678920,13340388,12976376,12617123,13923374,13457582,13103913,11840910,13527323,13035360,12879027,13588248,13419660,14038787,13001379,13370330,12658411,9761357,14063280,9858539,14063281,13981051,13366202,13903046,13657605,13338048,12535346,13916709,12646784,12880299,13326736,14062792,13036331,11877623,12845115,12829021,13554409,12923168,13742464,13332439,12780098,12656535,13070939,12960925,10350832,12612118,13696216,12919564,13632717,12780983,13742433,13742434,13742435,13742436,13742437,13742438,12588744,12748240,12894807,12764337,12582664,12662040,12849688,13354082,13420224,11063191,13772618,13503598,12998795,13466801,13492735,12834027,12620823,13035804,13362079,12718090,13528551,13041324,13343438,12917230,12847466,9703627,12797765,12950644,12905058,13499128,12861463,9873405,12938841
                  Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
                  (Oracle Home = '/oracle/app/oracle/product/11.2.0/dbhome_1')
                  Is the local system ready for patching? [y|n]
                  y
                  User Responded with: Y
                  Rolling back patch 16902043...
                  RollbackSession rolling back interim patch '16902043' from OH '/oracle/app/oracle/product/11.2.0/dbhome_1'
                  Patching component oracle.ldap.rsf, 11.2.0.3.0...
                  Deleting "ssl_modifycountermeasurescbcchosenplaintextattack.o" from archive "/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.a"
                  Deleting "ssl_setcountermeasurescbcchosenplaintextattack.o" from archive "/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.a"
                  Patching component oracle.ldap.rsf.ic, 11.2.0.3.0...
                  Patching component oracle.owb.rsf, 11.2.0.3.0...
                  Patching component oracle.rdbms, 11.2.0.3.0...
                  Patching component oracle.rdbms.rsf, 11.2.0.3.0...
                  Patching component oracle.sysman.console.db, 11.2.0.3.0...
                  Updating jar file "/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/jlib/emDB.jar" with "/u01/app/oracle/product/11.2.0/db_1/.patch_storage/16902043_Sep_24_2013_23_20_58/files//sysman/jlib/emDB.jar/oracle/sysman/db/adm/DatabaseObjectsSearchController.class"
                  Updating jar file "/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/jlib/emDB.jar" with "/u01/app/oracle/product/11.2.0/db_1/.patch_storage/16902043_Sep_24_2013_23_20_58/files//sysman/jlib/emDB.jar/oracle/sysman/db/adm/inst/ResponseController.class"
                  Updating jar file "/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/jlib/emDB.jar" with "/u01/app/oracle/product/11.2.0/db_1/.patch_storage/16902043_Sep_24_2013_23_20_58/files//sysman/jlib/emDB.jar/oracle/sysman/emo/adm/storage/tablespace/TSDatafiles.class"
                  Updating jar file "/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/jlib/emDB.jar" with "/u01/app/oracle/product/11.2.0/db_1/.patch_storage/16902043_Sep_24_2013_23_20_58/files//sysman/jlib/emDB.jar/oracle/sysman/emo/adm/storage/tablespace/TablespaceSQLList.class"
                  RollbackSession removing interim patch '16902043' from inventory
                  Rolling back patch 16619892...
                  RollbackSession rolling back interim patch '16619892' from OH '/oracle/app/oracle/product/11.2.0/dbhome_1'
                  Patching component oracle.marvel, 11.2.0.3.0...
                  Patching component oracle.precomp.common, 11.2.0.3.0...
                  Patching component oracle.rdbms, 11.2.0.3.0...
                  Deleting "kstst.o" from archive "/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libserver11.a"
                  Deleting "kststqad.o" from archive "/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libserver11.a"
                  Patching component oracle.rdbms.rman, 11.2.0.3.0...
                  Patching component oracle.rdbms.rsf, 11.2.0.3.0...
                  Patching component oracle.sysman.agent, 10.2.0.4.3...
                  Patching component oracle.sysman.console.db, 11.2.0.3.0...
                  Updating jar file "/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/jlib/emDB.jar" with "/u01/app/oracle/product/11.2.0/db_1/.patch_storage/16619892_Jun_23_2013_09_03_20/files//sysman/jlib/emDB.jar/oracle/sysman/emo/adm/showdep/DependQuery.class"
                  Updating jar file "/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/jlib/emDB.jar" with "/u01/app/oracle/product/11.2.0/db_1/.patch_storage/16619892_Jun_23_2013_09_03_20/files//sysman/jlib/emDB.jar/oracle/sysman/emo/adm/showdep/TableDependQuery.class"
                  Patching component oracle.sysman.repository.core, 10.2.0.4.4...
                  Patching component oracle.xdk, 11.2.0.3.0...
                  Patching component oracle.xdk.parser.java, 11.2.0.3.0...
                  Patching component oracle.xdk.rsf, 11.2.0.3.0...
                  RollbackSession removing interim patch '16619892' from inventory
                  Rolling back patch 16056266...
                  RollbackSession rolling back interim patch '16056266' from OH '/oracle/app/oracle/product/11.2.0/dbhome_1'
                  5、打开登录数据库,执行相关的包。
                  [oracle@localhost admin]$ cd oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/
                  [oracle@localhost admin]$ ls -l catbundle*
                  -rw-r----- 1 oracle oinstall 1498 Mar 2 2014 catbundle_PSU_MISDB_APPLY.sql
                  -rw-r----- 1 oracle oinstall 1507 Mar 2 2014 catbundle_PSU_MISDB_ROLLBACK.sql
                  -rw-r--r-- 1 oracle oinstall 29922 Aug 8 2011 catbundle.sql
                  [oracle@localhost admin]$ sqlplus as sysdba
                  SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 23 16:35:44 2015
                  Copyright (c) 1982, 2011, Oracle. All rights reserved.
                  Connected to:
                  Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
                  With the Partitioning, Oracle Label Security, OLAP, Data Mining,
                  Oracle Database Vault and Real Application Testing options
                  SQL> @catbundle_PSU_MISDB_ROLLBACK.sql
                  复制

                  复制
                  复制


                   

                  5. 创建数据库(该部分应注意数据库与数据库实例的区别,这里容易混淆)

                  注:1、数据库(database):操作系统文件或磁盘(Disk)的集合。当使用Oracle的自动存储管理(ASM)或裸设备分区时,数据库可能不是操作系统中单独的文件,但定义仍然不变。在12C中提供了三种数据库:单租户数据库(包含全套的数据文件、控制文件、重做日志文件、参数文件等 );容器数据库或根数据库(完全自包含,不依赖于其他对象就可以被实例加载和打开);可插拔式数据库(不是完全自包含的,必须将其插在某个容器数据库(或根数据库)才可以对其进行打开从而读写)。

                         2、数据库实例:一组Oracle后台进程\线程以及一个共享内存区域,这些内存由同一台电脑上的进程\线程所共享 。需要注意的是就算没有磁盘存储,数据库实例也能存在。

                         3、数据库和实例有时可以互相转换,但两者的概念并非一致。

                  5.1. dbca模式创建数据库(DBCA工具是图形化工具)

                   

                  1 在选择数据库操作页,选择Create a database,点击Next;


                  2、输入一个数据库名称,点击Next;

                  3、企业管理器,点击Next;

                  4、所有账号使用同一口令(123456),并点击Next;


                  5 、选择存储位置,并点击Next;

                  6、勾选Fast recovery area,勾选自动归档,点击Next;

                  7、模板数据库,点击next

                  8 单机的就勾选custom,点击Next;

                  9 数据库存储,Next

                  10、点击Finish

                  11、定制数据库,点击OK

                  12、创建中

                  13、点击退出,安装完毕.


                   

                  复制
                    SQL> startup 
                    ORACLE instance started.


                    Total System Global Area 584568832 bytes
                    Fixed Size 2255432 bytes
                    Variable Size 226493880 bytes
                    Database Buffers 352321536 bytes
                    Redo Buffers    3497984 bytes
                    复制
                    注意:

                    oracle实例启动的参数文件选择顺序

                    为spfile$ORACLE_SID.ora -> spfile.ora -> init$ORACLE_SID.ora。

                    复制




                    5.2. 手工模式创建数据库(更有助于理解ORACLR知识)

                     1、基本的步骤

                    (1)创建必要的相关目录

                    (2)创建初始化参数文件

                    (3)设置环境变量Oracle_sid

                    (4)创建实例

                    (5)创建口令文件

                    (6)启动数据库到nomount(实例)状态

                    (7)执行建库脚本

                    (8)执行catalog脚本创建数据字典

                    (9)执行catproc创建package包

                    (10)执行pupbld

                    (11)由初始化参数文件创建spfile文件

                    (12)执行scott脚本创建scott模式

                    创建的语句如下: 

                    复制
                      CREATE DATABASE LIQI
                      USER SYS IDENTIFIED BY ww1124457
                      USER SYSTEM IDENTIFIED BY ww1124457
                      LOGFILE GROUP 1 ('/home/oracle/app/oradata/LIQI/redo01a.log','/home/oracle/app/oradata/LIQI/redo01b.log') SIZE 100M BLOCKSIZE 512,
                      GROUP 2 ('/home/oracle/app/oradata/LIQI/redo02a.log','/home/oracle/app/oradata/LIQI/redo02b.log') SIZE 100M BLOCKSIZE 512,
                      GROUP 3 ('/home/oracle/app/oradata/LIQI/redo03a.log','/home/oracle/app/oradata/LIQI/redo03b.log') SIZE 100M BLOCKSIZE 512
                      MAXLOGFILES 50
                      MAXLOGMEMBERS 5
                      MAXLOGHISTORY 1
                      MAXDATAFILES 100
                      CHARACTER SET AL32UTF8
                      NATIONAL CHARACTER SET AL16UTF16
                      EXTENT MANAGEMENT LOCAL
                      DATAFILE '/home/oracle/app/oradata/LIQI/system01.dbf' SIZE 325M REUSE
                      SYSAUX DATAFILE '/home/oracle/app/oradata/LIQI/sysaux01.dbf' SIZE 325M REUSE
                      DEFAULT TABLESPACE users
                      DATAFILE '/home/oracle/app/oradata/LIQI/users01.dbf'
                      SIZE 100M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
                      DEFAULT TEMPORARY TABLESPACE tempts1
                      TEMPFILE '/home/oracle/app/oradata/LIQI/temp01.dbf'
                      SIZE 20M REUSE
                      UNDO TABLESPACE undotbs1
                      DATAFILE '/home/oracle/app/oradata/LIQI/undotbs01.dbf'
                      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
                      复制

                      复制


                      6. 配置监听

                      6.1. 监听的作用

                      1、监听客户端请求。监听器运行在数据库服务器之上,与 Oracle 实例(可为多个)相关关联,是一个专门的进程 process,在 Windows 的服务项目或者 Linux 的运行进程列表中,都会看到对应的运行进程。Windows 上名为 TNSLSNR,Linux/Unix 平台上是 lsnrctl。监听器守候在服务器制定端口(默认为:1521),监听客户端的请求。2、为客户端请求分配 Server Process。监听器只负责接听请求,之后将请求转接给 Oracle Server Process。在 Oracle 的服务模式下,客户端进程是不允许直接操作数据库实例和数据,而是通过一个服务进程 Server Process(也称为影子进程)作为代理。监听器接受到请求之后,就向操作系统(或者 Dispatcher 组件)要求 fork(或分配)一个 Server Process 与客户端相连。3、注册实例服务。本质上讲,Listener 是建立实例和客户端进程之间联系的桥梁。Listener 与实例之间的联系,就是通过注册的过程来实现的。注册的过程就是实例告诉监听器,它的数据库数据库实例名称 instance_name 和服务名 service_names。监听器注册上这样的信息,对客户端请求根据监听注册信息,找到正确的服务实例名称。目前 Oracle 版本中,提供动态注册和静态注册两种方式。4、错误转移 failover。failover 是 RAC 容错的一个重要方面功能,其功能是在数据库实例崩溃的时候,可以自动将请求转移到其他可用实例上的一种功能。可以提供很大程度上的可用性(Availability)功能。这个过程中,发现实例已经崩溃,并且将请求转移到其他实例上,就属于是 Listener 的功能。5、负载均衡衡量。在 RAC 架构中,Oracle 实现了负载均衡。当一个客户请求到来时,Oracle 会根据当前 RAC 集群环境中所有实例的负载情况,避开负载较高的实例,将请求转移到负载较低的实例进行处理。在早期 RAC 版本中,负载轻重的衡量是根据监听器当前维护连接数目来确定的,而不是实时查看多实例的负载。RAC 环境中的监听器之间进行沟通通信。使其他人能访问目标主机上的数据库,服务器配置监听的话可以在客户端对目标机进行访问,客户端配置监听的话其他客户端也可以来访问该客户端。

                      6.2. 创建监听的方法

                      1、首先了解一下监听器的工作过程


                      下面我们谈谈监听器的工作过程。一般,监听器作为一个独立 process 在操作系统中运行,守候在特定网络端口(默认为:1521),等待客户端请求的到来。注意:我们在客户端配置命名服务的时候,输入的1521也就是为了与监听器程序建立连接。

                      当一个请求“如期而至”,监听器对照已经注册的服务列表,查找对应的数据库实例信息,获取到指定实例的 ORACLE_HOME 路径。相当于表明可以进行连接。

                      客户端与实例的交互不是直接的,是通过 Server Process 作为代理中介来实现的。所有指令 SQL 都是客户端通过 Server Process 发送到实例中,这种体系结构是 Oracle 对于实例和数据库文件一种保护机制。

                      当监听器获得请求之后,要从 Oracle 实例中分配一个 Server Process 与之对应。这里不同的 Oracle 连接方式存在一些差别。

                      如果是专用连接模式,也就是一个客户端连接对应一个 Server Process。监听器就会向 OS 请求 fork(创造)出一个 Server Process,与监听器尝试交互。

                      如果是共享连接模式,也就是多个客户端共享一个 Server Process(注意:这里还不是连接池)。监听器就会向 Dispatcher 进程(管理共享模式连接的进程)请求一个 Server Process 与之交互。

                      Server Process 与监听器的连接,实际上就是相互信息的交换。Server Process 将自身在 OS 中的进程编号、连接地址信息发给监听器。监听器将客户端信息传递给 Server Process。

                      监听器获取到 Server Process 的信息之后,将其返回给客户端连接程序。客户端获取到信息之后,进行重连接,根据返回的信息与 Server Process 在制定的服务器端口进行联系。

                      直到这个时候,客户端程序才将连接用户名、密码等信息发给 Server Process,进行登录验证等操作。监听器的工作也就到此结束。




                      2、图形化界面配置监听

                      (1)配置监听之前的文件 

                      复制
                        [oracle@localhost admin]$ ls
                        samples shrept.lst
                        [oracle@localhost admin]$ ll
                        total 8
                        drwxrwxr-x. 2 oracle oinstall 4096 Jan 14 18:33 samples
                        -rwxrwxr-x. 1 oracle oinstall 381 Dec 17 2012 shrept.lst
                        [oracle@localhost admin]$ pwd
                        /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin
                        复制

                        复制

                        (2)用netmgr配置监听


                        (3)配置完成之后查看配置文件 

                        复制
                          [root@localhost admin]# ll
                          total 12
                          -rw-r--r--. 1 oracle oinstall 300 Jan 15 18:11 listener.ora
                          drwxrwxr-x. 2 oracle oinstall 4096 Jan 14 18:33 samples
                          -rwxrwxr-x. 1 oracle oinstall 381 Dec 17 2012 shrept.lst
                          复制
                          复制
                          复制
                          (4)创建TNS

                          (5)配置完成之后又多了一个文件
                           
                          复制
                            [root@localhost admin]# ll
                            total 16
                            -rw-r--r--. 1 oracle oinstall 300 Jan 15 18:11 listener.ora
                            drwxrwxr-x. 2 oracle oinstall 4096 Jan 14 18:33 samples
                            -rwxrwxr-x. 1 oracle oinstall 381 Dec 17 2012 shrept.lst
                            -rw-r--r--. 1 oracle oinstall 371 Jan 15 18:23 tnsnames.ora
                            复制

                            复制
                            创建好数据库后查看监听服务的状态 
                            复制
                              LSNRCTL> status
                              Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.213.120)(PORT=1521)))
                              STATUS of the LISTENER
                              ------------------------
                              Alias LISTENER
                              Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
                              Start Date 17-JAN-2021 22:33:30
                              Uptime 0 days 1 hr. 9 min. 23 sec
                              Trace Level off
                              Security ON: Local OS Authentication
                              SNMP OFF
                              Listener Parameter File /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
                              Listener Log File /oracle/app/oracle/diag/tnslsnr/wyj/listener/alert/log.xml
                              Listening Endpoints Summary...
                              (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.213.120)(PORT=1521)))
                              Services Summary...
                              Service "orcl" has 1 instance(s).
                              Instance "powerdes", status READY, has 1 handler(s) for this service...
                              Service "orclXDB" has 1 instance(s).
                              Instance "powerdes", status READY, has 1 handler(s) for this service...
                              The command completed successfully
                              复制
                              复制

                              6.3. 监听的几大要素

                               

                              1. 监听程序参数文件 $ORACLE_HOME/network/admin/listener.ora

                              监听器启动时依据参数文件的,当然没有参数文件监听器也是可以启动,那时监听器依据默认的行为操作。这个参数指定了监听器参数文件的位置,listener.ora。这个文件是一个文本类型参数文件,描述了监听器监听端口,主机名称和静态注册信息。Listener.ora是随着数据库实例的建立之后,建立监听器的过程中动态配置的。

                              2. 监听程序日志文件 $ORACLE_HOME/network/log/listener.log

                              监听器日志,是一个记录和描述监听器工作和错误的信息库。通过仔细研究日志内容,可以帮助我们发现当前的监听器的问题、解决连接故障和深入理解监听器工作原理。

                              上文中已经说明,监听器有注册功能,通过 status 命令(services 命令同样效果)。可以查看到当前有什么服务被注册上,用来检查连接服务失败,是常用的工具。

                              3. 开启/关闭监听器:

                              监听器的行为受到参数文件的控制,我们有时候需要调整监听器的参数。调整监听参数的方法,可以通过 Oracle 提供的 GUI 界面完成,还可以通过手工修改 listener.ora 来完成。

                              因为参数文件 listener.ora 是一个文本文件。Oracle 对于文本类型的参数文件,大多数情况下是不支持热加载的。pfile 和 listener.ora 都是如此。

                              使用界面 GUI,就是使用 Net Configuration Assistant 来配置。配置完成后,配置程序会自动重新启动监听器程序,来加载修改的参数文件。如果采用手工修改 listener.ora,就必须要手工的进行监听程序关闭和启动。 

                              复制
                                LSNRCTL> start
                                Starting /oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...


                                TNSLSNR for Linux: Version 11.2.0.4.0 - Production
                                System parameter file is /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
                                Log messages written to /oracle/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
                                Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.213.120)(PORT=1521)))


                                Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.213.120)(PORT=1521)))
                                STATUS of the LISTENER
                                ------------------------
                                Alias LISTENER
                                Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
                                Start Date 15-JAN-2021 22:11:48
                                Uptime 0 days 0 hr. 0 min. 2 sec
                                Trace Level off
                                Security ON: Local OS Authentication
                                SNMP OFF
                                Listener Parameter File /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
                                Listener Log File /oracle/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
                                Listening Endpoints Summary...
                                (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.213.120)(PORT=1521)))
                                The listener supports no services
                                The command completed successfully
                                LSNRCTL> status
                                Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.213.120)(PORT=1521)))
                                STATUS of the LISTENER
                                ------------------------
                                Alias LISTENER
                                Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
                                Start Date 15-JAN-2021 22:11:48
                                Uptime 0 days 0 hr. 0 min. 8 sec
                                Trace Level off
                                Security ON: Local OS Authentication
                                SNMP OFF
                                Listener Parameter File /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
                                Listener Log File /oracle/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
                                Listening Endpoints Summary...
                                (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.213.120)(PORT=1521)))
                                The listener supports no services
                                The command completed successfully
                                LSNRCTL> stop
                                Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.213.120)(PORT=1521)))
                                The command completed successfully
                                复制

                                复制

                                6.4. 动态监听与静态监听的区别

                                 

                                动态注册:客户端(sys用户)只能在远程数据库启动的情况下连接上,远程数据库关闭时客户端连接不上远程数据库。

                                静态注册:无论远程数据库处于开启还是关闭状态,客户端(sys用户)都可连接上。

                                换一句换说静态注册可以在客户端控制服务器端数据库的启停,而动态注册则不可以。(动态注册的监听在实例关闭时会被注销)

                                数据库关闭的状态下,只有sys用户可连入数据库,其他用户不可连入。


                                6.5. 如何清理监听日志文件

                                 

                                1、停止监听服务进程(tnslsnr)记录日志。 

                                复制
                                  [oracle@wyj ~]$ lsnrctl set log_status off


                                  LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 18-JAN-2021 00:02:18


                                  Copyright (c) 1991, 2013, Oracle. All rights reserved.


                                  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.213.120)(PORT=1521)))
                                  LISTENER parameter "log_status" set to OFF
                                  The command completed successfully
                                  复制

                                  2、将监听日志文件(listener.log)复制一份,以listener.log.yyyymmdd格式命名

                                  复制
                                    [oracle@wyj trace]$ ls
                                    listener.log
                                    [oracle@wyj trace]$ pwd
                                    /oracle/app/oracle/diag/tnslsnr/wyj/listener/trace
                                    [oracle@wyj trace]$ cp listener.log listener.log.20210107
                                    [oracle@wyj trace]$ ls
                                    listener.log listener.log.20210107
                                    复制

                                    3、将监听日志文件(listener.log)清空。 

                                    复制
                                      [oracle@wyj trace]$ cat /dev/null > listener.log
                                      [oracle@wyj trace]$ ll listener.log
                                      -rwxrwxr-x. 1 oracle oinstall 0 Jan 18 00:26 listener.log
                                      复制

                                      复制

                                      4、开启监听服务进程(tnslsnr)记录日志

                                      复制
                                        [oracle@wyj trace]$ lsnrctl set log_status on


                                        LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 18-JAN-2021 00:28:35


                                        Copyright (c) 1991, 2013, Oracle. All rights reserved.


                                        Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.213.120)(PORT=1521)))
                                        LISTENER parameter "log_status" set to ON
                                        The command completed successfully
                                        复制
                                        复制

                                        6.6. listener.ora\tnsnames.ora\sqlnet.ora文件的作用



                                        (1)listener.oralistener.ora(服务器端) --listener监听器进程的配置文件  关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
                                          
                                          Listener.ora文件的例子

                                          #listener.ora
                                          Network
                                          复制

                                          上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个instance(SID)提供服务。

                                          (2)tnsnames.ora(客户及服务器端) 这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似
                                          NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。例子中有两个,ORCL 对应的本机,SALES对应的另外一个IP地址,里边还定义了使用主用服务器还是共享服务器模式进行连接,一句一句写如下:
                                           

                                          复制
                                            #你所要连接的时候输入得TNSNAME
                                              ORCL =
                                              (DESCRIPTION =
                                              (ADDRESS_LIST =
                                              #下面是这个TNSNAME对应的主机,端口,协议
                                              (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
                                              )
                                              (CONNECT_DATA =
                                              #使用专用服务器模式去连接需要跟服务器的模式匹配,如果没有就根据服务器的模式
                                              #自动调节
                                              (SERVER = DEDICATED)
                                              #对应service_name,SQLPLUS>show parameter service_name;
                                              #进行查看
                                              (SERVICE_NAME = orcl)
                                              )
                                              )
                                              #下面这个类似
                                              SALES =
                                              (DESCRIPTION =
                                              (ADDRESS_LIST =
                                              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))
                                              )
                                              (CONNECT_DATA =
                                              (SERVER = DEDICATED)
                                              (SERVICE_NAME = sales)
                                              )
                                              )
                                            复制

                                            复制

                                            (3)sqlnet.ora(客户及服务器端):作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串例如我们客户端输入 

                                              sqlplus sys/oracle@orcl
                                              复制

                                              复制
                                               假如我的sqlnet.ora是下面这个样子
                                                
                                                那么,客户端就会首先在tnsnames.ora文件中找orcl的记录,如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例。当然我这里orcl并不是一个主机名。
                                              如果是这个样子:
                                               
                                                NAMES.DIRECTORY_PATH=(TNSNAMES)
                                                复制

                                                复制
                                                那么客户端就只会从tnsnames.ora查找orcl的记录.括号中还有其他选项,如LDAP等并不常用。


                                                 

                                                6.7. 如何设置黑白名单

                                                一般单实例数据库启用白名单只需要在sqlnet.ora中添加以下内容就可: 

                                                复制
                                                  TCP.VALIDNODE_CHECKING=yes  (开启IP限制功能)


                                                  TCP.INVITED_NODES=(192.168.1.101,ip2,ip3,..,..本地IP..)--添加白名单,必须有本地IP,否则监听会起不来


                                                  TCP.EXCLUDED_NODES=(192.168.1.102) --添加黑名单
                                                  复制

                                                  复制


                                                   

                                                   

                                                  6.8. 如何开启关闭监听日志  

                                                  复制
                                                    [oracle@wyj ~]$ lsnrctl set log_status on   ##开启
                                                    [oracle@wyj ~]$ lsnrctl set log_status off ##关闭
                                                    复制
                                                     
                                                    复制

                                                    6.9. 常见的监听问题

                                                     

                                                    1、ORA:-12545:因目标主机和对象不存在,连接失败
                                                    错误代码ORA-12545表示网络连接串(即tnsnames.ora文件中的HOST处)中使用的机器名和IP地址不存在,重新修改和重新连接即可。
                                                    2、ORA-12651:TNS:没有监听器
                                                    该信息说明所要连接的服务器没有启动监听进程Listener(该进程为Oracle服务器上操作系统进程,监听进程没有启动时,服务器可以正常进行,但是客户端不能与服务器产生连接。这时可以在服务器使用操作系统命令lsnrctl正常起启动监听进程)
                                                    3. ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。   解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误



                                                     


                                                    7. 数据库相关配置调整 

                                                    1.1.1. 大页的作用

                                                    “除了标准的 4KB 大小的页面外,它们还能帮助管理内存中的巨大的页面。使用“大内存页”,最大可以定义 1GB 的页面大小。在系统启动期间,你能用“大内存页”为应用程序预留一部分内存。这部分内存,即被“大内存页”占用的这些存储器永远不会被交换出内存。它会一直保留其中,除非你修改了配置。这会极大地提高像 Oracle 数据库这样的需要海量内存的应用程序的性能。

                                                    1.1.2. 大页的设置方法

                                                     

                                                                           图7.1 查看大页使用情况

                                                    命令:cat /proc/meminfo |grep Huge 查看大页使用情况 都为0

                                                     

                                                    7.2 查看SGA情况

                                                             命令:SQL >show parameter sga_max 可用为1G

                                                                                                图 7.3 设置大页数量

                                                    命令:vi /etc/sysctl.conf在里面增加一行:vm.nr_hugepages=1300这里是1300个*2M=2600M,SGA最大1024M,大页的内存要大于SGA大小,才能被ORACLE使用,所以我设置1300个。.保存之后执行:sysctl -p

                                                     

                                                                                                    图 7.4 设置内存锁

                                                    此设置需要重新登陆或重启才能生效。  memlock数量要大于大页的数量--设置为-1,不限制

                                                    命令: 

                                                    复制
                                                      vi /etc/security/limits.conf加入
                                                      oracle soft memlock -1
                                                      oracle hard memlock -1
                                                      复制
                                                      复制

                                                      命令:ulimit -l 查看是否设置成功

                                                      1.1.3. 如何判断大页是否设置成功

                                                       

                                                                                          图 7.5 查看大页是否设置成功

                                                      命令: 

                                                        cat /proc/meminfo |grep Huge 
                                                        HugePages_Total: 40960
                                                        HugePages_Free: 1300
                                                        HugePages_Rsvd: 1300
                                                        HugePages_Surp: 0
                                                        Hugepagesize: 2048 kB
                                                        大页设置成功。
                                                        复制


                                                        1.1.4. 设置大页应注意的问题

                                                         

                                                        1、SGA_MAX_SIZE超过了大页(如果sga_max_size sga_target不一致时,要大于sga_max_size )

                                                        2、大页内存要大于SGA大小,才能被ORACLE使用

                                                         3、没有设置内存锁--/etc/security/limits.conf中memlock内存:是进程活动的舞台,ORACLE数据库在startup时会自动去查找是否设置有大页。如有,在大页中分配SGA。如没有,则正常使用默认数据块大小启动。

                                                         

                                                        7.2. 实例参数的修改

                                                        1、参数的概念:

                                                        设置用户进程、获得控制文件的位置以及用户登录的信息。在初始化参数文件中,显示的给出了参数值,而大多数的参数采用系统的默认值。


                                                        2、pfile和spfile文件

                                                        PFILE:其中PFILE文件是一个静态的正文 文件,可以使用文本编辑器编辑。

                                                        Oracle11g中默认使用SPFILE启动数据库,此时PFILE存在,但只是一个模板信息,是不可用的,必须创建一个用的SPFILE才可以使用PFILE启动数据库

                                                        SPFILE:SPFILE是动态的二进制文件, 只能通过Oracle的指令修改。

                                                        SPFILE文件,该文件是一个二进制文件,存储在数据库服务器上,要想操作或修改该文件只能在服务器上操作。二进制文件无法使用文本编辑器修改,但是可以使用alter system指令修改参数值



                                                         3、查看实例参数

                                                        复制
                                                          SQL> show parameter  ##查看系统所有参数
                                                          select value from V$paremeter where name=’db_name’; ##通过数据字典查看参数
                                                          复制

                                                          复制

                                                          7.3. 实例默认作业的调整

                                                           

                                                                                                     Oracle默认实例设置

                                                          命令:

                                                          复制
                                                            vi .bash_profile ##修改Oracle_SID=alpha180(alpha180是数据库的另一个实例)
                                                            复制


                                                             

                                                            8. 总结     

                                                                    万事开头难,经过一周多时间的学习,上面的文档已经将单机版的Oracle初步搭建起来了,我相信我们在今后的学习中共同努力一步一步的将Oracle体系结构弄清楚。


                                                            一、几种启动方式:

                                                              1、startup nomount

                                                              非安装启动,这种方式启动下可执行:重建控制文件、重建数据库

                                                              启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

                                                              2、startup mount dbname

                                                              安装启动,这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件

                                                              如:系统表空间或日志文件。

                                                              执行“nomount”,然后打开控制文件

                                                              3、startup open dbname

                                                              先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,

                                                              这种方式下可访问数据库中的数据。

                                                              4、startup,等于以下三个命令

                                                              startup nomount

                                                              alter database mount

                                                              alter database open

                                                              5、startup restrict

                                                              约束方式启动

                                                              这种方式能够启动数据库,但只允许具有一定特权的用户访问

                                                              非特权用户访问时,会出现以下提示:

                                                              ERROR:

                                                              ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用

                                                              6、startup force

                                                              强制启动方式

                                                              当不能关闭数据库时,可以用startup force来完成数据库的关闭

                                                              先关闭数据库,再执行正常启动数据库命令

                                                              7、startup pfile=参数文件名

                                                              带初始化参数文件的启动方式

                                                              先读取参数文件,再按参数文件中的设置启动数据库

                                                              例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora

                                                              8、startup EXCLUSIVE

                                                              二、几种关闭方式:

                                                              1、shutdown normal

                                                              正常方式关闭数据库。

                                                              2、shutdown immediate

                                                              立即方式关闭数据库。

                                                              在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,

                                                              而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),

                                                              当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。

                                                              3、shutdown abort

                                                              直接关闭数据库,正在访问数据库的会话会被突然终止,


                                                            文章转载自浅谈Oracle,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                            评论