由Oracle库文件建立完整数据库的过程

最近帮忙老师写一部分网站管理系统的功能,由于不在同一个地方,老师发给了我一个库文件(后续名为.dmp),要我自己建个数据库在上面跑起来,下面就说说我做的步骤,以免到时候需要用的时候又忘了。

1、首先在本地建立一个Oracle数据库,全局数据库名和SID我都写了SCHOOL。

2、以管理员身份登录该数据库,我是以SYSTEM,密码是建数据库时设的密码登录的。

3、用PL/SQL登录该数据库后,就可以创建用户了,代码如下:

create user myxuser identified by myxuser;

同时也可以修改数据库密码:alter user zzg identified by unis;

4、默认情况下用户创建好后系统会默认给该用户分配一个表空间(users),我们可以通过下面的语句来查看一下所有用户所在的表空间:

select username,default_tablespace from dba_users;

一般情况下我们不会用用户的默认表空间,这时我们可以自己创建一个表空间:

create tablespace myxuser_data datafile 'e:\myxuser.dbf' size 200M;其中tablespace后面的为表空间的名字;datafile后的路径为表空间的物理存储路径;文件的后缀可以随便取;

size 200M是设定了表空间的大小。

5、创建好表空间,并将表空间分配给用户:alter user myxuser default tablespace myxuser_data;

6、给用户myxuser分配权限:grant create session,create table,create view,create sequence,unlimited tablespace to myxuser;

7、这样用户myxuser就可以登录了。同时把.dmp文件导入数据库:imp myxuser/myxuser@SCHOOL file=E:\school20130120.dmp fromuser=myxuser touser=myxuser

这里出现了点小问题,出现错误:IMP-00013,只有DBA才能导入由其他DBA导出的文件。所以我们要把DBA权限赋予给用户myxuser:

grant dba to myxuser;

至此发现数据库中知导入了一部分的表,查询原因,

原来因为我给用户myxuser分配的表空间大小为200M,但库文件内容比较多,所以只导入了一部分表,故应自动扩展表空间的大小:

ALTER DATABASE DATAFILE 'E:\MYXUSER.DBF' AUTOEXTEND ON NEXT 200M ;//每次自动增长200M

至此则导入成功。

相关推荐