-
建表语句如下:create table tb_recursive(id int,parent_id int);Oracle递归语句写法:select id,parent_id,level lvl from tb_recursive connect by prior id=parent_id start with parent_id is nullorder by id;DWS改写:with recursive r1 as (select id,parent_id,1 as lvlfrom tb_recursivewhere parent_id is nullunion allselect t.id,t.parent_id,t1.lvl+1 as lvlfrom tb_recursive t,r1 t1where t.parent_id=t1.id)select id,parent_id,lvl from r1 order by id;
-
项目中存在大量调用存储过程返回游标的场景,想在不改动java代码的前提,如何让GaussDB 200 存储过程适配java当前java调用GaussDB 200 存储过程报错,获取不到游标的值。报错: You may wish to exclude one of them to ensure predictable runtime behavior 2020-12-14 16:50:22,071 [main] DEBUG [com.huawei.it.finioc.dao.IFiniocGaussDao.finiocGaussFunNewTest] ==> Preparing: {call DWRSALES.proc_test_lyt( ?, ?, ?, ?) }2020-12-14 16:50:22,081 [main] DEBUG [com.huawei.it.finioc.dao.IFiniocGaussDao.finiocGaussFunNewTest] ==> Parameters: 1(String), 1(String), YYY(String) org.springframework.jdbc.BadSqlGrammarException:### Error querying database. Cause: com.huawei.gauss200.jdbc.util.PSQLException: A CallableStatement function was executed and the out parameter 1 was of type java.sql.Types=1111 however type java.sql.Types=-10 was registered.### The error may exist in file [D:\Idea\Jalor6\cnbgioc_develop\om.impl\target\classes\com\huawei\it\finioc\dao\IFiniocGaussDao.xml]### The error may involve com.huawei.it.finioc.dao.IFiniocGaussDao.finiocGaussFunNewTest-Inline### The error occurred while setting parameters### SQL: {call DWRSALES.proc_test_lyt( ?, ?, ?, ?) }### Cause: com.huawei.gauss200.jdbc.util.PSQLException: A CallableStatement function was executed and the out parameter 1 was of type java.sql.Types=1111 however type java.sql.Types=-10 was registered.; bad SQL grammar []; nested exception is com.huawei.gauss200.jdbc.util.PSQLException: A CallableStatement function was executed and the out parameter 1 was of type java.sql.Types=1111 however type java.sql.Types=-10 was registered. at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:74) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:87) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57) at com.huawei.it.finioc.dao.FiniocGaussDaoTest.finiocGaussFunNewTest(FiniocGaussDaoTest.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.lang.reflect.Method.invoke(Method.java:498) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)Caused by: com.huawei.gauss200.jdbc.util.PSQLException: A CallableStatement function was executed and the out parameter 1 was of type java.sql.Types=1111 however type java.sql.Types=-10 was registered. at com.huawei.gauss200.jdbc.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:473) at com.huawei.gauss200.jdbc.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:415) at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) at org.apache.ibatis.executor.statement.CallableStatementHandler.query(CallableStatementHandler.java:68) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) ... 22 more
-
【功能模块】项目需要Atlas500连接Oracle数据库,但是官网下载Oracle客户端进行交叉编译时,显示不兼容;请教,Atlas500如何正确连接Oracle?【截图信息】
-
数据库与实例首先,数据库是什么?数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客观事物间的本质联系。数据库能有效地帮助一个组织或企业科学地管理各类信息资源。数据库的作用是长久存储数据,而内存只能临时存储,磁盘等才能真正存储数据。其实数据库就是磁盘上的一系列物理文件。例如MySQL数据库,就是由一些列物理文件组成,如:frm、MYD、MYI、ibd等结尾的文件。然后我们得纠正一个概念,我们平常说的数据库,如Oracle或Oracle数据库,指的其实是Oracle数据库管理系统,而Oracle数据库管理系统,指的是管理数据库访问的计算机软件,它由Oracle数据库和Oracle实例(instance)构成。 那么我们如何使用数据库呢,即如何操作磁盘里的一系列文件?我们知道这样的一个常识:必须把磁盘上的文件读入内存才能使用。那正确的流程就是把磁盘上文件先读入内存,然后使用。实际上,正常的数据库读入内存的过程是,由实例中一组后台进程从磁盘上将数据文件读入到实例的内存中,然后经过在内存中对数据的操作再从实例的内存中经过一组后台进程写到数据库中。 接着上面说什么是实例?实例是位于物理内存里的数据结构,由线程和内存池组成,实例才是真正用于操作数据库文件的(即前面说的一系列文件);如Oracle实例: 位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。用户如果要存取数据库里的数据, 必须通过Oracle实例才能实现,而不能直接读取硬盘上的文件。备注:其实Oracle实例也即是平常所说的数据库服务(service) 实例相对与数据库而言,可以理解为是数据库的运行环境(不准确但也还算贴切)。 实例与数据库Oracle数据库与实例之间是 1对1或1/n 的关系,即实例只能对于一个数据库,而一个数据库能有对个实例:在非并行的数据库系统中每个Oracle数据库与一个实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。mysql一般情况下一个实例操作一个或多个数据库;集群情况下多个实例操作一个或多个数据库。------------------------------------------------------------------------------------------一个数据库中包含存储真正数据的多个表结构,而一个实例包含多个数据库,一台服务器(硬件)可以包含多个实例。
-
嵌套循环 嵌套循环的算法 驱动表返回一行数据,通过连接列传值给被驱动表,驱动表返回多少行,被驱动表就要被扫描多少次。 在执行计划中,离NESTED LOOPS关键字最近的表就是驱动表。 嵌套循环使用场景 驱动表应该返回少量数据,关联条件的索引命中的数据必须很少。 嵌套循环被驱动表必须走索引。如果嵌套循环被驱动表的连接列没包含在索引中,那么被驱动表就只能走全表扫描,而且是反复多次全表扫描。当被驱动表很大 的时候,SQL 就执行不出结果。 嵌套循环被驱动表走索引只能走INDEXUNIQUE SCAN或者INDEX RANGE SCAN。HASH连接 HASH连接的算法 两表等值关联,返回大量数据,将较小的表选为驱动表,将驱动表的“select列和join列”读入PGA中的work area,然后对驱动表的连接列进行hash运 算生成hash table,当驱动表的所有数据完全读入PGA中的work area之后,再读取被驱动表(被驱动表不需要读入PGA中的workarea),对被驱动表的 连接列也进行hash运算,然后到PGA中的work area去探测hash table,找到数据就关联上,没找到数据就没关联上。 HASH连接的适用场景 哈希连接只支持等值连接。 哈希连接的适用场景就是嵌套循环的不适用场景,即两表连接条件关联的结果集比较大。 Used-Mem表示HASH连接消耗了多少PGA,当驱动表太大、PGA不能完全容纳驱动表时,驱动表就会溢出到临时表空间,进而产生磁盘 HASH连接, 这时候HASH连接性能会严重下降。嵌套循环不需要消耗PGA。 外连接的HASH 对于左外连接,Oracle会选择小表为hash表(执行计划上面的表)。 Oracle如果想改变hash表,需要使用swap_join_inputs提示(leading不起作用)。排序合并连接(SORT MERGE JOIN) 适用场景 排序合并连接主要用于处理两表非等值关联,比如>,>=,<,<=,<>,但是不能用于instr、substr、like、regexp_like关联,instr、substr、like、 regexp_like关联只能走嵌套循环。 如果两表是等值关联,一般不建议走排序合并连接。因为排序合并连接需要将两个表放入PGA中,而HASH连接只需要将驱动表放入PGA中,排序合并 连接与HASH连接相比,需要耗费更多的PGA。 算法介绍 排序合并连接的算法:两表关联,先对两个表根据连接列进行排序,将较小的表作为驱动表,然后从驱动表中取出连接列的值,到已经排好序的被驱动 表中匹配数据,如果匹配上数据,就关联成功。驱动表返回多少行,被驱动表就要被匹配多少次,这个匹配的过程类似嵌套循环,但是嵌套循环是从被 驱动表的索引中匹配数据,而排序合并连接是在内存中(PGA中的workarea)匹配数据。 1.Both relations are sorted on the join attributes. 2.Then, both relations are scanned in the order of the join attributes. Tuples that satisfy the join condition are merged to form the result relation。笛卡儿连接 两个表关联没有连接条件的时候会产生笛卡儿积,这种表连接方式就叫笛卡儿连接。 执行计划中MERGE JOIN CARTESIAN就表示笛卡儿连接。 在多表关联的时候,两个表没有直接关联条件,但是优化器错误地把某个表返回的Rows算为1行(注意必须是1行),这个时候也可能发生笛卡儿连接。标量子查询什么是标量子查询? 当一个子查询介于select与from之间,这种子查询就叫标量子查询 。标量子查询类似一个天然的嵌套循环,而且驱动表固定为主表。标量子查询中子查询的表 连接列也必须包含在索引中。 标量子查询优化建议 尽量避免使用标量子查询,假如主表返回大量数据,主表的连接列基数很高,那么子查询中的表会被多次扫描,从而严重影响SQL性能。 当SQL里面有标量子查询,我们可以将标量子查询等价改写为外连接,从而使它们可以进行HASH连接。半连接(SEMI JOIN) 什么是半连接? 两表关联只返回一个表的数据就叫半连接。半连接一般就是指的in和exists。 in和exists一般情况下都可以进行等价改写。 SQL> select * from dept where deptno in (select deptno from emp); SQL> select * from dept where exists (select 1 from emp where dept.deptno=emp.deptno); 半连接和内连接的等价写法(性能不如半连接) SQL> select d.* from dept d, (select deptno from emp group by deptno) e where d.deptno = e.deptno; 半连接以子查询为驱动,对主表嵌套循环 适用于子查询的数据集非常小并且主表有索引的场景。Oracle hint小技巧 1。对于in子查询可以用/*+ qb_name(a) */定义子查询,然后在提示中用a引用对应的表 2。Oracle会为每个查询块定义一个名字,提示中也可以用这个名字,block名字通过下面这种方式获得 SQL> explain plan for select * from dept where deptno in (select deptno from emp); SQL> select * from table(dbms_xplan.display(null, null,'advanced -projection -outline -predicate'));
-
Oracle和Mysql都是数据库但是有些地方还是不一样,我在这里记录一下。 本质区别:Oracle数据库是一个对象关系数据库管理系统(收费)MySQL是一个开源的关系数据库管理系统(免费) 数据库的安全性:mysql使用三个参数来验证用户,即用户名,密码和位置Oracle使用了更多的安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等 权限 MySQL的权限系统是通过继承形成的分层结构。权限授于高层时,其他低层隐式继承被授于的权限,当然低层也可改写这些权限。 按授权范围不同,MySQL有以下种授权方式: 1、全局; 2、基于每个主机; 3、基于表; 4、基于表列。 每一级在数据库中都有一个授权表。当进行权限检查时,MySQL从高到低检查每一张表,低范围授权优先于高范围授权。 与Oracle不同,MySQL没有角色的概念。也就是说,如果对一组用户授于同样的权限,需要对每一个用户分别授权。 模式迁移 模式包含表、视图、索引、用户、约束、存储过程、触发器和其他数据库相关的概念。多数关系型数据库都有相似的概念。 本节包含以下内容: 1、模式对象的相似性; 2、模式对象的名称; 3、表设计时的关注点; 4、多数据库整合; 5、MySQL模式整合的关注点。 模式对象的相似性 就模式对象,Oracle和MySQL存储诸多的相似,但也有一些不同。 模式对象OracleMysqlAFTER triggertriggerBEFORE triggertriggerCheck constraintCheck constraintColumn defaultColumn defaultDatabaseDatabaseForeign keyForeign keyIndexIndexPackageN/APL/SQL functionRoutinePrimary keyPrimary keyRoleN/ASchemaSchemaSequenceAUTO_INCREMENT for a columnSnapshotN/ASynonymN/ATableTableTemporary tableTemporary tableTrigger for each rowTrigger for each rowUnique keyUnique key 模式对象的名称 Oracle是大小写不敏感的,并且模式对象是以在写时行存储。在Oracle的世界中,列、索引、存储过程、触发器以及列别名都是大小写不敏感,并且在所有 的平台都是如此。MySQL是大小写敏感的,如数据库相对的存储路径、表对应的文件都是如此 当把关键字用引号引起来时,Oracle和MySQL都允许把这些关键字用于模式对象。但MySQL对于一些关键字,不加引号也行。 表设计的关注点 本节主要讨论当把MySQL转为Oracle时需要注意的地方。主要包含以下两点: 1、字符数据的类型; 2、列默认值。 3.2.3.1 字符数据类型 MySQL和Oracle在字符型数据保存和读取上存在一些不同。MySQL的字符类型,如CHAR和VARCHAR的长度小于65535字节。 Oracle支持4种字体类型:CHAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大长度为2000字节, NVARCHAR2和VARCHAR2最大长度为4000字节。 MySQL和Oracle在字符型数据保存和读取上存在一些不同。MySQL的字符类型,如CHAR和VARCHAR的长度小于65535字节。Oracle支持4种字体类型:C HAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大长度为2000字节,NVARCHAR2和VARCHAR2最大长度为4000字节。 3.2.3.2 列默认值 MySQL会处理列默认值,不允许他为空,这点和Oracle不同。在Oracle中如果向表插入数据,需要对有所有不允许为NULL列的值。 多数据库迁移 如果多个MySQL数据库位于同一个数据库服务上,支持迁移。 数据存储概念 MySQL的数据库对应于服务器上数据目录内的了目录,这一数据存储方式与多数据数据库不同,也包括Oracle。数据库中的表对应一个或者多个数据库目录下的文件,并取表存储时的存储引擎。 一个Oracle数据库包含一个或者多个表空间。表空间对应数据在磁盘上的物理存储。表空间是从一个或者多个数据文件开始构建的。数据文件是文件系统中的文件或者原始存储的一块空间。 一些语法上的区别: 主键:mysql一般使用自动增长类型,在创建表的时候指定表的主键为auto increment,主键就会自动增长。Oracle中没有自动增长,主键一般使用序列,插值时依次赋值即可。 引号问题: Oracle不使用双引号,会报错mysql则对引号没有限制 分页查询:mysql分页查询使用关键字limit来实现Oracle没有实现分页查询的关键字,实现起来较复杂,在每个结果集中只有一个rownum字段标明它的位置,并且只能用rownum<=某个数,不能用rownum>=某个数,因为ROWNUM是伪列,在使用时所以需要为ROWNUM取一个别名,变成逻辑列,然后来操作 数据类型:mysql中的整型:int(),字符串类型:varchar()Oracle中的整形:number(),字符串类型:varchar2()
-
1、简介目前主流的第三方IO测试工具有fio、iometer和Orion,这三种工具各有千秋。fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。官网: https://fio.updatestar.com/2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.7Kernel4.14软件包fio2.1.10https://github.com/axboe/fio/archive/fio-2.1.10.tar.gz3、依赖安装 无4、组件编译安装 源码编译安装下载Fio源码cd /optwget https://github.com/axboe/fio/archive/fio-2.1.10.tar.gztar xf fio-2.1.10.tar.gzcd fio-fio-2.1.10/ make && make install预期如下fio -version 5、系统配置 无6、测试无7、参考信息https://www.huaweicloud.com/kunpeng/software/fio.html8、FAQ 无
-
在最近热映的电影《天气之子》中,想必大家都对这样的情节历历在目:天空突降暴雨,千万雨柱唰唰而下,倾盆的雨水淹没了整条街道,车、人、房子、树木尽数泡于水中……图片来自电影《天气之子》作为一部以“天气”为主题的电影,影片取材都源于现实世界,比如:片中的倾盆大雨、积雨云等特殊气象均有现实依据。每当暴雨不请自来,城市频频出现“看海”现象,在影片里可能是源于“神秘不可知的力量”,但在现实生活中可能是纵横交错的雨洪管理系统等问题在作怪。要想城市“面子”好看,城市“里子”必须搞好。作为一家致力于智慧水务、智慧城建与智慧规划三大行业的信息技术企业,奥格智能专为城市灾洪排忧解难,管理着数以千计的城市“里子”。随着数字化的升级发展以及业务的不断扩展,奥格智能需要一个高可靠、高安全、高可用、高性能的数据库来支撑日益增长的业务需求。经过一番考察、评估,奥格智能最终选择牵手华为云,将原先Oracle数据库上的数据全部搬迁到华为云上,并共同构建了一套“智慧雨洪管理”解决方案。那么,华为云具体是怎么做的呢?两大专业服务联手数据搬家变得so easy奥格智能涉及的业务量巨大,服务对象众多,需要数据库提供稳定高效安全的云服务,而且可以根据业务需求实现快速弹性扩展。>>性能好,遇问题见招拆招一套PostgreSQL增强版(简称PG增强版)高度兼容Oracle数据库,同时搭配华为云数据复制服务DRS,将Oracle数据库的数据原封不动地迁移至PG增强版,不给数据开溜机会。>>>>安全高,为数据全方位防护数据不丢问题解决了,安全防护一样不能少。华为云在PG增强版上部署实际应用,并进行大量系统测试,测试中不断发现问题,解决问题,最后正式部署业务,迁移上线。>>>>降成本,让钱花在刀刃上伴随着赋能产品项目快速落地的同时,华为云帮助客户大幅度降低了运维成本,减少了60%的投入。不仅性能好,安全高,关键还省钱!技术加持让“智慧雨洪管理”更加聪明暴雨无情,人间有情。兵来将挡,水来土掩。即便灾洪来势汹汹,奥格智能自有妙招相对。此次奥格智能携手华为云,将自身优势置于万物互联的云平台上,共同推出“智慧雨洪管理”解决方案。“智慧雨洪管理”解决方案该解决方案基于物联网综合技术构建了一套通往智能管理和高效运营的数字化管理工具,实现了“事前预知、事中应急、事后优化”的三段式管理,积极引领“智慧雨洪管理”的创新。事前预知凡事预则立,不预则废。在内涝发生前,将每一个异常清晰可见,不打无准备之仗!奥格智能与华为OceanConnect IoT平台打通,借助低功耗网络及时回传信息,构建了实时监测数据库,对雨洪监测和内涝预测、预警进行实时监控。事中应急面对紧急灾情,速度要先行,还要同时调动多方资源,这就需要数据库扛得住高并发带来的压力。华为云海量分布式可扩展的块存储服务,秒级扩展,轻松应对访问压力,成功助力奥格地理信息平台练就“快准狠”绝招,使其在极短的时间内达成了几乎所有全范围信息互通、全资源高度集中调动。事后优化对每一次灾洪都做到心中有数,不做事后诸葛。• 华为云服务为奥格智能提供了全面完整的中间平台方案,让奥格智能聚焦业务场景,为持续更新水利行业大数据库和反馈迭代优化应急方案提供宝贵建议。• 同时助力奥格智能建成清晰、完整、准确的排水设施“一张图”,实现水流方向全过程可视化查询、分析,管理好城市各种“里子”,实现“每分钱都花在刀刃上”。“智慧雨洪管理”解决方案架构图在整个“智慧雨洪管理”解决方案中,华为云凭借多年的技术积淀和专业优秀的云服务,助力奥格智能专注于顶端业务应用层及感知层的专业设计。城市雨洪关及你我他,有了华为云的技术加持,雨洪管理变得智慧与智能起来,风雨再大也不怕。
-
概览涉及操作系统Huawei JDKOracle JDK应对策略功能Java Web Start(仅win包含)win通过icedtea-web开源软件实现,在itweb-settings.bat进行设置,启动界面不一样,有cmd弹窗原生支持,在java控制面板进行设置正常使用JavaFXwin/linux通过开源OpenJFX实现已将javafx部分开源成OpenJFX社区正常使用applet(过旧,oracle不再继续维护)win/linux不支持支持建议使用javascript等方式进行整改,参考http://3ms.huawei.com/km/groups/3712085/blogs/details/5864289?moduleId=JMC(辅助调试工具)win/linux不支持支持华为HiProfiler补齐功能JFR(问题定位工具)win/linux不支持支持华为HiProfiler补齐功能jvisualvm(问题定位工具)win/linux支持华为HiProfiler补齐功能Java Control Panel(Java控制面板,仅用于win)win不支持支持大多数场景不涉及,建议绕过Java DB(Derby)win/linux不支持8u181版本开始不支持可用GaussDB,大多数场景不涉及,见下一sheetcacerts(默认根证书)win/linux包含93个证书,从SPC050开始提供包含96个证书满足绝大多数场景要求,见下一sheet字体win/linux包含基本字体包含Lucida等8种字体满足绝大多数场景要求JavaAPIwin/linux规格等同8u191规格等同8u191均满足Java标准规范,接口相同兼容性win不支持win 2003/xp支持暂不支持snmpwin/linux不支持支持,但使用范围极小,后续考虑删除绝大多数场景不涉及,建议绕过AWT/Swingwin读取注册表中的BorderWidth和PaddedBorderWidth预设值建议产生影响时调整UI实现。JavaDBJavaDB是一套基于Java编程语言和SQL的关系数据库管理系统。根据Oracle官网的描述,JavaDB是Oracle在Apache Derby项目上发布的二进制版本,且没有修改其源代码。这项功能在OpenJDK中没有对应实现,可选用Apache Derby实现一比一的完全替换 (参考https://db.apache.org/derby/ )OracleJDK在8u181版本中已将JavaDB移除,见 https://www.oracle.com/technetwork/java/javase/8u181-relnotes-4479407.html
-
一、概要近日,华为云关注到业界报告Oracle Weblogic远程反序列化命令执行漏洞,该漏洞绕过了最新的Weblogic补丁(CVE-2019-2725),攻击者可以发送精心构造的恶意HTTP请求,在未授权的情况下远程执行命令,风险性高。截止目前,官方补丁未发布,漏洞细节未公开。华为云提醒各位租户及时安排自检并做好安全加固。二、威胁级别威胁级别:【严重】(说明:威胁级别共四级:一般、重要、严重、紧急。)三、影响范围Oracle WebLogic Server 10.3.6Oracle WebLogic Server 12.1.3四、处置方案目前,Oracle官方暂未发布修复补丁,请受影响的租户参考以下任意一项临时解决方案在不影响自身业务的情况下进行安全加固:1. 查找并删除wls9_async_response.war、 wls-wsat.war这两个受影响组件,然后重启Weblogic服务;2. 通过访问策略控制,禁止 /_async/* 及/wls-wsat/*路径的URL访问,目前华为云WAF的精准访问防护功能可防御该漏洞攻击。注:华为云将持续关注漏洞后续进展和官方补丁动态,请各位租户留意。
-
1 概述1.1 背景介绍当前众多客户需要基于云存储实现低成本的数据库备份和恢复。而Oracle中的备份模块实现了和云存储的对接,可以很好的解决这个问题;华为云的对象存储可以作为客户数据库备份的存储池,以低成本,高可靠方式实现数据存储。本文讲述了基于oracle的osb模块将oracle数据库备份到华为云存储OBS桶中,以及从华为云OBS桶恢复数据到oracle。1.2 实验测试环境本文将以Windows 和Linux下 oracle11g 数据库为例进行备份和恢复的演示测试条件准备如下:OBS:华为公有云,华南-广州 Region ECS1:华为公有云,华南-广州 Region,4vCPUs | 8GB | s3.xlarge.2 CentOS 6.9 64bit,Oracle版本:11.2.0.1.0ECS2:华为公有云,华南-广州 Region,4vCPUs | 8GB | s3.xlarge.2 CentOS 6.9 64bit,Oracle版本:11.2.0.4.0WIN1:华为公有云,华南-广州 Region,4vCPUs | 8GB | s3.xlarge.2 Windows Server 2008 R2 64bit,Oracle版本:11.2.0.1.02 当前设备上备份和恢复数据库(Linux)说明:本例演示采用了Rracle-Raman默认无并发的设置,如果需要增加数据库备份和恢复的性能,需要设置并发数,具体参考5.3章节。另外,本例采用指定桶的方式,即将备份数据上传到指定的桶中,备份也可采用不指定桶的方式,具体请参考5.4章节。2.1 创建表和新建数据说明:在正常情况下,客户使用时可以略过本节,本节创建表和数据只为举例说明使用。前提:Oracle数据库安装完成。 创建表和新建数据过程: 1. 切换到oracle用户su - oracle 2. 进入数据库控制台,如果数据库还没有启动则需要执行 startup 命令启动数据库sqlplus / as sysdbashow parameter checkpoint 3. 创建表和新建数据,效果如下,其中test为新建的表select * from test 2.2 oracle安装osb模块1. 获取osb模块此插件包可以从oracle官网获取最新版本(参考链接:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/rcmrf/oracle-secure-backup-osb-cloud-module.html#GUID-964AADD2-3405-4476-8698-E9F2133CB5B7),也可从本文档最后的附录中链接获取2018年底的版本。图中把插件osbws_installer.zip的压缩包放到$ORACLE_HOME/lib目录下并解压使用命令unzip osbws_installer.zip解压完成后如下图根据客户自己OBS服务的AK、SK、location和endpoint参数配置,执行OBS插件的安装命令说明:AK、SK获取参考链接:https://support.huaweicloud.com/utiltg-obs/obs_11_0004.html;location、endpoint的获取参考链接:https://developer.huaweicloud.com/endpoint)java -jar osbws_install.jar -AWSID 客户AK -AWSKey 客户SK -walletDir $ORACLE_HOME/osbws_wallet -libDir $ORACLE_HOME/lib -location OBS服务的地域 -awsEndPoint OBS服务的endpoint检查安装结果后进入RMAN进行进行环境配置cat $ORACLE_HOME/dbs/osboracle.ora本例采用指定桶备份上传的方式,下图中指定桶obs-oracle-zoudanhong,桶location为cn-south-1。(即使用者需要保证在OBS平台下已经指定名称的桶,且桶区域与上一步OSB配置参数location一致,如果没有这样的桶,可在OBS平台新建一个桶)2.3 RMAN进行数据库备份到OBS桶以root用户名密码登录数据库所在设备ECS1后连接RMAN(连接命令rman target /),执行如下命令将数据库备份到OBS桶,其中标红的部分与数据库名有关,根据实际值进行修改。run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsorcl.ora)';backup channel=ch1 database format='ora_%d_%I_%T_%s_%t_%c_%p.dbf' plus archivelog;backup channel=ch1 current controlfile format='%d_%I_%T_%s_%t_%c_%p.conf';backup channel=ch1 spfile format='ora_%d_%I_%T_%s_%t_%c_%p.spf' ;release channel ch1;} 执行完成后,登陆OBS控制台,将会看指定桶obs-oracle-zoudanhong中已经生成了备份数据。2.4 修改数据库数据说明:本步骤是为了进行数据恢复而做的准备,实际环境运行不需要此步骤进入数据库查看归档信息:archive log list;向原数据库中增加了一条数据b并提交数据insert into test values('b');commit;删除归档数据(由于本机有最新的临时数据,为防止备份后的数据恢复后本地自动添加上最新临时数据,需要手工删除归档;异机恢复时不需要此步骤操作)2.5 RMAN进行数据库从OBS桶中读取数据进行恢复操作执行命令关闭数据库shutdown immediate;执行命令使数据库至nomount状态startup nomount;然后执行如下命令从华为OBS恢复controlfile文件,其中controlfile名称,通过rman命令list backup列举出所有的备份文件(参考4.5章节样例),参考2.3章节中备份命令中的备份文件的命名规则设置,根据自己需要选择需要恢复的文件,记下其Handle名称run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsorcl.ora)';restore controlfile from 'ORACLE_1880733115_20190507_5_1007656283_1_1.conf';release channel ch1;}切换数据库至mount状态,然后从OBS读取并恢复数据文件。特别注意的是,在执行restore和recover命令后,一定要加入 until sequence xxxx或者until SCN xxxx这个条件,其中 xxxx 为图中执行恢复数据后标红的实际值alter database mount;run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsorcl.ora)';restore database from tag='TAG20190507T163102';recover database from tag='TAG20190507T163102';release channel ch1;}说明:上图中的tag值相当于每个备份的ID号,通过rman命令list backup列举出所有的备份文件(参考4.5章节样例),根据自己需要选择需要恢复的文件(需要确保与前面恢复的控制文件是一致的),记下其tag值打开数据库,查询2.3中修改后的数据库已经正确恢复到2.1创建时的状态alter database open resetlogs;3 当前设备数据库备份后在另一台设备上恢复(Linux)3.1 创建表和新建数据参考2.1章节。3.2 oracle安装osb模块参考2.2章节。记得要在两台设备上都要安装osb模块。3.3 RMAN进行数据库备份到OBS桶这里使用在2.3章节中备份的文件。3.4 RMAN进行数据库从OBS桶中读取数据进行恢复操作查看2.3章节中ECS1中数据库的dbid,并登录ECS2设备,将dbid设置到设备ECS2中select dbid from v$database;set dbid=XXX;执行命令关闭数据库shutdown immediate;执行命令使数据库至nomount状态startup nomount;然后执行如下命令从华为OBS恢复controlfile文件,其中controlfile名称,通过在ECS1上执行rman命令list backup列举出所有的备份文件(参考4.5章节样例),参考2.3章节中备份命令中的备份文件的命名规则设置,根据自己需要选择需要恢复的文件,记下其Handle名称。其中标红的部分osbwsoracle与数据库名有关,根据ECS2实际值进行修改,注意与ECS1不同。run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsoracle.ora)';restore controlfile from 'ORACLE_1880733115_20190507_5_1007656283_1_1.conf';release channel ch1;}切换数据库至mount状态,然后从OBS读取并恢复数据文件。特别注意的是,在执行restore和recover命令后,一定要加入 until sequence xxxx或者until SCN xxxx这个条件,其中 xxxx 为图中执行恢复数据后标红的实际值其中标红的部分osbwsoracle与数据库名有关,根据ECS2实际值进行修改,注意与ECS1不同。alter database mount;run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsoracle.ora)';restore database from tag='TAG20190507T163102';recover database from tag='TAG20190507T163102';release channel ch1;}说明:上图中的tag值相当于每个备份的ID号,通过rman命令list backup列举出所有的备份文件(参考4.5章节样例),根据自己需要选择需要恢复的文件(需要确保与前面恢复的控制文件是一致的),记下其tag值打开数据库,查询2.3中被删除的数据库,已经正确恢复alter database open resetlogs;图中出现的UPGRADE错误,是由于两个设备的数据库版本不一致,相当于从ECS1的11.2.0.1.0的oracle版本恢复到ECS2的11.2.0.4.0的oracle版本,需要执行命令alter database open UPGRADE4 当前设备上备份和恢复数据库(Windows)说明:本例演示采用了Rracle-Raman默认无并发的设置,如果需要增加数据库备份和恢复的性能,需要设置并发数,具体参考5.3章节。另外,本例采用指定桶的方式,即将备份数据上传到指定的桶中,备份也可采用不指定桶的方式,具体请参考5.4章节。4.1 创建表和新建数据说明:在正常情况下,客户使用时可以略过本节,本节创建表和数据只为举例说明使用。前提:Oracle数据库安装完成。 创建表和新建数据过程:1. oracle数据库安装完成2. 打开cmd命令行3. 进入数据库控制台,如果数据库还没有启动则需要执行 startup 命令启动数据库sqlplus / as sysdbashow parameter checkpoint4. 创建表和新建数据,效果如下,其中test为新建的表select * from test4.2 oracle安装osb模块1. 设置ORACLE_HOME和ORACLE_SID变量 从注册表中找到这两个变量,记下实际值,并通过set命令设置到cmd中2. 获取osb模块此插件包可以从oracle官网获取最新版本(参考链接:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/rcmrf/oracle-secure-backup-osb-cloud-module.html#GUID-964AADD2-3405-4476-8698-E9F2133CB5B7),也可从本文档最后的附录中获取。图中把插件osbws_installer.zip的压缩包解压将解压后的文件osbws_install.jar复制到$ORACLE_HOME\lib目录下根据客户自己OBS服务的AK、SK、location和endpoint参数配置,进入$ORACLE_HOME\lib目录下执行OBS插件的安装命令说明:AK、SK获取参考链接:https://support.huaweicloud.com/utiltg-obs/obs_11_0004.html;location、endpoint的获取参考链接:https://developer.huaweicloud.com/endpoint)java -jar osbws_install.jar -AWSID 客户AK -AWSKey 客户SK -walletDir %ORACLE_HOME%\osbws_wallet -libDir %ORACLE_HOME%\BIN -location OBS服务的地域 -awsEndPoint OBS服务的endpoint本例采用指定桶备份上传的方式,下图中指定桶obs-win-oracle-zoudanhong,桶location为cn-south-1。(即使用者需要保证在OBS平台下已经指定名称的桶,且桶区域与上一步OSB配置参数location一致,如果没有这样的桶,可在OBS平台新建一个桶)4.3 RMAN进行数据库备份到OBS桶登录ECS1设备连接RMAN(连接命令rman target /),执行如下命令将数据库备份到OBS桶,其中标红的部分与数据库名有关,根据实际值进行修改。run {allocate channel ch1 typesbt parms='SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\osbwsor.ora)';backup channel=ch1 database format='ora_%d_%I_%T_%s_%t_%c_%p.dbf' plus archivelog;backup channel=ch1 current controlfile format='%d_%I_%T_%s_%t_%c_%p.conf';backup channel=ch1 spfile format='ora_%d_%I_%T_%s_%t_%c_%p.spf' ;release channel ch1;}执行完成后,登陆OBS控制台,将会看指定桶obs-win-oracle-zoudanhong中已经生成了备份数据。 4.4 修改数据库数据向原数据库中增加了一条数据b并提交数据insert into test values('b');commit;查询下图中的归档数据并删除(由于本机有最新的临时数据,为防止备份后的数据恢复后本地自动添加上最新临时数据,需要手工删除归档;异机恢复时不需要此步骤操作) 4.5 查询备份文件的handle名和TAG值通过rman命令list backup列举出所有的备份文件,参考2.3中备份命令中的备份设置,根据自己需要选择需要备份的文件(需要确保与前面恢复的控制文件是一致的),记下其Handle名称和TAG值。 4.6 RMAN进行数据库从OBS桶中读取数据进行恢复操作执行命令使数据库至nomount状态然后执行如下命令从华为OBS恢复controlfile文件,命令中的标红部分使用实际值,其中controlfile名称参考4.5章节run {allocate channel ch1 typesbt parms='SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\osbwsor.ora)';restore controlfile from 'OR_2932857089_20190509_5_1007812302_1_1.conf';release channel ch1;}切换数据库至mount状态,然后从OBS读取并恢复数据文件。命令中的标红部分controlfile使用实际值,参考4.5章节特别注意的是,在执行restore和recover命令后,一定要加入 until sequence xxxx 或者until SCN xxxx这个条件,其中 xxxx 为图中执行恢复数据后标红的实际值alter database mount;run {allocate channel ch1 typesbt parms='SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\osbwsor.ora)';restore database from tag='TAG20190509T114912';recover database from tag='TAG20190509T114912';release channel ch1;}打开数据库,查询2.3中修改后的数据库已经正确恢复到2.1创建时的状态alter database open resetlogs;5 注意事项5.1 oracle的自带osb模块在安装时长时间download无反应oracle12以上的版本中自带了osb模块,如果安装时长时间download无反应,可以考虑去官网下载最新osb模块进行安装,或使用代理服务器进行安装。注:通常上午下载速度较快5.2 数据库所在的设备与OBS桶不在一个区域,备份恢复时间长数据库所在的设备与OBS桶不在一个区域,比如数据库安装在华北的虚拟机,而将数据备份到华南的OBS桶,则在备份和恢复时由于网速的关系,耗费时间较长。解决方案:建议数据库和OBS桶在同一个区域,或者是较近的区域。5.3 oracle数据库备份和恢复默认没有并发,如果要提高带宽性能,需要增加并发设置目前实测最高的数据库备份上传带宽性能最高在8Gbit/s,最高的数据库恢复下载带宽性能最高在17Gbit/s,并发数在15并发左右。登录rman,先进行osb对接和并发参数配置,此处以并发数15为例:configure channel device type sbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so ENV=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsdb.ora)';configure default device type to SBT;configure device type SBT parallelism 15;备份命令如下:backup database format='ora_%d_%I_%T_%s_%t_%c_%p.dbf' plus archivelog;backup current controlfile format='%d_%I_%T_%s_%t_%c_%p.conf';backup spfile format='ora_%d_%I_%T_%s_%t_%c_%p.spf';恢复时命令如下,其中红色部分根据实际情况填写:restore controlfile from 'DB_1771527802_20190513_932_1008137953_1_1.conf';restore database from tag='TAG20190513T035229';recover database from tag='TAG20190513T035229';5.4 oracle数据库备份和恢复优先采用指定OBS桶的方式进行备份和恢复oracle数据库备份和恢复对接OBS桶,可以采用指定已存在的OBS桶进行对接,也可以不指定OBS桶的方式进行对接,如果采用后一种方式,则OSB插件会根据就否存在oracle-data-account为前缀,且桶所在区域与OSB插件配置时的location一致的桶,如果存在就直接使用此OBS桶,如果不存在会根据oracle-data-account前缀和OSB插件配置时的location新创建一个OBS桶。oracle-data-account中的account与OSB插件生成的配置文件中的“CREDENTIAL_ALIAS”有关。注:目前不指定桶的方式可能会出现一些由于OSB插件造成的不可控的问题,建议使用指定桶的方式进行备份和恢复。具体信息还可参考oracle官网对指定桶参数OSB_WS_BUCKET的介绍:https://docs.oracle.com/database/121/RCMRF/web_services.htm#RCMRF90491 6 附录osb模块下载参考链接:https://chongchongbucket005.obs.cn-north-1.myhuaweicloud.com/oracle/osbws_installer.zipchongchongly 发表于2019-06-17 16:22:50 2019-06-17 16:22:50 最后回复 chongchongly 2019-06-17 16:22:508447 0
-
云早报,(北京时间)4月26日,星期五【云头条】Oracle 坑销售。。。没商量。。。 IT销售明星在卡塔尔告赢Oracle却拿不回66万美元:他起诉的Oracle突然消失了.这家数据库公司将资产转移到了另一家正接受中期审理的公司。2013年5月至2014年6月,Alaa AlNaji供职于Oracle Systems Limited,担任驻卡塔尔销售代表。从IT外媒The Register了解此案(当地法院编号为#339)的情况来看,Oracle拒绝支付合同金额,坚持以修订版合同为准,这是美国佣金纠纷中的一种模式。AlNaji拒绝接受Oracle给出的条款,于是被解雇。他随后在卡塔尔起诉了这家IT巨头,要求拿回欠他的佣金。去年1月,经历整整四年的诉讼,驻卡塔尔的一名Oracle前销售代表告赢了这家数据库巨头,满心希望能拿回未支付的销售佣金。但就在他试图拿回法院判决的这笔巨额佣金时,却发现Oracle换了个新的名称开展业务。在美国,Oracle已面临销售代表提出的多起诉讼;销售代表声称Oracle的合同薪酬安排具强制性,并存在对员工克扣的现象。其中一些指控涉及销售人员认为不合理的绩效改进计划;另一些指控涉及涉嫌变相收回佣金的合同续签。【华为云】华为云发布四大金融行业解决方案,为构建智能金融提供“可靠选择”(查看原文)【互联网新闻】1.亚马逊AWS宣布AWS香港区域正式开放4月25日消息,亚马逊旗下公司AWS今天宣布AWS亚太(香港)区域正式开放。至此,AWS在全球有21个区域,提供64个可用区,另有其它四个区域、12个可用区将于未来两年在巴林、开普敦、雅加达和米兰上线。AWS亚太(香港)区域是AWS在亚太区及中国的第八个区域。2.深圳超算联合云天励飞发布AI OS平台4月25日,国家超级计算深圳中心、云天励飞联合发布并启动一站式人工智能赋能平台——AI OS,对数据管理、数据标注、算法训练以及算法应用进行全流程管理,建立无门槛AI研发框架。据介绍,AI OS系统平台单机支持10亿级别人脸高精度搜索,超业界平均水平两个数量级。据悉,5月起,AI OS系统将对外开始接受申请试用。目前,系统已实现试用,试用显示,整个算法研发周期降可至1周。3.百度大脑5月将推呼叫中心语音解决方案4月25日消息,百度大脑开放日第二期举行,本次活动上,百度AI技术生态部高级经理刘倩全面解析了百度大脑最新推出的13款通用新能力以及6项升级。百度展示了远场语音开发套件RK3308新品,三款麦克风阵列规格适用于多种业务场景,包括音箱、机器人、平面型家电、PAD、车载设备等。百度还提前预告了将在5月发布的新品,包括语音合成5个新音库和呼叫中心语音解决方案。呼叫中心语音解决方案则是转为呼叫中心业务场景提供语音能力,包括呼叫中心专属语音识别模型、专属合成发音人,应用场景有电话销售、智能外呼、客服质检等业务。4.谷歌为其数据库增两个新图像分割模型4月25日消息,据外媒报道,近日谷歌为其数据库添加两个新的图像分割模型Mask R-CNN和DeepLab v3+,自动标记图像中的区域并支持实例分割及语义分割,声称可以实现云TPU的最佳性能。谷歌的定制张量处理器(TPU)是去年开放给谷歌云平台客户的最新一代芯片,专为人工智能推理和培训任务定制,如图像识别,自然语言处理和强化学习。为了支持应用程序的开发,该公司拥有稳定的开源架构,如BERT语言模型,MorphNet优化框架和UIS-RNN扬声器二值化系统。5.赛灵思宣布将收购Solarflare公司4月25日消息,据外媒报道,赛灵思公司宣布已和Solarflare达成最终的收购协议。该公司位于加州,面向金融科技和云计算客户提供高性能、低延迟网络的解决方案。此次收购后,赛灵思将把FPGA,MPSoC和ACAP解决方案与Solarflare的超低延迟网络接口卡(NIC)技术和 Onload应用加速软件相结合,实现新的融合SmartNIC解决方案。6.亚马逊第一季度净利润35.61亿美元,同比增长119%据外媒报道,亚马逊周四发布了该公司2019年第一季度财报。财报显示,亚马逊第一季度净销售额为597亿美元,同比增长17%;净利润为35.61亿美元,较去年同期的16.29亿美元增长119%。7.彭博:亚马逊Alexa获取用户定位数据4月25日消息,据彭博社报道,知情人士透露,亚马逊的一个负责评估Alexa用户指令的团队获取了用户定位数据,某些情况下还可以找到用户家庭住址。该团队分布于三个大洲,他们负责抄录、注释和分析Alexa记录的一部分录音,以帮助亚马逊的数字语音助手更好地理解和响应用户指令。员工表示,能够接触Alexa用户地理坐标的团队成员只要在第三方地图软件中输入这些数据,便可轻而易举查找用户住址。8.IDC:中国云管理服务市场(2019-2023年)规模达44. 6亿美元 IDC发布《中国云管理服务市场预测,2019-2023》报告,报告显示:2018年中国云管理服务市场的规模达到3. 07亿美元,同比增长131.4%。IDC预测,2018-2023年整体市场复合增长率将达到70.8%,到2023年市场规模将跃升至44. 6亿美元。2018年,子市场份额占比最大的是云运维管理服务,其次是云迁移实施服务,占比分别为44.1%和28.0%。虽然2018年云增值开发服务在市场中占比仅为23.0%,但有望在2021年超过其它三个子市场增速,是未来云管理服务市场发展的重要方向。9.英特尔Q1营收161亿美元 净利降11%4月26日消息,英特尔今天公布了2019财年第一季度财报。报告显示,英特尔第一季度营收为161亿美元,与去年同期的161亿美元相比持平;净利润为40亿美元,与去年同期的45亿美元相比下降11%。英特尔第一季度业绩以及第二季度和全年业绩展望均不及华尔街分析师预期,导致其盘后股价大幅下跌7%以上。10.北京要求P2P平台高管行政核查期间不得离京4月25日,北京市朝阳区互联网金融协会发布”关于朝阳区P2P网贷机构行政核查期间高管限制离京的公告“,称为配合本区P2P网贷机构行政核查工作,自公告发布之日起至5月31日,所有注册地在朝阳区的P2P网贷机构(包括已经或正在接受行政核查的平台)高管及实际控制人,无北京市朝阳区金融服务办公室书面审批允许,不得离京。【更多内容,欢迎访问】http://forum.huaweicloud.com/forum.php?mod=forumdisplay&fid=569&filter=typeid&typeid=266(内容来源于互联网,如侵犯您的合法权益或有其他任何疑问,请联系:huaweicloud.bbs@huawei.com沟通处理。谢谢!)
-
云早报,(北京时间)11月19日,星期一【云头条】Oracle 收购 SD-WAN 提供商 Talari Networks Oracle周四宣布,它已同意收购总部位于加利福尼亚州圣何塞的软件定义广域网(SD-WAN)技术提供商Talari Networks。交易的条款并没有披露。预计这笔交易将帮助Oracle夯实云业务,提供安全可靠的网络服务,从而覆盖正在进行数字化转型的客户。Talari专有的Failsafe(故障安全)技术有望补充Oracle的会话边界控制器(SBC)和网络管理基础设施,而SBC和网络管理基础设施负责保护并管理在固定和移动IP网络上传输的会话数据。Failsafe技术为基于任何IP网络的站点到站点和站点到云的连接和应用程序访问改善了可靠性和安全性。收购Talari的交易是Oracle近几周宣布的一系列收购中的一笔。上个月,该公司宣布计划收购数据管理和AI解决方案提供商DataFox。Oracle还宣布计划收购主攻生命科学行业的云平台开发商goBalto。【华为云新闻】这个哈佛码农在改变世界之前做了这样一件事情哈佛大学有一项休学制度世界有名,原因是:在这个制度的帮助下,诞生了两位全球顶级的CEO,一位是比尔·盖茨,而另一位就是我们今天的故事主人公—扎克伯格。Facebook创始人,历史上最年轻的世界亿万富豪,社交网络时代的缔造者...这些响当当的名号都是在说他。(查看原文)【互联网新闻】1.俞敏洪就“中国女性堕落”言论道歉11月18日,新东方教育集团创始人俞敏洪在某次关于学习教育的大会上的一段发言视频引起了舆论争议,他认为,中国男人就是要他赚钱,至于他良心好不好我不管,那所有中国男人都会变成良心不好但是赚钱很多的男人,这正是现代中国女生的挑选男人的标准。因此,现在中国是因为女性的堕落,导致了整个国家的堕落。此言一出立即引来了明星张雨绮的反驳,称北大的教育和新东方的成功都没能帮他理解女性的价值,没让他能理解什么是平等的两性关系,甚至没帮他搞明白什么是平等。俞敏洪本人在当日晚间紧急在微博上澄清,称今天在某个论坛上阐释“衡量评价的方向决定了教育的方向”这一论点时,用了女人找男人的标准做例子,由于没表达好,引起网友的误解,在此深表歉意,称其真正想表达的意思是:一个国家的女性的水平,就代表了国家的水平。女性素质高,母亲素质高,就能够教育出高素质的孩子。网友评论:“女性的堕落导致整个国家的堕落”同“生不出男孩都怪媳妇”一样荒谬无稽2.张一鸣卸任今日头条CEO11月17日,今日头条在北京召开生机大会,张林作为今日头条CEO首次公开亮相,张一鸣已经卸任今日头条CEO。陈林于2012年3加入字节跳动,先后担任多款核心产品的产品经理。会上,张林宣布,今日头条将在未来一年内启动平台生态升级,主要内容包括三个方面:一是深耕粉丝生态,帮助优质创作者更好地变现;二是推出小程序,引入更多平台生态建设者;三是开放技术模型,和行业一起提高平台生态标准,分别从创作者、开发者和技术手段等入手,完成整个升级。字节跳动旗下包括今日头条、抖音、西瓜视频等产品。网友评论:产品经理的巅峰?3.对抗链接税,Google或将关闭整个欧盟的谷歌新闻据英国卫报消息,谷歌高级新闻主管表示,有可能将在整个欧盟国家关闭谷歌新闻,原因是谷歌搜索面临的巨额“链接税”。今年9月,欧盟最新版权法修改方案,其中包括“最为争议”的第11条和第13条,被称为“链接税”和“上传过滤”。根据这两条法规,诸如谷歌、Facebook这些互联网科技公司须向出版商、作家等内容创作者支付费用才能分享后者的作品内容和使用作品链接,此外,还须使用“有效的内容识别技术”,来过滤平台上传的所有内容是否侵犯版权。2014年,西班牙试图对谷歌的链接收费,作为回应,谷歌关闭了该国的谷歌新闻。谷歌搜索引擎新闻副总裁理查德·金格拉斯(Richard Gingras)表示,“关闭服务的做法并不理想”,谷歌新闻未来是否在欧盟关闭可能取决于欧盟是否愿意修改立法措辞。网友评论:谷歌钱再多,也经不起这种抽税方式4.马化腾回应“腾讯投行化”马化腾:调整过后腾讯投资有四个不变和两个变化:第一个不变是生态战略的不变,我们始终都会围绕腾讯的开放策略,有所为有所不为。第二个不变是我们会继续支持优秀的创业者。除了战略协同以外,我们更多的是通过少数股权去投资,帮助人成长。第三个不变是看重长期的投资价值。对于腾讯而言,我们更是一个长期投资人,我们更看重这个公司是不是有长期增长的价值,看重的是复合的增长。第四个不变,我们会持续地进行海外布局。网友评论:总之就是该花的还是花。5.万达减债2158亿元,境外地产员工不足10人记者从权威渠道获得万达集团旗下大连万达商业管理集团股份有限公司近两年财务报告。报告显示:万达商管在15个月时间内减掉了2158亿元负债,较2017年6月底总债务减少了约三分之一。万达负债率降到了60%以下,公司海外项目只余芝加哥和洛杉矶项目公司,截至目前,境外地产员工只余不足10名中、外籍员工。(财新)网友评论:这操作也是666!6.亚马逊中国与腾讯视频推出首个联合套餐,售价299元亚马逊中国Prime会员服务正式联合腾讯视频,推出首个Prime联合套餐——亚马逊Prime+腾讯视频VIP联合套餐,售价299元,专属权益包括亚马逊Prime会员专享的海外购订单满额全年无限次免费配送、全年无限次免费畅读逾千本Kindle电子书等权益,以及腾讯视频会员提供的热剧抢先看、极速下载等30余项专属权益。网友评论:又在骗我充会员...7.马斯克宣布The Boring Company首条隧道打通伊隆·马斯克在其推特上宣布,旗下隧道公司The Boring Company位于洛杉矶的首条隧道已经打通。马斯克在自己的推特账户上发布了一段钻探机械打通隧道的视频,展示了这台机器到达终点的过程。网友评论:马斯克上天有Space X,下地有Boring Company,下一步也许会向海底进攻8.复刻人人网 社交APP“微脸”声称要做中国的Facebook11月18日消息,就在人人网现金加股票以6000万美元卖掉的3天后,一个自诩“中国版Facebook”、复刻人人网的社交软件浮出水面,该APP名为“微脸”,和此前的人人网和当今的Facebook一样,主打真实名字真实信息的移动互联网社交。(驱动之家)网友评论:先不说做社交,复刻俩字就,嗯。9.龚宇:将爱奇艺称为“Netflix+” 是幸运也是悲哀爱奇艺创始人、CEO龚宇今日在第九届财新峰会表示,爱奇艺上市路演时,像西方投资者介绍自己是“Netflix+”,“这可能是我们的一个幸运,在某种层面也是一些悲哀”。他说,我们知道自己的商业模式跟它差别巨大,但是不得不往脸上贴奈“Netflix+”的概念。网友评论:爱奇艺眼光特别好。10.假新闻等负面缠身,Facebook股价跌至19个月低位Facebook首席运营官Sheryl Sandberg正努力帮助Facebook度过风暴,但该公司周五股价跌至19个月以来的最低水平。纽约时报**了Facebook很早就知道俄罗斯干预美国大选,以及雇佣黑公关贬低谷歌和苹果等竞争对手之事,虽然Facebook随后驳斥相关报道,但显然事情仍在持续发酵。周五Facebook股价下跌3%,收于139.53美元。(华尔街见闻)网友评论:忍不住关心小扎。【更多内容,欢迎访问】http://forum.huaweicloud.com/forum.php?mod=forumdisplay&fid=569&filter=typeid&typeid=266(内容来源于互联网,如侵犯您的合法权益或有其他任何疑问,请联系:huaweicloud.bbs@huawei.com沟通处理。谢谢!)
-
oracle 12c 发布用很长一段时间了,虽然在近期部署了几套单实例oracle 12c,但一直都没有机会在生产环境实施12c rac,当然,既不能把现有的11g rac干掉,替换成12c rac,又没有新的项目找上来,但总不能等需要干活的时候再学习测试,未雨绸缪,正好从青龙那里化缘来一台配置不错的技嘉迷你pc,正好用它来做测试,安装上proxmox,虚拟出一堆系统,然后就有条件测试部署oracle 12c rac 。Oracle实现负载均衡,完全不依赖于其它第三方工具,自己全部搞定,真是牛啊!部署oracle负载均衡高可用,实际上就是部署oracle RAC。在开始部署之前,得先做好规划。规划涉及到的主要有以下几个方面:1、共享存储:是oracle RAC最关键的设施了,许多重要的数据文件、归档、仲裁等文件都存放于此,因此需要考虑可用性、容量、性能、成本等因素。在以前的多个项目中,我选用的存储多为外接阵列,双控制器、10000转2.5寸sas或者15000转3.5寸sas盘,插槽全部插满,不考虑短期扩容。2、服务器:计算资源依托于服务器,也需要综合考虑可用性、性能及成本因素。在过去实施的一些项目中,一般采用1u机架式服务器,内存64G、多核心多线程cpu、双ssd盘(做raid容错)、四个网络接口卡。3、网络规划:至少分两个网段,交换机独立(至少两个交换机),且为全千兆速率交换机,网线也要用机制六类线。说起这个网线,踩过一次坑,记忆深刻--一个网络color ticket的项目,服务器塞满了两个机柜,各类设施在当时都算是比较高端的。特别交代采购,一定要买机制网线。一帮人没日没夜的折腾,终于调试完毕,上线运行正常。可是没多久,oracle RAC集群就出现一会好一会坏的情形,登录查日志,查应用,都找不出问题,最后只好亲自去机房。前前后后瞧来瞧去,看各指示灯的显示情况;这一看还真发现问题:心跳交换机的端口有一个指示灯一会绿、一会黄的,肯定是速率不匹配的问题。再撸线,跟其它机制线不同啊!询问得知,采购的时候,供货商存活比计划采购数少了一条,于是就让机房给手工做了一条顶上去。换上新的机制六类网线,问题得以解决。曾经写了一篇“Oracle 11g rac 生产环境部署详录”文章,发布在51cto博客,地址为http://blog.51cto.com/sery/1546346,欢迎参考。本篇文章,由于没有真实环境可以提供(不能拿已有的生产环境来搞,我怕老板来砍我),因此只能在虚拟环境下进行,不过这并不影响大家学习和借鉴,毕竟基本思路和方法是相同的,也利于做实验和测试。准备基础环境我此次进京,化缘来一个迷你主机,配置为cpu 8线程、1TB硬盘、12G内存,拿来做虚拟化非常合适,省电省地又安静。看看,是不是很小巧? 用此迷你主机虚拟化,创建2个虚拟机,安装oracle,另外创建一个虚拟机安装openfiler,做为oracle的共享存储。◎主机虚拟化处理强烈推荐使用proxmox,当然我自己也用。当前的版本是proxmox5.2,支持ceph超融合,巨好用,iso一键安装。官方网站(www.proxmox.com)下载镜像包,用ultraIso写入u盘,使其可以开机引导。如果u盘无法引导加载的情况,可再做一次ultraISO写入操作,写入格式选“raw”,如下图所示: Proxmox安装过程很简单,也很容易完成,这里不再多说。Proxmox底层是基于debian的,在运行过程中,系统会执行apt-get update去做包更新,为避免出现“TASK ERROR: command 'apt-get update' failed: exit code 100”这样的错误,需要以ssh登录系统(debian),修改文件/etc/apt/sources.list.d/pve-enterprise.list ,把里边的唯一一行内容注释掉。当然,你也可以无视。○多网卡处理也许你的实验环境跟我一样,只有一个物理网卡,但要实现oracle rac至少得两个网卡,怎办?增加一块就好,具体方法如下:1、proxmox管理界面选择“创建”,再选“Linux Bridge”,填写ip地址和掩码(网关等其它项不用填写) 2、使网络设置生效。Ssh登录debain,重启系统。再登录系统,用指令“ip add”,就可以看到刚创建的虚拟网络接口。如下图所示: 同样,在proxmox的web管理界面,也能看到这个效果。○准备操作系统镜像文件据我掌握,有两种方法可以上传操作系统ios镜像,一种是proxmox web管理界面,另一种是登录debian系统,进入镜像文件设定的目录,用wget一类的工具直接获取。1、web界面上传ios文件(需要在本地电脑上下载好文件): 在几次实践中,总觉得这个方法麻烦,而且速度慢,现在一般不采用了。2、登录系统直接下载,只下载一次,如果是机房服务器的话,比下载到本地再传上去,节省大量的时间。root@pve99:~# cd /var/lib/vz/template/isoroot@pve99:/var/lib/vz/template/iso# wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.isoroot@pve99:/var/lib/vz/template/iso# wget http://mirrors.cn99.com/centos/6.10/isos/x86_64/CentOS-6.10-x86_64-bin-DVD1.iso下载完以后,到web管理界面检查一下,是否出现在项目中。◎创建虚拟机由于安装oracle rac需要的主机资源配置完全一样,因此可以先创建好一个虚拟机,并安装好系统(不要安装oracle哟),再以克隆方式生成第二个虚拟机,改一下网络设置即可投入使用。○创建第一个虚拟机Proxmox web管理界面点击“创建虚拟机”,给虚拟机设置一个容易辨识的名字,比如db107,然后进行下一步。 “操作系统”栏目下,选“使用cd/dvd光盘镜像文件(ISO)”,下来列表框选定预先上传的操作系统iso。如下图所示: 一下步分配磁盘(给32G)、cpu(4core)、内存(8G),创建完以后,还不能满足需求。需要再增加硬盘,用来做oracle的安装目录及创建交换分区;增加网络接口,用以oracle节点间做心跳检测。1、给虚拟机增加硬盘:管理界面选中刚创建的虚拟机,在选级联菜单“硬件”,点击按钮“添加”; 设置大小为50G,计划16G用于swap,其余为安装软件目录使用。 2、添加网络接口:跟添加硬盘的步骤基本相同,只是到了“添加”这个下拉列表这里,选“网络设备”,具体选择如下图所示: ◎安装虚拟机操作系统在创建好虚拟机之后,web管理界面启动虚拟机,然后再点击页面里的“>_控制台”按钮,即可进入操作系统安装界面,如图所示: 余下的步骤,跟常规的系统安装毫无差别,不再赘述。◎安装共享存储openfilerOpenfiler跟proxmox一样,也是以iso形式提供的,同样,openfiler也需要至少两个磁盘,一个安装系统,一个做数据共享。规划好容量分配以后,就可以开始安装,安装过程很简单,不再啰嗦。下图为我安装好的openfiler磁盘使用情况,其中容量大的那个磁盘用于iscsi共享。 接下来,开始配置存储。鼠标点“Service”项,把iscsi服务打开。 在空闲的那个大容量磁盘创建分区(Linux Physical Volume),接着创建卷组vg-data(命名自己定)及逻辑卷;创建逻辑卷时,Filesystem / Volume type(文件系统/卷类型)要从下拉列表框选定“block(ISCSI,FS,etc)”。完成这个操作以后,鼠标点右侧“iSCSI Targets”菜单,添加一个新的issci目标(Add new iSCSI Target),如果没有启动iscsi服务,则添加按钮(Add)是灰色的,无法进行下一步操作。完成逻辑单元(LUN)映射,操作如下图: 因为是内部网络,因此可以不对访问做限制。到此,存储端配置完毕。◎服务器挂接iscsi磁盘(需要在两个主机都操作)只需简单几个步骤,即可在主机上挂接好iscsi共享磁盘,并且使之随系统开机启动。○启动iscsi服务。Centos默认可能没有安装熟悉而好用的ntsysv,yum安装一个吧。执行ntsysv吧iscsi项选上,下次开机,iscsi服务就自动起来了。○扫描iscsi目标,并记录下输出信息,指令如下:[root@db115 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.35.107172.16.35.107:3260,1 iqn.2006-01.com.openfiler:tsn.3ceca0a95110需要的就是数字“1”后边加粗的部分信息。○挂接目标磁盘,指令如下:# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.3ceca0a95110 –lLogging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110, portal: 172.16.35.107,3260] (multiple)Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110, portal: 172.16.35.107,3260] successful.○磁盘挂接验证,两个主机都执行一次,指令如下:[root@db115 ~]# fdisk –l...……………………………省略…………………………………Disk /dev/sdc: 51.2 GB, 51170508800 bytes, 99942400 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/sdd: 122.9 GB, 122876329984 bytes, 23×××832 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/sde: 10.2 GB, 10234101760 bytes, 19988480 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes以此法共享出三个卷,并挂接在每一个节点上。部署oracle 12c rac分三个阶段:安装前的准备、安装软件、创建数据库。◎安装前的准备主要步骤有:准备交换分区及数据分区、设置相关主机名及 ip 映射、修改系统相关配置及依赖包、准备桌面环境。◆准备交换分区,需要在每一个节点执行。fdisk /dev/sdbmkswap /dev/sdb1swapon /dev/sdb1fdisk操作过程中,分区代码选“82”,大小为18G。执行完上述操作后,用命令free –m检查是否生效。为了让交换分区随系统开机加载,需要修改文件/etc/fstab,加入的内容等描述完加数据分区以后,一并贴出。本文转自(sery)博客51CTO博客,如需转载,请自行联系原作者。原文链接http://blog.51cto.com/sery/2142109
上滑加载中
推荐直播
-
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 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
回顾中
热门标签