Tecnologia da Informação
[ORACLE/MYSQL] Criando um dblink entre Oracle e MysQL:
Passo 1:No servidor MySQL crie um usuário com os privilégios necessários de acesso ao database que será feito o dblink:
Exemplo:mysql> grant all privileges on db_mysql.* to 'usuario'@'192.168.%' identified by 'senha';
Query OK, 0 rows affected (0.00 sec)
Passo 2:Instale no servidor Oracle o Connector/ODBC.
Link para download http://www.mysql.com/downloads/connector/odbc/#downloads
[root@oraserver ~]# rpm -ivh mysql-connector-odbc-5.1.11-1.rhel5.x86_64.rpm
Passo 3:Após instalado o Connector/ODBC, vamos configura-lo:
O arquivo /etc/odbcinst.ini contém os dados dos drivers:
[root@oraserver ~]# cat /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/libodbcpsql.so
Setup = /usr/lib/libodbcpsqlS.so
FileUsage = 1
[MySQL ODBC 5.1 Driver]
Driver = /usr/lib64/libmyodbc5.so
UsageCount = 1
Adicione a seguinte entrada no arquivo /etc/odbc.ini:
[root@oraserver ~]# cat /etc/odbc.ini
[oracle_mysql]
Driver = MySQL ODBC 5.1 Driver
DATABASE = db_mysql
PWD = senha
PORT = 3306
SERVER = 10.145.0.181
UID = usuario
SOCKET = /tmp/oracle/mysql.sock
CHARSET = latin1
Dessa forma criamos um acesso com o nome de oracle_mysql, usando o driver 'MySQL ODBC 5.1 Driver' no database db_mysql.
Passo 4:Testando o acesso:
[root@oraserver ~]# isql oracle_mysql+---------------------------------------+| Connected! || || sql-statement || help [tablename] || quit || |+---------------------------------------+SQL>SQL> show tables;+-----------------------------------------------------------------+| Tables_in_db_mysql |+-----------------------------------------------------------------+| tabela01 || tabela02 |+-----------------------------------------------------------------+SQLRowCount returns 11 rows fetchedSQL> select * from tabela02;+-----------+-------------------| campo1 | name +-----------+-------------------| 1 | RAFAEL SILVA | 2 | MARIA JOSEFINA | 3 | JOSE GALDERIO +-----------+-------------------SQLRowCount returns 33 rows fetchedPasso 5:Deve ser criado um 'init' no servidor Oracle em $ORACLE_HOME/hs/admin/initmysqloracle.ora com as seguintes configurações:
[oracle@oraserver admin]$ cat initmysqloracle.ora
HS_FDS_CONNECT_INFO = oracle_mysql
HS_FDS_TRACE_LEVEL = DEBUG
HS_FDS_SHAREABLE_NAME = /usr/lib64/libmyodbc5.so
HS_FDS_SQLLEN_INTERPRETATION = 32
HS_FDS_REPORT_REAL_AS_DOUBLE = TRUE
HS_FDS_FETCH_ROWS = 1
HS_FDS_RECOVERY_ACCOUNT = RECOVER
HS_FDS_RECOVERY_PWD = RECOVER
HS_LANGUAGE = AMERICAN_AMERICA.WE8ISO8859P1
HS_NLS_NCHAR=UCS2
set ODBCINI=/etc/odbc.ini
set SQL_MODE='ANSI_QUOTES'
Atenção aos parâmetros HS_LANGUAGE e HS_NLS_NCHAR para garantir que não haja problemas com o charset.
Link com mais detalhes sobre os parâmetros acima:
http://docs.oracle.com/cd/E18283_01/gateways.112/e12070/apd.htm#BABEFBHB
Passo 6:Adicione ao listener uma entrada para o novo init fazendo acesso ao ODBC:
(SID_DESC =
(PROGRAM = dg4odbc)
(ORACLE_HOME = /u00/app/oracle/product/11.2.0)
(SID_NAME = oracle_mysql)
(ENVS = LD_LIBRARY_PATH=/usr/lib64:/u00/app/oracle/product/11.2.0/lib:/lib64:/usr/lib64)
)
)
E faça um reload:
[oracle@oraserver admin]$ lsnrctl reload
Passo 7:Adicione uma entrada no tnsnames.ora:
MYSQLORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mysqlserver)(PORT = 1521))
)
(CONNECT_DATA =
(SID = oracle_mysql))
(HS = OK)
)
Passo 8:Crie o dblink:
SQL> create public database link mysql_orcl_db connect to "usuario" identified by "senha" using 'MYSQLORACLE';
Database link created.
Teste o acesso:
SQL> desc "tabela01"@mysql_orcl_db;
Name Null? Type
----------------------------------------- -------- ----------------------------
campo1 NUMBER(10)
campo2 CHAR(255)
SQL>select * from "tabela01"@mysql_orcl_db;
campo1 campo2
---------- ------------------------------
1 RAFAEL STOEVER
2 JOSE GALDERIO
3 MARIA DAS GRACAS
Considerações:Lembrando que tudo que usar no MySQL em minusculo, no Oracle deverá ser tratado como string em minusculo contendo as aspas.
Para o Oracle 11g deve ser usado o (PROGRAM = dg4odbc)
E para 10g 64bits não há suporte hsodbc conforme feito neste artigo, desta forma deve ser comprado o Oracle Gateway para conseguir efetuar o procedimento.
Fonte: DESUPPORTED: How to Setup Generic Connectivity – HSODBC – to MySQL (Doc ID 260981.1)
Adaptado de:
http://www.oraclehome.com.br/2011/10/14/oracle-linux-acessando-mysql-em-windows-heterogeno/
loading...
-
Alterar Senha Mysql No Linux
Alterando a senha MySQL no Ubuntu Comando para alterar a senha do gerenciador de banco de dados mysql-server: mysqladmin -h localhost -u [usuário] -p password [pressione enter] Abra o terminal e digite:mysqladmin -h localhost -u root -p password...
-
Reset Senha Root Mysql 5.7
Para resetar a senha de root do mysql 5.7 no linux é necessário parar o serviço e depois iniciá-lo de modo 'inseguro'. Pare o mysql com /etc/init.d/mysql stop ou com killall mysqd ou procure o processo e de um kill inicie o mysql...
-
[mysql] Alterar Senhas De Usuários
Usando a ferramenta mysqladmin é possível alterar as senhas dos usuários facilmente. Exemplo: $ mysqladmin -uusuario -psenhaantiga password novasenha Caso queira atribuir uma senha para um usuário root que não tenha, utilize o comando abaixo: $...
-
[oracle] Criando Um Catalogo De Recuperação Para Rman
Passo 1: Crie uma instância para o RMAN. Passo 2: Crie a tablespace que irá conter o catálogo: create tablespace CLOG datafile 'C:\Oracle\RMAN\TBS\CLOG01.DBF' size 200M; Crie um usuário para o RMAN: create user userrman identified by userrman...
-
[mysql] Mover Innodb
Passo 1: Pare o MySQL Server: # /etc/init.d/mysqld stop Passo 2: Através de comandos do sistema operacional, mova o arquivo ibdata1 para outro diretório ou partição (/ibdata). Passo 3: Edite o arquivo my.cnf e adicione a seguinte linha: innodb_data_home_dir=/ibdata...
Tecnologia da Informação