Skip to content

Instantly share code, notes, and snippets.

@Ambalus
Last active June 26, 2020 01:44
Show Gist options
  • Select an option

  • Save Ambalus/149a8c115df8f005e2d3a4a242be42af to your computer and use it in GitHub Desktop.

Select an option

Save Ambalus/149a8c115df8f005e2d3a4a242be42af to your computer and use it in GitHub Desktop.

== Init Oracle Database 12c / Oracle Linux 8.2

  1. execute block *oracle-preinstall
yum install oracle-epel-release-el8 oracle-database-preinstall-19c

#open ports for Oracle
firewall-cmd --zone=public --permanent --add-port 1521/tcp
firewall-cmd --reload
  1. install Oracle Database 12c
  2. execute block *odbc-install, *odbc.ini, freetds.conf
# /etc/odbc.ini
[MSSQL]
Description = MySQL Server
Driver = FreeTDS
Servername = SERVER_MSSQL
Database = hlT_db_lpu

[ODBC Data Sources]
SQLDSN=FreeTDS
# /etc/freetds.conf
[global]
tds version = 7.0
dump file = /var/log/freetds/freetds.log
text size = 64512

[SERVER_MSSQL]
host = 192.168.0.2
port = 1433
tds version = 8.0
text size = 20971520
client charset = cp1251
  1. configure tnsnames: show block *tnsnames.ora, *initMSSQL.ora, *listener.ora
# tnsnames.ora
MED =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MED)
    )
  )

LISTENER_MED =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

MSSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))
    (CONNECT_DATA =(SID = MSSQL))
    (HS = OK)
  )
  1. init service (see block *service)
  2. reboot

==

[Unit]
Description=The Oracle Database Service
After=syslog.target network.target
[Service]
# systemd ignores PAM limits, so set any necessary limits in the service.
# Not really a bug, but a feature.
# https://bugzilla.redhat.com/show_bug.cgi?id=754285
LimitMEMLOCK=infinity
LimitNOFILE=65535
#Type=simple
# idle: similar to simple, the actual execution of the service binary is delayed
# until all jobs are finished, which avoids mixing the status output with shell output of services.
RemainAfterExit=yes
User=oracle
Group=oinstall
Restart=no
ExecStart=/bin/bash -c '/home/oracle/scripts/dbora_start.sh'
ExecStop=/bin/bash -c '/home/oracle/scripts/dbora_stop.sh'
[Install]
WantedBy=multi-user.target
[global]
tds version = 7.0
dump file = /var/log/freetds/freetds.log
text size = 64512
[SERVER_MSSQL]
host = 192.168.0.2
port = 1433
tds version = 8.0
text size = 20971520
client charset = cp1251
HS_FDS_CONNECT_INFO = MSSQL
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_TRANSACTION_MODEL=COMMIT_CONFIRM
#NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
#HS_LANGUAGE=RUSSIAN_CIS.CL8MSWIN1251
#HS_FDS_SUPPORT_STATISTICS = FALSE
#HS_FDS_REMOTE_DB_CHARSET=CL8MSWIN1251
set ODBCINI=/etc/odbc.ini
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = MED)
(ORACLE_HOME = /home/oracle/app/oracle/product/12.1.0/dbhome_1)
)
(SID_DESC =
(SID_NAME = MSSQL)
(ORACLE_HOME = /home/oracle/app/oracle/product/12.1.0/dbhome_1)
(ENVS=LD_LIBRARY_PATH = /usr/local/lib:/usr/lib64:/home/oracle/app/oracle/product/12.1.0/dbhome_1/lib)
(PROGRAM = dg4odbc)
)
)
# install freetds odbc
yum install postgresql-odbc unixODBC freetds
mkdir /var/log/freetds/
#open ports for MSSQL, PostgreSQL
firewall-cmd --zone=public --permanent --add-port 1433/tcp
firewall-cmd --zone=public --permanent --add-port 5432/tcp
firewall-cmd --reload
[MSSQL]
Description = MySQL Server
Driver = FreeTDS
Servername = SERVER_MSSQL
Database = hlT_db_lpu
[ODBC Data Sources]
SQLDSN=FreeTDS
yum install oracle-epel-release-el8 oracle-database-preinstall-19c
#open ports for Oracle
firewall-cmd --zone=public --permanent --add-port 1521/tcp
firewall-cmd --reload
cat /home/oracle/scripts/env.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_SID=MED
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=$\ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
cat /home/oracle/scripts/dbora_start.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/env.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart \$ORACLE_HOME
EOF
cat > /home/oracle/scripts/dbora_stop.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/env.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut \$ORACLE_HOME
EOF
cp dbora.service /usr/lib/systemd/system/dbora.service
systemctl daemon-reload
systemctl start dbora.service
systemctl enable dbora.service
systemctl status dbora.service
MED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MED)
)
)
LISTENER_MED =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
MSSQL =
(DESCRIPTION =
(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))
(CONNECT_DATA =(SID = MSSQL))
(HS = OK)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment