数据库安装学习
目录
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)
(2)cat 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、调整内核参数及用户限制
(1)vim etc/sysctl.conf,编辑/etc/sysctl.conf文件,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行。
(2)编辑/etc/security/limits.conf文件,修改操作系统对oracle用户资源的限制。vim etc/security/limits.conf
(3)开启操作系统异步IO(AIO)
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)表示,如默认的:SYSAUX、SYSTEM、TEMP、UNDOTBS1、USERS等;表空间的组成单位是数据文件(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中点选English、Simplified Chinese、Traditional 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 auto与manual方式
(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
复制
复制
复制
复制
[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)
复制
复制
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
直接关闭数据库,正在访问数据库的会话会被突然终止,