Βήματα για τη δημιουργία μιας σύνδεσης βάσης δεδομένων από την Oracle στην MySQL

1
Βήματα για τη δημιουργία μιας σύνδεσης βάσης δεδομένων από την Oracle στην MySQL


Βήματα για τη δημιουργία μιας σύνδεσης βάσης δεδομένων από την Oracle στην MySQL

Στις μέρες μας πολλές εταιρείες χρησιμοποιούν ένα μείγμα RDBMS για παράδειγμα, ορισμένες περιπτώσεις εκτελούνται Μαντείο και άλλες περιπτώσεις συνεχίζονται MySQLκαι αν θέλουμε πρόσβαση σε δεδομένα πρέπει να το κάνουμε χρησιμοποιώντας ένα ετερογενής σύνδεση. Ετερογενείς συνδέσεις επιτρέψτε μας δεδομένα ερωτήματος από βάσεις δεδομένων που δεν ανήκουν στην Oracle χρησιμοποιώντας SQL.

Σε αυτό το blog post θα δούμε Πώς να δημιουργήσετε μια σύνδεση βάσης δεδομένων από την Oracle στην MySQL μέσω ODBC.

Παρακάτω είναι τα βήματα υψηλού επιπέδου που θα ακολουθήσουμε για να ρυθμίσουμε το dblink.
1. Ρυθμίστε το MySql User στο MySQL Cluster

2. Εγκαταστήστε τα προγράμματα οδήγησης MySQL ODBC στον Oracle Server
3. Επεξεργαστείτε το αρχείο odbc.ini και δοκιμάστε τη συνδεσιμότητα του DSN στον Oracle Server
4. Δημιουργήστε το αρχείο initMYSQL.ora στον Oracle Server
5. Διαμορφώστε το αρχείο tnsname.ora & listener.ora στον Oracle Server
6. Δημιουργήστε DB Link & Test Connectivity στον Oracle Server

Ακολουθούν λεπτομέρειες ρύθμισης και το ίδιο θα χρησιμοποιηθεί σε αυτήν την επίδειξη.

Sr. Καλά. Βάση δεδομένων Εκδοχή Όνομα κεντρικού υπολογιστή IP Λιμάνι
1 Μαντείο 19.3 δοκιμαστική μηχανή01 192.168.114.177 1521
2 MySQL 8.0.22 δοκιμαστική μηχανή02 192.168.114.176 3306

μικρόβήμα 1. Ρύθμιση χρήστη MySql: Θα δημιουργήσουμε χρήστη fdw_user και του παρέχει όλα τα προνόμια στη βάση δεδομένων δείγμα 1 σε MySQL.

[[email protected] ~]# mysql -hlocalhost -uroot -S/u01/mysql-2/mysql.sock -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 8.0.22    |
+-----------+
1 row in set (0.01 sec)

mysql>

mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

mysql>

mysql>  create user 'fdw_user'@'%' identified by 'Secret_123';
Query OK, 0 rows affected (0.01 sec)
mysql>

mysql> ALTER USER 'fdw_user'@'%' IDENTIFIED WITH mysql_native_password BY 'Secret_123';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on sample1.* to  'fdw_user'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

mysql> show grants for 'fdw_user'@'%';
+-------------------------------------------------------------------------+
| Grants for [email protected]%                                                   |
+-------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `fdw_user`@`%`                                    |
| GRANT ALL PRIVILEGES ON `sample1`.* TO `fdw_user`@`%` WITH GRANT OPTION |
+-------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye

[[email protected] etc]# mysql -htest-machine02 -ufdw_user -P3306 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use sample1
Database changed
mysql> create table employee (id int, first_name varchar(20), last_name varchar(20));
Query OK, 0 rows affected (0.06 sec)

