2010年11月1日

如何新增測試資料庫 , Oracle 備份還原篇.

TIPTOP 隨著功能不斷的增加,客製越來越頻繁時, 相對的問題就越來越多囉~~
有時也會遇到 "嘟丟ㄍㄨ一" 莫名奇妙的情況發生,
因此偶而把之前的 Oracle 備份資料還原到新的測試資料庫去查,
把問題徹底的找出來,才是解決問題的根本之道.

相信每天都有在備份資料庫的資料吧~~預設是用 exp 指令來匯出資料備份.
這樣想要還原到那一天的備份檔都可以囉~~執行效率也比較高.

1. 先建立新的測試資料庫 user 和 db name .
    createdb testdb 1
    或是比較習慣用 create user 的方式,用 sys 帳號 sysdba 方式登入
    conn sys/sys_dsc as sysdba;
     --create user
    CREATE USER testdb
     IDENTIFIED BY testdb
     DEFAULT TABLESPACE DBS1
       TEMPORARY TABLESPACE TEMP
       PROFILE TIPTOPGP
      ACCOUNT UNLOCK;
      -- 2 Roles for testdb
      GRANT RESOURCE TO testdb;
      GRANT TIPTOPGP TO testdb;
      ALTER USER testdb DEFAULT ROLE ALL;
      -- 5 System Privileges for testdb
     GRANT UNLIMITED TABLESPACE TO testdb;
     GRANT CREATE VIEW TO testdb;
     GRANT CREATE TABLE TO testdb;
     GRANT CREATE SYNONYM TO testdb;
     GRANT CREATE SESSION TO testdb;
     -- 1 Object Privilege for testdb
     GRANT SELECT ON SYS.V_$SESSION TO testdb;

2. 再來就是把資料匯入囉.
    imp system/manager file=xxx.dmp fromuser=yyy touser=testdb ignore=y

3. 最後就是在 TIPTOP 建立營運中心囉~~完成!!
    aooi931、p_zo、p_zxy

4. 記得要把參數都 update 喔~~不然程式可是會拋到正式資料庫造成錯亂的
        update TESTDB.apz_file set apz02p = 'TESTDB',apz04p = 'TESTDB';
        update TESTDB.ooz_file set ooz02p = 'TESTDB';
        update TESTDB.sma_file set sma87 = 'TESTDB';
        update TESTDB.oaz_file set oaz02p = 'TESTDB';
        update TESTDB.och_file set och03 = 'TESTDB';
        update TESTDB.nmz_file set nmz02p = 'TESTDB';
        update TESTDB.faa_file set faa02p = 'TESTDB';
        update TESTDB.faf_file set faf03 = 'TESTDB';
        update TESTDB.ccz_file set ccz11 = 'TESTDB';

5. 如果是建立空白資料庫再匯入備份檔的話,要再多修改 FGLPROFILE 檔.
    不然會顯示 Fail in Reading System Parameter 的錯誤訊息.
     vi $FGLPROFILE
     或
     vi /u1/genero.run/etc/fglprofile.prod

補充:
imp 可以加上 tables=(a_file,b_file) 就可以單獨還原 a_file、b_file 的 Table,
記得要把原本的 Table 的資料刪掉,不然匯入的時候會一堆錯誤訊息。

2 則留言:

  1. 張先生:
    Info: User of tiptop Fail in Reading System Parameter.
    $FGLPROFILE 我都有確認過已包括新增的資料庫.
    但執行udm7還是無法順利進入則會出現上述訊息.

    回覆刪除
    回覆
    1. 您好,會有 Fail in Reading System Parameter 的情況,
      一般都是 zx_file 的 zx08 欄位沒有對應的資料庫名稱,
      不然就是 $FGLPROFILE 帳號密碼錯誤或是沒有建立。

      再檢查看看是不是這二種情況。

      刪除