1. 程式人生 > >Oracle Golden Gate 系列十八 -- GG 多對一 real-time data warehousing 說明 與 示例

Oracle Golden Gate 系列十八 -- GG 多對一 real-time data warehousing 說明 與 示例

一.官網說明

A datawarehousing configuration is a many-to-one configuration. Multiple sourcedatabases send data to one target warehouse database. Oracle GoldenGatesupports like-to-like or heterogeneous transfer of data, with capabilities forfiltering and conversion on any system in the configuration (support varies bydatabase platform).

--多個Source DB傳送到一個Target warehouse DB。

1.1 Considerations for a data warehousing configuration

1.1.1 Isolation of data records

Thisconfiguration assumes that each source database contributes different recordsto the target system. If the same record exists in the same table on two ormore source systems and can be changed on any of those systems, conflictresolution routines are needed to resolve conflicts when changes to that recordare made on both sources at the same time and replicated to the target table.

這裡假設每個source DB 傳送給TargetDB的都是不同的record,如果是相同的record,可能就會在TargetDB 上產生衝突。

1.1.2 Data storage

You can dividethe data storage between the source systems and the target system to reduce theneed for massive amounts of disk space on the target system. This is accomplishedby using a data pump on each source, rather than sending data directly from eachExtract across the network to the target.

(1)A primary Extract writes to alocal trail on each source.

(2)A data-pump Extract on eachsource reads the local trail and sends it across TCP/IP to a dedicated Replicatgroup.

1.1.3 Filtering and conversion

If not all ofthe data from a source system will be sent to the data warehouse, you can use thedata pump to perform the filtering. This removes that processing overhead fromthe primary Extract group, and it reduces the amount of data that is sentacross the network.

1.1.3.1 To filter data,you can use:

(1)A FILTER or WHERE clause in a TABLEstatement (Extract) or in a MAP statement (Replicat).

(2)A SQL query or procedure

(3)User exits

1.1.3.2 To transformdata, you can use:

(1)Native Oracle GoldenGateconversion functions

(2)A user exit from the Extract orReplicat process that applies rules from an external

(3)transformation solution, thenreturns the manipulated data to Oracle GoldenGate.

(4)Replicat to deliver datadirectly to an ETL solution or other transformation engine.

1.1.4 Data volume

The standard configuration is sufficientif:

(1)The transaction load isconsistent and of moderate volume that is spread out more or less evenly amongall of the objects to be replicated.

(2)There are none of thefollowing: tables that are subject to long-running transactions, tables thathave a very large number of columns that change, or tables that contain columnsfor which Oracle GoldenGate must fetch from the database (generally columnswith LOBs, columns that are affected by SQL procedures executed by Oracle GoldenGate,and columns that are not logged to the transaction log).

If yourenvironment does not satisfy those conditions, consider adding one or more setsof parallel processes.

1.2 Creating a data warehousing configuration

Figure 13 Configuration for datawarehousing

1.2.1 Source systems

--To configure theManager process

1. On each source, configure the Managerprocess.

2. In each Manager parameter file, use the PURGEOLDEXTRACTSparameter to control the purging of files from the trail on the local system.

--To configure theprimary Extract groups

3. On each source, use the ADD EXTRACT commandto create a primary Extract group. For documentation purposes, these groups arecalled ext_1 and ext_2.

Extract_1

ADD EXTRACT<ext_1>, TRANLOG, BEGIN <time> [, THREADS <n>]

Extract_2

ADD EXTRACT<ext_2>, TRANLOG, BEGIN <time> [, THREADS <n>]

注意: Use TRANLOG as the data source option. For DB2 on Z/OS, specify thebootstrap data set (BSDS) name following TRANLOG.

4. On each source, use the ADD EXTTRAIL commandto create a local trail.

Extract_1

ADD EXTTRAIL<local_trail_1>, EXTRACT <ext_1>

Extract_2

ADD EXTTRAIL<local_trail_2>, EXTRACT <ext_2>

注意: Use the EXTRACT argument to link each Extract group to the localtrail on the same system. The primary Extract writes to this trail, and thedata-pump reads it.

5. On each source, use the EDIT PARAMS commandto create a parameter file for the primary Extract. Include the followingparameters plus any others that apply to your database environment.

Extract_1

-- Identify the Extract group:

EXTRACT <ext_1>

-- Specify database login information asneeded for the database:

[SOURCEDB <dsn_1>,][USERID<user>[, PASSWORD <pw>]]

-- Specify the local trail that thisExtract writes to:

EXTTRAIL <local_trail_1>

-- Specify tables to be captured:

TABLE <owner>.<table>;

Extract_2

-- Identify the Extract group:

EXTRACT <ext_2>

-- Specify database login information asneeded for the database:

[SOURCEDB <dsn_2>,][USERID<user>[, PASSWORD <pw>]]

-- Specify the local trail that thisExtract writes to:

EXTTRAIL <local_trail_2>

-- Specify tables to be captured:

TABLE <owner>.<table>;

--To configure the datapumps

6. On each source, use the ADD EXTRACT commandto create a data pump Extract group. For documentation purposes, these pumpsare called pump_1 and pump_2.

Data pump_1

ADD EXTRACT <pump_1>, EXTTRAILSOURCE<local_trail_1>, BEGIN <time>

Data pump_2

ADD EXTRACT <pump_2>, EXTTRAILSOURCE<local_trail_2>, BEGIN <time>

注意:Use EXTTRAILSOURCE as the data source option, and specify the nameof the trail on the local system.

7. On each source, use the ADD RMTTRAIL commandto create a remote trail on the target.

Source_1

ADD RMTTRAIL<remote_trail_1>, EXTRACT <pump_1>

Source_2

ADD RMTTRAIL<remote_trail_2>, EXTRACT <pump_2>

注意:Use the EXTRACT argumentto link each remote trail to a different data pump. The data pump writes tothis trail over TCP/IP, and a Replicat reads from it.

8. On each source, use the EDIT PARAMS commandto create a parameter file for the data pump group. Include the followingparameters plus any others that apply to your

database environment.

Data pump_1

-- Identify the data pump group:

EXTRACT <pump_1>

-- Specify database login information asneeded for the database:

[SOURCEDB <dsn_1>,][USERID<user>[, PASSWORD <pw>]]

-- Specify the name or IP address of thetarget system:

RMTHOST <target>, MGRPORT<portnumber>

-- Specify the remote trail on the target system:

RMTTRAIL <remote_trail_1>

-- Allow mapping, filtering, conversion orpass data through as-is:

[PASSTHRU | NOPASSTHRU]

-- Specify tables to be captured:

TABLE <owner>.<table>;

Data pump_2

-- Identify the data pump group:

EXTRACT <pump_2>

-- Specify database login information asneeded for the database:

[SOURCEDB <dsn_2>,][USERID<user>[, PASSWORD <pw>]]

-- Specify the name or IP address of thetarget system:

RMTHOST <target>, MGRPORT<portnumber>

-- Specify the remote trail on the targetsystem:

RMTTRAIL <remote_trail_2>

-- Allow mapping, filtering, conversion orpass data through as-is:

[PASSTHRU | NOPASSTHRU]

-- Specify tables to be captured:

TABLE <owner>.<table>;

注意:Use NOPASSTHRU if the data pump will be filtering or convertingdata, and also use the SOURCEDB and USERID parameters as appropriate for thedatabase, to enable definitions lookups. If the data pump will not be filteringor converting data, use PASSTHRU to bypass the lookups.

NOTE:

To use PASSTHRU mode,the names of the source and target objects must beidentical. No column mapping, filtering, SQLEXECfunctions, transformation, or other functions that require data manipulationcan be specified in the parameter file. You can combine normal processing withpass-through processing by pairing PASSTHRU and NOPASSTHRU with different TABLEstatements.

1.2.2 Target system