mysql> insert into employee values (1,'jobin','augustine'),(2,'avinash','vallarapu'),(3,'fernando','camargos');
Query OK, 3 rows affected (0.48 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from employee;
+----------+
| count(*) |
+----------+
|        3 |
+----------+
1 row in set (0.02 sec)

mysql> select user();
+-------------------------+
| user()                  |
+-------------------------+
| [email protected] |
+-------------------------+
1 row in set (0.00 sec)
mysql> select database();
+------------+
| database() |
+------------+
| sample1    |
+------------+
1 row in set (0.00 sec)
mysql>

Βήμα 2. Εγκαταστήστε τα προγράμματα οδήγησης MySQL ODBC: Χρησιμοποιήστε την εντολή OS yum install mysql-connector-odbc-8.0.26-1.el7.x86_64 για να εγκαταστήσετε προγράμματα οδήγησης ODBC MySql. Σημειώστε ότι η παρακάτω εντολή θα λειτουργήσει μόνο εάν έχετε Αποθετήριο MySQL διαμορφώθηκε. Ακολουθήστε τον σύνδεσμο: https://dbsguru.com/database-mysql-8-installation-using-yum-repository-method/ για να ρυθμίσετε Αποθετήριο MySQL.

[[email protected] ~]#
[[email protected] ~]# yum install mysql-connector-odbc-8.0.26-1.el7.x86_64
Loaded plugins: langpacks, ulninfo
Resolving Dependencies
--> Running transaction check
---> Package mysql-connector-odbc.x86_64 0:8.0.26-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================
 Package                                      Arch                           Version                                Repository                                          Size
=============================================================================================================================================================================
Installing:
 mysql-connector-odbc                         x86_64                         8.0.26-1.el7                           mysql-connectors-community                         4.1 M

Transaction Summary
=============================================================================================================================================================================
Install  1 Package

Total download size: 4.1 M
Installed size: 22 M
Is this ok [y/d/N]: y
Downloading packages:
mysql-connector-odbc-8.0.26-1.el7.x86_64.rpm                                                                                                          | 4.1 MB  00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql-connector-odbc-8.0.26-1.el7.x86_64                                                                                                                  1/1
Success: Usage count is 1
Success: Usage count is 1
  Verifying  : mysql-connector-odbc-8.0.26-1.el7.x86_64                                                                                                                  1/1

Installed:
  mysql-connector-odbc.x86_64 0:8.0.26-1.el7

Complete!
[[email protected] ~]#

Βήμα 3. Επεξεργαστείτε το αρχείο odbc.ini και δοκιμάστε τη συνδεσιμότητα του DSN: Δημιουργία αρχείου odbc.ini υπό /και τα λοιπά Ευρετήριο. Προσθήκη MySQL Cluster και Χρήστης Λεπτομέριες. Σημειώστε ότι χρησιμοποιούμε [MYSQL] όπως και επί κεφαλής για το μπλοκ σας. Χρήση εντολής isql -v mysql να δοκιμάσω Συνδεσιμότητα DNS Για MySQL Βάση δεδομένων.

[[email protected] ~]#
[[email protected] ~]# cd /etc/
[[email protected] etc]#
[[email protected] etc]# vi odbc.ini
[MYSQL]
Description = MYSQL
Driver = /usr/lib64/libmyodbc8a.so
Server = test-machine02
User = fdw_user
Password = Secret_123
Port = 3306
Database = sample1
:wq!
[[email protected] etc]#
[[email protected] etc]#
[[email protected] etc]# isql -v mysql
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>
[[email protected] etc]#

Βήμα 4. Δημιουργήστε το αρχείο initMYSQL.ora: Δημιουργία αρχείου initMYSQL.ora κάτω από τον κατάλογο $ORACLE_HOME/hs/admin και προσθέστε τις παρακάτω παραμέτρους. Λάβετε υπόψη ότι χρησιμοποιούμε MYSQL ως όνομα SID και ως παράμετρο, HS_FDS_CONNECT_INFO = MYSQL είναι η ίδια κεφαλίδα που χρησιμοποιούμε στο αρχείο: odbc.ini.

[[email protected] ~]$
[[email protected] ~]$ cd /u01/app/oracle/product/19.3.0/db_1/hs/admin
[[email protected] admin]$ pwd
/u01/app/oracle/product/19.3.0/db_1/hs/admin
[[email protected] admin]$ ls -ltr
total 20
-rw-r--r--. 1 oracle oinstall  489 Apr 17  2019 initdg4odbc.ora
-rw-r--r--. 1 oracle oinstall 1170 Apr 17  2019 extproc.ora
-rw-r-----. 1 oracle oinstall  407 Nov  2  2020 listener.ora.sample
-rw-r-----. 1 oracle oinstall  244 Nov  2  2020 tnsnames.ora.sample
-rw-r--r--. 1 oracle oinstall  459 Sep 29 16:40 initPG.ora
[[email protected] admin]$
[[email protected] admin]$ vi initMYSQL.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = MYSQL
HS_FDS_TRACE_LEVEL = off
HS_FDS_SHAREABLE_NAME = /usr/lib64/libmyodbc8a.so
HS_FDS_FETCH_ROWS = 1
HS_FDS_SUPPORT_STATISTICS=FALSE
HS_LANGUAGE=american_america.we8iso8859P1
HS_NLS_NCHAR=UCS2
#
# ODBC specific environment variables
#
set ODBCINI=/etc/odbc.ini
#
# Environment variables required for the non-Oracle system
#
:wq!
[[email protected] admin]$

Βήμα 5. Διαμορφώστε το αρχείο tnsnames.ora & listener.ora: Διαμορφώστε τα tnsnames.ora & listener.ora όπως παρακάτω. Παρακαλώ σημειώστε εδώ SID = MYSQL είναι το Όνομα SID δημιουργήσαμε σε Βήμα 4. Μόλις ολοκληρωθεί η διαμόρφωση, εκτελέστε tnsping mysql.

[[email protected] admin]$
[[email protected] admin]$ cd /u01/app/oracle/product/19.3.0/db_1/network/admin
[[email protected] admin]$ pwd
/u01/app/oracle/product/19.3.0/db_1/network/admin
[[email protected] admin]$
[[email protected] admin]$ vi tnsnames.ora
MYSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = test-machine01)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = MYSQL)
    )
    (HS = OK)
  )
