Oracle 更新Opatch、打补丁

1.更新Opatch;
2.打补丁;
3.grid 打补丁;

1.更新Opatch(实验版本:oracle:11.2.0.3.0):
默认安装数据库后,在ORACLE_HOME 下会有个OPatch 文件夹,更新前先检查当前Opatch 版本:

   1:  [oracle@sywu2 OPatch]$ ./opatch lsinventory
   2:   Invoking OPatch 11.2.0.1.7
   3:   
   4:  Oracle 中间补丁程序安装程序版本 11.2.0.1.7
   5:  版权所有 (c) 2011, Oracle Corporation。保留所有权利。
   6:   
   7:   
   8:  Oracle Home       : /s01/app/oracle/product/11.2.0/dbhome_1
   9:  Central Inventory : /g01/oraInventory
  10:     from           : /etc/oraInst.loc
  11:  OPatch version    : 11.2.0.1.7
  12:  OUI version       : 11.2.0.3.0
  13:  Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-27_23-03-26下午.log

注:有些时候产品清单加载失败,会导致打补丁时出错

   1:  [sywu@sywu OPatch]$ ./opatch lsinventory
   2:  Invoking OPatch 11.1.0.6.6
   3:   
   4:  Oracle 中间补丁程序安装程序版本 11.1.0.6.6
   5:  版权所有 (c) 2009, Oracle Corporation。保留所有权利。
   6:   
   7:   
   8:  Oracle 主目录       : /u01/app/product/11.2.0/db_1
   9:  主产品清单: /g01/oraInventory
  10:     从           : /etc/oraInst.loc
  11:  OPatch 版本    : 11.1.0.6.6
  12:  OUI 版本       : 11.2.0.1.0
  13:  OUI 位置      : /u01/app/product/11.2.0/db_1/oui
  14:  日志文件位置 : /u01/app/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2014-06-27_21-51-13下午.log
  15:   
  16:  Patch history file: /u01/app/product/11.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
  17:   
  18:  List of Homes on this system:
  19:   
  20:    Home name= Ora11g_gridinfrahome1, Location= "/g01/11ggrid/11.2.0/grid"
  21:    Home name= OraDb11g_home1, Location= "/s01/app/oracle/product/11.2.0/dbhome_1"
  22:  
产品清单加载失败... OPatch cannot load inventory for the given Oracle Home.
  23:  Possible causes are:
  24:     Oracle Home dir. path does not exist in Central Inventory
  25:     Oracle Home is a symbolic link
  26:     Oracle Home inventory is corrupted
  27:  LsInventorySession 失败: OracleHomeInventory gets null oracleHomeInfo
  28:   
  29:  OPatch failed with error code 73

解决方法:
1)找到产品清单文件,默认安装成功后会在 /etc/oraInst.loc 和oracle 根目录 oraInventory 文件夹下,如果/etc/下没有就到ORACLE 安装根目录找到文件夹:oraInventory,里面有oraInst.loc;复制一个到 /etc下;
2)到$ORACLE_HOME/oui/bin/ 执行如下脚本加载清单:

   1:  ./runInstaller -silent -attachHome \
   2:   ORACLE_HOME=$ORACLE_HOME \
   3:   ORACLE_HOME_NAME="ORACLE_HOME"

3) 加载成功后再次到OPatch目录下执行 ./opatch lsinventory 确认产品清单加载是否成功;

有些时候你打过补丁,然后删除过$ORACLE_HOME/.patch_storage 下的文件,下次重新再打补丁是可能会报:"OracleHomeInventory 无法创建锁文件",怎么处理都不行,也并不是操作权限问题:

   1:  [grid@sywu2 shared]$ opatch lsinventory
   2:   
   3:  Oracle 中间补丁程序安装程序版本 11.2.0.3.3
   4:  版权所有 (c) 2012, Oracle Corporation。保留所有权利。
   5:   
   6:   
   7:  Oracle Home       : /g01/11ggrid/11.2.0/grid
   8:  Central Inventory : /g01/oraInventory
   9:     from           : /g01/11ggrid/11.2.0/grid/oraInst.loc
  10:  OPatch version    : 11.2.0.3.3
  11:  OUI version       : 11.2.0.3.0
  12:  Log file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/opatch2014-06-28_16-51-09下午_1.log
  13:   
  14:  
OracleHomeInventory 无法创建锁文件, 可能是由于 OPatch 会话失败。加载的产品清单可能无法正确显示 Oracle 主目录中的内容。
  15:  Lsinventory Output file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_16-51-09下午.txt

解决方法:
1)首先查看 $ORACLE_HOME/.patch_storage 目录下是否有patch_locked 文件:

   1:  [grid@sywu2 shared]$ ls -las $ORACLE_HOME/.patch_storage
   2:  总用量 32
   3:  4 drwxr-x---  4 grid oinstall 4096 6月  28 16:55 .
   4:  4 drwxr-xr-x 68 grid oinstall 4096 6月  28 16:55 ..
   5:  4 drwxr-xr-x  5 grid oinstall 4096 6月  28 11:18 15876003_Jan_11_2013_06_19_07
   6:  4 -rw-r--r--  1 grid oinstall 1949 6月  28 11:18 interim_inventory.txt
   7:  4 -rw-r--r--  1 grid oinstall   93 6月  28 11:18 LatestOPatchSession.properties
   8:  4 drwxr-xr-x  3 grid oinstall 4096 6月  28 11:17 NApply
   9:  4 -rw-r--r--  1 grid oinstall   56 6月  28 11:18 patch_locked
  10:  4 -rw-r--r--  1 grid oinstall   52 6月  28 11:18 record_inventory.txt

2)如果有,将patch_locked 文件命名为其它名或移走,然后再次尝试 opatch lsinventory:

   1:  [grid@sywu2 shared]$ mv /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked  /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked_bkp
   2:  [grid@sywu2 shared]$ opatch lsinventory


1.1 更新前先备份原来的Opatch:

   1: [oracle@sywu2 dbhome_1]$ tar -cvf Opatch_20140627.tar OPatch

1.2 解压新版Opatch 文件到$ORACLE_HOME 目录下:

   1:  [oracle@sywu2 dbhome_1]$ /tmp/unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
   2:  Archive:  p6880880_112000_Linux-x86-64.zip
   3:     creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/
   4:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.html  
   5:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.txt  
   6:     creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/
   7:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oplan.jar  
   8:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oracle.oplan.classpath.jar  
   9:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/automation.jar  
  10:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/OsysModel.jar  
  11:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/EMrepoDrivers.jar  
  12:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/Validation.jar  
  13:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/ValidationRules.jar  
  14:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/osysmodel-utils.jar  
  15:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/CRSProductDriver.jar  
  16:     creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/
  17:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/commons-cli-1.0.jar  
  18:     creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/
  19:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/activation.jar  
  20:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-api.jar  
  21:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-impl.jar  
  22:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jsr173_1.0_api.jar  
  23:    inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/oplan  
  24:  replace /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/docs/FAQ? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
  25:  .............

1.3 确认OPatch 更新是否成功:

   1:  [oracle@sywu2 OPatch]$ ./opatch version
   2:  OPatch Version: 11.2.0.3.3
   3:   
   4:  OPatch succeeded.

可能会有未知错误,如版本问题,操作前一定记得备份原来的OPatch;
 
2.打补丁:
打补丁前要关闭数据库实例、监听程序,补丁要与更新的OPatch对应:
2.1 解压补丁文件到$ORACLE_HOME 目录下:

   1:  [oracle@sywu2 OPatch]$ unzip /tmp/p14727310_112030_Linux-x86-64.zip -d $ORACLE_HOME 
   2:  [oracle@sywu2 dbhome_1]$ cd 14727310/
   3:  [oracle@sywu2 14727310]$ ls
   4:  13343438  13696216  13923374  14275605  14727310  patchmd.xml  README.html  README.txt

  README.html 文件上有介绍打补丁方法,打补丁前先查看一下;
开始打补丁:

   1:  [oracle@sywu2 14727310]$ $ORACLE_HOME/OPatch/opatch apply

