MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:

2020年6月14日 星期日

EnterpriseDB 的移轉輔助平台—EDB Migration Portal


EnterpriseDB 提供 Oracle 開發相容性的解決方案,讓使用者可以有一個機會,評估搬遷 Oracle 資料庫到 EDB Postgres 資料庫平台,適當的降低對 Oracle 資料庫的依賴。

搬遷資料庫有三個面向:
  • 資料庫內的物件搬遷/改寫:就是俗稱的 SQL DDL,如同程式碼的東西
  • 資料庫內的資料搬遷:當然~搬「資料」庫就是要搬資料ㄚ
  • 應用程式端的測試/改寫:這個情況比較複雜,有時有歷史包袱。要實際測試才能知道花費的力氣有多少

EDB 針對三點,各有解決方案
  • 資料庫內的物件:EDB 企業版具備 Oracle 開發相容性,以及移轉輔助平台 EDB Migration Portal
  • 資料庫內的資料搬遷:EDB 提供資料移轉工具 EDB Migration Toolkit,支援 JDBC Batch Mode 以及 OCI 高速資料搬遷功能
  • 應用程式端:單就程式碼而言,主流並具備抽象的 DB API 的程式語言 Java、ADO .Net 等改寫比較輕鬆;EDB 也針對 C 開發的程式(OCI、Pro*C)盡可能提供相容性。不過這段還會牽扯到跨系統介接,需要多作評估。

這個筆記要介紹的是資料庫內的物件移轉平台,EDB Migration Portal 的操作。
這邊的測試環境為 Oracle 11XE 的 HR 帳號與 schema
並額外匯入一個 EDB 12 尚未直接相容需要微調的小功能:Oracle 的 TIMESTAMP WITH LOCAL TIME ZONE
create table testtimestmp
(
 svrtime TIMESTAMP WITH LOCAL TIME ZONE
);
insert into testtimestmp values (sysdate);
commit;/
CREATE OR REPLACE FUNCTION testlocaltimeszone (selectnow IN TIMESTAMP WITH LOCAL TIME ZONE) RETURN TIMESTAMP
IS
BEGIN
  RETURN sysdate;
END;
/
-bash-4.2$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on Wed Jun 10 03:15:51 2020

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL>
SQL> connect hr/hr
Connected.
SQL> create table testtimestmp
  2  (
  3  svrtime TIMESTAMP WITH LOCAL TIME ZONE
  4  );

commit;/
Table created.

SQL> SQL>
  2
SQL>
SQL> insert into testtimestmp values (sysdate);

1 row created.

SQL> commit;

Commit complete.

SQL>
SQL> select * from testtimestmp;

SVRTIME
---------------------------------------------------------------------------
10-JUN-20 03.19.45.000000 AM

SQL> CREATE OR REPLACE FUNCTION testlocaltimeszone (selectnow IN TIMESTAMP WITH LOCAL TIME ZONE) RETURN TIMESTAMP
  2  IS
  3  BEGIN
  4  RETURN sysdate;
  5  END;
  6  /

Function created.

SQL>
SQL> select testlocaltimeszone(sysdate) from dual;

TESTLOCALTIMESZONE(SYSDATE)
---------------------------------------------------------------------------
10-JUN-20 04.07.24.000000000 AM

SQL>
SQL> exit;
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
-bash-4.2$

執行 EDB Migration Portal 提供的 SQL Extractor:這可以直接在 Migration Portal 下載到
-bash-4.2$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on Wed Jun 10 03:31:39 2020

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> conn sys/123456 as sysdba
Connected.
SQL> @/tmp/edb_ddl_extractor.sql

# -- EDB DDL Extractor Version 2.3.3 for Oracle Database -- #
# --------------------------------------------------------- #
Enter comma separated list of schemas to be extracted (Default all schemas): HR
Location for output file (Default current location) : /tmp/

WARNING:
Given schema(s) list may contain objects which are dependent on objects from other schema(s), not mentioned in the list.
Assessment may fail for such objects. It is suggested to extract all dependent objects together.

Extract dependent object from other schemas?(yes/no) (Default no / Ignored for all schemas option):yes

Identifying Dependencies...

INFO:
No Schema found having dependent objects.

INFO:
Extraction process may take time depending on number of objects.

Writing  HR DDLs to /tmp/_gen_hr_ddls_200610040914.sql
######################################################################################################################
## EDB DDL Extractor Utility. Version: 2.3.3
##
## Source Database Version: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
##
## Extracted On: 10-06-2020 04:09:16
######################################################################################################################
Extracting SYNONYMS...
Extracting DATABASE LINKS...
Extracting TYPE/TYPE BODY...
Extracting SEQUENCES...
Extracting TABLEs...
Extracting PARTITION Tables...
Extracting CACHE Tables...
Extracting CLUSTER Tables...
Extracting KEEP Tables...
Extracting INDEX ORGANIZED Tables...
Extracting COMPRESSED Tables...
Extracting EXTERNAL Tables..
Extracting INDEXES...
Extracting CONSTRAINTS...
Extracting VIEWs..
Extracting MATERIALIZED VIEWs...
Extracting TRIGGERs..
Extracting FUNCTIONS...
Extracting PROCEDURES...
Extracting PACKAGE/PACKAGE BODY...
Extracting dependant OBJECTS...

## Successfully Extracted Schema(s) :  HR

We have stored DDL(s) for Schema(s)  HR to /tmp/_gen_hr_ddls_200610040914.sql.
Upload this file to EDB Migration Portal to check compatibility against EDB Postgres Advanced Server.

NOTES:
1) DDL Extractor does not extract objects having names like 'BIN$b54+4XlEYwPgUAB/AQBWwA==$0',
If you want to extract these objects, you must change the name of the objects and re-run this extractor.
2) DDL Extractor extracts nologging tables as normal tables. Once these tables are migrated to Advanced Server,
WAL log files will be created.

Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
-bash-4.2$
-bash-4.2$ ls /tmp/
_gen_hr_ddls_200610040914.sql  edb_ddl_extractor.sql  namespace-dev-oSxCqu
-bash-4.2$

上傳 extracted DDL


處理完畢,有出現一個錯誤


查看一下移轉專案的清單


排除錯誤:編輯界面會標示錯誤的地方跟訊息,這時依照狀況作調整


修改之後,就可以通過了。




修改之後的結果,就能夠從 Migration Portal 匯出作使用~若是考慮 EDB 提供的雲端方案 EnterpriseDB Cloud Database Service,Migration Portal 也可以直接連通到雲端啟動一個 EDB 資料庫~~這邊就不作示範了。

以上就是 Migration Portal 的操作。
可以筆記的是:
  • 在 Oracle 裡面搭配 Java Class 做成的 Stored Procedure 之類的物件不會被匯出
  • Oracle 的 Job 物件不會匯出,需要後續手動建立 pgAgent 排程或是用 DBMS_JOB 相容 Package 來手動處理
  • 目前 Migration Portal 主要是線上移轉平台,離線版需要專案處理。若不方便使用線上平台,就需要用 Migration Toolkit 慢慢的進行移轉評估

沒有留言:

張貼留言