热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

ArcSDE10.2.1forOracle12c的建库模式

前面我们已经介绍了怎么在Oracle12c环境下创建Geodatabase10.2.1,但是这些都是在默认环境下进行的建库,那么如果用户希望新创建一个PDB,然后再在新创建的PDB上创建ArcSDE地理数据库,而且用户希望再创建一个普通的SDE数据库用户该怎么操作呢?注意:以下

前面我们已经介绍了怎么在Oracle12c环境下创建Geodatabase10.2.1,但是这些都是在默认环境下进行的建库,那么如果用户希望新创建一个PDB,然后再在新创建的PDB上创建ArcSDE地理数据库,而且用户希望再创建一个普通的SDE数据库用户该怎么操作呢? 注意:以下

前面我们已经介绍了怎么在Oracle12c环境下创建Geodatabase10.2.1,但是这些都是在默认环境下进行的建库,那么如果用户希望新创建一个PDB,然后再在新创建的PDB上创建ArcSDE地理数据库,而且用户希望再创建一个普通的SDE数据库用户该怎么操作呢?

注意:以下操作都是在用户使用PDB基础上,鉴于PDB收费,如果用户使用非PDB的Oracle实例,那么在相关操作与Oracle11g版本基本一致。



用户可以不勾选Create as Container database。就不创建PDB了。



测试环境:

Linux 5.5、Oracle12.1.0.1 ( CDB:orcl PDB:pdborcl)、ArcGIS10.2.1


你知道吗?
Oracle 12c 数据库的多租户功能将单独收费,售价为 1.75万美元/处理器,而企业版 12c数据库的售价仍为 4.75 万美元/处理器。

1:创建一个新的PDB:pdbsde

创建一个新的PDB有多种创建方式,我们使用的方式是使用PDB的Seed创建PDB


我们需要连接CDB的SYS用户,使用CREATE PLUGGABLE DATABASE语句来创建PDB

SQL> CREATE PLUGGABLE DATABASE pdbsde ADMIN USER sdeadmin IDENTIFIED BY sdeadmin
  2  STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M) DEFAULT TABLESPACE pdbsde
DATAFILE '/home/oracle/app/oracle/oradata/orcl/pdbsde/pdbsde.dbf' SIZE 500M AUTOEXTEND ON
  3    4  PATH_PREFIX = '/home/oracle/app/oracle/oradata/orcl/pdbsde/'
  5  FILE_NAME_COnVERT= ('/home/oracle/app/oracle/oradata/orcl/pdbseed/',
  6  '/home/oracle/app/oracle/oradata/orcl/pdbsde/');


Pluggable database created.
相关的参数解释请参考:


--------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/linghe301
Weibo: http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


创建好PDB之后,我们来查看一下PDB的状态信息,如下所示,新创建的PDBSDE是Mounted状态,我们需要手动打开,然后查看一下数据文件的变化。

SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 4062262812 PDB$SEED                       READ ONLY
         3 2266793495 PDBORCL                        READ WRITE
         4  323980054 PDBSDE                         MOUNTED

SQL> alter pluggable database pdbsde open;

Pluggable database altered.

SQL>  select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/orcl/system01.dbf
/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf
/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf
/home/oracle/app/oracle/oradata/orcl/pdbseed/system01.dbf
/home/oracle/app/oracle/oradata/orcl/users01.dbf
/home/oracle/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
/home/oracle/app/oracle/oradata/orcl/pdborcl/system01.dbf
/home/oracle/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf
/home/oracle/app/oracle/oradata/orcl/pdborcl/SAMPLE_SCHEMA_users01.dbf
/home/oracle/app/oracle/oradata/orcl/pdborcl/example01.dbf
/home/oracle/app/oracle/product/12.1.0/dbhome_1/dbs/sde01

NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/orcl/esri.dbf
/home/oracle/app/oracle/oradata/orcl/pdborcl/esri.dbf
/home/oracle/app/oracle/oradata/orcl/pdborcl/esri2.dbf
/home/oracle/app/oracle/oradata/orcl/pdbsde/system01.dbf
/home/oracle/app/oracle/oradata/orcl/pdbsde/sysaux01.dbf
/home/oracle/app/oracle/oradata/orcl/pdbsde/pdbsde.dbf

17 rows selected.

SQL>

