Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便、快捷的操作,使得我们不再为Oracle本身丑陋、难用的UI而抱怨。由于我们一般都是建建表、查查数据的操作居多,较少会考虑系统的整个Oracle的完整备份操作。但是在我们一些发布操作中,我们必须考虑如何把Oracle的对象、表数据导出到Sql脚本中,并且把创建Oracle表空间、创建Oracle数据库的操作也放到脚本中,这样我们就方便快速还原或者部署Oracle数据库到新的机器上了。
本文主要介绍如何结合Sql脚本和PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作,然后实现Oracle对象创建、导入数据等操作,方便我们快速了解、创建所需要的部署Sql脚本和数据库操作。
1、 准备数据库创建脚本
create tablespace whc_tbs datafile 'E:\oracle\oradata\whcdb\whc.dbf' size 100M;
--DROP TABLESPACE whc_tbs INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; create user whc identified by whc default tablespace whc_tbs;
grant connect ,resource to whc;
grant dba to whc;
--Revoke dba from whc; |
其中--的注释语句是删除命名空间和移除DBA用户的权限的。
以上这些脚本是为了我们在新建一个表空间和Oracle数据库的时候使用的。
其中E:\oracle\oradata\whcdb\whc.dbf路径是我们要存放数据库数据的位置,因此要保证该路径有足够的空间和足够的访问权限,否则会失败的。
2、 导出数据库对象
在PL/SQL Developer的菜单Tools=>Export User Objects中出来一个对话框界面,然后框选要到处的Oracle 数据库对象,包括表,序列,存储过程,视图,函数等等,并指定导出的文件名称,如下操作。
3)导出表数据
导出表结构和其他对象后,我们下一步就是把数据库的表数据进行导出,PL/SQL Developer工具支持导出数据到PL/SQL数据库脚本中,如下所示。这样导出的脚本,我们可以在PL/SQL Developer工具导入或者自己通过Sql plus 工具进行导入。
至此,我们就已经完成了三种脚本了,包括创建数据库空间和数据库脚本、创建Oracle数据库对象(表、存储过程、视图、序列等)、创建导入数据的脚本,这样三种合一,就是一个完整的数据库了。最后一步就是我们如何导入数据库对象和数据的问题了。
4)导入数据库对象及数据
导入数据库对象和数据的操作一样,都可以通过Import Tables操作实现,我们指定刚才上面两步创建的数据库脚本,执行即可再新的环境中创建数据库对象和数据库数据了。如下所示。
执行的数据界面如下所示。
完成上面几个步骤,我们在新的数据库环境中,就具备了所有的东西了,顺利完成整个Oracle数据库对象及数据的迁移工作。
以上值得注意的是,我们导出Oracle对象和数据的时候,默认还是原来Oracle数据库的表空间和数据库用户名称的,如果我们想要在新的数据库服务器中指定不同的表空间和数据库用户对象,那么我们就需要替换生成的sql脚本,并在第一步指定合理的表空间和数据库用户。
如果是Linux平台下的数据库服务器,第一步操作也是差不多的,就是指定表空间的路径名稍微不同,其他操作并无差异。