云计算环境下的实验环境配置相对单机而言,更加便于集约管理。以笔者教学所用的云平台为例,该平台有75个云终端,一个Oracle数据库服务器,可以支持两个班级的学生进行空间数据库实习。假定云平台下IP地址59.71.143.108的虚拟机为Oracle数据库服务器。在这个服务器里面,每位学生对应一个可插拔数据库,相当于每个同学使用一个独立的数据库。每个PDB的系统数据库大小约为1GB,加上学生实习数据大小为2GB,也就是1个PDB最小可以按照3GB计算,这是一个比较保守的估计,建议服务器上适当预留一定的空间。
如果实习班级为1个,PDB的序号为1~35。例如,张三同学的班级序号是05,则对应的PDB为pdborcl05,管理员用户和密码也分别为pdborcl05和pdborcl05;如果学号是35,则对应的PDB为pdborcl35,管理员用户和密码分别为pdborcl35和pdborcl35。如果实习班级为2个,则PDB的序号为1~70。班级序号小的为1班,班级序号大的为2班。1班对应的PDB为1~35。2班对应的PDB序号为36~70。例如,2班的01号同学对应的PDB就是pdborcl36,2班的35号同学对应的PDB就是pdborcl70。按照上述规则类推,在虚拟服务器足够强大的情况下,可以支持多个班级同时进行实验。
以1班05号学生为例,其登录参数设置如下。
连接名称:pdborcl05。
用户:pdborcl05。
密码:pdborcl05。
连接类型:基本。
角色:默认值。
主机名:59.71.143.108。
端口:1521。
服务器名:pdborcl05。
从上面的表述可以看出,每个学生的管理员用户就是pdborclxx,其中xx为自己在班级的序号。学生以管理员pdborclxx登录对应的PDB后,建议自己再创建一个用户和方案(Schema),例如创建test用户,系统默认会创建对应的方案(不需要自己显示建立),来操作自己的PDB数据库,test用户的默认表空间可以设置为sysaux。因为以pdborclxx登录的用户默认的表空间是system表空间,有些操作不安全,也没有相应的权限。所以,建议采用自己新建的用户进行操作,以免误操作破坏自己的PDB。
教师对应的PDB为pdborcl00,密码为pdborcl00,其中创建了test用户和方案。为了节省计算资源,每次下课教师可以把所有的PDB关掉,但这样每次上课的时候需要首先以sys登录,运行以下命令:
alter pluggable database all open;
同时,教师也可以用sys用户运行下面类似代码为每个学生创建一个PDB。例如,为序号01的学生创建pdborcl01可插拔数据库的代码如下:
该用户登录可插拔数据库的界面如图8-7所示。
图8-7 学生用户pdborcl01连接数据库界面
如果某个学生的实验数据库损坏,则需要重建。重建可插拔数据库的代码如下。
第一步:查看服务器上所有的可插拔数据库。
SQL>show pdbs;
第二步:关闭所有的可插拔数据库或者只是关闭要修改的可插拔数据库。(www.xing528.com)
SQL>alter pluggable database all close immediate;或者:
SQL>alter pluggable database pdborcl00close immediate;
第三步:删除要重建的可插拔数据库。
SQL>drop pluggable database pdborcl00including datafiles;
第四步:创建新的可插拔数据库。
SQL>create pluggable database PDBORCL00admin user PDBORCL00 identified by
PDBORCL00roles=(DBA)file_name_convert=(
'A:\app\orcl\oradata\orcl\pdbseed','A:\app\orcl\oradata\orcl\pdborcl00');
第五步:采用pdborcl00登录,创建用户test,代码如下:
SQL>create user test identified by test default tablespace"SYSAUX"temporary ta
blespace"TEMP";
SQL>grant"RESOURCE"to test;
SQL>grant"CONNECT"to test;
SQL>grant"DBA"to test;
第六步:导入空间数据。
//sqlplus用户名/密码@主机ip或域名:端口/可插拔数据库的服务名。如:
$:sqlplus sys/orcl@59.71.143.108:1521/pdborcl00as sysdba
SQL>alter session set container=pdborcl00
$:imp test/test@59.71.143.108:1521/pdborcl00file=c:\mvdemo.dmp full=y
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。