由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
至此则导入成功。