由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;
触发器的问题(grant select on sys.v_$session 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
至此则导入成功。
8、一些其他操作
关于数据迁移,常常需要导入导出表,现将方法列出如下:
导出某用户的全部数据:在cmd下exp username/passwd@database file=D:\xxx.dmp owner=username;
导出全部数据:exp username/passwd@database file=D:\xxx.dmp full=y;
导出特定表的数据:exp username/passwd@database file=D:\xxx.dmp tables=(table1,table2...);
exp/imp对于比较大的数据库,常常是速度非常慢,10g以后提供了expdp/impdp,imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,因为在使用expdp/impdp以前需要在数据库中创建一个Directory
create directory dump_test as '/u01/oracle10g';
grant read, write on directory dump_test to piner
然后就可以开始导入导出
expdp piner/piner directory=dump_test dumpfile=user.dmp 导出用户的数据
expdp piner/piner directory=dump_test dumpfile=table.dmp tables=test1,test2 导出表数据
impdp piner/piner directory=dump_test dumpfile=user.dmp 导入该用户数据
impdp piner/piner directory=dump_test dumpfile=table.dmp 导出表数据
当然还有一种方法是对表空间进行导出,由于限制较多,本人未用过,有兴趣的读者可以查看一下地址:http://blog.sina.com.cn/s/blog_95cfa646010120lp.html。