EBS

模块问题

AP

无法导入混合类型的发票

  1. 修改AP标准程序包的校验逻辑

    11i AP_IMPORT_INVOICES_PKG.v_check_invoice_type_amount

    R12 AP_IMPORT_VALIDATION_PKG.v_check_invoice_type_amount
    image-20200928173644341

  2. 先以STANDARD/CREDIT类型导入,再去UPDATE AP_INVOICES_ALL表

修改PACKAGE是比较常用的方法,风险是升级或者补丁可能覆盖修改的package

供应商新建无编号填写框

看下应付的设置,是自动编号还是人工

image-20200928173850217

cf_source_nameformula

发票导入报错:

REP-1401: 'cf_source_nameformula': Fatal PL/SQL error occurred.
ORA-01403: no data found

解决:

Please check if the Sources being passed in the Invoice Import interface tables are valid.

  1. Define the source :
    With Payables responsibility, navigate to Setup : Lookups -> Payables.
    In the Payables Lookups window, search for the SOURCE Type.
    Define your Lookup Code.
  2. Populate the table AP_INVOICES_INTERFACE column SOURCE with the lookup code you have defined in the Payables Lookups window.

Correct them and re-run the Invoice interface program.

AR

收款金额查询

FORM.ARXRWMAI -> BLOCK.RGW_FOLDER TRIGGER.POST_QUERY
-> PLL.ARXRWRCT rgw_receipts_blk.receipts('POST-QUERY');
-> PLL.ARXRWRCT rgw_receipts_blk_private2.post_query_logic(event);
-> PKG arp_process_rcts.post_query_logic

COMN IMPORT

POIXMLDocumentPart

  • 问题:通用导入解析excel中使用的POI,具体有哪些JAR包,我找到了POI 3.9中的这些
    image-20200929092730116
    但还是报错org.apache.poi.POIXMLDocumentPart这个没有找到

  • 解决:

    1. 通过maven看一下,试试https://mvnrepository.com/artifact/org.apache.poi/poi/3.9
      可以先确定一下3.9的这个版本是否有这个方法。
    2. 还有一种可能,服务器上有其他版本poi 的jar包。导致你代码里面调用的不是3.9的

FA

资产类型修改API

问题:

  • 请问fa资产类型修改应该调用哪个api,fa_adjustment_pub.do_adjustment和fa_asset_desc_pub.update_desc好像都不行,我需要修改asset_type做cip转资

解决:

FA_RECLASS_PUB.do_reclass (
															-- std parameters
                              p_api_version                => l_api_version,
                              p_init_msg_list              => l_msg_list,
                              p_commit                     => l_commit_flag,
                              p_validation_level           => l_validation_level,
                              p_calling_fn                 => l_calling_fn,
                              x_return_status              => l_return_status,
                              x_msg_count                  => l_msg_count,
                              x_msg_data                   => l_msg_data,
              								-- api parameters
                              px_trans_rec                 => l_trans_rec,
                              px_asset_hdr_rec             => l_asset_hdr_rec,
                              px_asset_cat_rec_new         => l_asset_cat_rec_new,
                              p_recl_opt_rec               => l_recl_opt_rec
                              );

分配行导入

image-20200929094220235

FND

启用关闭其他表单

image-20200929093738008
  • 法1:进入系统管理员职责,定位到职责定义界面,查出相关职责后,在其菜单排除项选择(浏览器:禁用多表单)(Navigator: Disable Multiform):
    image-20200929093807834

  • 法2:取消授权功能授权

    image-20220920091110391

浏览器选项

  • HTML application/vnd.ms-excel Microsoft Excel

值集累计组设置

image-20200929093942625

FnxXdfGen Invalid UTF8

Unable to apply XSLT transformation on the xml file

Exception occured : Invalid UTF8 encoding.
Generating xdf - xxx.xdf
Error Message is null

Xdfgen.pl Fail To Generate The Required XDF File When A Table Comment Created Via A 'COMMENT ON COLUMN' Statement Contains Non-English (eg. Japanese) Characters (Doc ID 2077589.1)

Bug no patch

GL

汇总账户

  • 新建父级科目后,需运行请求生成汇总账户:程序 - 逐级添加/删除汇总模板
    "程序 - 维护汇总模板"功能待研究

XLA账户逻辑包

​ 大概叫 XLA_(application_id)AAD(type)_(XXXX)_PKG.
​ 该包的生成账户组合的动态逻辑在XLA_CMP_ADR_PKG控制

HRMS

安全性

  • 维护组织列表后,需运行请求"维护安全性清单",将组织数据从 per_security_organizations 同步至 per_organization_lists,mo_global.init中,依据的表是per_organization_lists

INV

EAM-AREA

  • API: EAM_ASSET_AREAS_PUB
  • TBL: MTL_EAM_LOCATIONS
image-20200929094857299

Item Import

Performance

Use interface table instead of API ego.._pub

Master controlled attribute value conflict

Master controlled attribute value conflict in child organization for one of the following attributes:
Track In Installed Base(COMMS_NL_TRACKABLE_FLAG),
Level of IB Tracking(IB_ITEM_TRACKING_LEVEL),
Create Fixed Asset(ASSET_CREATION_CODE),
Enable Provisioning(COMMS_ACTIVATION_REQD_FLAG),
Orderable On Web(ORDERABLE_ON_WEB_FLAG),
Back Orderable(BACK_ORDERABLE_FLAG).

查看提示的字段是否有主组织控制属性,却在自组织创建/更新

OM

API

  • DOC 746787.1

PO

导入PO

DOC ID 1406003.1

供应商新建名称重复

问题:

  • 新建供应商报错:此供应商名称已经存在。 请重新输入

解决:

image-20200929095113954

SELECT supplier_numbering_method,
       supplier_num_type,
       next_auto_supplier_num,
       max(lpad(segment1, 30, '0')) padmax_sup_num
  FROM ap_product_setup, ap_suppliers
 GROUP BY supplier_numbering_method, supplier_num_type, next_auto_supplier_num;

PROJ

项目抽样API

  • gmd_samples_pub

WebAdi

无法下载

image-20200929095511637

upload document : null

问题:

  • error processing upload document : null

解决:

  • 配置文件 BNE: Enable OOXML Standard 设为"否"试试

Default Line Limit

​ Layout Update Page:

image-20210527105210170

Batch Compile

# 编译java
cd $JAVA_TOP
javac oracle/apps/dfs/webadi/utilities/sql/*.java
javac oracle/apps/dfs/webadi/integrator/upload/*.java
javac oracle/apps/dfs/webadi/integrator/validators/*.java
javac oracle/apps/dfs/webadi/integrator/component/*.java
# 删除webadi java
cd $JAVA_TOP/oracle/apps/dfs
find . -name '*.java' -exec rm -rf {} \;
# 复制到oa_html
cd $JAVA_TOP/oracle/apps/
cp -r dfs $OA_HTML/WEB-INF/classes/oracle/apps/

配置文件

FND

  1. 并发:提交每个请求后显示请求摘要(Concurrent: Show Requests Summary After Each Request Submission)

    设置为是,阻止弹出“是否提交另一项请求”的提示

  2. 字符集配置文件

    并发:客户机文件名字符集(Concurrent: Client Filename Characterset) (ZHS16CGB231280)

    ICX:客户机 IANA 编码(ICX_CLIENT_IANA_ENCODING) (Unicode (UTF-8))

    FND: NATIVE CLIENT ENCODING(FND_NATIVE_CLIENT_ENCODING)--客户机字符编码

  3. 用户日期格式首选项 - 配置文件

    ICX:日期显示样式 (ICX_DATE_FORMAT_MASK)

  4. 系统管理员职责下,查看他人输出结果:

    并发:报表访问层(CONC_REPORT_ACCESS_LEVEL)

    ADI:允许系统管理员查看所有输出(ADI_WHEN_SYSA··DMIN_OUTPUT_VIEW)

  5. 系统界面颜色更改

    Java 色彩设计(FND_COLOR_SCHEME)

  6. 登录口令%

  7. %代理%

  8. 浏览器:文本

    控制请求日志是否在浏览器中显示,若是,置为Browser,否则留空即可

  9. 导出 MIME 类型

    标准导出文件格式 application/vnd.ms-excel

  10. 人工口令重置已启用(MANUAL_PWD_RESET)
    在较新的12.2版本EBS中,启用ASADMIN时,无重置口令按钮,需设置此配置文件为 是

  11. 上载文件的大小限制

  12. 地点名称

GL

  1. GLDI:创建组标识

    标准日记账导入WEBADI中存在错误信息或有多人同时使用时,必须设置 控制序号

INV

  1. INV调试

  2. TP:INV Transaction processing mode

    • On-line processing:界面停止响应,直到做完事务到MMT表

    • Immediate concurrent processing:插入数据到接口表,并立即提交一个处理请求,界面可以继续操作

    • Background processing:插入数据到接口表,界面可以继续操作,需要用户手工提交处理请求

    • Form. level processing:有各种事务处理对应的Profile分别控制,比如”TP:WIP Material Transaction Form“等

MRP

  1. 计划管理器报红,又无明显报错

    配置文件:MRP:维护原始计划版本(MRP_ORIGINAL_SCHEDULE_VERSION) 设置为否(原来为空),重启计划管理器、MRP 管理器

  2. 请求"装入程序工作流程"报错

    ORA-26018 Column INVENTORY_LOT_NUMBER in table MRP.MRP_INVENTROY_LOTS# does not exist

    原因: sql*loader使用直接导入 direct=true

    措施: 更改配置文件 MRP:使用直接装入选项(MRP_DIRECT_LOAD),置为否或空

  3. CSD:默认物料 WIP 供应类型

    BOM组件创建时的默认供应类型

PO

  1. RCV:处理模式

    此选项指明在保存对接收事务处理所做的工作之后使用的处理模式:

    • 联机: 直接调用“接收事务处理程序”。
    • 立即: 将事务处理传送至接口表,并为自上一次保存所做的工作之后输入的事务处理组调用“接收事务处理处理程序”。
    • 批: 将事务处理传送至接口表(“接收事务处理处理程序”在下一次运行时将从接口表中挑选这些事务处理)

并发管理器

并发管理机制

https://blog.csdn.net/pan_tian/article/details/42967585

查看他人请求

个性化

作用 触发器 设置
查看所有请求 NEW-FORM PARAMETER.MODE=SYS
查看输出 NEW-RECORD JOBS.VIEW_REPORT ENABLE
XML诊断 NEW-BLOCK HELP.VIEW_XML ENABLE

启动失败

E-Business Suite Concurrent Manager (Internal Manager) will not start. The Administer Concurrent Manager form shows the Internal Concurrent Manager at Actual 1 and Target 0 processes and Pending requests even for SHUTDOWN.

#Here are Workaround steps until the bug is fixed:
# 1. Issue ps -efw|grep LIB , you should see one or two process similar to below
  oracle 26033 26028 0 01:26 ? 00:00:10 FNDLIBR 
  oracle 26320 1 0 01:26 ? 00:00:00 PALIBR

# 2. Kill them using kill -9
  kill -9 26320
  kill -9 26033

# 3. Start the concurrent manager:
# 3.1. Source E business suite Run Environment
  . /u01/install/APPS/EBSapps.env run

# 3.2. $ADMIN_SCRIPTS_HOME/adcmctl.sh start
	   (11i):$COMMON_TOP/admin/scripts/adcmctl.sh start apps/apps

:<<!
注:PS是LINUX下最常用的也是非常强大的进程查看命令
	-e 显示所有进程。
	-f 全格式。
	ps -e 列出程序时,显示每个程序所使用的环境变量。
	ps -f 用ASCII字符显示树状结构,表达程序间的相互关系
!

OPP

修改内存

-- 查看&修改OPP(Output Post Processor)并发管理器内存
select DEVELOPER_PARAMETERS
  from FND_CP_SERVICES
 where SERVICE_ID = (select MANAGER_TYPE 
                     	 from FND_CONCURRENT_QUEUES
											where CONCURRENT_QUEUE_NAME = 'FNDCPOPP');
-- J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx512m
-- 即JVM最大为512M
 
-- 修改JVM最大值到2048M:
update FND_CP_SERVICES
   set DEVELOPER_PARAMETERS ='J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx2048m'
 where SERVICE_ID = (select MANAGER_TYPE
                     	 from FND_CONCURRENT_QUEUES
											where CONCURRENT_QUEUE_NAME = 'FNDCPOPP');

ORA-00600: kqludp2

参考Doc ID 2327255.1(Reports are Failing with APPS.FND_CP_OPP_IPC ORA-00600)

  1. Shutdown the managers.

  2. Kill the FNDLIBR processes at the OS level.

  3. Run the Recovery Wizard from Concurrent Processing - Command-Line Utility OR Recovery Wizard (Doc ID 134007.1).

  4. Shutdown the remaining application services.

  5. Run the following SQL files logging into application server as user applmgr:

    sqlplus system/<system password>
    
    SQL> @ $FND_TOP/patch/115/sql/afopp001.sql
    Parameter1: SYSTEM
    Parameter2: <system password>
    
    SQL> @ $FND_TOP/patch/115/sql/afopp002.sql
    Parameter1: APPLSYS
    Parameter2: <applsys password>
    
  6. Start all the application services

不兼容

设置请求不兼容

范围:

  • 集:对请求集中,该请求及其带出的子请求都不兼容;

  • 程序:仅对该并发请求不兼容

类型:

  • 全局:对所有该请求或子集不兼容
  • 域:同一冲突域的请求不兼容
image-20200928143632296

冲突域取值顺序

  1. 请求参数

    image-20200928143839060
  2. 配置文件 并发:冲突域

    image-20200928143923643

    定义位置:

    image-20200928144126322

  3. “标准”域:所有请求的默认值

Web Service

SOAP/REST

image-20200928160044019

部署过程

#验证(生成ildt文件)
$IAS_ORACLE_HOME/perl/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin cux:patch/sql:CUX_PA_AGREE_MERGE_NEW_WS_PKG.pls:12.0.3=CUX_PA_AGREE_MERGE_NEW_WS_PKG.pls

#上传
FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct CUX_PA_AGREE_MERGE_NEW_WS_PKG_pls.ildt

ISG Rest配置

修改$INST_TOP/soa/isgagent.properties文件

Property 说明
.ISG_TEMP_DIRECTORY_LOCATION Service部署文件所在目录如:(文件中有默认目录,可以自行修改) TEST.ISG_TEMP_DIRECTORY_LOCATION=<ISG_TEMP>---echo $CUX_TOP/soa/ 需要获取到绝对路径
.ISG_GLOBAL_LOG=true .ISG_LOGGER=FILE 启用ISG的LOG日志,在REST没有SOA MONITOR支持下,这显得尤为重要;日志目录在ISG_TEMP_DIRECTORY_LOCATION属性路径下;(系统稳定可以不打印日志)

文件路径

  • WADL路径
    $NE_BASE/inst/[INST_NAME]/soa/PLSQL
  • 日志路径
    12.1 $FMW_HOME/SERVER/LOGS
    12.2 $EBS_DOMAIN_HOME/servers/oafm_server1/logs

删除WS

--- 删除function 和 parameters
SELECT *
  FROM fnd_form_functions t
 WHERE t.function_name LIKE '%CUX_FND_USER_NAME%';
SELECT *
  FROM fnd_parameters t
 WHERE t.function_id = 50552;
DELETE fnd_parameters t
 WHERE t.function_id IN
       (SELECT ff.function_id
          FROM fnd_form_functions ff
         WHERE ff.function_name LIKE '%CUX_FND_USER_NAME%');
DELETE fnd_form_functions t
 WHERE t.function_name LIKE '%CUX_FND_USER_NAME%';
--- 删除irep
SELECT t.class_id
      ,t.irep_name
      ,t.*
  FROM fnd_irep_classes t
 WHERE t.irep_name = 'CUX_FND_USER_NAME';
SELECT *
  FROM fnd_irep_classes_tl t
 WHERE t.class_id = 4703;
DELETE fnd_irep_classes_tl t
 WHERE t.class_id IN
       (SELECT fic.class_id
          FROM fnd_irep_classes fic
         WHERE fic.irep_name = 'CUX_FND_USER_NAME');
DELETE fnd_irep_classes t
 WHERE t.irep_name = 'CUX_FND_USER_NAME';

问题解决

双节点

其中一个节点报ACL等问题

image-20200928160803320

image-20200928160928573

could not be authenticated

2019-03-21 16:47:55,724 ERROR weaver.hdty.action.CallOracelService - 接口调用异常:[The security token could not be authenticated or authorized]

适用于R12.1

修改 $INST_TOP/ora/10.1.3/j2ee/ofam/config/system-janz-data.xml 中授权人(ASADMIN)的密码(标签),使用明文 "!密码", 重启ofam,再次尝试

HTTP 404

EBS开发好的WebService供外部调用时,报错404

  1. ASADMIN用户曾经失效,系统登录不了,先后台更新失效日期为空,再次调用依然报错

  2. 重启物理机,重启系统,ASADMIN用户登录报未知异常

  3. SYSADMIN用户登录,在用户管理指责下,填写ASADMIN用户失效日期(大于当前系统时间)并应用,ASADMIN用户得以登录

  4. 登录ASADMIN后,显示无可用职责,返回SYSADMIN用户,加上职责的失效日期(大于系统时间)后,可显示职责

  5. 查询该WebService,页顶显示警告 Service Provider Access is not available 且 WSDL链接不可点

  6. 点击重新发布,报错:

    oracle.apps.fnd.soa.util.SOAException: SystemError: null Error while sending message to server

    遍寻资料,找到ID 1572272.1, 说是参数 s_soaprovider_user 未设置为ASADMIN

    image-20200928161202853

  7. 切换系统管理员职责,打开功能:

    image-20200928161228362
  8. 找到auto config
    image-20200928161303849

  9. 点开后,编辑应用层参数:
    image-20200928161332005

  10. 选择system页签,全部展开,查找 s_soaprovider_user:
    image-20200928161404015
    image-20200928161425115

  11. 当时发现,这里就是ASADMIN,不管了,再次AutoConfig一次

    ​ cd $ADMIN_SCRIPTS_HOME

    ​ ./adautocfg.sh

    第一次运行时报错,查看日志发现是 apps 用户被锁,解锁后,重新配置一次,无错。

    重启oafm,再次进入系统发现,页顶无警告,重新发布也成功了,至此可以正常访问WebService

数字或者值错误

webservice推送,报文数据过大,采用clob类型,报错数字或者值错误

image-20200928161544380

日志路径

R12.2应用

类型 位置
adop $ADOP_LOG_HOME(/u01/test/app/fs_ne/EBSapps/log/adop)
LOG_HOME $LOG_HOME(/u01/test/app/fs1/inst/apps/TEST_apptest/logs)
ADMIN脚本 $LOG_HOME/appl/admin/log
ISG配置 $INST_TOP/soa/isgagent.properties
ISG部署文件 ISG配置中的$ISG_TEMP_DIRECTORY_LOCATION/
ISG日志 ISG配置中的\(ISG_TEMP_DIRECTORY_LOCATION/ISGLog.log<br/>默认\)NE_BASE/inst/$CONTEXT_NAME/soa

FNDLOAD

#语法:
FNDLOAD logon 0 Y mode configfile datafile [ entity [ param ... ] ]
:<<!
logon     : EBS用户名/密码[$TNS连接别名]
mode      : UPLOAD 或 DOWNLOAD
configfile: 配置文件路径,根据同步对象的不同需要选择不同的配置文件。
datafile : 数据文件
entity    : 条目名称, 或者上载时的所有相关值
param     : 参数格式为 NAME=VALUE
!
# 中文环境变量:
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8" #ZHS16GBK
export NLS_LANG="American_America.AL32UTF8"

# 1. 并发程序
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct CUXARBLA.ldt PROGRAM APPLICATION_SHORT_NAME=CUX CONCURRENT_PROGRAM_NAME=CUXARBLA

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct CUXARBLA.ldt

# 2. 表单
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct CUXARFRM.ldt FORM FORM_APP_SHORT_NAME=CUX FORM_NAME=CUXARFRM

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct CUXARFRM.ldt

# 3. 功能
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct CUXARFUC.ldt FUNCTION FUNC_APP_SHORT_NAME=CUX FUNCTION_NAME=CUXARFUC

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct CUXARFUC.ldt

# 4. 菜单
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct CUXALMENU.ldt MENU  MENU_NAME=CUXALMENU

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct CUXALMENU.ldt

# 5. 值集
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct CUX_CUSTOMER_NAME.ldt VALUE_SET FLEX_VALUE_SET_NAME=CUX_CUSTOMER_NAME

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct CUX_CUSTOMER_NAME.ldt

# 6. 键弹性域
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct CUX_ACC_KF.ldt KEY_FLEX APPLICATION_SHORT_NAME=CUX D_FLEX_CODE=CUX_ACC_KF

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct CUX_ACC_KF.ldt

# 7. 描述性弹性域
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct CUX_ORDER_HEADER.ldt DESC_FLEX  APPLICATION_SHORT_NAME=CUX DESCRIPTIVE_FLEXFIELD_NAME=CUX_ORDER_HEADER

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct CUX_ORDER_HEADER.ldt

# 8. 快码
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct CUX_ITEM_TYPE.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=CUX LOOKUP_TYPE=CUX_ITEM_TYPE

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct CUX_ITEM_TYPE.ldt

# 9. 请求集
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct CUX_REQUES_SET.ldt REQ_SET APPLICATION_SHORT_NAME=CUX REQUEST_SET_NAME= CUX_REQUES_SET

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct DFSCNARBKSTMTRS_RS_LINK.ldt REQ_SET_LINKS APPLICATION_SHORT_NAME=DRES REQUEST_SET_NAME=DFSCNARBKSTMTRS

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct CUX_REQUES_SET.ldt

# 10. 请求组
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct CUX_PAYROLL_APPR.ldt REQUEST_GROUP APPLICATION_SHORT_NAME=CUX REQUEST_GROUP_NAME=CUX_PAYROLL_APPR

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpreqg.lct CUX_PAYROLL_APPR.ldt

# 11. 消息
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct CUX_CST_UPDATE.ldt FND_NEW_MESSAGES  APPLICATION_SHORT_NAME=CUX MESSAGE_NAME=CUX_CST_UPDATE

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afmdmsg.lct CUX_CST_UPDATE.ldt

# 12. 预制文件
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct CUX_DEBUG_MODE.ldt PROFILE APPLICATION_SHORT_NAME=CUX PROFILE_NAME=CUX_DEBUG_MODE

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct CUX_DEBUG_MODE.ldt

# 13. 职责-需要先load该职责的菜单
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct CUX_AP_SUPER_USER.ldt FND_RESPONSIBILITY RESP_KEY=CUX_AP_SUPER_USER

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afscursp.lct CUX_AP_SUPER_USER.ldt

# 14. 个性化
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;export NLS_LANG
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct  “CUX_RCV_RCVTXERT.lct FND_FORM_CUSTOM_RULES function_name=RCV_RCVTXERT

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct  CUX_RCV_RCVTXERT.lct

# 15. 附件
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afattach.lct CUX_ATTACHMENT.ldt FND_ATTACHMENT_FUNCTIONS FUNCTION_NAME=FUNCTION_NAME

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afattach.lct CUX_ATTACHMENT.ldt 

# 16.1 XML数据定义
FNDLOAD apps/apps 0 Y DOWNLOAD $XDO_TOP/patch/115/import/xdotmpl.lct program_XDO.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=CUX DATA_SOURCE_CODE=program

FNDLOAD apps/apps 0 Y UPLOAD $XDO_TOP/patch/115/import/xdotmpl.lct program_XDO.ldt

# 16.2 模板
java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD \
-DB_USERNAME <db_username> \
-DB_PASSWORD <db_password> \
-JDBC_CONNECTION <jdbc_con_string>($AD_APPS_JDBC_URL) \
-LOB_TYPE <lob_type> \
-APPS_SHORT_NAME <application_short_name> \
-LOB_CODE <lob_code> \
-LANGUAGE <language> \
-TERRITORY <territory> \
-LOG_FILE <log file>

java oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION  HostName:SID:Port -LOB_TYPE TEMPLATE -APPS_SHORT_NAME “CUX -LOB_CODE program -LANGUAGE zh -XDO_FILE_TYPE RTF -FILE_NAME program.rtf

# 17. WebADI
# All
FNDLOAD apps/apps 0 Y DOWNLOAD $BNE_TOP/patch/115/import/bneintegrator.lct bneintegrators4.ldt BNE_INTEGRATORS INTEGRATOR_ASN=CUX INTEGRATOR_CODE=GENERAL_23_INTG

FNDLOAD apps/apps 0 Y UPLOAD $BNE_TOP/patch/115/import/bneintegrator.lct bneintegrators4.ldt

# Integrator
FNDLOAD apps/xshx87246788 0 Y DOWNLOAD $BNE_TOP/admin/import/bneint.lct bneint.ldt BNE_INTEGRATORS INTEGRATOR_ASN=HX INTEGRATOR_CODE=GENERAL_208_INTG
FNDLOAD apps/ 0 Y UPLOAD $BNE_TOP/admin/import/bneint.lct bneint.ldt

# Layouts
FNDLOAD apps/xshx87246788 0 Y DOWNLOAD $BNE_TOP/admin/import/bnelay.lct bnelay.ldt BNE_LAYOUTS LAYOUT_ASN=HX LAYOUT_CODE=HXPROJECTRATELAYOUT
FNDLOAD apps/ 0 Y UPLOAD $BNE_TOP/admin/import/bnelay.lct bnelay.ldt

# Mappings
FNDLOAD apps/xshx87246788 0 Y DOWNLOAD $BNE_TOP/admin/import/bnemap.lct bnemap.ldt BNE_MAPPINGS MAPPING_ASN=HX MAPPING_CODE=GENERAL_208_MAP
FNDLOAD apps/ 0 Y UPLOAD $BNE_TOP/admin/import/bnemap.lct bnemap.ldt

# Contents
FNDLOAD apps/xshx87246788 0 Y DOWNLOAD $BNE_TOP/admin/import/bnecont.lct bnecont.ldt BNE_CONTENTS CONTENT_ASN=HX CONTENT_CODE=GENERAL_208_CNT
FNDLOAD apps/ 0 Y UPLOAD $BNE_TOP/admin/import/bnecont.lct bnecont.ldt

# Parameter List
FNDLOAD apps/xshx87246788 0 Y DOWNLOAD $BNE_TOP/admin/import/bneparamlist.lct bneparamlist.ldt BNE_PARAM_LISTS INTEGRATOR_ASN=HX INTEGRATOR_CODE=GENERAL_208_INTG
FNDLOAD apps/ 0 Y UPLOAD $BNE_TOP/admin/import/bneparamlist.lct bneparamlist.ldt

# Security
FNDLOAD apps/xshx87246788 0 Y DOWNLOAD $BNE_TOP/admin/import/bnesecurity.lct bnesecurity.ldt BNE_SECURED_OBJECTS SECURED_OBJECT_ASN=HX SECURED_OBJECT_CODE=GENERAL_208_INTG
FNDLOAD apps/ 0 Y UPLOAD $BNE_TOP/admin/import/bnesecurity.lct bnesecurity.ldt

# 18. Printer Styles
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcppstl.lct file_name.ldt STYLE. PRINTER_STYLE_NAME=printer style. name

# 19. 电子元表格:
FNDLOAD apps/apps 0 Y DOWNLOAD $JTF_TOP/patch/115/import/jtfgrid.lct GRID_CUX_WIP_CHANGE_IMPORT_V_W.ldt JTF_GRID_DATASOURCES GRID_DATASOURCE_NAME="CUX_WIP_CHANGE_IMPORT_V_W"
	
FNDLOAD apps/apps 0 Y UPLOAD $JTF_TOP/patch/115/import/jtfgrid.lct GRID_CUX_WIP_CHANGE_IMPORT_V_W.ldt
	
# 20. 表/视图
java oracle.apps.fnd.odf2.FndXdfGen apps_schema=apps apps_pwd=apps jdbc_protocol=thin jdbc_conn_string=erptest.longcheer.com:1531:TEST object_name=CUX_GL_CFRPT_CF_ITEM_TMP.xdf xsl_directory=$FND_TOP/patch/115/xdf/xsl owner_app_shortname=CUX object_type=table
	
# $FND_TOP/patch/115/xdf
adjava oracle.apps.fnd.odf2.FndXdfCmp APPS APPS APPS APPS thin erptest.longcheer.com:1531:TEST view CUX_GL_CFRPT_MAP_LINES_VT.xdf $FND_TOP/patch/115/xdf/xsl

adjava -mx512m -nojit oracle.apps.fnd.odf2.FndXdfCmp <Oracle_Schema> <Oracle_Password> \
<apps_schema> <apps_password> <jdbc protocol> <JDBC_Connect_String> <Object Type> \
<full path to xdf file> <full path of $FND_TOP/patch/115/xdf/xsl>

# 21. 工作流
WFLOAD apps/apps 0 Y UPLOAD/UPGRADE/FORCE /home/appldev/install/HDSP0202.wft
	
WFLOAD apps/apps 0 Y DOWNLOAD GLBATCH_ZHS.wft GLBATCH

登录配置

  1. Internet Explorer 已对此页面进行了修改,以帮助阻止跨站脚本
    禁用 XSS筛选

  2. 弹出两次java警告
    image-20200928173033894

    修改:
    image-20200928173201834

Oracle Support

APP

DBA

  • Applying the Latest AD and TXK Release Update Packs to Oracle E-Business Suite Release 12.2 (Doc ID 1617461.1)

  • Oracle E-Business Suite Release 12 Critical Patch Update Knowledge Document (July 2019) (文档 ID 2555452.1)

  • ETCC patch 17537119

  • Enabling TLS in Oracle E-Business Suite Release 12.2 (Doc ID 1367293.1)

  • Overview of Using Java with Oracle E-Business Suite Release 12.x (Doc ID 418664.1)

  • Using the Latest JDK 7.0 Update with Oracle E-Business Suite Release 12.2 (Doc ID 1530033.1)

  • Database Initialization Parameters for Oracle Applications Release 12 (Doc ID 396009.1)

  • Recommended Browsers for Oracle Applications 12 (Document )

  • Guidance for Integrating Custom and Third-Party Products With Oracle E-Business Suite Release 12.2 (Doc ID: 1916149.1)

  • How to Identify Required Oracle JDeveloper Patches For Oracle E-Business Release 12.x or 11i (Doc ID 416708.1)

  • Installing Oracle E-Business Suite Integrated SOA Gateway, Release 12.2 (Doc ID 1311068.1)

  • Alternative Methods to Allow Access to Oracle WebLogic Server Administration Console from Trusted Hosts for Oracle E-Business Suite Release 12.2 (Doc ID 2542826.1)

  • R12.2: Steps to Change the APPS, APPLSYS, and APPS_NE Password Using FNDCPASS or AFPASSWD (Doc ID 1674462.1)

  • How To Change or Reset The WebLogic Administration Password In 12.2 E-Business Suite (Doc ID 1385751.1)

  • Bug 21162325 - RMAN RECOVER TABLE / EXPDP fails with ORA-376 for datafile having INDEX during EXPORT (Doc ID 21162325.8)

  • AutoUpgrade Tool (Doc ID 2485457.1)

  • Database Server Upgrade/Downgrade Compatibility Matrix (Doc ID 551141.1)

  • Interoperability Notes: Oracle E-Business Suite Release 12.2 with Oracle Database 19c (Doc ID 2552181.1)
    https://vishnu.ae/oracle/oracle-ebs/upgrade-oracle-ebs-12-2-8-database-to-19-3-19c-part-1/

启用TLS

JSP

编译

$FND_TOP/patch/115/bin/ojspCompile.pl --compile --flush -s DfscnXmlpViewer06.jsp

资源访问

问题:

  • 新建的JSP访问时报错:
    image-20200928153820861

原因:

解决方法有二:

  1. 放开资源访问限制(配置文件控制)

    • 安全性:允许的资源(FND_SEC_ALLOWED_RESOURCES) => 全部
    • 重启OACORE
  2. 添加白名单(推荐)

    $ cd $FND_TOP/secure
    $ echo "/OA_HTML/JDKtest.jsp" >> custom_servlets.conf
    $ java oracle.apps.fnd.security.resource.WLDataMigration \
    MODE=custom \
    INPUT_FILE=custom_servlets.conf \
    DBC=$FND_SECURE/$TWO_TASK.dbc
    
    ======语法说明
    java oracle.apps.fnd.security.resource.WLDataMigration \
    MODE=<seed|custom> \
    INPUT_FILE=<conf file/webusage file> \
    DBC=<path of dbc> \
    [PARSE_MODE=<single|recursive>]
    ======
    

    进入职责:功能管理员 -> 允许的资源 -> 自定义

    image-20200928154102951

    点击CUSTOM即可查看添加的客制化jsp:
    image-20200928154124393

此时可以正常登陆页面:

image-20200928154142933

JWS

$CONTEXT_FILE : s_forms_launch_method

Enable Java Web Start or Java Plug-in.

Possible values:

  • browser - use Java Plug-in
  • jws - use Java Web Start
类别 说明
Enable Java Web Start / FND_ENABLE_JAVA_WEB_START Use Java Web Start to launch the Forms application and Java applets. Possible values:
Yes - Use Java Web Start
No - Use Java Plug-in
ICX: Forms Launcher /ICX_FORMS_LAUNCHER The URL for launching the Forms application. Possible values:
Site level default: <s_webentryurlprotocol>://<s_webentryhost>.<s_webentrydomain>:<s_active_webport>/forms/frmservlet
Java Plug-in: <s_webentryurlprotocol>://<s_webentryhost>.<s_webentrydomain>:<s_active_webport>/forms/frmservlet?config=browserMode
Java Web Start: <s_webentryurlprotocol>://<s_webentryhost>.<s_webentrydomain>:<s_active_webport>/forms/frmservlet?config=jws

---------DBA---------->

DBA常用命令

清除trace

#清除7天前trace
find /trace -mtime +7 -name "*.trc" | xargs rm -f
find /trace -mtime +7 -name "*.trm" | xargs rm -f

Weblogic

#端口:
grep wls_adminport $CONTEXT_FILE
grep s_soa_admin_url $CONTEXT_FILE
grep forms_connect $CONTEXT_FILE socket/servlet
#访问权限
cat $CONTEXT_FILE|grep s_wls_admin_console_access_nodes
#版本:
$ cd $FMW_HOME/wlserver_10.3/server/lib
$ java -cp weblogic.jar weblogic.version
	#或
grep -i "weblogic server" $FMW_HOME/registry.xml

oacore

#查看OACORE状态(12.2)
cd $ADMIN_SCRIPTS_HOME
admanagedsrvctl.sh status oacore_server1 –nopromptmsg
	
#查看oacore日志信息:
tail -n 200 $EBS_DOMAIN_HOME/servers/oacore_server1/logs/oacore_server1.out

查看版本

#文件版本
$ strings -a adgrants.sql | grep '$Header'
-- 查看pls文件版本
$ strings -a aptxdefb.pls | grep -i '$ Header';
/ * $ Header:aptxdefb.pls 120.11 2005/08/04 04:44:25 hongliu ship $ * /
# 查找fmx文件的版本也一样。
strings -a APXINWKB.fmx | grep'$ Header';

Linux

#判断传入参数对应文件是否包含指定内容
function copyErr
{
	grep "Compilation errors have occurred" $CGL_TOP/forms/ZHS/$1 >/dev/null
	if[ $? -eq 0 ]; then
		cp -rp $CGL_TOP/forms/ZHS/$1 /tmp/ERP_2018/err
	fi
}

#重命名文件(带日期)
mv $CGL_TOP/forms/ZHS/CUXJEQUERY.fmb $CGL_TOP/forms/ZHS/CUXJEQUERY.fmb.`date +%m%d%H%M`

#查找文件
find /u01/dev/db/12.1.0 -name '*HAND_TXX*' -and -mmin -5 2>/dev/null
find ./ -name "*.fmb" | xargs grep -i "cas_bc_setup"

扩展表空间

运行plsql代码,发现报错:

image-20200928162729817

查询表空间使用情况

SELECT upper(f.tablespace_name) "表空间名",
       d.tot_grootte_mb "表空间大小(M)",
       d.tot_grootte_mb - f.total_bytes "已使用空间(M)",
       to_char(round((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100,
                     2),
               '990.99') "使用比",
       f.total_bytes "空闲空间(M)",
       f.max_bytes "最大块(M)"
  FROM (SELECT tablespace_name,
               round(SUM(bytes) / (1024 * 1024), 2) total_bytes,
               round(MAX(bytes) / (1024 * 1024), 2) max_bytes
          FROM sys.dba_free_space
         GROUP BY tablespace_name) f,
       (SELECT dd.tablespace_name,
               round(SUM(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb
          FROM sys.dba_data_files dd
         GROUP BY dd.tablespace_name) d
 WHERE d.tablespace_name = f.tablespace_name
   AND f.tablespace_name = 'APPS_TS_SUMMARY'
 ORDER BY 4 DESC;
 
-- 如果这里查不到表空间的使用情况,说明有可能表空间已经满了 使用如下sql查询
SELECT t.bytes,
        t.maxbytes
  FROM dba_data_files t
 WHERE t.tablespace_name = 'APPS_TS_SUMMARY';

扩展表空间

-- 1. 增加表空间数据文件
-- 1.1 得到路径
SELECT t.file_name
  FROM dba_data_files t
 WHERE t.tablespace_name = 'APPS_TS_SUMMARY';

-- 1.2 创建数据文件
alter tablespace APPS_TS_SUMMARY add datafile 
'/db/db/apps_st/data/a_summ02.dbf' size 4000M autoextend off;

/*
数据文件自动扩展的好处
	1)不会出现因为没有剩余空间可以利用到数据无法写入
	2)尽量减少人为的维护
	3)可以用于重要级别不是很大的数据库中,如测试数据库等
数据文件自动扩展的弊端
	1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大
	2)没有人管理的数据库是非常危险的
*/

-- 通过修改SEC_D的数据文件为自动扩展达到表空间SEC_D为自动扩展的目的
alter database datafile '/.../sec_d01.dbf' autoextend on[off];

-- 查询是否自动扩展
SELECT tablespace_name,
       file_name,
       autoextensible
  FROM dba_data_files
 WHERE tablespace_name = 'SEC_D';
 

-- 2. 直接修改表空间大小
ALTER DATABASE datafile '/.../a_summ01.dbf' autoextend ON NEXT 50m maxsize 3000m;

归档日志清理

1、切换到ora用户
		sudo su - oradev
2、查看磁盘空间
		df -h
3、进入sysdba
		sqlplus / as sysdba
4、查看归档是否打开
		archive log list
5、切换到ora然后进入rman命令
		rman target /
6、删除所有的归档日志
		RMAN>delete archivelog all;
7、检查一些无用的archivelog
    RMAN> crosscheck archivelog all;
8、删除过期的归档
    RMAN> delete expired archivelog all;
9、删除截止到前一天的所有archivelog
    delete archivelog until time 'sysdate-1'; 
10、退出
		exit

端口修改

数据库端口

  1. 查看当前监听端口信息 lsnrctl status
    image-20200928170744499
  2. 关掉监听 lsnrctl stop
  3. 修改配置文件 lintener.ora 与 tnsnames.ora,将相应端口号改掉
  4. 修改数据库初始化参数
    alter system set local_listener="(address=(protocol=tcp)(host=oracle12c)(port=11521))";
  5. 重启监听与数据库