--To configure theManager process

9. Configure the Manager process.

10. In the Manager parameter file, use the PURGEOLDEXTRACTSparameter to control the purging of files from the trail.

--To configure the Replicat groups

11. On the target, use the ADD REPLICAT commandto create a Replicat group for each remote trail that you created. Fordocumentation purposes, these groups are called rep_1 and rep_2.

Replicat_1

ADD REPLICAT <rep_1>, EXTTRAIL<remote_trail_1>, BEGIN <time>

Replicat_2

ADD REPLICAT <rep_2>, EXTTRAIL<remote_trail_2>, BEGIN <time>

注意: Use the EXTTRAIL argumentto link the Replicat group to the trail.

每個Data Pump 對應一個Replicat程序。

12. On the target, use the EDIT PARAMS commandto create a parameter file for each Replicat group. Include the followingparameters plus any others that apply to your database environment.

Replicat_1

-- Identify the Replicat group:

REPLICAT <rep_1>

-- State whether or not source and targetdefinitions are identical:

SOURCEDEFS <full_pathname> |ASSUMETARGETDEFS

-- Specify database login information asneeded for the database:

[TARGETDB <dsn_3>,] [USERID <userid>[, PASSWORD <pw>]]

-- Specify error handling rules:

REPERROR (<error>, <response>)

-- Specify tables for delivery:

MAP <owner>.<table>, TARGET<owner>.<table>[, DEF <template name>];

Replicat_2

-- Identify the Replicat group:

REPLICAT <rep_2>

-- State whether or not source and targetdefinitions are identical:

SOURCEDEFS <full_pathname> |ASSUMETARGETDEFS

-- Specify database login information asneeded for the database:

[TARGETDB <dsn_3>,] [USERID <userid>[, PASSWORD <pw>]]

-- Specify error handling rules:

REPERROR (<error>, <response>)

-- Specify tables for delivery:

MAP <owner>.<table>, TARGET<owner>.<table>[, DEF <template name>];

注意:You can use anynumber of MAP statements for any given Replicat group. All MAP statements for agiven Replicat group must specify the same objects that are contained in thetrail that is linked to the group.

二.示例

這裡還是3個節點的GG,我們這裡從節點2和節點3傳送到節點1.

DB: oracle 11.2.0.3

OS:redhat 5.4

2.1 在所有節點上設定Manager

GGSCI (gg1) 2> edit params mgr

PORT 7809

2.2 分別在GG2和GG3上新增Extract程序

--GG2

GGSCI (gg2) 4> add extract ext1,tranlog,begin now

GGSCI (gg2) 5> add exttrail/u01/ggate/dirdat/lt, extract ext1

GGSCI (gg2) 7> view params ext1

extract ext1

userid [email protected],password ggate

exttrail /u01/ggate/dirdat/lt

ddl include all objname dave.pdba;

table dave.pdba;

--GG3

GGSCI (gg3) 2> add extract ext1,tranlog,begin now

GGSCI (gg3) 4> add exttrail/u01/ggate/dirdat/lt, extract ext1

GGSCI (gg3) 6> view params ext1

extract ext1

userid [email protected],password ggate

exttrail /u01/ggate/dirdat/lt

ddl include all objname dave.pdba;

table dave.pdba;

2.3 分別在GG2和GG3上新增DataPump 程序

--GG2

GGSCI (gg2) 8> add extractdpump,exttrailsource /u01/ggate/dirdat/lt

GGSCI (gg2) 9> add rmttrail/u01/ggate/dirdat/d1, extract dpump

--注意這裡指定的Target端的位置,我們以d1 開頭。

GGSCI (gg2) 11> view params dpump

extract dpump

userid [email protected], password ggate

rmthost gg1, mgrport 7809,compress,compressthreshold0

rmttrail /u01/ggate/dirdat/d1

passthru

table dave.pdba;

--GG3

GGSCI (gg3) 7> add extractdpump,exttrailsource /u01/ggate/dirdat/lt

