1. 程式人生 > >記一次oracle建立一個新資料庫,並匯入正式環境資料庫備份的dmp包過程

記一次oracle建立一個新資料庫,並匯入正式環境資料庫備份的dmp包過程

背景:
正式環境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/
[email protected]
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)
    )
  )