Skip to content

Instantly share code, notes, and snippets.

@esmcelroy
Last active December 20, 2021 19:12
Show Gist options
  • Save esmcelroy/29bf41c8d474703816178cfc3cde4868 to your computer and use it in GitHub Desktop.
Save esmcelroy/29bf41c8d474703816178cfc3cde4868 to your computer and use it in GitHub Desktop.
Installing Oracle/Micros Simphony 2.10

Preparing a Server for Simphony installation, and Installing Oracle/Micros Simphony 2.10

Prerequisites

The following is a list of prerequisites for the successful installation of Oracle Simphony POS 2.10:

  • Windows Server 2012 R2
  • The following IIS and .NET components:
    • NetFx4ServerFeatures
    • NetFx4
    • WCF-Services45
    • WCF-HTTP-Activation45
    • WCF-TCP-Activation45
    • WCF-Pipe-Activation45
    • WCF-TCP-PortSharing45
    • WCF-HTTP-Activation
    • NetFx3ServerFeatures
    • NetFx3
    • IIS-WebServerRole
    • IIS-DefaultDocument
    • IIS-HttpErrors
    • IIS-StaticContent
    • IIS-CommonHttpFeatures
    • IIS-Security
    • IIS-DirectoryBrowsing
    • IIS-HttpLogging
    • IIS-HttpRedirect
    • IIS-RequestMonitor
    • IIS-RequestFiltering
    • IIS-HttpCompressionStatic
    • IIS-WebServerManagementTools
    • IIS-IIS6ManagementCompatibility
    • IIS-ManagementConsole
    • IIS-Metabase
    • IIS-ManagementScriptingTools
    • IIS-WMICompatibility
    • IIS-LegacyScripts
    • IIS-CertProvider
    • IIS-LegacySnapIn
    • IIS-HealthAndDiagnostics
    • IIS-Performance
    • IIS-ISAPIExtensions
    • IIS-ISAPIFilter
    • IIS-ASP
    • NetFx4Extended-ASPNET45
    • IIS-ApplicationDevelopment
    • IIS-NetFxExtensibility
    • IIS-NetFxExtensibility45
    • IIS-ISAPIExtensions
    • IIS-ISAPIFilter
    • IIS-ASPNET45
  • Oracle Database 12c installation
  • Oracle 12c x86 and x64 client installation using the rsp files included in the Simphony install ISO
  • Oracle Hospitality Reporting and Analytics components

With these prerequisites installed and working, you can now begin Simphony installation.

Installation process

Windows components

Adding the windows components listed above can be done using PowerShell.

If you are installing the Oracle Database on a separate server or are having connectivity problems, add Windows Firewall ingress rules on Port 1521.

Oracle Database components

Install Oracle 12c release 1 or release 2.

Installation is:

Take note of the SYS and SYSTEM passwords, as they will be required for both Reporting and Analytics, and Simphony installation.

Oracle Hospitality Reporting and Analytics components

  • The first requirement is to install the Java JRE 1.7 u80 (earlier updates work as well, and to download you have either have access to the Oracle download site, or trawl the net for the installer)
  • Then, you can start with the Install_<version>.exe, as long as the database installation is selected. Selecting the database installation components starts the dbinstall.exe installer.
  • Follow the prompts in the dbinstall.exe installer until it completes successfully.
  • Click through for the desired components in the reporting and analytics installer
  • This is theoretically automatable, but I have yet to have any success.
  • Make sure you note the passwords for the MMSQL and CEDB users, as they are required for Simphony installation.

Simphony components

Now, to install Simphony, run the Setup.exe file as an administrator. You will need the Oracle database SYS, MMSQL and CEDB user passwords. Click through the installer:

  • select a certificate from the windows certificate store (this can be your self-signed certificate)
  • select your components if you are doing anything other than a single-server install
  • use the blank DB for a production or testing system
  • create your administrative user for Simphony
  • Create passwords for your simphony DB user, and simphony security DB user

N.B. Oracle has very specfic password requirements - passwords must be alphanumeric, and contain at least one of $_#, and may not start with a symbol. There are also additional restrictions related to weak passwords, including restrictions on some dictionary words.

Gotcha's

.NET and getting the installer connected to the Oracle DB