GGSCI (gg3) 8> add rmttrail/u01/ggate/dirdat/d2, extract dpump

GGSCI (gg3) 10> view params dpump

extract dpump

userid [email protected], password ggate

rmthost gg1, mgrport 7809,compress,compressthreshold0

rmttrail /u01/ggate/dirdat/d2

passthru

table dave.pdba;

2.4 在GG1上配置2個Replicat程序,分別對應Data Pump程序

--配置checkpoint

GGSCI (gg1) 3> view params ./GLOBALS

GGSCHEMA ggate

CHECKPOINTTABLE ggate.checkpoint

GGSCI (gg1) 5> dblogin [email protected],password ggate

Successfully logged into database.

GGSCI (gg1) 7> add checkpointtableggate.checkpoint

Successfully created checkpoint tableGGATE.CHECKPOINT.

這部分,參考:

--配置2個Replicat:

--rep1:

GGSCI (gg1) 8> add replicatrep1,exttrail /u01/ggate/dirdat/d1, checkpointtable ggate.checkpoint

REPLICAT added.

GGSCI (gg1) 11> view params rep1

replicat rep1

ASSUMETARGETDEFS

userid [email protected],password ggate

discardfile/u01/ggate/dirdat/rep1_discard.txt, append, megabytes 10

--HANDLECOLLISIONS

ddl include all

ddlerror default ignore retryop

map dave.pdba, target dave.pdba;

--rep2:

GGSCI (gg1) 9> add replicatrep2,exttrail /u01/ggate/dirdat/d2, checkpointtable ggate.checkpoint

REPLICAT added.

GGSCI (gg1) 13> view params rep2

replicat rep2

ASSUMETARGETDEFS

userid [email protected],password ggate

discardfile/u01/ggate/dirdat/rep2_discard.txt, append, megabytes 10

--HANDLECOLLISIONS

ddl include all

ddlerror default ignore retryop

map dave.pdba, target dave.pdba;

資料初始化的問題,具體參考:

2.5 啟動相關程序進行測試

--GG2:

GGSCI (gg2) 20> start ext1

確定ext1的trails 檔案:

GGSCI (gg2) 25> view report ext1

2011-11-20 11:31:43 INFOOGG-01056 Recovery initializationcompleted for target file /u01/ggate

/dirdat/lt000018, at RBA 132350, CSN1525929.

2011-11-20 11:31:43 INFOOGG-01478 Output file/u01/ggate/dirdat/lt is using format RELEASE 10.

4/11.1.

2011-11-20 11:31:43 WARNING OGG-01438 Checkpoint marked as from graceful shutdown,but records fou

nd after checkpoint in trail/u01/ggate/dirdat/lt. Expected EOF Seqno0, RBA 0. Found Seqno 18, RB

A 132350.

2011-11-20 11:31:43 INFOOGG-01026 Rolling over remotefile /u01/ggate/dirdat/lt000018.

GGSCI (gg2) 24> info dpump

EXTRACTDPUMP Initialized 2011-11-20 11:11 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:20:16 ago)

Log Read Checkpoint File /u01/ggate/dirdat/lt000000

First Record RBA 0

GGSCI (gg2) 26> alter extractdpump,extseqno 18,extrba 0

EXTRACT altered.

GGSCI (gg2) 27> start dpump

Sending START request to MANAGER ...

EXTRACT DPUMP starting

GGSCI (gg2) 40> info all

ProgramStatus Group Lag Time Since Chkpt

MANAGERRUNNING

EXTRACTRUNNING DPUMP 00:00:00 00:02:05

EXTRACTRUNNING EXT1 00:00:00 00:00:02

REPLICATABENDED REP1 00:00:00 12:24:42

GGSCI (gg2) 41> info dpump

EXTRACTDPUMP Last Started 2011-11-2011:37 Status RUNNING

Checkpoint Lag 00:00:00 (updated 00:02:24 ago)

Log Read Checkpoint File /u01/ggate/dirdat/lt000018

