记一次oracle创建一个新数据库,并导入正式环境数据库备份的dmp包过程

来源:互联网 发布:非广播多路访问网络 编辑:程序博客网 时间:2024/06/10 19:35
背景:
正式环境oracle数据库定时用exp备份一个dmp包,现在打算在一台机器上创建一个新数据库,并导入这个dmp包。

1、创建数据库
   开始 -> 所有程序 ->  Oracle -> 配置和移植工具  -> Database Configuration Assistant,打开图形化界面,大部分都是默认的下一步操作,有几个地方需要输入:
  (1)其中要输入“全局数据库名”和“SID”的名称,两个一样就行,这里假设输入testdb;
  (2)选择“所有账户使用同一管理口令”,输入口令(这个口令一定要记住);
  (3)数据文件和控制文件等的路径,根据实际需要可以修改;

2、创建完数据库后,可以修改tnsnames.ora的网络服务名,如把TESTD修改为TESTDB
   文件位置:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
  TESTD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = serv001)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = testdb)
    )
  )

3、用dba管理员登录
   cmd命令窗口中
   输入   set oracle_sid=ibrtestdb回车
   再输入 sqlplus  /nolog 回车
   再输入 conn / as sysdba 回车

4、上面提示:“权限不足”,网上搜索了下解决方法,把操作系统的当前用户加入到ORA_DBA组里,就好了。
   计算机 -> 管理 -> 本地用户和组 -> 用户 -> 【当前用户】 -> 属性 -> 隶属于 -> 添加 -> ORA_DBA

5、根据正式环境数据库的表空间,创建对应的表空间
create tablespace data datafile 'E:\oradata\testdb\data01.dbf' size 500m;
create tablespace indx datafile 'E:\oradata\testdb\indx01.dbf' size 500m;

6、创建用户dev,并赋予一些权限

create user dev identified by dev default tablespace data;

-- Grant/Revoke object privileges 
grant execute on SYS.DBMS_JOB to dev;

-- Grant/Revoke role privileges 
grant connect to dev;
grant resource to dev;

grant dba to dev;

-- Grant/Revoke system privileges 
grant create job to dev;
grant create materialized view to dev;
grant create view to dev;
grant debug connect session to dev;
grant manage scheduler to dev;
grant unlimited tablespace to dev;

7、导入dmp备份包,留意导入过程中是否有错误信息
imp dev/dev@TESTDB file= E:\db20170530.dmp fromuser=prd touser=dev

8、导入后的检查,检查表、视图、存储过程、job等是否已全部导入
select * from user_tables;
select * from user_views; 
select * from user_objects t where t.OBJECT_TYPE='FUNCTION';
select * from user_objects t where t.OBJECT_TYPE='PROCEDURE';
select * from user_objects t where t.OBJECT_TYPE='JOB';
select * from user_objects t where t.OBJECT_TYPE='VIEW';
select * from user_objects t where t.OBJECT_TYPE='MATERIALIZED VIEW';
select * from user_objects t where t.OBJECT_TYPE='TABLE';

9、其他电脑连接到此数据库,需要在tnsnames.ora增加配置信息

TESTDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = serv001)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb)
    )
  )