2.2 将变更的 SQL Files 导入数据库:

   1:  [oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin
   2:  [oracle@sywu2 admin]$ sqlplus / as sysdba
   3:  SQL> @catbundle.sql psu apply

打补丁信息在 V$version 视图中是查询不到的,要通过 dba_registry_history 视图查询:

   1:  SQL>  select action_time,action,namespace,version,bundle_series,comments from dba_registry_history;
   2:   
   3:  ACTION_TIME                                                                 ACTION     NAMESPACE  VERSION
   4:  --------------------------------------------------------------------------- ---------- ---------- ------------------------------
   5:  BUNDLE_SERIES                  COMMENTS
   6:  ------------------------------ --------------------
   7:  02-MAY-14 11.12.11.444913 PM                                                APPLY      SERVER     11.2.0.3
   8:  PSU                            Patchset 11.2.0.2.0
   9:   
  10:  27-JUN-14 11.42.54.320914 PM                                                APPLY      SERVER     11.2.0.3

查询具体的Opatch 版本信息和补丁信息

   1:  [oracle@sywu OPatch]$ cd $ORACLE_HOME/OPatch
   2:  [oracle@sywu OPatch]$ ./opatch lsinventory  
   3:   
   4:  Oracle 中间补丁程序安装程序版本 11.2.0.3.3
   5:  版权所有 (c) 2012, Oracle Corporation。保留所有权利。
   6:   
   7:   
   8:  Oracle Home       : /s01/app/oracle/product/11.2.0/dbhome_1
   9:  Central Inventory : /g01/oraInventory
  10:     from           : /s01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
  11:  OPatch version    : 11.2.0.3.3
  12:  OUI version       : 11.2.0.3.0
  13:  Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-28_00-03-04上午_1.log
  14:   
  15:  Lsinventory Output file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_00-03-04上午.txt
  16:   
  17:  --------------------------------------------------------------------------------
  18:  已安装的顶级产品 (1):
  19:   
  20:  Oracle Database 11g                                                  11.2.0.3.0
  21:  此 Oracle 主目录中已安装 1 个产品。
  22:   
  23:   
  24:  中间补丁程序 (1) :
  25:   
  26:  Patch  14727310     : applied on Fri Jun 27 22:35:15 CST 2014
  27:  Unique Patch ID:  15663328
  28:  Patch description:  "Database Patch Set Update : 11.2.0.3.5 (14727310)"
  29:     Created on 27 Dec 2012, 00:06:30 hrs PST8PDT
  30:  Sub-patch  14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)"
  31:  Sub-patch  13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)"
  32:  Sub-patch  13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)"
  33:  Sub-patch  13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)"
  34:     Bugs fixed:
  35:       13566938, 13593999, 10350832, 14138130, 12919564, 13624984, 13588248
  36:       13080778, 13804294, 14258925, 12873183, 13645875, 12880299, 14664355
  37:       14409183, 12998795, 14469008, 13719081, 13492735, 12857027, 14263036
  38:       14263073, 13742433, 13732226, 12905058, 13742434, 12849688, 12950644
  39:       13742435, 13464002, 12879027, 13534412, 14613900, 12585543, 12535346
  40:       12588744, 11877623, 12847466, 13649031, 13981051, 12582664, 12797765
  41:       14262913, 12923168, 13612575, 13384182, 13466801, 13484963, 11063191
  42:       13772618, 13070939, 12797420, 13041324, 12976376, 11708510, 13742437
  43:       13026410, 13737746, 13742438, 13326736, 13001379, 13099577, 14275605
  44:       13742436, 9873405, 9858539, 14040433, 12662040, 9703627, 12617123
  45:       12845115, 12764337, 13354082, 13397104, 12964067, 13550185, 12780983
  46:       12583611, 14546575, 13476583, 15862016, 11840910, 13903046, 15862017
  47:       13572659, 13718279, 13657605, 13448206, 13419660, 14480676, 13632717
  48:       14063281, 13430938, 13467683, 13420224, 14548763, 12646784, 14035825
  49:       12861463, 12834027, 15862021, 13377816, 13036331, 14727310, 13685544
  50:       13499128, 15862018, 12829021, 15862019, 12794305, 14546673, 12791981
  51:       13503598, 13787482, 10133521, 12718090, 13399435, 14023636, 12401111
  52:       13257247, 13362079, 12917230, 13923374, 14480675, 13524899, 13559697
  53:       14480674, 13916709, 14076523, 13773133, 13340388, 13366202, 13528551
  54:       12894807, 13343438, 13454210, 12748240, 14205448, 13385346, 15853081
  55:       12971775, 13035804, 13544396, 13035360, 14062795, 12693626, 13332439
  56:       14038787, 14062796, 12913474, 14841409, 14390252, 13370330, 14062797
  57:       13059165, 14062794, 12959852, 13358781, 12345082, 12960925, 9659614
  58:       13699124, 14546638, 13936424, 13338048, 12938841, 12658411, 12620823
  59:       12656535, 14062793, 12678920, 13038684, 14062792, 13807411, 12594032
  60:       13250244, 15862022, 9761357, 12612118, 13742464, 14052474, 13457582
  61:       13527323, 15862020, 12780098, 13502183, 13705338, 13696216, 10263668
  62:       15862023, 13554409, 15862024, 13103913, 13645917, 14063280, 13011409