First Record RBA 0

這裡注意Data Pump 預設是從lt000000 開始讀取trail 檔案,如果是新搭建的GG 同步,那麼都是從lt000000開始處理,所以沒有問題,如果是後來修改稱data pump,就需要根據extract 程序的錯誤提示資訊,使用如下命令:

GGSCI(gg1) 82> alter extract dpump,extseqno 18,extrba 0

具體參考:

--GG3:

GGSCI (gg3) 14> start ext1

Sending START request to MANAGER ...

EXTRACT EXT1 starting

GGSCI (gg3) 18> view report ext1

2011-11-20 11:39:50 INFOOGG-01056 Recovery initializationcompleted for target file /u01/ggate

/dirdat/lt000016, at RBA 132672, CSN1525929.

2011-11-20 11:39:50 INFOOGG-01478 Output file/u01/ggate/dirdat/lt is using format RELEASE 10.

4/11.1.

2011-11-20 11:39:50 WARNING OGG-01438 Checkpoint marked as from graceful shutdown,but records fou

nd after checkpoint in trail/u01/ggate/dirdat/lt. Expected EOF Seqno0, RBA 0. Found Seqno 16, RB

A 132672.

2011-11-20 11:39:50 INFOOGG-01026 Rolling over remotefile /u01/ggate/dirdat/lt000016.

GGSCI (gg3) 19> alter extractdpump,extseqno 16,extrba 0

EXTRACT altered.

GGSCI (gg3) 20> info dpump

EXTRACTDPUMP Initialized 2011-11-20 11:41 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:00:06 ago)

Log Read Checkpoint File /u01/ggate/dirdat/lt000016

First Record RBA 0

GGSCI (gg3) 21> start dpump

Sending START request to MANAGER ...

EXTRACT DPUMP starting

GGSCI (gg3) 22> info all

ProgramStatus Group Lag Time Since Chkpt

MANAGERRUNNING

EXTRACTRUNNING DPUMP 00:00:00 00:00:13

EXTRACTRUNNING EXT1 00:00:00 00:00:05

REPLICATABENDED REP1 00:00:00 12:28:42

--GG1:

GGSCI (gg1) 18> start rep1

Sending START request to MANAGER ...

REPLICAT REP1 starting

GGSCI (gg1) 21> start rep2

Sending START request to MANAGER ...

REPLICAT REP2 starting

GGSCI (gg1) 22> info all

ProgramStatus Group Lag Time Since Chkpt

MANAGERRUNNING

EXTRACTABENDED DPUMP 00:00:00 12:34:55

EXTRACTABENDED DPUMP2 00:00:00 12:34:49

EXTRACTABENDED EXT1 00:00:00 12:34:51

REPLICATRUNNING REP1 00:00:00 00:17:37

REPLICATRUNNING REP2 00:00:00 00:17:15

2.6 驗證同步

--GG2的pdba 表insert 一條記錄:

SQL> conn dave/dave;

Connected.

SQL> insert into pdba values(2222,sysdate);

1 row created.

SQL> commit;

Commit complete.

--GG3的pdba 表insert 一條記錄:

SQL> conn dave/dave;

Connected.

SQL> insert into pdba values(3333,sysdate);

1 row created.

SQL> commit;

Commit complete.

--在GG1 的pdba 表查詢這條記錄:

SQL> select * from pdba where idin(2222,3333);

no rows selected

沒有同步過來。

GGSCI (gg1) 86> info rep1

REPLICATREP1 Last Started 2011-11-2012:22 Status RUNNING

Checkpoint Lag 00:00:00 (updated 00:00:01 ago)

Log Read Checkpoint File /u01/ggate/dirdat/d1000000

First Record RBA 0

GGSCI (gg1) 87> stop rep1

Sending STOP request to REPLICAT REP1 ...

Request processed.

GGSCI (gg1) 88> stop rep2

Sending STOP request to REPLICAT REP2 ...

Request processed.

GGSCI (gg1) 89> alter replicat rep1extseqno 1 extrba 0

REPLICAT altered.

GGSCI (gg1) 91> alter replicat rep2 extseqno1 extrba 0

REPLICAT altered.

GGSCI (gg1) 93> start rep1

Sending START request to MANAGER ...

REPLICAT REP1 starting

GGSCI (gg1) 94> start rep2

Sending START request to MANAGER ...

REPLICAT REP2 starting

--最後確認一下:

SQL>select * from pdba where id<4444;

ID TIME

---------- ------------

2222 20-NOV-11

3333 20-NOV-11

多對一的測試同步成功。

注意這裡有2個小技巧:

1.如果同步有問題,但程序report又沒有提供更多資訊,可以使用Logdump工具檢視trails裡的內容,從而確認是哪一步出現了問題。關於logdump ,參考:

2.如果tail 搞不定,一個簡單的解決方法:

把所有程序delete 掉,所有的tails 全部delete 掉,重新來過,這種方法比檢視trail 要節省很多時間。

-------------------------------------------------------------------------------------------------------

版權所有,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Skype: tianlesoftware

-------加群需要在備註說明Oracle表空間和資料檔案的關係,否則拒絕申請----

DBA1 群:62697716(滿); DBA2 群:62697977(滿)DBA3 群:62697850(滿)

DBA 超級群:63306533(滿); DBA4 群:83829929(滿) DBA5群: 142216823(滿)

DBA6 群:158654907(滿) DBA7 群:69087192(滿)DBA8 群:172855474

DBA 超級群2:151508914 DBA9群:102954821 聊天 群:40132017(滿)

相關推薦

Oracle Golden Gate 系列 -- GG real-time data warehousing 說明 示例

一.官網說明 A datawarehousing configuration is a many-to-one configuration. Multiple sourcedatabases send data to one target warehouse databas

Oracle Golden Gate 系列五 -- GG Trails 說明

一.Trails 說明 理論知識在系列一里有說明,這裡在拿出來看一下: To support thecontinuous extraction and replication of database changes, Oracle GoldenGatestores the captured chan

Oracle Golden Gate 系列六 -- 配置 GG 安全 說明 示例

由於GoldenGate所需的使用者許可權較大,而每個GoldenGate程序配置檔案中都需要設定該使用者和密碼用於資料庫登陸,出於安全性的考慮,建議將密碼進行加密。 官方文件上介紹的加密有如下三種方法: 1.Encryption Options are available for encrypting

Oracle Golden Gate 系列四 -- GG 安裝 解除安裝 理論知識

在前面的幾篇裡講了GG的系統需求及支援的物件型別, 在這裡看下GG的安裝與解除安裝的理論知識,這裡只介紹Linux 平臺的說明,其他平臺的自己參看官方文件。 一.GG 安裝說明 To install Oracle GoldenGate , the following s

oracle課堂筆記--第

width cat 工作 反饋 三種 刪掉 reload 殺死 alter Oracle NET [email protected]/* */器的具體連接信息 2.客戶端通過tnsname.ora中的描述向服務器發出鏈接請求服務器端 3.服務器的監聽器接收到連