After installing the .NET components and Oracle 12c clients, you can validate that the required libraries are available using the ISO's .\Prerequisites\ODP.NET\GACUTIL\gacutil.exe tool. This tool lists all the .NET system available libraries. Oracle DB libraries should be available in both x86 and x64 versions.

DECLARE
cursor mcrspos_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'MCRSPOS';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open mcrspos_tablespace_check;
fetch mcrspos_tablespace_check into v_tablespace;
if mcrspos_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE MCRSPOS LOGGING DATAFILE '||''''|| v_path||'mcrspos01.dbf'||''''||' SIZE 512M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close mcrspos_tablespace_check;
END;
/
DECLARE
cursor MCRSCACHE_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'MCRSCACHE';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open MCRSCACHE_tablespace_check;
fetch MCRSCACHE_tablespace_check into v_tablespace;
if MCRSCACHE_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE MCRSCACHE LOGGING DATAFILE '||''''|| v_path||'MCRSCACHE01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close MCRSCACHE_tablespace_check;
END;
/
DECLARE
cursor COREDB_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'COREDB';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open COREDB_tablespace_check;
fetch COREDB_tablespace_check into v_tablespace;
if COREDB_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE COREDB LOGGING DATAFILE '||''''|| v_path||'COREDB01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close COREDB_tablespace_check;
END;
/
DECLARE
cursor PORTALDB_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'PORTALDB';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open PORTALDB_tablespace_check;
fetch PORTALDB_tablespace_check into v_tablespace;
if PORTALDB_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE PORTALDB LOGGING DATAFILE '||''''|| v_path||'PORTALDB01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close PORTALDB_tablespace_check;
END;
/
DECLARE
cursor LOCDB_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'LOCDB';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open LOCDB_tablespace_check;
fetch LOCDB_tablespace_check into v_tablespace;
if LOCDB_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE LOCDB LOGGING DATAFILE '||''''|| v_path||'LOCDB01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close LOCDB_tablespace_check;
END;
/
DECLARE
cursor LOC_INDX_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'LOC_INDX';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open LOC_INDX_tablespace_check;
fetch LOC_INDX_tablespace_check into v_tablespace;
if LOC_INDX_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE LOC_INDX LOGGING DATAFILE '||''''|| v_path||'LOC_INDX01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close LOC_INDX_tablespace_check;
END;
/
DECLARE
cursor RTA_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'RTA';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open RTA_tablespace_check;
fetch RTA_tablespace_check into v_tablespace;
if RTA_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE RTA LOGGING DATAFILE '||''''|| v_path||'RTA01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close RTA_tablespace_check;
END;
/
DECLARE
cursor CEDB_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'CEDB';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open CEDB_tablespace_check;
fetch CEDB_tablespace_check into v_tablespace;
if CEDB_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE CEDB LOGGING DATAFILE '||''''|| v_path||'CEDB01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close CEDB_tablespace_check;
END;
/
DECLARE
cursor TEMP_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'TEMP';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open TEMP_tablespace_check;
fetch TEMP_tablespace_check into v_tablespace;
if TEMP_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE TEMP LOGGING DATAFILE '||''''|| v_path||'TEMP01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close TEMP_tablespace_check;
END;
/
DECLARE
cursor AGG_INDX_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'AGGREGATE_INDX';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open AGG_INDX_tablespace_check;
fetch AGG_INDX_tablespace_check into v_tablespace;
if AGG_INDX_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE AGGREGATE_INDX LOGGING DATAFILE '||''''|| v_path||'AGGREGATE_INDX01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close AGG_INDX_tablespace_check;
END;
/
/
DECLARE
cursor AGGREGATE_DB_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'AGGREGATE_DB';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open AGGREGATE_DB_tablespace_check;
fetch AGGREGATE_DB_tablespace_check into v_tablespace;
if AGGREGATE_DB_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE AGGREGATE_DB LOGGING DATAFILE '||''''|| v_path||'AGGREGATE_DB01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close AGGREGATE_DB_tablespace_check;
END;
/
/
DECLARE
cursor PENTAHO_tablespace_check is
select tablespace_name
from dba_tablespaces
where tablespace_name = 'PENTAHO';
v_tablespace varchar2(40);
v_path VARCHAR2(100);
sql_stmt VARCHAR2(10000);
BEGIN
open PENTAHO_tablespace_check;
fetch PENTAHO_tablespace_check into v_tablespace;
if PENTAHO_tablespace_check%NOTFOUND
then
SELECT substr(file_name, 1,((INSTR(file_name,'\', -1, 1))))
into v_path
from dba_data_files where rownum < 2;
sql_stmt := 'CREATE TABLESPACE PENTAHO LOGGING DATAFILE '||''''|| v_path||'PENTAHO01.dbf'||''''||' SIZE 128M AUTOEXTEND ON NEXT 128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO';
execute immediate sql_stmt;
end if;
close PENTAHO_tablespace_check;
END;
/
quit;
Set-ExecutionPolicy Bypass -Scope Process
# We add all to each line to ensure any parent features are included in the installation
Enable-WindowsOptionalFeature -online -FeatureName NetFx4ServerFeatures -All
Enable-WindowsOptionalFeature -online -FeatureName NetFx4 -All
Enable-WindowsOptionalFeature -online -FeatureName WCF-Services45 -All
Enable-WindowsOptionalFeature -online -FeatureName WCF-HTTP-Activation45 -All
Enable-WindowsOptionalFeature -online -FeatureName WCF-TCP-Activation45 -All
Enable-WindowsOptionalFeature -online -FeatureName WCF-Pipe-Activation45 -All
Enable-WindowsOptionalFeature -online -FeatureName WCF-TCP-PortSharing45 -All
Enable-WindowsOptionalFeature -online -FeatureName WCF-HTTP-Activation -All
#.NET 3x features require the Windows2012R2 installer media
Enable-WindowsOptionalFeature -online -FeatureName NetFx3ServerFeatures -All -Source <path to win2012 installer disk>:\sources\sxs
Enable-WindowsOptionalFeature -online -FeatureName NetFx3 -All -Source <path to win2012 installer disk>:\sources\sxs
Enable-WindowsOptionalFeature -online -FeatureName IIS-WebServerRole -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-DefaultDocument -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-HttpErrors -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-StaticContent -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-CommonHttpFeatures -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-Security -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-DirectoryBrowsing -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-HttpLogging -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpRedirect -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-RequestMonitor -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-RequestFiltering -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionStatic -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerManagementTools -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-IIS6ManagementCompatibility -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementConsole -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-Metabase -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementScriptingTools -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WMICompatibility -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-LegacyScripts -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-CertProvider -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-LegacySnapIn -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-HealthAndDiagnostics -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-Performance -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIFilter -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASP -All
Enable-WindowsOptionalFeature -online -FeatureName NetFx4Extended-ASPNET45 -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationDevelopment -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-NetFxExtensibility -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-NetFxExtensibility45 -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-ISAPIExtensions -All
Enable-WindowsOptionalFeature -online -FeatureName IIS-ISAPIFilter -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET45 -All
$cert = $cert=New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName $env:COMPUTERNAME
Export-Certificate -Cert $cert -FilePath C:\Users\Administrator\Desktop\simphony.cer
@mostafdanguir
Copy link

Hi bro
good job pls i need your help to install this version on win2012 R2

@esmcelroy
Copy link
Author

These instructions should work on Windows 2012R2 - I do actually need to update the powershell for feature installation. The .NET 3.5 components are only installable from the Windows 2012 R2 install media. This may be causing an issue

@esmcelroy
Copy link
Author

Just updated the IIS installation script to show how to ensure it will install all the required IIS and dot NET features

@mkrgoede
Copy link

Hi, thank you for the scripts. Are you able to further support me with a more recent version ( 18.2 ) ? I have some issues during the installation.. Thank you in advance!

@esmcelroy
Copy link
Author

Hey, sorry! I haven't been working with Oracle Simphony products since the fall of 2019, and the only version I looked at was version 2.10, but I will say that the version 18 documentation for installation is much better than the Simphony 2.10 documentation.
If you haven't seen the Oracle install docs, check them out here: https://docs.oracle.com/cd/F10429_01/doc.182/e99060/toc.htm
And in general the Simphony 18 documents are available here: https://docs.oracle.com/cd/F10429_01/index.htm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment