-
oracle linux使用yum出现以下报错信息,有谁知道怎么解决?
-
起因由于旧的业务采用的是BLOB方案,而新的架构采用的是CLOB存储,因此要进行一个转换,但是取出来之后,发现中文变乱码了。其中,转换代码如下CREATE OR REPLACE FUNCTION BlobToClob(blob_in IN BLOB) RETURN CLOB AS v_clob CLOB; v_varchar VARCHAR2(4000); v_start PLS_INTEGER := 1; v_buffer PLS_INTEGER := 4000; BEGIN DBMS_LOB.CREATETEMPORARY(v_clob, TRUE); FOR i IN 1 .. CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) LOOP v_varchar := UTL_RAW.CAST_TO_VARCHAR2( DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start)); DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar ); v_start := v_start + v_buffer; END LOOP; RETURN v_clob; END BlobToClob;分析 —— 字符应该需要转换select convert(UTL_RAW.CAST_TO_VARCHAR2(blob_field), 'zhs16gbk', 'AL32UTF8') from test_blob;select UTL_RAW.CAST_TO_VARCHAR2(UTL_RAW.CONVERT(blob_field, 'AMERICAN_AMERICA.zhs16gbk', 'AMERICAN_AMERICA.AL32UTF8'blob转字符串是用了UTL_RAW.CAST_TO_VARCHAR2()函数, 转码可以用CONVERT()和UTL_RAW.CONVERT()两个函数,CONVERT()函数相比之下就不需要加英文字符集了 3个参数,utl_raw.convert(a,b,c),b为当前数据库可识别的字符集,可以从nls_database_parameters中查看,c为当前2进制数据存储使用的字符集。该函数将a从字符集c转换到字符集b。字符集参数要写全,比如'AMERICAN_AMERICA.US7ASCII','.'前面为英文字符集,后面为中文字符集。最后修改后的代码如下CREATE OR REPLACE FUNCTION BlobToClob(blob_in IN BLOB) RETURN CLOB AS v_clob CLOB; v_varchar VARCHAR2(4000); v_start PLS_INTEGER := 1; v_buffer PLS_INTEGER := 4000; BEGIN DBMS_LOB.CREATETEMPORARY(v_clob, TRUE); FOR i IN 1 .. CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) LOOP v_varchar := UTL_RAW.CAST_TO_VARCHAR2( convert(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start), 'ZHS16GBK', 'UTF8')); DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar ); v_start := v_start + v_buffer; END LOOP; RETURN v_clob; END BlobToClob;
-
定义函数的语法CREATE [OR REPLACE] FUNCTION <函数名> [(<参数名> [IN | OUT | IN OUT] <数据类型> ,…)] RETURN <返回值类型> IS |AS [<变量或常量声明>;] BEGIN <子程序块...>; RETURN <需要返回的变量或常量名>; [EXCEPTION <异常处理...>; RETURN <当出现异常时的返回值、变量或常量>;] END [<函数名>];函数的参数有3种类型: • IN 参数类型:表示输入给函数的参数,该参数只能用于传值,不能被赋值。 • OUT 参数类型:表示参数在函数中被赋值,能够传给函数调用程序,该参数只能用于赋值,不能用于传值。 • IN OUT 参数类型:表示参数既能够传值,也能够被赋值。返回值返回值FunctionResult可自定义,当函数有输出函数时可不传数据,但需要设置返回(当提示未限定返回长度时,如代码示例设置255长度皆可)-------使用函数右键引导创建范例 create or replace function get_rvv_rvb_img38(p_img05 in varchar2, p_img06 in number,p_img38 out varchar2) return varchar2 is FunctionResult varchar2(255); begin if p_img38 is null and p_img05 is not null and p_img06 is not null then select beizhu into p_img38 from (select rownum xuhao,rvv01,rvv02, rvvud01 beizhu,rvu03 from rvv_file join rvu_file on rvu01 = rvv01 where rvuconf='Y' and rvv04=p_img05 and rvv05=p_img06 ) where xuhao = '1'; end if ; return(FunctionResult); end get_rvv_rvb_img38;调用函数begin -- Call the function :result := get_rvv_rvb_img38(p_img05 => :p_img05, p_img06 => :p_img06, p_img38 => :p_img38); end;
-
ORA-17001=内部错误ORA-17002=Io 异常ORA-17003=无效的列索引ORA-17004=无效的列类型ORA-17005=不支持的列类型ORA-17006=列名无效ORA-17007=无效的动态列ORA-17008=关闭的连接ORA-17009=关闭的语句ORA-17010=关闭的 ResultsetORA-17011=结果集已耗尽ORA-17012=参数类型冲突ORA-17014=未调用 ResultSet.nextORA-17015=语句被取消ORA-17016=语句超时ORA-17017=已初始化游标ORA-17018=无效的游标ORA-17019=只能描述查询ORA-17020=无效的行预取ORA-17021=定义丢失ORA-17022=在索引处定义丢失ORA-17023=不支持的特性ORA-17024=未读取数据ORA-17025=defines.isNull () 中出现错误ORA-17026=数字溢出ORA-17027=流已被关闭ORA-17028=直到关闭当前的 ResultSet 才能进行新的定义ORA-17029=setReadOnly: 不支持只读连接ORA-17030=仅 READ_COMMITTED 和 SERIALIZABLE 是有效的事务处理级ORA-17031=setAutoClose: 仅支持自动关闭模式打开的情况ORA-17032=行预取不能设置为零ORA-17033=出现格式不正确的 SQL92 串ORA-17034=出现不支持的 SQL92 标记ORA-17035=不支持的字符集 !!ORA-17036=OracleNumber 中的异常ORA-17037=不能在 UTF8 和 UCS2 之间转换ORA-17038=字节数组不够长ORA-17039=Char 数组不够长ORA-17040=必须在连接 URL 中指定子协议ORA-17041=索引中丢失 IN 或 OUT 参数:ORA-17042=无效的批值ORA-17043=流的最大长度无效ORA-17044=内部错误: 未分配数据数组ORA-17045=内部错误: 试图访问批值之外的绑定值ORA-17046=内部错误: 数据访问的索引无效ORA-17047=语法分析类型描述符时出错ORA-17048=未定义的类型ORA-17049=不一致的 java 和 sql 对象类型ORA-17050=矢量中没有这样的元素ORA-17051=此 API 不能用于非 UDT 类型ORA-17052=此 ref 无效ORA-17053=长度无效ORA-17054=LOB 定位器无效ORA-17055=遇到无效字符, 在ORA-17056=不支持的字符集 (在类路径中添加 orai18n.jar)ORA-17057=关闭的 LOBORA-17058=内部错误: 无效的 NLS 转换率ORA-17059=无法转换为内部表示ORA-17060=无法构造描述符ORA-17061=丢失描述符ORA-17062=Ref 游标无效ORA-17063=不在事务处理中ORA-17064=无效的语法或数据库名为空ORA-17065=转换类为空ORA-17066=访问层需要具体实施ORA-17067=指定了无效的 Oracle URLORA-17068=调用中的无效参数ORA-17069=使用明确的 XA 调用ORA-17070=数据大小超出此类型的最大值ORA-17071=超出 VARRAY 的最大限制ORA-17072=对列来说插入的值太大ORA-17074=无效的名称模式ORA-17075=对只转发结果集的无效操作ORA-17076=对只读结果集的无效操作ORA-17077=无法设置 REF 值ORA-17078=无法进行该操作, 因为连接已打开ORA-17079=用户身份证明与现有身份证明不匹配ORA-17080=无效的批处理命令ORA-17081=批处理中出现错误ORA-17082=没有当前行ORA-17083=不在插入行上ORA-17084=访问插入行ORA-17085=出现值冲突ORA-17086=插入行上的未定义列值ORA-17087=可忽略的执行提示: setFetchDirection()ORA-17088=请求的结果类型和并发级别的语法不受支持ORA-17089=内部错误ORA-17090=不允许的操作ORA-17091=在所请求的类型和 (或) 并发级别无法创建结果集ORA-17092=无法在调用处理操作结束时创建或执行 JDBC 语句ORA-17093=OCI 操作返回 OCI_SUCCESS_WITH_INFOORA-17094=对象类型版本不匹配ORA-17095=语句高速缓存大小未作设置ORA-17096=不能为此逻辑连接启用语句高速缓存。ORA-17097=PL/SQL 索引表的元素类型无效ORA-17098=空二进制大对象操作无效ORA-17099=PL/SQL 索引表数组长度无效ORA-17100=数据库 Java 对象无效ORA-17101=OCI 连接池对象中的属性无效ORA-17102=Bfile 为只读ORA-17103=通过 getConnection 返回的连接类型无效。改用 getJavaSqlConnectionORA-17104=要执行的 SQL 语句不得为空白或空值ORA-17105=未设置连接会话时区ORA-17106=指定的 JDBC-OCI 驱动程序连接池配置无效ORA-17107=指定的代理类型无效ORA-17108=没有在 defineColumnType 中指定最大长度ORA-17109=找不到标准 Java 字符编码ORA-17110=执行完毕, 但带有警告ORA-17111=指定的连接高速缓存 TTL 超时时间溢出ORA-17112=指定的线程时间间隔无效ORA-17113=线程时间间隔值大于高速缓存超时值ORA-17114=无法在全局事务处理中使用本地事务处理提交ORA-17115=无法在全局事务处理中使用本地事务处理回退ORA-17116=无法在活动的全局事务处理中启用自动提交功能ORA-17117=无法在活动的全局事务处理中设置保存点ORA-17118=无法获取已命名保存点的 IDORA-17119=无法获取未命名保存点的名称ORA-17120=无法设置启用了自动提交功能的保存点ORA-17121=无法回退到启用了自动提交功能的保存点ORA-17122=无法回退到启用了自动提交功能的保存点ORA-17123=指定的语句高速缓存大小无效ORA-17124=指定的连接高速缓存失活超时时间无效ORA-17125=显式高速缓存返回了不正确的语句类型ORA-17126=固定等待超时时间已过ORA-17127=指定的固定等待超时时间无效ORA-17128=SQL 字符串不是查询ORA-17129=SQL 字符串不是 DML 语句ORA-17132=请求的转换无效ORA-17133=UNUSEDORA-17134=SQL 中命名参数的长度超过 32 个字符ORA-17135=setXXXStream 中使用的参数名在 SQL 中出现多次ORA-17136=格式错误的 DATALINK URL, 请尝试使用 getString()ORA-17137=连接高速缓存未启用, 或者不是启用高速缓存的有效数据源ORA-17138=连接高速缓存名称无效。必须是有效的字符串并且是唯一的ORA-17139=连接高速缓存属性无效ORA-17140=具有此高速缓存名称的连接高速缓存已存在ORA-17141=具有此高速缓存名称的连接高速缓存不存在ORA-17142=具有此高速缓存名称的连接高速缓存已禁用ORA-17143=在连接高速缓存中找到的连接无效或已过时ORA-17144=未执行语句句柄ORA-17145=接收到的 ONS 事件无效ORA-17146=接收到的 ONS 事件版本无效ORA-17147=试图设置未出现在 SQL 中的参数名ORA-17148=方法仅在 Thin 中实施ORA-17149=这已经是代理会话ORA-17150=代码会话的参数错误ORA-17151=Clob 太大, 无法存储在 Java 字符串中ORA-17152=此方法仅在逻辑连接中实施ORA-17153=此方法仅在物理连接中实施ORA-17154=无法将 Oracle 字符映射为 UnicodeORA-17155=无法将 Unicode 映射为 Oracle 字符ORA-17156=数组大小对于端对端的度量值无效ORA-17157=setString 只能处理少于 32766 个字符的字符串ORA-17158=持续时间对该函数无效ORA-17159=要执行端对端跟踪的度量值太长ORA-17160=执行上下文 ID 序列号超出范围ORA-17161=使用的交易模式无效ORA-17162=不支持的 holdability 值ORA-17163=无法在启用连接高速缓存时使用 getXAConnection()ORA-17164=无法在启用了高速缓存的情况下从物理连接调用 getXAResource()ORA-17165=服务器中不存在此连接的 PRIVATE_JDBC 包ORA-17166=无法对 PLSQL 语句执行提取ORA-17167=找不到 PKI 类。要使用 'connect /' 功能, oraclepki.jar 必须位于类路径中ORA-17168=密钥存储遇到问题。请在出现打开的 Wallet (cwallet.sso) 时检查 Wallet 的位置并使用 mkstore 实用程序确保此 Wallet 包含正确的身份证明ORA-17169=无法将流绑定到 ScrollableResultSet 或 UpdatableResultSetORA-17170=名称空间不能为空ORA-17171=属性长度不能超过 30 个字符ORA-17172=属性的值不能超过 400 个字符ORA-17173=并非所有返回参数都已注册ORA-17174=唯一受支持的名称空间是 CLIENTCONTEXTORA-17175=远程 ONS 配置期间出错ORA-17176=无法识别区域设置ORA-17177=对象不使用请求的接口包装任何内容ORA-17178=ANYTYPE pickler 失败ORA-17179=KOTAD 中的幻数不匹配ORA-17180=KOTAD 中的格式错误ORA-17181=字符转换器一般错误ORA-17182=字符转换器溢出错误ORA-17183=字符转换器不可用错误 - 请与 Oracle 技术支持联系ORA-17184=创建 NCLOB 时使用了不正确的形式ORA-17185=连接属性的默认值缺失ORA-17186=连接属性的访问模式缺失ORA-17187=用于存储连接属性的实例变量的类型不受支持ORA-17188=在连接属性的反映过程中出现 IllegalAccessExceptionORA-17189=用于存储连接属性的实例变量缺失ORA-17190=连接属性: 格式错误ORA-17191=无效的提交选项ORA-17192=在已释放 LOB 上的操作ORA-17193=无效的 AQ 消息格式ORA-17194=标记和重设不受此类的支持ORA-17195=标记无效或未设置ORA-17196=预读时的限制太大ORA-17197=参数名的数目与已注册参数的数目不匹配ORA-17198=未设置数据库会话时区ORA-17199=不支持数据库会话时区## No more error messages here################################################################ XA error messages# from 17200 to 17259##############################################################ORA-17200=无法正确地将 XA 打开字符串从 Java 转换成 CORA-17201=无法正确地将 XA 关闭字符串从 Java 转换成 CORA-17202=无法正确地将 RM 名称从 Java 转换成 CORA-17203=无法将指针类型强制转换成 jlongORA-17204=输入数组过短, 无法容纳 OCI 句柄ORA-17205=无法使用 xaoSvcCtx 从 C-XA 获取 OCISvcCtx 句柄ORA-17206=无法使用 xaoEnv 从 C-XA 获取 OCIEnv 句柄ORA-17207=未在数据源中设置 tnsEntry 属性ORA-17213=C-XA 在 xa_open 期间返回 XAER_RMERRORA-17215=C-XA 在 xa_open 期间返回 XAER_INVALORA-17216=C-XA 在 xa_open 期间返回 XAER_PROTOORA-17233=C-XA 在 xa_close 期间返回 XAER_RMERRORA-17235=C-XA 在 xa_close 期间返回 XAER_INVALORA-17236=C-XA 在 xa_close 期间返回 XAER_PROTOORA-17240=无法检索本地主机 IP 地址。出现 UnknownHostException。ORA-17241=无法检索本地主机 IP 地址。出现 SecurityException。ORA-17242=对选项中指定的 TCP 端口进行语法分析时出错。ORA-17243=对选项中指定的 TIMEOUT 值进行语法分析时出错。ORA-17244=对选项中指定的 CHANGELAG 值进行语法分析时出错。ORA-17245=尝试删除的注册使用的不是当前连接到的数据库实例。ORA-17246=监听程序不能为空值。ORA-17247=尝试将监听程序附加到在 JDBC 驱动程序之外创建的注册。ORA-17248=监听程序已经注册。ORA-17249=因为监听程序没有注册, 所以无法删除它。ORA-17250=TCP 端口已经使用。ORA-17251=注册已关闭。ORA-17252=有效负载类型无效或未定义。ORA-17253=名称对于 clientInfo 来说无效或不受支持。ORA-17254=内存不足, 无法分配请求的内存大小ORA-17255=快速连接故障转移一旦启用就无法禁用ORA-17256=此实例属性不可用。ORA-17300=无法通过数据源进行连接ORA-17301=一个或多个验证 RowSet 属性未设置ORA-17302=RowSet 连接未打开ORA-17303=此 JdbcRowSet 实施不允许显示已删除的行ORA-17304=SyncProvider 实例未构造ORA-17305=ResultSet 未打开ORA-17306=RowSet 类型为 TYPE_SCROLL_SENSITIVE 时, 无法应用提取方向ORA-17307=RowSet 类型为 TYPE_FORWARD_ONLY 时, 无法应用 FETCH_REVERSEORA-17308=提取方向非法ORA-17309=RowSet 没有启用写入ORA-17310=参数索引无效ORA-17311=将列转换为流类型时出错ORA-17312=无法将列转换为流类型ORA-17313=行位置无效, 请先尝试调用下一行/上一行ORA-17314=操作对于类型为 TYPE_FORWARD_ONLY 的 RowSet 无效ORA-17315=未更改任何行ORA-17316=toCollection() 中的映射操作失败ORA-17317=未插入该行ORA-17318=未删除该行ORA-17319=未更新该行ORA-17320=行中的列没有全部设置ORA-17321=将读进程转换为字符串时出错ORA-17322=无法读取流ORA-17323=无效的参数类型ORA-17324=无效的键列数ORA-17325=无效的页大小ORA-17326=尝试将已插入行标记为原始行ORA-17327=调用 insertRow 之前对此行的操作无效ORA-17328=基础 ResultSet 不支持此操作ORA-17329=不预先执行分页操作就无法调用此操作ORA-17330=指定的行参数的数目无效ORA-17331=起始位置不应为负数ORA-17332=提供的用于置入的 ResultSet 为空值ORA-17333=在此位置开始置入的行太少ORA-17334=没有设置匹配列索引ORA-17335=没有设置匹配列名ORA-17336=匹配列索引无效ORA-17337=匹配列名无效ORA-17338=无法设置匹配列索引ORA-17339=无法设置匹配列名ORA-17340=尚未设置要取消设置的列索引ORA-17341=尚未设置要取消设置的列名ORA-17342=无法获取连接ORA-17343=无法对 SQL 字符串进行语法分析以获得表名。ORA-17344=RowSet 滚动类型不正确ORA-17345=该对象不满足过滤标准ORA-17346=SerialBlob 构造器ORA-17347=SerialClob 构造器ORA-17348=错误, 无法复制对象的副本ORA-17349=创建对象副本时出错ORA-17350=空 RowSet 参数无效ORA-17351=该参数不是 RowSet 实例ORA-17352=联接类型不受支持ORA-17353=行集中元素的数目不等于匹配列数ORA-17354=尚不支持第三方 RowSet 联接ORA-17355=读进程无效ORA-17356=写进程无效ORA-17357=值错误; 属性不可为空值ORA-17358=值错误; 元数据不可为空值ORA-17359=无效的 WebRowSet 参数ORA-17401=违反协议ORA-17402=只期望得到一个 RPA 消息ORA-17403=只期望得到一个 RXH 消息ORA-17404=收到超过预期的 RXDORA-17405=UAC 长度不为零ORA-17406=超出缓冲区的最大长度ORA-17407=无效的类型表示 (setRep)ORA-17408=无效的类型表示 (getRep)ORA-17409=无效的缓冲区长度ORA-17410=无法从套接字读取更多的数据ORA-17411=数据类型表示不匹配ORA-17412=类型长度大于最大值 使用dbvis7版本的工具这个错误ORA-17413=超出关键字大小ORA-17414=缓冲区容量不足以存储列名ORA-17415=尚未处理此类型ORA-17416=FATALORA-17417=NLS 问题, 无法对列名进行解码ORA-17418=内部结构的字段长度错误ORA-17419=返回的列数无效ORA-17420=未定义 Oracle 版本ORA-17421=未定义类型或连接ORA-17422=工厂中的无效类ORA-17423=在未定义 IOV 的情况下使用 PLSQL 块ORA-17424=尝试不同的编组操作ORA-17425=返回 PLSQL 块中的流ORA-17426=IN 和 OUT 的绑定均为 NULLORA-17427=使用未初始化的 OACORA-17428=连接后必须调用登录ORA-17429=必须至少与服务器连接ORA-17430=必须登录到服务器ORA-17431=要分析的 SQL 语句为空ORA-17432=all7 中的无效选项ORA-17433=调用中无效的参数ORA-17434=不在流模式下ORA-17435=IOV 中无效的 in_out_binds 个数ORA-17436=无效的 outbinds 数ORA-17437=PLSQL 块 IN/OUT 参数中出现错误ORA-17438=内部 - 不期望的值ORA-17439=无效的 SQL 类型ORA-17440=DBItem/DBType 为空ORA-17441=不支持的 Oracle 版本。支持的最低版本为 7.2.3。ORA-17442=Refcursor 值无效ORA-17444=不支持从服务器接收到的 TTC 协议版本ORA-17445=LOB 已在同一个事务处理中打开ORA-17446=LOB 已在同一个事务处理中关闭ORA-17447=OALL8 处于不一致状态ORA-17448=事务处理目前正在使用中
-
项目里面用oracle里面存的json存的保单信息,该怎么获取我要的值呢
-
一、安装环境依赖1、下载Visual C++连接不同版本的Oracle数据库,需要安装不同版本的Visual C++。Oracle数据库的版本信息可以咨询相关服务器负责人,或者通过其他数据库连接工具连接查询,查询的SQL语句如下:select * from v$version用户可以在Windows系统的 设置 - 应用 - 应用和功能 中搜索 visual 关键词查看系统中是否已安装相关版本的Visual C++ Oracle数据库服务器版本和Visual C++版本的对应关系如下:Oracle版本Visual C++版本Visual C++下载连接21版本及以上VS 2019cid:link_219版本VS 2017cid:link_212.2至18版本VS 2013cid:link_312.1版本VS 2010cid:link_011.2版本及以下VS 2015cid:link_1以上对应关系参考自:cid:link_6点击上面下载连接后,根据操作系统位数选择对应的exe文件下载连接(下图以VS 2013为例) 2、安装Visual C++双击exe安装包,勾选同意条款,点击Install进行安装 3、下载Oracle Instant ClientOracle Instant Client的版本与Oracle服务器版本一致下面为Oracle Instant Client对应32位和64位系统的下载链接:系统位数下载链接32位cid:link_464位cid:link_5注意:在Oracle官网下载软件需要登录Oracle账户在上述的下载页面中,找到对应的Version部分,选择 Base - one of these packages is required 部分,下载表格中的第一行的zip包链接,第一行的Name通常是 Basic Package 或者 Instant Client Package - Basic下图以12.2.0.1.0版本为例 4、安装Oracle Instant Client下面以 instantclient-basic-nt-12.2.0.1.0.zip 压缩包为例将压缩包解压到任意目录,比如:C:\Program Files\instantclient-basic-nt-12.2.0.1.0右击桌面的 此电脑 ,选择属性选择 高级系统设置 - 环境变量在用户的 Path 变量中添加解压后的文件夹路径一路点击确定按钮使其保存,重启电脑 使Oracle Instant Client生效二、命令参数填写1、数据库类型选择oracle2、IP地址填写Oracle数据库所在的IP地址,默认连接本地Oracle数据库3、端口号填写Oracle数据库开放的端口号,默认为15214、用户名、密码填写Oracle数据库注册的用户名和密码5、数据库名称在这里指代的不是数据库名称,而是SERVICE_NAME或SID6、字符集编码通常无需修改,默认为utf87、安全连接默认为证书连接,而证书连接需要配置wallet,通常并不涉及,需要将此参数设置为不安全连接
-
> Oracle原存储过程Procedure xxxLog ( p_row test1%ROWTYPE ) IsBegindelete from test1 awhere a.t_period = p_row.t_period and (a.t_code=p_row.t_code or p_row.t_code is null);insert into test1 values p_row;commit;end xxxLog;> 改写GaussDB(DWS)语法示例CREATE FUNCTION xxxLog ( p_row test1 ) AS $$Begindelete from test1 awhere a.t_period = p_row.t_period and (a.t_code=p_row.t_code or p_row.t_code is null);insert into test1 values (p_row.*);END;$$ LANGUAGE plpgsql;即:1、入参时 p_row test1%ROWTYPE 调整为 p_row test1,即可表示引用test1表的字段类型;2、插入全部数据时 values p_row 调整为 values (p_row.*),即表示当前行所有信息;3、其它对于ROWTYPE定义的用法一致。> 实验示例create table test1 ( a int,b int);create table test2 ( a int,b int);CREATE FUNCTION merge_fields(t_row public.test1) RETURNS text AS $$DECLARE t2_row public.test2%ROWTYPE;BEGIN select * INTO t2_row FROM public.test1 where a=t_row.a; delete from public.test1 where a=t_row.a; insert into public.test2 values (t2_row.*); return 'from:'||t_row.a||'-'||t_row.b||' to:'||t2_row.a||'-'||t2_row.b;END;$$ LANGUAGE plpgsql;insert into test1 values(444000,2);select merge_fields(t1.*) from test1 t1 WHERE a=444000;select * FROM public.test1 where a=444000;select * FROM public.test2 where a=444000;
-
/* 分为四步 */ /* 第 1 步:创建临时表空间 (注意:D:\Project\OracleTableSpace\FHADMIN\ 手动创建路径) */ create temporary tablespace C##FHADMIN_TEMP tempfile ‘C:\OracleTableSpace\FHADMIN\C##FHADMIN_TEMP.dbf’ size 50m autoextend on next 50m maxsize 20480m extent management local; /* 第 2 步:创建数据表空间 */ create tablespace C##FHADMIN_DATA logging datafile ‘C:\OracleTableSpace\FHADMIN\C##FHADMIN_DATA.dbf’ size 50m autoextend on next 50m maxsize 20480m extent management local; /* 第 3 步:创建用户并指定表空间 密码是 root */ create user C##FHADMIN identified by root default tablespace C##FHADMIN_DATA temporary tablespace C##FHADMIN_TEMP; /* 第 4 步:给用户授予权限 java 项目 fhadmin.cn */ grant connect,resource,dba to C##FHADMIN; ========================================================= ———————————————— 原文作者:FH-Admin 转自链接:https://learnku.com/articles/65934 版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
-
介绍ora2og是一个将Oracle数据库迁移至openGauss的工具,主要编程语言为perl,通过perl DBI模块连接Oracle数据库,自动扫描并提取其中的对象结构及数据,产生SQL脚本,通过手动或自动的方式应用到openGauss。此外,工具还提供丰富配置项,用户可以自定义迁移行为。ora2og初始代码源自ora2pg,一个将Oracle迁移至PostgreSQL的开源工具。版本为release v21.1:https://github.com/darold/ora2pg/tree/v21.1。优秀特性支持导出数据库绝大多数对象类型,包括表、视图、序列、索引、外键、约束、函数、存储过程等。提供PL/SQL到PL/PGSQL语法的自动转换,一定程度避免了人工修正。可生成迁移报告,包括迁移难度评估、人天估算。可选对导出数据进行压缩,节约磁盘开销。配置选项丰富,可自定义迁移行为。执行迁移环境本篇使用环境:Oracle : 华为云服务器2核4G + CentoOS 7.6 +Oracle 11.2openGauss:华为云服务器2核4G + CentoOS 7.6 +openGauss 3.1.0极简版两台节点网络互通迁移前准备Ora2og工具既可以安装在Oracle服务器上,也可以安装在openGauss服务器上。本篇中将工具部署在Oracle服务器上。注意,如果安装在openGauss上时,需要在服务器上安装Oracle客户端。下载路径:cid:link_0 软件安装Ora2Pg语言为perl,故需安装所需perl模块。# root用户下操作yum install -y perl-ExtUtils-CBuilder perl-ExtUtils-MakeMakeryum install perl-CPAN安装DBI、JSON、DBD:Pg、DBD:Oracle,Ora2Pg依赖这些软件去连接数据库。perl -MCPAN -e 'install DBI'perl -MCPAN -e 'install JSON'perl -MCPAN -e 'install DBD::Pg'export ORACLE_HOME=/u01/app/oracle/product/11.2.0/export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/lib使用 perl -MCPAN -e 'install DBD::Oracle' 安装报错了,换了另一种自己编译的方式。[root@oraclehost ora2pg-master]# perl -MCPAN -e shell......cpan[1]> get DBD::Oracle........Checksum for /root/.cpan/sources/authors/id/Z/ZA/ZARQUON/DBD-Oracle-1.83.tar.gz ok......cpan[2]> quit[root@oraclehost ora2pg-master]# cd /root/.cpan/sources/authors/id/Z/ZA/ZARQUON/[root@oraclehost ZARQUON]# tar -zxvf DBD-Oracle-1.83.tar.gz[root@oraclehost ZARQUON]# cd DBD-Oracle-1.83[root@oraclehost DBD-Oracle-1.83]# perl Makefile.PL[root@oraclehost DBD-Oracle-1.83]# make && make installora2og工具安装安装Ora2Pg 为目标安装路径,为下载的代码路径。 如果服务器上没有git的话,可以从网站把源码包下载再解压。mkdir -p /opt/software/ora2pggit clone cid:link_2# 进到代码目录下perl Makefile.PL PREFIX=make && make install# 设置环境变量,查看是否安装成功export PERL5LIB=/libexport PATH=$PATH:/usr/local/bin需要确保bin路径下有ora2pg这个文件,否则命令找不到。执行ora2pg --help 创建迁移项目ora2pg --init_project oramig创建迁移项目后会在当前目录下生成oramig目录模板,如下所示。其中主要包含两个脚本export_schema.sh和import_all.sh,后续导出和导入即使用这两个脚本。schema和sources目录存放各对象的DDL语句,区别在于schema存放PL/SQL语法转化为PL/PGSQL后的语句, sources目录存放转化前PL/SQL的语句,data目录存放表数据文件,config目录包含配置文件ora2pg.conf,reports目录存放迁移报告。Oracle建个表,用来做测试数据create table customerchat.test(name char(10));insert into customerchat.test values('opengauss');create table customerchat.xxx(name char(20));insert into customerchat.xxx values('yy');openGauss侧新建数据库mydb和用户tuser ,迁移时会用到。mydb=#create database mydb;mydb=# CREATE USER tuser WITH PASSWORD '自己定义';mydb=# GRANT ALL PRIVILEGES TO tuser;mydb=# alter database mydb owner to tuser;配置ora2pg.conf注意路径,后面执行sh的时候会找config/ora2pg.conf。cp <your_install_dir>/etc/ora2pg/ora2pg.conf.dist /config/ora2pg.confORACLE相关参数:ORACLE_HOME /u01/app/oracle/product/11.2.0/ORACLE_DSN dbi:Oracle:host=oracleIP;sid=orcl;port=1521ORACLE_USER customerchat // 这里用的oracle普通用户和密码ORACLE_PWD XXXXXSCHEMA customerchat //一般和用户名一样openGauss相关参数:PG_DSN dbi:Pg:dbname=mydb;host=localhost;port=5432PG_USER tuserPG_PWD 自己定义的密码工具自身参数:DATA_LIMIT 默认是10000,如果oracle服务器内存较小,比如4G以下,可以修改为2500或5000,否则可能会报内存不足。更多更详细的配置项说明,可查看官网:https://ora2pg.darold.net/documentation.html测试一下配置:执行 ora2pg -t SHOW_VERSION -c config/ora2pg.conf 会返回连接的Oracle版本号。测试迁移修改迁移工具oramig目录下export_schema.sh中导出类型EXPORT_TYPE和SOURCE_TYPE,本次迁移导出TABLE。在oramig目录下执行sh export_schema.sh执行完成后 在schema/tables生成 table.sql ,里面是建表脚本。reports/目录下生成的report报告还是在oramig目录下执行导入为了使用openGauss命令行工具gsql,需要将数据库的bin和lib加在操作系统的环境变量PATH和LD_LIBRARY_PATH中。可以直接root用户执行gsql测试下。3. 将import_all.sh里的psql修改为gsql。执行导入脚本,表示使用用户tuser登录openGauss中mydb的数据库,ip和端口,-f选项表示跳过用户和数据库是否需要创建的检查。sh import_all.sh -d mydb -o tuser -h openGaussIP -p 5432 -f执行成功。可以看到表和数据都已经迁移过来。Ora2Pg不足Ora2Pg对PL/SQL和PL/PGSQL的语法转换处理采用正则表达式和文本替换的方式,先天设计不足,很难覆盖所有的语法,目前仅支持部分转换。因此,Ora2Pg可以满足SQL简单的应用迁移,对于复杂的语法,并不能完全保证转换的正确性,需要对生成的SQL语句进行核对,必要时需要人工修正。FAQ报错:Path to pg_config? /opt/software/openGauss/bin/pg_config/opt/software/openGauss/bin/pg_config: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory环境自带的是1.0.2,得升级libssl.so。[root@oraclehost ~]# openssl version -aOpenSSL 1.0.2k-fips 26 Jan 2017yum remove openssl获取新的版本并安装wget https://www.openssl.org/source/openssl-1.1.1c.tar.gztar -zxvf openssl-1.1.1c.tar.gzcd openssl-1.1.1c./config --prefix=/usr/local/openssl #如果此步骤报错,需要安装perl以及gcc包make && make installln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1ln -s /usr/local/openssl/bin/openssl /usr/bin/opensslln -s /usr/local/openssl/include/openssl /usr/include/opensslecho "/usr/local/openssl/lib" >> /etc/ld.so.confldconfig -vsudo yum install postgresql-devel再重新执行 perl -MCPAN -e 'install DBD::Pg'2、perl 报错 Can’t locate JSON.pm in @INC解决:sudo perl -MCPAN -e 'install JSON'3、如何查看SID ?SQL> select instance_name from V$instance;4、执行 ora2pg -t SHOW_VERSION -c ora2pg.conf 报错FATAL: -1 ... ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc.Aborting export...Export $ORACLE_HOME了半天,发现原来是 ora2pg.conf 里面配置的ORACLE_HOME 不对5、执行ora2pg -t SHOW_VERSION -c ora2pg.conf报错FATAL: 12505 ... ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach)Aborting export...解决办法 SID配置有问题 或者 /etc/hosts有问题。参考下面连接解决https://www.shuzhiduo.com/A/6pdDw0bl5w/6、执行 ora2pg -t SHOW_VERSION -c config/ora2pg.conf 报错install_driver(Oracle) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190.解决办法export LD_LIBRARY_PATH=$ORACLE_HOME/lib7、执行 ora2pg -t SHOW_VERSION -c ora2pg.conf报错FATAL: ORA-08178: illegal SERIALIZABLE clause specified for user INTERNAL (DBD ERROR: OCIStmtExecute)解决办法:不要使用sys用户,使用普通oracle用户(没有可新建),然后修改 ora2pg.conf中的用户名和密码8、执行sh import_all.sh -d mydb -o tuser -h IP -p 5432 -f 提示Out of memory , 但是top显示还有1G多。解决办法:Opened ./config/ora2pg.conf and modfied set DATA_LIMIT 5000 or 2500 solved the issue.9、报错:DBD::Pg::db do failed: ERROR: permission denied for relation xxx解决办法:需要给openGauss的角色赋权限mydb=# grant all privileges to tuser;10、报错: DBI connect('dbname=mydb;host=openGaussIP;port=5432','testuser',...) failed: connection to server at "openGaussIP", port 5432 failed: none of the server's SASL authentication mechanisms are supported at /opt/software/ora2pg/lib解决办法:这个错是openGauss返回的。需要把openGauss的pg_hba.conf & postgres.conf再搞下。修改 data/single_node/postgresql.conf 中password_encryption_type = 1 。修改pg_hba.conf 中然后重启openGauss:gs_ctl restart -D /opt/software/openGauss/data/single_node
-
一、前言最近一直在忙处理搭建环境的事情,也是踩了许多坑,真的是纸上得来终觉浅,才知此事要躬行。本来之前没开始弄之前,觉得这就是导入导出数据么 ,没有什么弄的。真的是印证了一句话细节是魔鬼。二、开始本来计划是在windows下来进行数据操作的,但是一顿操作猛如虎,一看没装客户端 。人都傻了好吗 。然后就没办法,硬着头皮在linux下进行了这次的数据还原。细节1.文件权限。当时备份的时候用的是一个用户(大佬搞的 ),然后我unzip的时候用的是另一个用户,我也没ll查看下 ,直接就unzip了 。然后就G了。然后就是改权限了 ,chown -R yonghu:zu /xx/xx 路径。按照如上命令修改了 zip包的权限。注意 必须是高权限才能改,低权限用户无法修改高权限用户的文件权限。-R处理指定目录以及其子目录下的所有文件。 如果是给文件夹授权的话 就不需要然后就顺便整理一下chown的命令chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组命令举例chown user file的到zip包之后就是在oracle客户端进行导入。/home/oracle/package/instantclient_12_2/imp 数据库用户schema/数据库密码@192.1.1.1:1521/oracl fromuser...... touser tables=xx按照需求进行参数配置。因为数据量比较大大概100G 左右,所以在建表空间的时候就出了个问题 。。细节二:表空间单文件不能超过32G之前数据量没这么大,也没注意过,然后直接一顿操作直接建了一个120G 的表空间 。 然后sql就一直执行 等了半小时都不见反应 我就意识到有问题了 。急忙打开搜索,才知道不能超过32G 。(题外话,执行的sql中断都没用,执行了16个小时候才失败。。。有大佬知道这种情况 怎么能不让他执行了么)SELECT a.tablespace_name "表空间名",total "表空间大小",free "表空间剩余大小",(total - free) "表空间使用大小",total / (1024 * 1024 * 1024) "表空间大小(G)",free / (1024 * 1024 * 1024) "表空间剩余大小(G)",(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",round((total - free) / total, 4) * 100 "使用率 %"FROM (SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY tablespace_name) a,(SELECT tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY tablespace_name) bWHERE a.tablespace_name = b.tablespace_name这个是查询表空间大小的语句 。select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name通过这个sql查出来表空间文件的存放路劲alter tablespaceadd datafile '/u02/app/oracle/oradata/datafile/.dbf'size 30000m增加文件扩展表空间 扩大30000m。因为表空间的问题,半天搞完的事情搞了一天半。。。记录下来,避免踩坑。
-
关于内存对齐计算机内存是以字节(Byte)为单位划分的,理论上 CPU 可以访问任意编号的字节,但实际情况并非如此。 对于一个数据总线宽度为32位的CPU,实际寻址的步长为4个字节,也就是只对编号为 4 的倍数的内存寻址,例如0、4、8、12、1000等,而不会对编号为 1、3、11、1001 的内存寻址。(64位的处理器也是这个道理,每次读取8个字节)。以32位CPU寻址为例:这样做可以以最快的速度寻址:不遗漏一个字节,也不重复对一个字节寻址。对于程序来说,一个变量最好位于一个寻址步长的范围内,这样一次就可以读取到变量的值;如果跨步长存储,就需要读取两次,然后再拼接数据,效率显然降低了。当数据在 2-5 中,32位CPU 在读取时实际上是先读取 0-3 ,然后再读取 4-7 字节,再将两次获得的数据进行合并,最后获得所需的四字节数据。再比如一个 int 类型的数据,如果地址为 8,那么很好办,对编号为 8 的内存寻址一次就可以。将一个数据尽量放在一个步长之内,避免跨步长存储,这称为内存对齐。结构体内存对齐为了提高存取效率,编译器会自动进行内存对齐,请看下面的代码:#include #include struct{ int a; char b; int c; }t={ 10, 'C', 20 }; int main(){ printf("length: Þd42fe4d-c5ef-4447-bc34-03702c69afd5n", sizeof(t)); printf("&a: %X\n&b: %X\n&c: %X\n", &t.a, &t.b, &t.c); system("pause"); return 0; }在32位编译模式下的运行结果:length: 12 &a: B69030 &b: B69034 &c: B69038如果不考虑内存对齐,结构体变量 t 所占内存应该为 4+1+4 = 9 个字节。考虑到内存对齐,虽然成员 b 只占用 1 个字节,但它所在的寻址步长内还剩下 3 个字节的空间,放不下一个 int 型的变量了,所以要把成员 c 放到下一个寻址步长。剩下的这 3 个字节,作为内存填充浪费掉了。编译器之所以要内存对齐,是为了更加高效的存取成员 c,而代价就是浪费了3个字节的空间。通过上面例子可以得出:结构体变量的起始地址需要让自身变量宽度整除,如果不能就需要往前面填充字节,而在计算结构体大小时还有一个规则,结构的总大小必须可以被最宽成员的大小整除,如果不能则在后面补充字节全局变量内存对齐除了结构体,变量也会进行内存对齐,请看下面的代码:#include #include int m; char c; int n; int main(){ printf("&m: %X\n&c: %X\n&n: %X\n", &m, &c, &n); system("pause"); return 0; }运行结果:&m: DE3384 &c: DE338C &n: DE3388字节对齐: 一个变量占用 n 个字节,则该变量的起始地址必须是 n 的整数倍,即:起始存放地址 % n = 0,如果不够则补齐字节可见它们的地址都是4的整数倍,并相互挨着。内存对齐虽然和硬件有关,但是决定对齐方式的是编译器,如果你的硬件是64位的,却以32位的方式编译,那么还是会按照4个字节对齐。 对齐方式可以通过编译器参数修改。设置对齐系数在内存要求很高的时候,我们可以放弃空间换时间,改成时间换空间,我们自定义对齐,而不全部按照编译器默认对齐方式,通过 #pragma pack(n) 来改变结构体成员的对齐方式, n 可以定义为 1、2、4、8、16我们看例子:// 我们通过切换系数查看不同占用大小 #pragma pack(1) struct Struct1 { char a;//1byte int b;//4byte char c;//1byte } t; #pragma pack() int main(){ printf("length: Þd42fe4d-c5ef-4447-bc34-03702c69afd5n", sizeof(t)); printf("&a: %X\n&b: %X\n&c: %X\n", &t.a, &t.b, &t.c); return 0; }输出:length: 6 &a: 407970 &b: 407971 &c: 407975从上图可以看出,系数改变后,内存占用大小确实发生了变化吗,而规则主要是:变量宽度与对齐系数进行比较,谁小使用哪个进行对齐。例如当 pack(1) 时, a 占用 1个byte,b 需要 4个byte,但与系数比较是大于系数的,所以按照 1个byte 进行对齐,则紧挨着 a 的内存, c 也是同理系数N = Min(最大成员宽度,对齐系数),当然结构体整体大小还得是N的整数倍,不是整数倍需要补齐字节总结读完这篇文章可以知道内存对齐是一种空间换时间的策略结构体计算内存大小有以下规则:结构体变量的起始地址能够被其最宽的成员大小整除结构体每个成员相对于起始地址的偏移能够被其自身大小整除,如果不能则在前一个成员后面补充字节结构体总体大小能够被最宽的成员的大小整除,如不能则在后面补充字节在内存紧缺的时候还可以手动设置对齐系数,转换策略实际上字节对齐并非真正表示这个变量实际内存大小就是对齐后的大小,变量真实大小并未改变,对齐是编译器处理的,想了解更多可以细看一下编译原理。
-
最近因为要搞一套测试环境,需要自己安装下oracle测试库,于是就有了这篇踩坑记。1.oracle安装包的下载 。因为我们用的版本是12C企业版 ,要下载数据库当然本能反应就是去官网啦,但是当我登录进官网之后大写的懵,怎么只有19和21版。我人傻了啊。这就搞住了啊 ,为了和生成环境数据库版本一致,我就在某du上面找相关资源,但是 一资源版本不匹配。二,部分还需要特定积分,三,下载站的广告起飞。在一番探索之后我在官网上找到了其他版本下载的链接界面,注册账号之后进去懵了 。这是什么鬼啊。然后一番点击之后无果。然后就突然想是不是我刚注册账号的原因呢 ,于是借用同事账号登录的到如下界面。啊哈哈哈 ,好像终于看到希望了。果然接下来就是在搜索框搜索你需要的版本,然后点击下载然后点击之后 就是不跳转下载,就纳闷了 ,结果往上看需要点击继续才可以进行下一步,接下来就是选择你的平台,然后需要下载的内容,我这里需要只是客户端。 这些就不放图了 大家应该都会。至此,第一步就下载成功了 。2.安装环境的准备我们用的也是华为云的服务器,centos8,oracle12c。繁杂的命令是真记不住 就某du搜索复制了下 ,本想这一路傻瓜式安装就可以了 ,包又安不上了 。。可真是一波三折啊。然后就手动安装了一下这个包,按照教程修改配置,创建用户1)关闭防火墙执行以下命令禁用并关闭防火墙systemctl disable firewalldsystemctl stop firewalld(2)关闭selinux执行vim /etc/selinux/config修改编辑config文件,将SELINUX设置成disabled,(3)修改Linux内核参数执行vim /etc/sysctl.conf,在sysctl.conf文件末尾添加如下参数,然后执行sysctl -p命令,使得配置的内核参数生效fs.aio-max-nr=1048576fs.file-max=6815744kernel.sem=250 32000 100 128kernel.shmall=2097152kernel.shmmax=2147483648kernel.shmmni=4096net.core.rmem_default=1048576net.core.rmem_max=4194304net.core.wmem_default=262144net.core.wmem_max=1048576net.ipv4.ip_local_port_range=9000 65500(4)安装Oracle12c的依赖包yum安装oracle数据库所需要依赖包,如果一次安装失败,可以多试几次,是可以安装成功的yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat(5)创建Oracle用户和用户组依次执行下面命令创建oracle用户和用户组,然后后执行id oracle,如果显示如下图那样,说明创建成功groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oracleecho "oracle" | passwd oracle --stdin(6)修改oracle用户权限文件执行vim /etc/security/limits.conf,在文件中添加以下内容oracle soft nofile 65536oracle hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft stack 10240/etc/pam.d/login,在文件中添加以下内容session required /lib64/security/pam_limits.sosession required pam_limits.so执行vim /etc/profile,在文件中添加以下内容,然后执行source /etc/profile使得修改生效#oracle configif [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi(7)创建安装目录和文件权限mkdir -p /u1/database/oracle/product/12.2.0mkdir /u1/database/oracle/oradatamkdir /u1/database/oracle/inventorymkdir /u1/database/oracle/fast_recovery_areachown -R oracle:oinstall /u1/database/oracle/chmod -R 755 /u1/database/oracle/(8)配置Oracle环境变量执行vim /home/oracle/.bash_profile,在文件中添加如下内容,然后执行source /home/oracle/.bash_profile,使得环境变量生效umask 022ORACLE_BASE=/u1/database/oracleORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1ORACLE_SID=orclPATH=$PATH:$ORACLE_HOME/binLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/12.2.0/lib:$LD_LIBRARY_PATHLANG=Cexport ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH LANG下来就是漫长的上传zip包了 。然后在按照脚本来执行解决方法:参照centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed_黄宝康的博客-CSDN博客继续执行 结果有报错了 搜索得知是缺少libnsl package 安装libnsl package : #yum install libnsl.x86_64 之后就按照网上的教程 一路执行下去啦 。搞得人心累
-
OS 版本:openEuler release 22.03 LTS问题:openEuler 22 能否安装Oracle 19c 数据库?
-
Oracle 较上月减少了 19.50 分,是本月分数下降最多的数据库,并且连续两个月出现了下滑。分数上涨较多的则是 MySQL 和 MongoDB,两者分别增加了 7.98 和 4.68 分。DB-Engines 数据库流行度排行榜发布了 8 月份的更新。可以看到,Oracle 较上月减少了 19.50 分,是本月分数下降最多的数据库,并且连续两个月出现了下滑。分数上涨较多的则是 MySQL 和 MongoDB,两者分别增加了 7.98 和 4.68 分。不过和去年同期相比,三巨头(Oracle、MySQL 和 SQL Server)和 MongoDB 的分数均下降了不少。与之形成对比的 PostgreSQL 则保持着稳定的上升趋势,其每月流行度分数跟去年同期相比都有不少的上涨。下表是 TOP 10 数据库的最新分数和变化情况。继续看看主流数据库的分数趋势变化:最后看看各类型数据库的排名情况。关系数据库前 10 名Key-Value 数据库前 10 名文档数据库前 10 名时序数据库前 10 名图数据库前 10 名DB-Engines 根据流行度对数据库管理系统进行排名,排名每月更新一次。排名的数据依据 5 个不同的指标:Google 以及 Bing 搜索引擎的关键字搜索数量Google Trends 的搜索数量Indeed 网站中的职位搜索量LinkedIn 中提到关键字的个人资料数Stackoverflow 上相关的问题和关注者数量这份榜单分析旨在为数据库相关从业人员提供一个技术方向的参考,其中涉及到的排名情况并非基于产品的技术先进程度或市场占有率等因素。无论排名先后,选择适合与企业业务需求相比配的技术才是最重要的。来源:OSCHINA
-
Oracle数据库经过40多年的发展,已经发展了丰富多样和成熟的能力。Oracle也没有故步自封,一直在根据行业的发展趋势和基于用户的业务需求来探索和发展新的能力,如融合化,自治化等。Oracle数据库的核心能力就体现在接下来要介绍的解决方案当中,而这些方案也是支持前述用户关系的数字化转型,数据底座等方案的重要基础。这些方案涉及到数据的方方面面,包括数据管理,数据分析,数据安全,数据保护,数据集成等。熟悉Oracle的朋友,一定对MAA不会陌生。MAA表示Oracle 最高可用性体系结构,是建设用户业务连续性的蓝图和最佳实践。MAA可以最大程度提高系统可用性,并在系统可用性、服务质量和数据保护方面达到最严苛的服务级别协议 (SLA) 要求。MAA涉及的领域非常广泛,但最核心的3个方面包括备份,高可用(HA)和灾难恢复(DR)。备份是业务连续性保护的起点和底线,业务也许可以停,但数据一定不能丢。Oracle 零数据丢失恢复一体机(简称为ZDLRA或RA)是一款集成式数据保护解决方案,有助于消除整个企业中所有 Oracle 数据库的数据丢失风险。利用实时Redo传输技术,所有数据更改都会立刻记录到恢复一体机中,一旦发生故障或勒索软件攻击时,数据库可以恢复到故障发生时刻的前一秒内。恢复一体机提供基于验证的自动化的永远增备方法,这消除了对耗时的全量备份的需求,并可将数据库服务器和管理资源释放出来用于生产负载。此外,恢复自动化、备份不可更改和高可用性架构可帮助企业满足政府对于保护和快速恢复关键数据的要求。备份的下一阶段是高可用。数据库高可用在硬件层面通过冗余部件实现,在软件层面则是通过RAC,即真正应用集群。Oracle RAC允许客户在多个服务器上运行单个 Oracle 数据库,以最大限度地提高可用性并在访问共享存储时实现水平可扩展性。连接到 Oracle RAC 实例的用户会话可以在中断期间进行故障转移并安全地重放更改,而无需对最终用户应用程序进行任何更改,从而隐藏了中断的影响并提升了用户体验。为防止整个站点失效,还可以进一步实施灾难恢复或灾备方案。Oracle数据库标准的灾备组件为ADG,即活动数据卫士。ADG支持丰富的Redo传输模式(同步,异步,Far Sync),数据保护模式(最大性能,最大可用和最大保护),备库模式(物理备库,快照备库和逻辑备库)和拓扑结构(一对一,一对多,级联),可实现深度的Oracle数据库保护。同时,ADG管理运维简单,可实现一键式数据库切换和回切。由于备库可读,因此可以将查询,分析,备份等负载在备库运行,减轻生产端数据库的负担,提升灾备的投资回报率。Oracle GoldenGate(OGG)本质上属于数据集成产品,当与其他 Oracle MAA 技术结合使用时,OGG 消除了日常数据库维护和升级、操作系统补丁、应用程序升级和平台迁移期间的停机时间。所有操作都受到故障恢复功能的保护,消除了丢失数据的风险。OGG 可以部署在双活或多活配置中,以实现数据库可扩展性或分布式同步。OGG的多活特性和ADG配合,可以构成Oracle数据库最高级别的业务连续性保障方案。如果说软件是思想,硬件则是身体,两者不可偏废。Exadata作为承载Oracle数据库的首选平台,本身也结合了MAA最佳实践,并且提供私有云,专有云和公有云多种部署方式。在经历了存储整合、服务器整合、桌面整合后,企业逐渐将重点转向数据层面的整合。Oracle相应推出了数据库整合解决方案,即DBaaS(数据库即服务)。组织之所以被 DBaaS 所吸引,是因为它可以简化 IT 基础架构,从而可以方便地从同一个硬件和软件基础架构为许多用户和多个部门提供数据库功能,同时还能使手工供应流程实现自动化。在传统环境中供应新数据库可能需要数天甚至数周时间。而 DBaaS 可以使这个时间缩短为寥寥数分钟。更简单的 IT 基础架构可确保更大的业务敏捷性和更低的风险及成本。DBaaS 最吸引人的另一个方面是,整合能带来更小的硬件空间占用,这会降低成本。此外,许多用户和部门在为自己的数据库服务付费的同时共享基础架构,这会降低这些服务的单价。Oracle DBaaS解决方案的三个技术核心组件为数据库软件层面的多租户选件(Multitenant),数据库硬件层面的Exadata,以及数据库运维管理层面的Oracle企业管理器(Enterprise Manager)。Oracle Multitenant 可将 Oracle 数据库“转变”为容器数据库 (CDB),一个 CDB 可整合多个可插拔数据库 (PDB),从而提高资源利用率、优化管理和增强整体安全性。Multitenant的多合一管理可以简化运维,PDB的克隆,快照和增量可刷新功能可快速提供生产数据库最新副本,支持多样化的开发和测试需求。Oracle 企业管理器是Oracle数据库首选运维管理解决方案,专为监控和管理本地部署和云环境中的Oracle 数据库和集成系统而设计。Oracle 企业管理器针对数据库的主要功能包括:- 数据库性能管理,帮助 DBA 快速发现和修复性能问题。- 数据库运营自动化,包括大规模自动化运营、自动化供应和克隆、配置管理、安全性和合规性实施等。- 针对Oracle数据库和Exadata的企业级监控和一体化管理。Oracle Exadata是理想的数据库整合平台。由于 Exadata 数据库云平台可提供超强性能、大存储容量和独有的压缩功能,因此,原本需要超大型传统硬件系统的负载现在可以在小得多的 Exadata 系统上运行。在选型方面,与传统系统相比,Exadata 系统规模通常要小 2-4 倍。数据库整合除了以上三大技术支柱外,ZDLRA可实现数据库备份的整合,Oracle的融合数据库特性可实现非结构化数据,JSON,Spatial和Graph等多数据类型的整合。Database In-Memory数据库选件可实现极限分析工作负载的整合。总之,对于数据库整合场景,无论是多租户,多工作负载,还是多数据类型,Oracle都可以提供全面的支持。没有仪表盘的汽车很难驾驶,同样,没有Oracle Enterprise Manager的数据库也很难管理。Oracle Enterprise Manager(简称EM)是Oracle数据库运维管理的首选工具,可以集中统一的管理Oracle,MySQL,TimesTen等数据库,Exadata和ZDLRA工程化系统,Oracle中间件和Oracle应用。通过插件,EM还可以管理Microsoft SQL Server,IBM DB2,Sybase ASE数据库。通过连接器,EM可以与BMC Remedy,CA Service Desk,HP Operations/Service Manager,IBM Tivoli,Microsoft Systems Center,PagerDuty和ServiceNow等管理框架集成。对于数据库的管理,如上图所示,EM提供了5个管理包(Management Pack)。其中诊断包和调优包通常是用户最基础的选择,也是DBA的最佳搭档。AWR,ASH和ADDM等常用工具均包含在诊断包中。调优包中则包括了各式各样的调优顾问和自动调优工具,如SQL Access Advisor、SQL Tuning Advisor和Automatic SQL Tuning。数据脱敏与子集包可提取所有或部分生产数据,脱敏后交付给开发和测试环境,自动化的过程和丰富的脱敏选项大幅降低了DBA的运维负担,同时保证了数据隐私和安全合规性。数据库生命周期管理包是一个全面的解决方案,可帮助数据库、系统和应用程序管理员自动执行管理 Oracle 数据库生命周期所需的流程。此外,数据库生命周期管理包还提供了用于行业和法规遵从性标准报告和管理的合规框架。Oracle数据库云管理包可用来建立数据库云或DBaaS服务。Oracle关于架构的三字经,除了之前介绍的MAA,还有一个MSA,就是最高安全架构。Oracle最高安全架构提供加密、密钥管理、数据脱敏、特权用户访问控制、活动监视和审计等功能,可帮助您降低数据泄露风险并简化合规性流程。Oracle数据安全秉承两大原则,即深度防御和最小权限原则。深度防御也称为纵深防御或多层防御,类似于洋葱,外层攻破了还有内层的保护。从应用整体来看,从外到内包括网络,硬件,操作系统,应用软件,数据库;从Oracle数据库角度看,则包括风险评估、防止未经授权的数据泄露、检测和报告数据库活动以及通过数据驱动的安全性在数据库中实施数据访问控制。Oracle数据库安全性的优势包括:- 利用机器学习防范威胁:自动化保障数据库安全,包括应用关键补丁,从而节省时间,最大限度避免人为错误。 - 集成的解决方案,提供更高性能:Oracle 透明数据加密(TDE)和 Oracle Database Vault 直接在数据库内核中运行,更快捷,更易于维护。 - 降低用户、数据和配置风险:Oracle Data Safe云服务或DBSAT(数据库安全评估工具)通过安全性评估、活动审计、敏感数据发现以及数据屏蔽为您降低风险。 - 自动化且始终启用的内置安全性:Oracle 自治数据库提供多项功能,例如始终加密、自动打补丁以及预配置职责分离,从而增强了安全性并降低了人为错误的风险。 在上述优势中,特别强调两点。一是Oracle可以为用户或协助用户利用DBSAT对数据库进行评估。二是,Oracle透明数据加密可在数据库层面直接启用表空间或列级加密,无需改变应用。从开销考虑,列加密要大于表空间加密。 Oracle MSA架构中,有几个产品也支持非Oracle数据库,他们是:- Enterprise Manager中的数据脱敏和子集包 - Oracle AVDF(审计保险箱和数据库防火墙) - Oracle Key Vault (秘钥保险箱),建议配合TDE使用 最后,Oracle数据库19c版本于2020年4月10日高分通过公安部“信息安全技术网络安全等级保护基本要求”(即等保2.0)第四级要求中数据库系统的安全防护要求能力测评,建议您在新系统中采用19c或尽快将数据库迁移至19c。 提到内存,大家都会想到和性能相关。但考虑到Oracle内存计算技术的多样性,最终还是决定单独来写,而没有放入后续的高性能和可扩展性解决方案。Oracle内存计算家族的第一个成员是TimesTen。TimesTen最初来自于惠普实验室的内存驻留数据库项目Smallbase。1996年,TimesTen从惠普分拆并在加州成立独立公司。1998年,TimesTen发布业界第一个商用的内存关系型数据库。2005年6月,TimesTen被Oracle正式收购。TimesTen有两种用法,一种是作为Oracle数据库的读写缓存。读缓存用于加速热点数据的访问,写缓存适用于物联网应用的高速数据摄入。这种缓存方式除了提升数据存取性能外,还可以减轻后端数据库压力,并提升整体的高可用性。另一种是作为独立数据库使用,支持传统和分布式两种模式。除了性能,TimesTen的主要特点,第一个是关系型。毕竟对于数据库而言,支持SQL和ACID都是非常重要的特性。第二个是和Oracle数据库和Oracle GoldenGate的紧密集成。在作为Oracle数据库缓存时,TimesTen只需配置而无需编程。TimesTen也高度兼容Oracle的数据类型,SQL和PL/SQL语法。第三个则是分布式,对性能有极致需求的应用可以考虑使用。Oracle内存计算家族的第二个成员是Oracle Database In-Memory,简称DBIM。有人说,DBIM的推出是为了应对SAP HANA,对此我无法确定。但不可否认,两者的应用场景高度重叠,技术实现上也有诸多类似之处。和TimesTen不同,DBIM是Oracle数据库的一个选件。其用途只针对有分析型负载的应用,如纯用于分析的数据仓库和数据集市,或ERP,CRM,财务,人力资源等混合负载应用。由于DBIM是数据库内核的一部分,因此其可以就地加速分析,这对于实时分析或运营分析的场景是非常重要的。Oracle Database In-Memory对于应用的加速是透明的,无需修改应用,可以减少或消除对分析型索引的依赖,由此也可以提升OLTP负载的性能。在技术实现上,DBIM 提供了一种独特的双格式架构,可以同时使用传统的行格式和新的内存中列格式在内存中表示表。Oracle SQL 优化器自动将分析查询路由到列格式,将 OLTP 查询路由到行格式,从而透明地提供两全其美的性能优势。Oracle 数据库自动维护行格式和列格式之间的事务一致性,就像维护表和索引之间的一致性那样。新的列格式是纯内存中格式,不会在磁盘上持久保留,因此不存在额外的存储成本或存储同步问题。关于DBIM的介绍,可参见之前文章“加速度:走进Oracle Database In-Memory”和“海信Oracle Database In-Memory案例分享”。其实Oracle内存计算家族还有另一重要成员Oracle Coherence,技术上属于内存网格。本解决方案主要谈内存数据库,因此这里就不涉及了。Oracle的高性能保证来自于软件,硬件,管理多个层面。在软件方面,Oracle数据库有RAC,Partitioning、高级压缩和Database In-Memory共4个选件。Oracle RAC是一个共享缓存的集群数据库架构,它突破了传统的无共享和共享磁盘架构的限制,从而能够提供无与伦比的数据库性能、可伸缩性和可靠性,而且无需对现有的 Oracle 数据库应用程序进行修改。所以你会看到RAC是一个比较全面的数据库选件,对性能,高可用和可扩展性都有贡献。说到压缩,大家通常想到的都是节省空间,包括数据库本身,以及相应的备份,开发测试环境,网络传输等。除了节省成本,Oracle高级压缩还可以提升查询的性能,这是由于压缩导致内存中可以缓存更多的数据,从而减少了物理I/O请求。和Oracle RAC一样,Oracle Partitioning也是一个综合型的选件,可以提升数据库的性能,可用性和可管理性。技术上,Oracle Partitioning可以将表和索引细分为更小、更易于管理的单元,这样数据库管理员便可采用一种“分而治之”的方法来管理数据。如果需要极速实时分析,可以使用Database In-Memory来应对,这在上一个方案中已有介绍。再来谈一下Oracle数据库的可扩展性。有些人认为Oracle数据库是单体架构,扩展起来可能会有问题。有时也会碰到用户,担心未来业务增长太快,所以一开始就要求分布式架构,要求分库分表。实际上,Oracle也支持原生分片(Sharding)技术,只是Oracle不主张在没有对应用负载有清晰的了解和估算的情况下,一开始就谈分布式和分库分表。大家可能只看到了分布式无限扩展性的一面,往往忽视了分布式在开发,运维,变更和集成等方面的复杂性,以及为保证一致性、高可用性和跨片查询的高技术门槛。所以,我个人的观点是非必要不分布。而且,就我所了解的业务系统中,很多都是用单体Oracle来支持,并没有用到分布式架构。对于分库分表,Oracle Partitioning强大的能力和丰富的分区类型使得分库分表在绝大多数情况下没有必要。Oracle数据库没有单表行数的限制,Oracle的用户中,单表数十亿条记录的情形并不少见。不必分库分表实际上简化了架构,简化了集成,简化了开发和运维。Oracle用于可扩展性的第一个技术是RAC,可以将更多的计算资源聚合在一起,并通过服务实现负载分布和负载均衡。第二个可扩展技术是数据复制。当源数据库负载不堪重负时,可以利用Oracle GoldenGate和Active Data Guard生成一个或多个数据副本,然后转移部分负载在这些数据副本上进行处理。最后,如果有必要可以使用应用定制的分库分表或Oracle原生的Sharding技术。为了保障Oracle数据库的性能,硬件的支持也非常重要。需要保证有足够的内存,高性能的CPU,高I/O能力的存储系统。Exadata可以为Oracle数据库提供坚实的性能保障。性能管理方面,Oracle提供EM诊断包和调优包。EM可以查看非常全面和细致的数据库指标,为数据库性能诊断和调优提供可信的依据,强力辅助应用开发端完善应用架构,优化应用代码。这种看似非常基础的能力,实际上并不容易做到,需要长期的积淀,需要在大量用户应用基础上经验和教训的总结归纳。在Oracle数据库中运行的应用代码,就如同放置于显微镜下,纤毫毕现,可以清楚的知道其来龙去脉。又如同CT扫描,可以清楚知道其健康状况,从而快速准确的定位和解决问题。前面提到,很多用户可能对自己的应用负载没有清晰的认识,此时可以借助Oracle真正应用测试(Real Application Testing,简称RAT)数据库选件,用户不必费时费力编写负载模拟代码来对应用进行测试。RAT包括2个组件,即Database Replay和SQL Performance Analyzer(SPA)。Database Replay可以抓取生产数据库的工作负载并在测试数据库中存放,SPA则通过识别每个 SQL 语句的性能差异来自动化评估系统变化(数据库升级,索引变更,参数调整等)对整个 SQL 工作负载的总体影响的过程。Oracle真正应用测试使新系统规划更准确,系统迁移更有信心,同时简化了DBA的工作任务。总之,通过Oracle全面深入的性能管理工具和性能测试工具,您可以消除当前的性能问题,准确预估未来负载对可扩展性的要求;通过Oracle的性能组件,可以使用简洁的单体架构承载大型应用负载,避免分布式架构,分库分表在开发,运维,扩展,集成,安全管理,高可用等方面带来的复杂性。最后,如果必要,也利用数据库复制和应用定制或原生的分片技术来实现Oracle数据库的可扩展性。Oracle商务智能与数据仓库解决方案,或称为BIDW解决方案,从数据流动的方向,包括数据集成,数据存储与处理,数据分析和展现几个阶段。BIDW方案中,数据源支持结构化的关系型数据库,也支持半结构化和非结构化的JSON,文本,图形图像等。集成方式包括属于CDC(变化数据捕获)支持实时集成的Oracle GoldenGate以及属于ELT的Oracle Data Integrator。Oracle GoldenGate的特点包括实时非侵入式数据集成,以及对于异构的支持,包括不同的数据库产品,相同数据库不同的版本,不同的硬件平台,不同的操作系统。Oracle Data Integrator也称为ODI,ODI的特点是支持丰富的转换转换,以及提供丰富的知识模块,从而简化集成任务,免除或减少用户端代码开发。另外需要强调的一点是,ODI和OGG都支持大数据体系,特别是OGG与Kafka的集成,在用户处得到了广泛采用。数据的存储和处理自然是使用Oracle数据库。Oracle数据库企业版还提供两个重要的选件来简化和加速数据分析。Oracle Partitioning可以将表和索引细分为更小、更易于管理的单元,提高数据库的可管理性、性能和可用性。为加速分析,Oracle数据库可使用索引,物化视图,立方体等手段,而Oracle Database In-Memory可以减少和避免对这些手段的使用,从而简化了分析架构,并且应用无需修改。关于Database In-Memory的介绍可参见前面的方案5:Oracle内存计算解决方案。Oracle Exadata 是一款经过高度优化的Oracle 数据库硬件平台。Exadata 为数据仓库应用提供了杰出的 I/O 和 SQL 处理性能,利用高度并行的架构实现动态存储网格以用于 Oracle数据库部署。Exadata 是用于存储和访问 Oracle 数据库的软件和硬件的组合。它提供数据库感知的存储服务,例如,能够将数据库处理从数据库服务器分流到存储,同时保持对 SQL 处理和数据库应用透明。Exadata 存储大幅提升了性能,具有无限的 I/O 可扩展性,同时易于使用和管理。对于分析和展现,Oracle的解决方案是Oracle 分析平台。Oracle 分析平台提供两种部署选项,即支持云部署的 Oracle 分析云 (OAC) 和支持本地部署的 Oracle 分析服务器 (OAS)。企业在混合部署中可同时采用这两种选项。Oracle 分析平台可连接到许多企业数据源,包括第三方数据源。互联数据源可以是云端、本地部署或自助数据集。同时,您也可以开发和交付经治理的企业级语义模型,以获得一致的业务关键数据视图。Oracle和大数据的关系,可以从数据库内外两个层面来看。从内部来说,Oracle数据库本身就是融合数据库,可以支持非结构化或半结构化类型数据的处理,如文本,图形图像,JSON等。从外部来看,开源大数据体系已相对成熟,Oracle也没必要重新搞一遍。因此Oracle除了自己有一个NoSQL数据库外,其余就将重点放在了和大数据体系的融合上面。在此基础上,可以衍生出湖仓一体,数据平台,数据中台,数据底座之类的解决方案。第一个大数据融合技术是Oracle Big Data SQL。Oracle Big Data SQL 让您可以利用 Oracle SQL 的全部功能无缝访问和集成跨 Oracle 数据库、Hadoop、Kafka、对象存储和NoSQL 存储的数据。它将 Oracle 数据库安全性扩展到所有数据。其独特的智能扫描利用集群来解析、智能过滤和聚合其所在位置的数据。通过分布式处理和最小化数据移动,Smart Scan 最大限度地提高了查询性能。这里有几点需要强调一下,一是跨多个数据源统一查询的能力,二是使用了数据库开发者早已熟悉的SQL语言,现有基于 SQL 的应用程序可以无缝集成新数据。这些都简化了开发任务,并降低了开发的难度。技术实现上,Oracle Big Data SQL通过访问驱动将外部大数据源映射为外部表,从而可以充分利用Oracle数据库强大的SQL功能;同时可以在一个统一系统中,使用标准 Oracle 数据库角色和权限管理对跨平台数据的访问,从而简化安全性设置。大数据融合的第二项技术是Oracle GoldenGate for Big Data和。Oracle GoldenGate for Big Data 将事务数据实时流式传输到大数据和云系统,而不会影响源系统的性能。它可以实时将数据交付到流行的大数据目标,包括Apache Hadoop、Apache HBase、Apache Hive、Confluent Kafka、NoSQL数据库、Elasticsearch、JDBC、公有云(Oracle OCI,AWS,Azure,GCP)和数据仓库,以促进企业改进洞察力和及时行动。Oracle Data Integrator for Big Data是一种基于开放轻量级 ELT 架构的透明异构大数据集成技术。他还可以为多种语言生成代码以允许各种工作负载,这包括 HiveQL、Pig Latin、Spark RDD 和 Spark DataFrames。以上两项数据集成技术,可以极大缩短大数据项目的价值实现时间,同时简化和缩短了大数据集成项目的开发实施过程。Oracle Big Data Connectors 是一个软件套件,它将 Apache Hadoop 中的处理与 Oracle 数据库中的操作集成在一起。它支持使用 Hadoop 处理和分析大量数据,并将其与数据库数据一起使用,以获得新的和关键的业务洞察力。该套件中的工具包括 Oracle SQL Connector for HDFS、Oracle Loader for Hadoop、Oracle XQuery for Hadoop、Oracle R Advanced Analytics for Hadoop 和 Oracle Datasource for Apache Hadoop。以上组件部分已在图中说明,此外,Oracle XQuery for Hadoop 可以将 XQuery 语言表达的转换翻译为一系列 MapReduce 作业,然后在 Hadoop 集群上并行执行。输入可以位于HDFS或Oracle NoSQL,输出可以写到HDFS、Oracle NoSQL、Apache Solr 或 Oracle 数据库。Oracle R Advanced Analytics for Hadoop 提供了一个通用计算框架,您可以在其中使用 R 语言将自定义逻辑编写为mapper或reducer。R 包集合中提供了作为 MapReduce 作业运行的预测分析技术。 而代码则使用 Hadoop 集群上的计算和存储资源以分布式并行方式执行。Oracle R Advanced Analytics for Hadoop 包括了连接Apache Hive 表、Apache Hadoop 计算基础架构、本地 R 环境和 Oracle 数据库表的接口。Oracle的公有云,简称为OCI,即Oracle 云基础设施。OCI是首款从零开始打造的公有云,旨在成为更适合每种应用的云。OCI提供了迁移、构建和运行 IT 所需的全部服务,包括从现有企业负载到新的云原生应用和数据平台的服务。目前,OCI在全球已建立32个商业云区域,其中在美国,加拿大,英国,法国,阿联酋,巴西,澳大利亚,印度,日本和韩国均具有至少2个云区域。OCI虽然起步相对较晚,但一直在坚定不移地贯彻云战略并稳步前进,并展现出强劲的增长势头。在2021 年 Gartner 集成基础设施即服务 (IaaS) 和平台即服务 (PaaS) 解决方案记分卡中,OCI的总体得分为 78%,位列AWS,Azure和阿里云之后。同时,OCI也是进步最快的云,其在 2020 年的得分为 62%。另外,Oracle 在必需标准方面的得分从 74% 提高到 90%,其中计算、存储、网络和软件基础架构(例如数据库即服务和函数)的得分为 100%。越来越多的用户选择将其工作负载迁移到OCI,其主要原因包括:轻松迁移关键企业应用所有服务开发人员都需要构建云原生应用通过自治服务轻松管理安全性、性能和可扩展性全面支持混合云策略默认启用内置的安全功能,且无需额外付费卓越的性价比2022年7月20日,Oracle和微软联合宣布了适用于 Microsoft Azure 的 Oracle 数据库服务(ODSA:Oracle Database Service for Azure),从而可以更好地支持用户的多云战略。Azure 客户可以轻松地为他们的 Azure 应用程序配置和管理在 OCI 上运行的 Oracle 数据库,享受 Oracle 数据库服务的所有好处,同时使用类似于 Azure 的门户来配置数据库——并使用 Azure 来处理其他一切。 与其他 Azure 资源一样,该数据库在 Azure 门户中可用。结语:通过这9个解决方案,相信您已经对Oracle的核心数据能力有了基本的了解。实际上,这些解决方案是通过Oracle数据库企业版及选件,数据库管理包,工程化数据基础设施,数据集成和数据分析等产品组合而成。这些解决方案并非固定不变,您也可以根据自己的理解或实际项目的需要对这些组件进行调整,形成更适合和贴切的解决方案。文章来源:甲骨文云技术
上滑加载中
推荐直播
-
GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
2024/12/24 周二 16:30-18:00
Leo 华为云数据库DTSE技术布道师
数据库的复杂运维,是否让你感到头疼不已?今天,华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。
回顾中 -
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
回顾中
热门标签