Python學習筆記(二線程

oop 模擬 筆記 標準庫 函數 只需要 pre 開始 print 摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431928238187

ORACLE GOLDEN GATE oracle同步數據至kafka

文件夾 lin ebe inux display off wms alter common 一.服務器信息 ip 軟件版本 ogg版本 軟件包 操作系統版本 OGG安裝路徑 10.1.50.52 源 oracle11.2.0.4 12.2.0.1.1 V100

轉://Oracle Golden Gate 概念和原理

拓撲 根據 target 提高 支持斷點續傳 占用 均衡負載 col 都是 引言:Oracle Golden Gate是Oracle旗下一款支持異構平臺之間高級復制技術,是Oracle力推一種HA高可用產品,簡稱“OGG”,可以實現Active-Active 雙業務中心架構

Python爬蟲()_線程糗事百科案例

.json afa 安全 rip down 退出 交互 encode tar 多線程糗事百科案例 案例要求參考上一個糗事百科單進程案例:http://www.cnblogs.com/miqi1992/p/8081929.html Queue(隊列對象) Queue是pyth

Hulu機器學習問題解答系列 | 五:層感知機布爾函數

功能 目標 機器學習 分享圖片 研究 vue gic per 發展 今天沒有別的話,好好學習,多多轉發! 本期內容是 【多層感知機與布爾函數】 場景描述 神經網絡概念的誕生很大程度上受到了神經科學的啟發。生物學研究表明,大腦皮層的感知與計算功能是通過分多層實現的

Oracle Golden Gate - 概念和機制

ogg Oracle Golden Gate ogg機制 ogg概念 Oracle Golden Gate - 概念和機制 (ogg)Golden Gate(簡稱OGG)提供異構環境下交易數據的實時捕捉、變換、投遞。 OGG支持的異構環境有: OGG的特性:對生產系統影響小:實時讀取交易日誌,

Jmeter (二線程組間變量共享

比較 ken 不同的 內置 pos ESS 設置 com 屬性 Jmeter 的線程組之間是相互獨立的,各個線程組互不影響,所以線程組A中輸出的參數,是無法直接在線程組B中被調用的。 但是有時為了方便管理,我們可能是把各個接口單獨存放在不同的線程組中。拿Cookie來說,雖

)Mybatis自關聯查詢方式

注:程式碼已託管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,專案是mybatis-14-oneself-many2one,需要自取,需要配置maven環境以及mysql環境(sql語句在resource下的test.s

學習ASP.NET Core Razor 程式設計系列——併發解決方案

public async Task<IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return Page();

Oracle索引梳理系列)- 索引掃描型別及分析(高效索引必備知識)

理解oracle索引掃描型別的特點以及具體觸發的條件,對於通過合理地使用索引,進行sql優化至關重要(例如組合索引的引導列的選擇問題)。 在總結索引掃描型別前,需要再次強調關於索引特點的幾個關鍵點: 對於單一列建立的索引,既單一列索引,b-tree中不儲存索引列的null值資訊

java基礎(二執行緒

【概念】 程序: 正在執行的程式叫做程序。比如,我開了一個QQ,那麼QQ在記憶體中就佔了一塊記憶體。 執行緒: 程序是不直接執行的,執行程式由執行緒來執行。程序只是負責分配記憶體控制元件。執行緒是執行路徑(控制單元)。 一個程序中可以多執行路徑,稱之為多執行緒 一個程序

Python爬蟲()_執行緒糗事百科案例

多執行緒糗事百科案例 案例要求參考上一個糗事百科單程序案例:http://www.cnblogs.com/miqi1992/p/8081929.html Queue(佇列物件) Queue是python中的標準庫,可以直接import Queue引用;佇列時執行緒間最常用的互動資料的形式。 pytho

檔案專案及編譯過程

extern 在宣告變數的時候不能加初始值 extern int a =10;//錯誤 在訪問other.cpp的全域性函式時,extern可以不寫 在訪問other.cpp的全域性變數時,必須加上extern 多檔案專案的生成 編譯:將多個

Oracle學習筆記第

Oracle學習筆記第十八天 包 概念: 程式包是對相關儲存過程、函式、變數、遊標和異常等物件的封裝,由規範和主體兩部分組成。 規範:宣告程式包中公共的物件,包括型別、變數、常量、異常、遊標規範和子程式規範等。 主體:宣告程式包私有物件和實現在包規範中宣告的子程式和遊標。

Oracle Golden Gate體系架構詳解

GoldenGate簡介  Oracle Golden Gate軟體是一種基於日誌的結構化資料複製備份軟體,它通過解析源資料庫線上日誌或歸檔日誌獲得資料的增量變化,再將這些變化應用到目標資料庫,從而實現源資料庫與目標資料庫同步。Oracle Golden Gate可以在異