3.grid 打补丁:
打补丁前同样的先关掉实例、监听程序,停止相关服务释放资源:

   1:  [grid@sywu2 15876003]$ su -l root
   2:  密码:
   3:  [root@sywu2 install]# cd $GRID_HOME/crs/install
   4:  [root@sywu2 install]# ./rootcrs.pl -unlock

切换到grid 用户下解压补丁、打补丁(补丁文件:p14727347_112030_Linux-x86-64.zip,该补丁文件包含了db补丁和grid补丁):

   1:  [grid@sywu2 shared]$ unzip p14727347_112030_Linux-x86-64.zip -d /tmp/
   2:  [grid@sywu2 tmp]$ cd 15876003/
   3:  [grid@sywu2 15876003]$ ls
   4:  14727310  15876003  bundle.xml  README.html  README.txt
   5:  [grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/14727310/

然后根据相关提示操作;14打完再打15876003 grid 补丁:

   1:  [grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/15876003/

打完grid 补丁后切换到oracle 用户下打db补丁:

   1:  [grid@sywu2 ~]$ su -l oracle
   2:  [oracle@sywu2 ~]$  /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
   3:  /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh completed successfully.
   4:   
   5:  [oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/15876003/custom/server/15876003/
   6:   
   7:  [oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/14727310/
   8:   
   9:   
  10:  [oracle@sywu2 ~]$ /tmp/15876003/15876003/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

打完db补丁后切换到root用户,完成后续操作和启动相关服务:

   1:  [oracle@sywu2 ~]$ su -l root
   2:  [root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/rdbms/install/rootadd_rdbms.sh 
   3:  [root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/crs/install/rootcrs.pl -patch

检查相关服务是否启动;

   1:  [root@sywu2 ~]#  crsctl check crs
   2:  [root@sywu2 ~]#   crsctl stat res -t

这样补丁打完:

   1:  [grid@sywu grid]$ opatch lspatches
   2:  15876003;Grid Infrastructure Patch Set Update : 11.2.0.3.5 (14727347)
   3:  14727310;Database Patch Set Update : 11.2.0.3.5 (14727310)

最后启动数据库将变更的 SQL Files 导入数据库:

   1:  [oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin
   2:  [oracle@sywu2 admin]$ sqlplus / as sysdba
   3:  SQL> @catbundle.sql psu apply

 

转载于:https://www.cnblogs.com/lanston/p/3812883.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery学习--选择器的使用

jQuery基本选择器1. jQuery的ready事件 -> js的onload2. 选择器的使用1. jQuery的ready事件 -> js的onload 大多是第一种&#xff0c;匿名函数写法 <script type"text/javascript">// 匿名函数写法 ready 开始函数$(function() {// -> js的窗体加载事…

jQuery复选框多选问题

<html><head><title>work.html</title><script type"text/javascript" src"js/jquery-3.2.1.js"> </script><script type"text/javascript">$(function() { // 全选 / 全不选$($("#CheckedAll&…

1014 福尔摩斯的约会 (20分)

输入样例&#xff1a; 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm 输出样例&#xff1a; THU 14:04 # -*- coding: utf-8 -*- import stringweek {A: MON,B: TUE,C: WED,D: THU,E: FRI,F: SAT,G: SUN}hour {0:00, 1:01, 2:02, 3:03, 4:04, 5:05, 6:0…

MSSQL如何在没有主键的表中删除重复数据

MSSQL如何在没有主键的表中删除重复数据 原文:MSSQL如何在没有主键的表中删除重复数据为了对重复数据进行实验&#xff0c;下面建一个设计不太好&#xff08;没有主键&#xff09;表并插入了一些重复数据&#xff1a; create database testdbuse testdb ; go create table Dups…

jQuery 属性,css,文档操作

dom对象与jQuery对象的区别 $(function() {// dom 与 jQuery对象间的转换var $txt $(":input");// jQuery -> js// 取下标第0位var txt $txt[0];txt $txt.get(0);console.log(txt.value);txt document.getElementById("in1");// js -> jQuery$tx…

1015 德才论 (25分)

输入样例&#xff1a; 14 60 80 10000001 64 90 10000002 90 60 10000011 85 80 10000003 85 80 10000004 80 85 10000005 82 77 10000006 83 76 10000007 90 78 10000008 75 79 10000009 59 90 10000010 88 45 10000012 80 100 10000013 90 99 10000014 66 60 输出样例&#…

shell之文本过滤(grep)

shell之文本过滤&#xff08;grep&#xff09; 分类&#xff1a; linux shell脚本学习2012-09-14 14:17 588人阅读 评论(0) 收藏 举报shell正则表达式扩展工具存储grep&#xff08;全局正则表达式版本&#xff09;允许对文本文件进行模式查找。如果找到匹配模式&#xff0c; gr…

1016 部分A+B (15分)

输入样例 1&#xff1a; 3862767 6 13530293 3 输出样例 1&#xff1a; 399 输入样例 2&#xff1a; 3862767 1 13530293 8 输出样例 2&#xff1a; 0 # -*- coding: utf-8 -*-if __name__ __main__:input_list input().split()a, d_a, b, d_b input_list[0], input_li…

张小二:做一个幸福的胖子

最近听完了单田芳的大唐惊雷。秦琼病重&#xff0c;单田芳在评书中分析&#xff1a; 1.多次负伤 2.心机重&#xff0c;看不开&#xff0c;平时的状态都是一副严肃的表情&#xff1b; 在看程咬金&#xff1a; 每天笑哈哈&#xff0c;有着肥胖的身躯&#xff0c;看似憨厚&#xf…

IDEA2020安装

下载1 https://souyunku.lanzous.com/b0aki3kna 下载2 https://pan.baidu.com/s/1YF6o2M4PA3_97kEP4qCqGQ 提取码&#xff1a;kg7f把jar包往idea里面一丢&#xff0c;就可正常使用。

马哥学习笔记二十七——IO复用

I/O动作模式  阻塞 非阻塞 I/O复用 信号驱动 异步 转载于:https://www.cnblogs.com/wangyongbin/p/3817353.html

1017 A除以B (20分)

输入样例&#xff1a; 123456789050987654321 7 输出样例&#xff1a; 17636684150141093474 3 # -*- coding: utf-8 -*- import redef big_division(a, b):q_list, r [], 0len_a len(a)for i in range(0, len_a):dividend 10 * r eval(a[i])q_list.append(dividend // …

Idea创建web项目,配置tomcat服务器

使用idea创建web项目 新下载的idea&#xff0c;需要启用插件&#xff0c;才可创建web项目 启用Java ee&#xff0c;servlet有web项目选项 创建项目 选好jdk&#xff0c;要配置好jdk环境变量https://blog.csdn.net/crossing2012/article/details/81292547 选路径 to…

CSS 最核心的几个概念

本文将讲述 CSS 中最核心的几个概念&#xff0c;包含&#xff1a;盒模型、position、float等。这些是 CSS 的基础&#xff0c;也是最经常使用的几个属性&#xff0c;它们之间看似独立却又相辅相成。为了掌握它们&#xff0c;有必要写出来探讨一下&#xff0c;如有错误欢迎指正。…

1018 锤子剪刀布 (20分)

输入样例&#xff1a; 10 C J J B C B B B B C C C C B J B B C J J 输出样例&#xff1a; 5 3 2 2 3 5 B B 本题有几个地方需要注意&#xff1a; 当甲乙没有赢&#xff0c;怎么输出&#xff0c;正确答案是都输出B&#xff0c;这个在题目中找不出线索&#xff0c;有点坑&am…

jQuery api学习笔记

jQuery事件 各种事件类似点击事件 <html><head> <title>index.jsp</title><script type"text/javascript" src"js/jquery-3.2.1.js"></script><script>function click() {alert("you click me!");}…

pow(x,n) leecode

https://oj.leetcode.com/problems/powx-n/ 提交地址 快速幂的使用&#xff0c;可以研究一下 1 public class Solution {2 public double pow(double x, int n) {3 4 if(n0) return 1.0;5 if(x1) return 1.0;6 if(x0)return 0;7 i…

1020 月饼 (25分)

输入样例&#xff1a; 3 20 18 15 10 75 72 45 输出样例&#xff1a; 94.50 解题心得&#xff1a; 本题因为要排序&#xff0c;优先考虑使用二维数组和sorted最常用的模式&#xff1b;python在建立二维数组时有一个坑&#xff0c;就是[[]] * n中出现浅拷贝问题&#xff0c;…