:wq!
[[email protected] admin]$
[[email protected] admin]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-SEP-2021 12:01:46

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test-machine01)(PORT=1521)))
The command completed successfully
[[email protected] admin]$
[[email protected] admin]$ vi listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
      (PROGRAM = dg4odbc)
      (SID_NAME = MYSQL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
     )
   )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = test-machine01)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
:wq!
[[email protected] admin]$
[[email protected] admin]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-SEP-2021 12:03:05

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/19.3.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/test-machine01/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test-machine01)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test-machine01)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                30-SEP-2021 12:03:05
Uptime                    0 days 0 hr. 0 min. 10 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19.3.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/test-machine01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test-machine01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "MYSQL" has 1 instance(s).
  Instance "MYSQL", status UNKNOWN, has 1 handler(s) for this service...
Service "PG" has 1 instance(s).
  Instance "PG", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[[email protected] admin]$

[[email protected] admin]$ tnsping mysql

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 30-SEP-2021 12:05:30

Copyright (c) 1997, 2019, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = test-machine01)(PORT = 1521))) (CONNECT_DATA = (SID = MYSQL)) (HS = OK))
OK (0 msec)
[[email protected] admin]$

Σημείωση: Αντί για πρόγραμμα ακρόασης stop/start, μπορείτε επίσης να χρησιμοποιήσετε το πρόγραμμα ακρόασης επαναφόρτωσης μετά από τροποποίηση στο αρχείο listener.ora.

Βήμα 6. Δημιουργία DB Link & Test Connectivity: Μόλις ολοκληρωθούν με επιτυχία όλα τα παραπάνω βήματα. Είμαστε έτοιμοι να δημιουργήσουμε ένα αναβοσβήνει, συνδεθείτε στη βάση δεδομένων Oracle και χρησιμοποιήστε Δημιουργία συνδέσμου βάσης δεδομένων εντολή να δημιουργήστε έναν σύνδεσμο βάσης δεδομένων. Σημειώστε ότι πρέπει να χρησιμοποιήσουμε „“ περίπου όνομα χρήστη όπως και MySQL είναι διάκριση πεζών-κεφαλαίων. Μια φορά DBLlink δημιουργείται προσπαθήστε να αποκτήσετε πρόσβαση Πίνακας MySQL: υπάλληλος.

[[email protected] ~]$ sqlplus sys as sysdba


SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 30 12:07:08 2021
Version 19.3.0.0.0

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

Enter password:

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> CREATE DATABASE LINK MYSQL_LINK  CONNECT TO "fdw_user"  IDENTIFIED BY Secret_123 USING 'MYSQL';

Database link created.

SQL> select sysdate from [email protected]_LINK;

SYSDATE
---------
30-SEP-21

SQL> set lines 300
SQL> col first_name for a40
SQL> col last_name for a40
SQL>  select * from "employee"@MYSQL_LINK;

        id first_name                               last_name
---------- ---------------------------------------- ----------------------------------------
         1 jobin                                    augustine
         2 avinash                                  vallarapu
         3 fernando                                 camargos

SQL>


Αυτό το έγγραφο είναι μόνο για μαθησιακό σκοπό και επικυρώνεται πάντα στο περιβάλλον LAB πρώτα πριν από την εφαρμογή στο περιβάλλον LIVE.

Ελπίζω να σας αρέσει αυτό το άρθρο!
Μοιραστείτε τα πολύτιμα σχόλια/σχόλιά σας/Εγγραφείτε και ακολουθήστε μας παρακάτω και μην ξεχάσετε να κάνετε κλικ στο εικονίδιο του κουδουνιού για να λάβετε την πιο πρόσφατη ενημέρωση. Κάντε κλικ εδώ για να κατανοήσετε περισσότερα για την επιδίωξή μας.

Σχετικά Άρθρα

1,091 Συνολικές προβολές, 4 Προβολές Σήμερα

παρόμοιες αναρτήσεις

Schreibe einen Kommentar