接下来,我们使用SYS用户连接PDBSDE,创建SDE的表空间数据问题(由于如果使用ArcGIS10.2.1 for Desktop的Create Enterprise Geodatabase创建的SDE表空间文件默认存储在/home/oracle/app/oracle/product/12.1.0/dbhome_1/dbs/sde01路径下,但是该文件并不能明确看出该文件是由CDB或者哪一个PDB创建的,所以建议用户手动创建SDE数据文件,并指定相关的PDB名称,如/home/oracle/app/oracle/oradata/ora/pdbsde/

SQL> conn sys/oracle@192.168.220.203/pdbsde as sysdba
Connected.
SQL> CREATE SMALLFILE TABLESPACE SDE DATAFILE '/home/oracle/app/oracle/oradata/orcl/pdbsde/sde.dbf' SIZE 1000M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT NOCOMPRESS
  2  ;

Tablespace created.
创建之后,我们就可以使用创建地理数据库工具来创建存储在PDBSDE下的地理数据库

创建完毕之后,我们就可以使用sde用户进行连接了。

--------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/linghe301
Weibo: http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


2:前面也提到了,用户希望创建自己业务数据的表空间以及相关用户,那么假设用户创建了ESRI表空间,以及所属该表空间的test2用户。

SQL> conn sys/oracle@192.168.220.203/pdbsde as sysdba
Connected.
SQL> CREATE SMALLFILE TABLESPACE SDE DATAFILE '/home/oracle/app/oracle/oradata/orcl/pdbsde/sde.dbf' SIZE 1000M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT NOCOMPRESS
  2  ;

Tablespace created.

SQL>
SQL> CREATE SMALLFILE TABLESPACE ESRI DATAFILE '/home/oracle/app/oracle/oradata/orcl/pdbsde/esri.dbf' SIZE 100M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT NOCOMPRESS;

Tablespace created.

表空间创建之后,我们就习惯的使用PL/SQL等Oracle客户端软件创建相关的数据库用户test2,赋予Connect和Resouce等角色。

但是,通过ArcCatalog连接test2用户,创建要素类系统提示如下错误:ORA-01950


我们查看一下Ora-01950错误

SQL> !oerr ora 01950
01950, 00000, "no privileges on tablespace '%s'"
// *Cause:  User does not have privileges to allocate an extent in the
//          specified tablespace.
// *Action: Grant the user the appropriate system privileges or grant the user
//          space resource on the tablespace.
错误提示,该用户没有对表空间ESRI分配Extent的权限,其实也就是没有赋予用户Quota权限。


Oracle 官网对quota的定义如下: A limit on a resource, such as a limit on the amount of database storage used by a database user. A database administrator can set tablespace quotas for each Oracle Database username。


quota是为了限制用户对表空间的使用,比如你限制用户test在tablespace SDE中的quota为10m,当用户test在tablespace SDE中的数据量达到10m后,无论你的tablespace SDE中有多少空间,test都无法再使用tablespace SDE了。


在Oracle11g以及以前版本,如果用户赋予resouce角色之后,系统会自动赋予对该用户所属默认表空间quota umlimited to表空间,但是Oracle12c之后,即使赋予resouce角色之后,系统是不会默认赋予quota权限了,需要用户手动赋予。


查看Oracle帮助也明确说明了该问题


http://docs.oracle.com/cd/E16655_01/network.121/e17607/release_changes.htm#DBSEG941

--------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/linghe301
Weibo: http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


所以用户在创建新用户需要设置quota权限即可

方式一:

SQL> create user test2 identified by test2 DEFAULT TABLESPACE ESRI TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK  quota unlimited on esri cOntainer=current;

User created.

SQL> grant connect,resource to test2;

Grant succeeded.
方式二:
SQL> create user test2 identified by test2 DEFAULT TABLESPACE ESRI TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK   cOntainer=current;

User created.

SQL> grant connect,resource to test2;

Grant succeeded.
 
SQL> grant unlimited tablespace to test2;

Grant succeeded.
下面用户就可以使用test2用户来加载空间数据了



下面来看一下,各个CDB、PDB与用户的关系


从我们的测试环境可以看出,系统默认已经有一个CDB、PDBORCL,而且在PDBORCL里面创建了ArcSDE地理数据库,那么默认的SYS/SYSTEM用户是整个Oracle数据库的超级用户,它既可以操作CDB,又可以操作PDBORCL,而PDBORCL默认创建的SDE用户只能操作PDBORCL里面的SDE数据库,系统又新创建了一个PDBSDE,然后又创建了一个SDEADMIN的管理用户,默认的SDE用户和新创建的TEST2用户,那么这三个用户只能对PDBSDE进行操作,而不能管理PDBORCL。


其实Oracle12c的CDB和PDB可以类比CDB就是原来整个Oracle数据库,PDB就是数据库的一个实例,用户可以创建多个PDB,同样用户也可以在一个数据库中创建多个实例,但是每个实例都有自己的超级管理员,但是Oracle12c只需要一个CDB的管理员帐号就可以管理所有的PDB。

--------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/linghe301
Weibo: http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------



用户可以不勾选Create as Container database。就不创建PDB了。

推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
author-avatar
mobiledu2502884697
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有