arcsde for oracle 12c,ArcSDE10.2.1 for Oracle 12c的建库模式

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

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

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

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20130702093410453%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

用户可以不勾选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

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217152254375%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

我们需要连接CDB的SYS用户,使用CREATE PLUGGABLE DATABASE语句来创建PDBSQL> 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.相关的参数解释请参考:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217152612578%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

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

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下的地理数据库

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217153234828%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

创建完毕之后,我们就可以使用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

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217153629328%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

我们查看一下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帮助也明确说明了该问题

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217154340390%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

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用户来加载空间数据了

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217155159734%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

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

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140217160224890%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flinghe301%2Farticle%2Fdetails%2F19337351

从我们的测试环境可以看出,系统默认已经有一个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了。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值