Skip to content

Commit 581f3aa

Browse files
Clare Zheng (Shanghai Wicresoft Co Ltd)Clare Zheng (Shanghai Wicresoft Co Ltd)
authored andcommitted
Add upgrade section and update server configuration section
1 parent 9a8bd5c commit 581f3aa

File tree

5 files changed

+169
-25
lines changed

5 files changed

+169
-25
lines changed

articles/data-factory/connector-oracle.md

Lines changed: 169 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -121,25 +121,6 @@ More connection properties you can set in linked service per your case:
121121
| supportV1DataTypes | Specifies whether to use the version 1.0 data type mappings. Do not set this to true unless you want to keep backward compatibility with version 1.0's data type mappings. Type: boolean | No, this property is for backward compatibility use only | false |
122122
| fetchTswtzAsTimestamp | Specifies whether the driver returns column value with the TIMESTAMP WITH TIME ZONE data type as DateTime or string. This setting is ignored if supportV1DataTypes is not true. Type: boolean | No, this property is for backward compatibility use only | true |
123123

124-
#### `server` property configuration
125-
126-
For `server` property, you can specify it in one of the following three formats:
127-
128-
| Format | Example |
129-
|:--- |:--- |
130-
|[Connect Descriptor](https://docs.oracle.com/en/database/oracle/oracle-database/23/netag/identifying-and-accessing-database.html#GUID-8D28E91B-CB72-4DC8-AEFC-F5D583626CF6)| (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))|
131-
|[Easy Connect (Plus) Naming](https://download.oracle.com/ocomdocs/global/Oracle-Net-Easy-Connect-Plus.pdf)|salesserver1:1521/sales.us.example.com|
132-
|[Oracle Net Services Name (TNS Alias)](https://docs.oracle.com/en/database/oracle/oracle-database/23/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-12C94B15-2CE1-4B98-9D0C-8226A9DDF4CB) (only for the self-hosted integration runtime)|sales|
133-
134-
For the parameters used in `server`, we provide an allowlist to avoid security risks, as shown below. You can refer to it to determine which parameters to be set. If the disallowed parameter is set, the connection will fail.
135-
136-
- Allowlist for using the Azure integration runtime:
137-
138-
HOST,PORT,PROTOCOL,SERVICE_NAME,SID,INSTANCE_NAME,SERVER,CONNECT_TIMEOUT,RETRY_COUNT,RETRY_DELAY,SSL_VERSION,SSL_SERVER_DN_MATCH,SSL_SERVER_CERT_DN
139-
- Allowlist for using the self-hosted integration runtime:
140-
141-
HOST,PORT,PROTOCOL,ENABLE,EXPIRE_TIME,FAILOVER,LOAD_BALANCE,RECV_BUF_SIZE,SDU,SEND_BUF_SIZE,SOURCE_ROUTE,TYPE_OF_SERVICE,COLOCATION_TAG,CONNECTION_ID_PREFIX,FAILOVER_MODE,GLOBAL_NAME,HS,INSTANCE_NAME,POOL_BOUNDARY,POOL_CONNECTION_CLASS,POOL_NAME,POOL_PURITY,RDB_DATABASE,SHARDING_KEY,SHARDING_KEY_ID,SUPER_SHARDING_KEY,SERVER,SERVICE_NAME,SID,TUNNEL_SERVICE_NAME,SSL_CLIENT_AUTHENTICATION,SSL_CERTIFICATE_ALIAS,SSL_CERTIFICATE_THUMBPRINT,SSL_VERSION,SSL_SERVER_DN_MATCH,SSL_SERVER_CERT_DN,WALLET_LOCATION,CONNECT_TIMEOUT,RETRY_COUNT,RETRY_DELAY,TRANSPORT_CONNECT_TIMEOUT,RECV_TIMEOUT,COMPRESSION,COMPRESSION_LEVELS
142-
143124
**Example:**
144125

145126
```json
@@ -191,6 +172,27 @@ For the parameters used in `server`, we provide an allowlist to avoid security r
191172
}
192173
```
193174

175+
#### `server` property configuration
176+
177+
For `server` property, you can specify it in one of the following three formats:
178+
179+
| Format | Example |
180+
|:--- |:--- |
181+
|[Connect Descriptor](https://docs.oracle.com/en/database/oracle/oracle-database/23/netag/identifying-and-accessing-database.html#GUID-8D28E91B-CB72-4DC8-AEFC-F5D583626CF6)| (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))|
182+
|[Easy Connect (Plus) Naming](https://download.oracle.com/ocomdocs/global/Oracle-Net-Easy-Connect-Plus.pdf)|salesserver1:1521/sales.us.example.com|
183+
|[Oracle Net Services Name (TNS Alias)](https://docs.oracle.com/en/database/oracle/oracle-database/23/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-12C94B15-2CE1-4B98-9D0C-8226A9DDF4CB) (only for the self-hosted integration runtime)|sales|
184+
185+
For the parameters used in `server`, we provide an allow list to avoid security risks, as shown below. You can refer to it to determine which parameters to be set. If you use parameters that are not in the allow list, your connection will fail.
186+
187+
- The allow list for using the Azure integration runtime:
188+
189+
HOST<br>PORT<br>PROTOCOL<br>SERVICE_NAME<br>SID<br>INSTANCE_NAME<br>SERVER<br>CONNECT_TIMEOUT<br>RETRY_COUNT<br>RETRY_DELAY<br>SSL_VERSION<br>SSL_SERVER_DN_MATCH<br>SSL_SERVER_CERT_DN
190+
191+
- The allow list for using the self-hosted integration runtime:
192+
193+
HOST<br>PORT<br>PROTOCOL<br>ENABLE<br>EXPIRE_TIME<br>FAILOVER<br>LOAD_BALANCE<br>RECV_BUF_SIZE<br>SDU<br>SEND_BUF_SIZE<br>SOURCE_ROUTE<br>TYPE_OF_SERVICE<br>COLOCATION_TAG<br>CONNECTION_ID_PREFIX<br>FAILOVER_MODE<br>GLOBAL_NAME<br>HS<br>INSTANCE_NAME<br>POOL_BOUNDARY<br>POOL_CONNECTION_CLASS<br>POOL_NAME<br>POOL_PURITY<br>RDB_DATABASE<br>SHARDING_KEY<br>SHARDING_KEY_ID<br>SUPER_SHARDING_KEY<br>SERVER<br>SERVICE_NAME<br>SID<br>TUNNEL_SERVICE_NAME<br>SSL_CLIENT_AUTHENTICATION<br>SSL_CERTIFICATE_ALIAS<br>SSL_CERTIFICATE_THUMBPRINT<br>SSL_VERSION<br>SSL_SERVER_DN_MATCH<br>SSL_SERVER_CERT_DN<br>WALLET_LOCATION<br>CONNECT_TIMEOUT<br>RETRY_COUNT<br>RETRY_DELAY<br>TRANSPORT_CONNECT_TIMEOUT<br>RECV_TIMEOUT<br>COMPRESSION<br>COMPRESSION_LEVELS
194+
195+
194196
### Version 1.0
195197

196198
The Oracle linked service supports the following properties when apply version 1.0:
@@ -519,12 +521,154 @@ When you copy data from and to Oracle, the following interim data type mappings
519521

520522
To learn details about the properties, check [Lookup activity](control-flow-lookup-activity.md).
521523

522-
## Upgrade the Oracle connector
524+
## Upgrade the Oracle connector
523525

524-
Here are steps that help you upgrade the Oracle connector:
526+
Here are steps that help you upgrade the Oracle connector:
525527

526-
1. In **Edit linked service** page, select **2.0 (Preview)** under **Version** and configure the linked service by referring to [Linked service properties version 2.0](#version-20).
527-
1. The data type mapping for the Oracle linked service version 2.0 is different from that for the version 1.0. To learn the latest data type mapping, see [Data type mapping for Oracle](#data-type-mapping-for-oracle).
528+
1. In **Edit linked service** page, select **2.0 (Preview)** under **Version** and configure the linked service by referring to [Linked service properties version 2.0](#version-20).
528529

529-
## Related content
530-
For a list of data stores supported as sources and sinks by the copy activity, see [Supported data stores](copy-activity-overview.md#supported-data-stores-and-formats).
530+
For the authentication related properties including username and password, simply specify the original values in the corresponding fields in version 2.0. For other connection properties in version 1.0 including host, port and Oracle Service Name/Oracle SID, they all become parts of the [server property in version 2.0](#server-property-configuration).
531+
532+
For example, if you configure the version 1.0 linked service as shown below:
533+
534+
:::image type="content" source="media/connector-oracle/version-1-linked-service.png" alt-text="Screenshot of version 1.0 linked service.":::
535+
536+
```json
537+
{
538+
"name": "OracleLinkedService",
539+
"properties": {
540+
"type": "Oracle",
541+
"typeProperties": {
542+
"connectionString": "host=oraclesample.com;port=1521;servicename=db1"
543+
},
544+
"connectVia": {
545+
"referenceName": "<name of Integration Runtime>",
546+
"type": "IntegrationRuntimeReference"
547+
}
548+
}
549+
}
550+
```
551+
552+
The identical version 2.0 linked service configuration using **Easy Connect (Plus) Naming** is:
553+
554+
:::image type="content" source="media/connector-oracle/easy-connect-naming-linked-service.png" alt-text="Screenshot of linked service using easy connector (Plus) naming":::
555+
556+
```json
557+
{
558+
"name": "OracleLinkedService",
559+
"properties": {
560+
"type": "Oracle",
561+
"version": "2.0",
562+
"typeProperties": {
563+
"server": "oraclesample.com:1521/db1",
564+
"username": "<user name>",
565+
"password": "<password>",
566+
"authenticationType": "<authentication type>"
567+
},
568+
"connectVia": {
569+
"referenceName": "<name of Integration Runtime>",
570+
"type": "IntegrationRuntimeReference"
571+
}
572+
}
573+
}
574+
```
575+
576+
The identical version 2.0 linked service configuration using **Connector Descriptor** is:
577+
578+
:::image type="content" source="media/connector-oracle/connector-descriptor-linked-service.png" alt-text="Screenshot of linked service using connector descriptor.":::
579+
580+
```json
581+
{
582+
"name": "OracleLinkedService",
583+
"properties": {
584+
"type": "Oracle",
585+
"version": "2.0",
586+
"typeProperties": {
587+
"server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))",
588+
"username": "<user name>",
589+
"password": "<password>",
590+
"authenticationType": "<authentication type>"
591+
},
592+
"connectVia": {
593+
"referenceName": "<name of Integration Runtime>",
594+
"type": "IntegrationRuntimeReference"
595+
}
596+
}
597+
}
598+
```
599+
600+
> [!TIP]
601+
> Azure Key Vault is supported for the `server` property. You can edit the linked service JSON to add the Azure Key Vault reference, as shown below:
602+
> :::image type="content" source="media/connector-oracle/azure-key-vault-server.png" alt-text="Screenshot of using Azure Key Vault in server.":::
603+
604+
Note that:
605+
606+
- If you use **Oracle Service Name** in version 1.0, you can use **Easy Connect (Plus) Naming** or **Connector Descriptor** as the server format in version 2.0.
607+
608+
- If you use **Oracle SID** in version 1.0, you need to use **Connector Descriptor** as the server format in version 2.0.
609+
610+
- For some additional connection properties in version 1.0, we provide alternative properties/server parameters in version 2.0. You can refer to the table below to upgrade the version 1.0 properties.
611+
612+
| Version 1.0 | Version 2.0  |
613+
|:--- |:--- |
614+
| encryptionmethod| PROTOCOL (server parameter) |
615+
| tnsnamesfile | TNS_ADMIN (environment variable supported on the self-hosted integration runtime)  |
616+
| servername | server (property) |
617+
| enablebulkload<br>Value: 1, 0 | enableBulkLoad (additional property)<br>Value: true, false |
618+
| fetchtswtzastimestamp<br>Value: 1, 0 | FetchTswtzAsTimestamp (additional property)<br>Value: true, false |
619+
| alternateservers | DESCRIPTION_LIST (server parameter) |
620+
| arraysize | fetchSize (additional property) |
621+
| cachedcursorlimit | StatementCacheSize (additional property) |
622+
| connectionretrycount | RETRY_COUNT (server parameter) |
623+
| initializationstring | InitializationString (additional property) |
624+
| logintimeout | CONNECT_TIMEOUT (server parameter) |
625+
| cryptoprotocolversion | SSL_VERSION (server parameter) |
626+
| truststore | WALLET_LOCATION (server parameter) |
627+
628+
For example, if you use `alternateservers` in version 1.0, you can set the `DESCRIPTION_LIST` parameter in the sever property in version 2.0:
629+
630+
Version 1.0 linked service using `alternateservers`:
631+
632+
```json
633+
{
634+
"name": "OracleV1",
635+
"properties": {
636+
"type": "Oracle",
637+
"typeProperties": {
638+
"connectionString": "host=oraclesample.com;port=1521;servicename=db1;alternateservers=(HostName= oraclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)"
639+
}
640+
}
641+
}
642+
```
643+
644+
Identical version 2.0 linked service using `DESCRIPTION_LIST` parameter in **Connector Descriptor**:
645+
646+
```json
647+
{
648+
"name": "OracleV2",
649+
"properties": {
650+
"type": "Oracle",
651+
"version": "2.0",
652+
"typeProperties": {
653+
" server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample2.com)(PORT=1521))(CONNECT_DATA=(SID=db2)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=255.201.11.24)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=db3))))",
654+
"username": "<user name>",
655+
"password": "<password>",
656+
"authenticationType": "<authentication type>"
657+
}
658+
}
659+
}
660+
```
661+
662+
2. The data type mapping for the Oracle linked service version 2.0 is different from that for the version 1.0. To learn the latest data type mapping, see [Data type mapping for Oracle](#data-type-mapping-for-oracle).
663+
664+
An additional connection property `supportV1DataTypes` in version 2.0 can reduce upgrade difficulties caused by data type changes. Setting this property to `true` ensures that the data type in version 2.0 remains consistent with version 1.0.
665+
666+
## Differences between Oracle version 2.0 and version 1.0
667+
668+
The Oracle connector version 2.0 offers new functionalities and is compatible with most features of version 1.0. The table below shows the feature differences between version 2.0 and version 1.0.
669+
670+
| Version 2.0 | Version 1.0  |
671+
|:--- |:--- |
672+
|The following mappings are used from Oracle data types to interim data types used by the service internally. <br><br>NUMBER(p,s) -> Single, Double or Decimal based on its precision and scale <br>FLOAT(p)-> Double or Decimal based on its precision <br>NUMBER -> Decimal <br>TIMESTAMP WITH TIME ZONE -> DateTimeOffset <br>INTERVAL YEAR TO MONTH -> Int64 <br>INTERVAL DAY TO SECOND -> TimeSpan |The following mappings are used from Oracle data types to interim data types used by the service internally. <br><br>NUMBER(p,s) -> Decimal or String based on its precision <br>FLOAT(p)-> Double <br>NUMBER -> Double <br>TIMESTAMP WITH TIME ZONE -> DateTime <br>INTERVAL YEAR TO MONTH -> String <br>INTERVAL DAY TO SECOND -> String |
673+
| convertDecimalToInteger in copy source is not supported.  | Support convertDecimalToInteger in copy source.  |
674+
| Using `?` as a placeholder for script activity query parameters is not support. You can use the named parameter (such as `:paramA`) or the positional parameter (such as `:1`) as a replacement. | Support using `?` as a placeholder for script activity query parameters.  |
30.1 KB
Loading
16.8 KB
Loading
12.6 KB
Loading
21.2 KB
Loading

0 commit comments

Comments
 (0)