应用端口

登录端口

  1. 修改CONTEXT_FILE文件

    [appluat@szts1000 admin]$grep 8080 $CONTEXT_FILE
    <“chronosURL oa_var=“s_chronosURL”>http://szts1000.domain.com:8080/oracle_smp_chronos/oracle_smp_chronos_sdk.gif</chronosURL”>
    <“EndUserMonitoringURL oa_var=“s_endUserMonitoringURL”>http://szts1000.domain:8080/oracle_smp_chronos/oracle_smp_chronos_sdk.gif</EndUserMonitoringURL”>
    <“externURL oa_var=“s_external_url”>http://szts1000.domain.com:8080</externURL”>
    <“login_page oa_var=“s_login_page”>http://szts1000.domain.com:8080/OA_HTML/AppsLogin</login_page”>
    <“httplistenparameter oa_var=“s_http_listen_parameter”>8080</httplistenparameter”>
    <“web_port oa_var=“s_webport” oa_type=“PORT” base=“8000” step=“1” range=”-1" label=“Web Listener Port”>8080</web_port">
    <“activewebport oa_var=“s_active_webport” oa_type=“DUP_PORT” base=“8000” step=“1” range=”-1" label=“Active Web Port”>8080</activewebport">
    
  2. 自动配置

    $ cd $ADMIN_SCRIPTS_HOME

    $ ./adautocfg.sh

  3. 重新登录

Weblogic 端口

方法一:通过weblogic控制台修改
在环境--服务器节点中点击你要修改的服务器的端口的名称(如下图:AdminServer(管理))
image-20200928171246965

image-20200928171314205

方法二:修改配置文件
在创建的weblogic的域中找到config\config.xml文件。(如:xxxx\user_projects\domains\base_domain\config\config.xml
在config.xml文件中找到语句块,修改即可(同时修改相应启停脚本中的端口),然后重启:

<server>
  <name>AdminServer</name>
  <ssl>
    <enabled>false</enabled>
  </ssl>
  <listen-port>7005</listen-port>
  <listen-address>localhost</listen-address>
  <data-source>
    <rmi-jdbc-security xsi:nil="true"></rmi-jdbc-security>
  </data-source>
</server>

SQLPLUS

Oracle挂起时连接

说明:

  • 很多情况下,Oracle hang导致sqlplus无法连接,从而无法获得Oracle系统和进程状态,使得定位问题缺少强有力的依据。
    所幸的是Oracle 10g推出了sqlplus -prelim选项,在Oracle挂起时依然能使用sqlplus,从而能获得数据库状态

使用方法:

sqlplus -prelim / as sysdba
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10

-- 但是需要注意的是,在Oracle 10.2.0.1中,使用如上方法会出现一个错误:
$ sqlplus -prelim / as sysdba 
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Oct 25 09:38:14 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.

-- 在prelim模式下,不可以查询数据字典,但可以关闭数据库
SQL> select status from v$instance; 
select status from v$instance 
* 
ERROR at line 1: 
ORA-01012: not logged on

SQL> shutdown abort 
ORACLE instance shut down.

SQL> oradebug setmypid
Statement processed.

SQL> oradebug unlimit
Statement processed.

SQL> oradebug dump systemstate 10
ORA-03113: end-of-file on communication channel
ORA-24323: value not allowed

-- 此时在alert文件中会记录如下错误提示:
Thu Oct 25 09:38:32 2007
System State dumped to trace file
Thu Oct 25 09:38:32 2007
Errors in file /opt/oracle/admin/test201/udump/test201_ora_1402.trc:
ORA-07445: exception encountered: core dump [kgldmp()+1360] [SIGSEGV] [Address not mapped to object] [0x000000030] [] []

-- 这是由于一个Bug导致的,Bug号为5730231,该Bug在10.2.0.3中修正。
-- 或者dump hanganalyze 
SQL> oradebug hanganalyze 3 
Hang Analysis in /oracle/app/oracle/admin/ora10g/udump/ora10g_ora_52642.trc

-- 对于rac
SQL> oradebug setmypid 
SQL> oradebug setinst all 
SQL> oradebug -g def hanganalyze 3

-- 或者dump 进程状态
SQL> oradebug dump processstate 10 
Statement processed.

/*
对于9i也有变通的方法使用
-prelim is feature of Sql*Plus 10g and latter.

So as long you have any Sql*Plus 10g or latter version (ex. from client installation) and a valid net service name to connect to your 9i database you should be able to establish a "backdoor" connection.

You can do the following:*/

$sqlplus -prelim /nolog

and once you are in, just connect to the database using SYSDBA account

SQL> connect sys/password@net_service_name as sysdba
Prelim connection established 

SQL>  oradebug setmypid 
Statement processed. 

SQL> oradebug unlimit 
Statement processed.

SQL>  oradebug dump systemstate 266 
Statement processed.

-- 来自 <https://blog.csdn.net/zhou1862324/article/details/17248553>

常驻内存

image-20200928162153101 image-20200928162222018 image-20200928162305698 image-20200928162325373 image-20200928162454811

会话视图

gv\(开头视图是rac全局的,v\)开头是本节点的
gv\(session比v\)session多一个字段而已: INST_ID

DBA问题解决

Solais

Distributed Caching System failed to initialize on port

系部分端口被占用,查出后杀掉进程即可(kill -9 xxx)

-bash-3.00# cd /proc
-bash-3.00# for i in *
do
echo ------ process $i ---------
sudo pfiles $i | grep -i "port: 12345"
done

------ process 57781 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57782 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57783 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57784 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57785 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57786 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57789 ---------
        peername: AF_INET6 ::ffff:10.15.201.73  port: 12345
------ process 57790 ---------
        sockname: AF_INET6 ::ffff:10.15.201.73  port: 12345
        sockname: AF_INET6 ::ffff:10.15.201.73  port: 12345

-bash-4.4$ ps -ef |grep 57803
   htian 10094 56416   0 03:39:54 pts/4       0:00 grep 57803
  oracle 57803 26239   0   Mar 05 ?          28:15 /woapch/app/oracle/R122/fs1/EBSapps/comn/util/jdk/bin/sparcv9/java -DCLIENT_PROCESSID=57803 -Dhttp.proxyHost= -Dhttp.proxyPort= -Dhttp.nonProxyHosts= -Djava.awt.headless=true -server -Xmx384m -XX:NewRatio=2 -XX:+UseSerialGC -Doracle.apps.fnd.common.Pool.leak.mode=stderr:off -verbose:gc -Ddbcfile=/inst_top/R122/fs1/inst/apps/woapch_housva441/appl/fnd/12.0.0/secure/woapch.dbc -Dcpid=897001 -Dconc_queue_id=1123 -Dqueue_appl_id=0 -Dlogfile=/woapch/app/oracle/R122/fs_ne/inst/woapch_housva441/logs/appl/conc/log/FNDCPGSC897001.txt -DLONG_RUNNING_JVM=true -DEBS_HOSTNAME=housva441 -DOVERRIDE_DBC=true -DFND_JDBC_BUFFER_MIN=1 -DFND_JDBC_BUFFER_MAX=2 oracle.apps.fnd.cp.gsm.GSMSvcComponentContainer

19C

启动数据库

启动CDB

-- 与传统数据库(12c之前)一样的操作
$ sqlplus / as sysdba
SQL> startup;
SQL> select name,open_mode,cdb from gv$database;
NAME      OPEN_MODE            CDB
--------- -------------------- ---
CDB2      READ WRITE           YES  <------

SQL> show con_id con_name
CON_ID
------------------------------
1

CON_NAME
------------------------------
CDB$ROOT  <-----

启动PDB

From CDB
SQL> col name for a30
SQL> select name,open_mode,con_id,dbid from gv$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459
PDB$SEED                       READ ONLY           2 2993936271
PDB1                           MOUNTED             3  627484885
PDB2                           MOUNTED             4  891811039
/* 语法:
ALTER PLUGGABLE DATABASE <pdd-name-clause> OPEN READ WRITE [RESTRICTED][FORCE];
ALTER PLUGGABLE DATABASE <pdd-name-clause> OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE <pdd-name-clause> OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE <pdd-name-clause> CLOSE [IMMEDIATE]; -- 关闭
<pdd-name-clause>表示的是多个PDB,如果有多个,用逗号分开。 也可以使用ALL或者ALL EXCEPT关键字来替代。
ALL:表示所有的PDBS。
ALL EXCEPT 表示需要排除的PDBS。
如:
ALTER PLUGGABLE DATABASE pdb1, pdb2 OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE;
*/
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;

Pluggable database altered.

SQL> select name,open_mode,con_id,dbid from gv$containers;
NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459
PDB$SEED                       READ ONLY           2 2993936271
PDB1                           READ WRITE          3  627484885 <----
PDB2                           MOUNTED             4  891811039
From PDB
-- 切换到PDB
SQL> alter session set container=PDB2;  <----
Session altered.

SQL> show con_name
CON_NAME
------------------------------
PDB2

-- 查看状态
SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB2                           MOUNTED   <-----

-- 此处开始启动的方式有三种:
SQL> startup;
Pluggable Database opened.

-- OR --

SQL> ALTER DATABASE OPEN;
Database altered.

-- OR -- 
/* 语法
ALTER PLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE CLOSE [IMMEDIATE];
*/
SQL> ALTER PLUGGABLE DATABASE OPEN;
Pluggable database altered.

-- 查看状态
SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB2                           READ WRITE NO
启动所有PDB
-- Switch to CDB from PDB
SQL> conn / as sysdba
Connected.

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT  <---

SQL> ALTER PLUGGABLE DATABASE ALL OPEN;
Pluggable database altered.

关闭数据库

关闭PDB

From CDB
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT


SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO

SQL> ALTER PLUGGABLE DATABASE PDB1 CLOSE IMMEDIATE;

Pluggable database altered.

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED <-----
From PDB
-- Switch to PDB from CDB
SQL> ALTER SESSION SET CONTAINER=PDB2;   <----

Session altered.

SQL> SHOW CON_NAME

CON_NAME
------------------------------
PDB2 <-----

SQL>

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB2                           READ WRITE NO  <------ R/W

SQL> ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

Pluggable database altered.

SQL>

--- OR ---

SQL> SHUT IMMEDIATE;  -- PLEASE DO NOT RUN FROM CDB, IT WILL CLOSE CDB AND ALL PDBs inside CDB
Pluggable Database closed.

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB2                           MOUNTED  <----
关闭所有PDB
-- Switch to CDB from PDB
SQL> CONN / AS SYSDBA
Connected.

SQL> SHOW CON_NAME

CON_NAME
------------------------------
CDB$ROOT <----

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED
         5 PDB3                           READ WRITE NO
         6 PDB4                           READ WRITE NO

SQL> ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;

Pluggable database altered.

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED
         5 PDB3                           MOUNTED
         6 PDB4                           MOUNTED

关闭CDB

PLEASE DO NOT run SHUT IMMEDIATE OR ALTER DATABASE CLOSE command from CDB, it will shutdown ALL PDBs,PDB\(SEED & CDB\)ROOT inside CDB. Example for the same below

SQL> select name,open_mode,con_id,dbid from v$containers;

NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459 <-- R/W
PDB$SEED                       READ ONLY           2 2993936271
PDB1                           MOUNTED             3  627484885
PDB2                           MOUNTED             4  891811039
PDB3                           MOUNTED             5  424568091
PDB4                           MOUNTED             6 2306285303

SQL> SHOW CON_NAME

CON_NAME
------------------------------
CDB$ROOT


SQL> SHUT IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> !ps -ef | grep pmon
oracle   13612 12669  0 19:00 pts/0    00:00:00 /bin/bash -c ps -ef | grep pmon
oracle   13614 13612  0 19:00 pts/0    00:00:00 grep pmon
SQL> col name for a30
SQL> select name,open_mode,con_id,dbid from v$containers;

NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       READ WRITE          1  680230459
PDB$SEED                       READ ONLY           2 2993936271
PDB1                           READ WRITE          3  627484885
PDB2                           READ WRITE          4  891811039
PDB3                           READ WRITE          5  424568091
PDB4                           READ WRITE          6 2306285303

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT <----

SQL> ALTER DATABASE CLOSE IMMEDIATE;

Database altered.

SQL> select name,open_mode,con_id,dbid from v$containers;

NAME                           OPEN_MODE      CON_ID       DBID
------------------------------ ---------- ---------- ----------
CDB$ROOT                       MOUNTED             1  680230459
PDB$SEED                       MOUNTED             2 2993936271
PDB1                           MOUNTED             3  627484885
PDB2                           MOUNTED             4  891811039
PDB3                           MOUNTED             5  424568091
PDB4                           MOUNTED             6 2306285303

SQL> shut immediate;
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.

SQL> !ps -ef | grep pmon
oracle   14495 12669  0 19:16 pts/0    00:00:00 /bin/bash -c ps -ef | grep pmon
oracle   14497 14495  0 19:16 pts/0    00:00:00 grep pmon

PDB自启动

记录状态

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT <----

-- 记录打开后的PDB状态
SQL> alter pluggable database PDB1 save state;

Pluggable database altered.

-- 查询记录,已为OPEN,下次重新启动CDB时,将自动启动PDB1
SQL> select con_name, state from dba_pdb_saved_states;
 
CON_NAME                STATE
----------------------- --------------
PDB1                    OPEN

-- 若要取消此设定,执行:
SQL> alter pluggable database PDB1 discard state;

触发器

SQL>show con_name
 
CON_NAME
------------------------------
PDB1

SQL> alter session set container=CDB$ROOT;
Session altered.

SQL>CREATE OR REPLACE TRIGGER open_pdbs
 			AFTER STARTUP ON DATABASE
 BEGIN
 	EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
 END open_pdbs;
/

Triggercreated
posted @ 2023-07-18 17:32  水木夏  阅读(624)  评论(0编辑  收藏  举报